diff --git a/.vscode/settings.json b/.vscode/settings.json index 3b66410..8ec3f0d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,8 @@ { - "git.ignoreLimitWarning": true + "git.ignoreLimitWarning": true, + "editor.formatOnSave": true, + "editor.defaultFormatter": null, // Set to your preferred formatter (e.g., "esbenp.prettier-vscode") + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + } // Example for JS files } \ No newline at end of file diff --git a/assets/Scene/GameScene.fire b/assets/Scene/GameScene.fire index 1f17aba..daca74d 100644 --- a/assets/Scene/GameScene.fire +++ b/assets/Scene/GameScene.fire @@ -75,28 +75,28 @@ "__id__": 5 }, { - "__id__": 66 + "__id__": 74 }, { - "__id__": 342 + "__id__": 350 }, { - "__id__": 392 + "__id__": 400 } ], "_active": true, "_components": [ { - "__id__": 395 + "__id__": 403 }, { - "__id__": 396 + "__id__": 404 }, { - "__id__": 397 + "__id__": 405 }, { - "__id__": 398 + "__id__": 406 } ], "_prefab": null, @@ -260,22 +260,22 @@ "__id__": 9 }, { - "__id__": 155 + "__id__": 163 }, { - "__id__": 176 + "__id__": 184 }, { - "__id__": 196 + "__id__": 204 }, { - "__id__": 68 + "__id__": 76 } ], "_active": true, "_components": [ { - "__id__": 341 + "__id__": 349 } ], "_prefab": null, @@ -465,19 +465,19 @@ "__id__": 13 }, { - "__id__": 130 + "__id__": 138 }, { "__id__": 20 }, { - "__id__": 151 + "__id__": 159 } ], "_active": true, "_components": [ { - "__id__": 154 + "__id__": 162 } ], "_prefab": null, @@ -962,10 +962,10 @@ "__id__": 36 }, "mask": { - "__id__": 66 + "__id__": 74 }, "iceLabel": { - "__id__": 62 + "__id__": 70 }, "hammerLabel": { "__id__": 25 @@ -983,7 +983,7 @@ "__id__": 49 }, "coinPop": { - "__id__": 68 + "__id__": 76 }, "_id": "1e+NpmfM1ClafoWSY4VNW+" }, @@ -1001,7 +1001,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 65 + "__id__": 73 } ], "_N$interactable": true, @@ -1070,22 +1070,22 @@ }, "_children": [ { - "__id__": 59 + "__id__": 67 }, { - "__id__": 61 + "__id__": 69 } ], "_active": true, "_components": [ { - "__id__": 63 + "__id__": 71 }, { "__id__": 18 }, { - "__id__": 64 + "__id__": 72 } ], "_prefab": null, @@ -1167,12 +1167,15 @@ }, { "__id__": 55 + }, + { + "__id__": 58 } ], "_active": true, "_components": [ { - "__id__": 58 + "__id__": 66 } ], "_prefab": null, @@ -2776,6 +2779,391 @@ "_enabled": true, "_id": "e8zuQH36BBZaL/1k13rbss" }, + { + "__type__": "cc.Node", + "_name": "shop", + "_objFlags": 0, + "_parent": { + "__id__": 20 + }, + "_children": [ + { + "__id__": 59 + } + ], + "_active": true, + "_components": [ + { + "__id__": 64 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -480, + 130, + 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": "07afITpORHfqPONAypAM0J" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 512, + "_parent": { + "__id__": 58 + }, + "_children": [ + { + "__id__": 60 + } + ], + "_active": true, + "_components": [ + { + "__id__": 62 + }, + { + "__id__": 63 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_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, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "d0UzByGLlHhZBro9lAsDtj" + }, + { + "__type__": "cc.Node", + "_name": "Label", + "_objFlags": 512, + "_parent": { + "__id__": 59 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 61 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_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": "44E7SWYWZAYKloRxH+TqQ2" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 60 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "shop", + "_N$string": "shop", + "_fontSize": 20, + "_lineHeight": 40, + "_enableWrapText": false, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 1, + "_N$cacheMode": 1, + "_id": "54N4oUcYBDMo13P1rEyD3d" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 59 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "63/cc4uTFGpo5Bmsy0O9gg" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 59 + }, + "_enabled": true, + "alignMode": 0, + "_target": null, + "_alignFlags": 45, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 100, + "_originalHeight": 40, + "_id": "c5a8DznRRM+4vL+BCxPXZZ" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 58 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 65 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 230, + "g": 230, + "b": 230, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "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": 120, + "g": 120, + "b": 120, + "a": 200 + }, + "_N$normalSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "_N$hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$disabledSprite": { + "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e" + }, + "_N$target": { + "__id__": 59 + }, + "_id": "111w+INMtEeL+/wHpeYLTf" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 2 + }, + "component": "", + "_componentId": "80998T1AYNNRZdRxsVvXR65", + "handler": "openShop", + "customEventData": "" + }, { "__type__": "cc.Widget", "_name": "", @@ -2814,7 +3202,7 @@ "_active": true, "_components": [ { - "__id__": 60 + "__id__": 68 } ], "_prefab": null, @@ -2870,7 +3258,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 59 + "__id__": 67 }, "_enabled": true, "_materials": [ @@ -2910,7 +3298,7 @@ "_active": true, "_components": [ { - "__id__": 62 + "__id__": 70 } ], "_prefab": null, @@ -2966,7 +3354,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 61 + "__id__": 69 }, "_enabled": true, "_materials": [ @@ -3059,7 +3447,7 @@ "_active": false, "_components": [ { - "__id__": 67 + "__id__": 75 } ], "_prefab": null, @@ -3115,7 +3503,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 66 + "__id__": 74 }, "_enabled": true, "_materials": [ @@ -3150,41 +3538,41 @@ "__id__": 5 }, "_children": [ - { - "__id__": 69 - }, - { - "__id__": 73 - }, - { - "__id__": 75 - }, { "__id__": 77 }, - { - "__id__": 79 - }, { "__id__": 81 }, { - "__id__": 90 + "__id__": 83 }, { - "__id__": 99 + "__id__": 85 }, { - "__id__": 108 + "__id__": 87 }, { - "__id__": 125 + "__id__": 89 + }, + { + "__id__": 98 + }, + { + "__id__": 107 + }, + { + "__id__": 116 + }, + { + "__id__": 133 } ], "_active": false, "_components": [ { - "__id__": 129 + "__id__": 137 } ], "_prefab": null, @@ -3240,19 +3628,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 70 + "__id__": 78 }, { - "__id__": 71 + "__id__": 79 }, { - "__id__": 72 + "__id__": 80 } ], "_prefab": null, @@ -3308,7 +3696,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 69 + "__id__": 77 }, "_enabled": true, "_materials": [ @@ -3340,7 +3728,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 69 + "__id__": 77 }, "_enabled": true, "alignMode": 1, @@ -3367,7 +3755,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 69 + "__id__": 77 }, "_enabled": true, "_id": "7ck1YZHrVNgK0sTsx/E/46" @@ -3377,13 +3765,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 74 + "__id__": 82 } ], "_prefab": null, @@ -3439,7 +3827,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 73 + "__id__": 81 }, "_enabled": true, "_materials": [ @@ -3471,13 +3859,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 76 + "__id__": 84 } ], "_prefab": null, @@ -3533,7 +3921,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 75 + "__id__": 83 }, "_enabled": true, "_materials": [ @@ -3567,13 +3955,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 78 + "__id__": 86 } ], "_prefab": null, @@ -3629,7 +4017,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 77 + "__id__": 85 }, "_enabled": true, "_materials": [ @@ -3663,13 +4051,13 @@ "_name": "light", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 80 + "__id__": 88 } ], "_prefab": null, @@ -3725,7 +4113,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 79 + "__id__": 87 }, "_enabled": true, "_materials": [ @@ -3757,20 +4145,20 @@ "_name": "freeze", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [ { - "__id__": 82 + "__id__": 90 }, { - "__id__": 84 + "__id__": 92 }, { - "__id__": 86 + "__id__": 94 }, { - "__id__": 88 + "__id__": 96 } ], "_active": false, @@ -3828,13 +4216,13 @@ "_name": "freeze_Label", "_objFlags": 0, "_parent": { - "__id__": 81 + "__id__": 89 }, "_children": [], "_active": true, "_components": [ { - "__id__": 83 + "__id__": 91 } ], "_prefab": null, @@ -3890,7 +4278,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 82 + "__id__": 90 }, "_enabled": true, "_materials": [ @@ -3924,13 +4312,13 @@ "_name": "freeze_Icon", "_objFlags": 0, "_parent": { - "__id__": 81 + "__id__": 89 }, "_children": [], "_active": true, "_components": [ { - "__id__": 85 + "__id__": 93 } ], "_prefab": null, @@ -3986,7 +4374,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 84 + "__id__": 92 }, "_enabled": true, "_materials": [ @@ -4020,13 +4408,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 81 + "__id__": 89 }, "_children": [], "_active": true, "_components": [ { - "__id__": 87 + "__id__": 95 } ], "_prefab": null, @@ -4082,7 +4470,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 86 + "__id__": 94 }, "_enabled": true, "_materials": [ @@ -4116,13 +4504,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 81 + "__id__": 89 }, "_children": [], "_active": true, "_components": [ { - "__id__": 89 + "__id__": 97 } ], "_prefab": null, @@ -4178,7 +4566,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 88 + "__id__": 96 }, "_enabled": true, "_materials": [ @@ -4212,20 +4600,20 @@ "_name": "hammer", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [ { - "__id__": 91 + "__id__": 99 }, { - "__id__": 93 + "__id__": 101 }, { - "__id__": 95 + "__id__": 103 }, { - "__id__": 97 + "__id__": 105 } ], "_active": false, @@ -4283,13 +4671,13 @@ "_name": "hammer_Label", "_objFlags": 0, "_parent": { - "__id__": 90 + "__id__": 98 }, "_children": [], "_active": true, "_components": [ { - "__id__": 92 + "__id__": 100 } ], "_prefab": null, @@ -4345,7 +4733,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 91 + "__id__": 99 }, "_enabled": true, "_materials": [ @@ -4379,13 +4767,13 @@ "_name": "hammer_Icon", "_objFlags": 0, "_parent": { - "__id__": 90 + "__id__": 98 }, "_children": [], "_active": true, "_components": [ { - "__id__": 94 + "__id__": 102 } ], "_prefab": null, @@ -4441,7 +4829,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 93 + "__id__": 101 }, "_enabled": true, "_materials": [ @@ -4475,13 +4863,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 90 + "__id__": 98 }, "_children": [], "_active": true, "_components": [ { - "__id__": 96 + "__id__": 104 } ], "_prefab": null, @@ -4537,7 +4925,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 95 + "__id__": 103 }, "_enabled": true, "_materials": [ @@ -4571,13 +4959,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 90 + "__id__": 98 }, "_children": [], "_active": true, "_components": [ { - "__id__": 98 + "__id__": 106 } ], "_prefab": null, @@ -4633,7 +5021,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 97 + "__id__": 105 }, "_enabled": true, "_materials": [ @@ -4667,20 +5055,20 @@ "_name": "magic", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [ { - "__id__": 100 + "__id__": 108 }, { - "__id__": 102 + "__id__": 110 }, { - "__id__": 104 + "__id__": 112 }, { - "__id__": 106 + "__id__": 114 } ], "_active": false, @@ -4738,13 +5126,13 @@ "_name": "magic_Label", "_objFlags": 0, "_parent": { - "__id__": 99 + "__id__": 107 }, "_children": [], "_active": true, "_components": [ { - "__id__": 101 + "__id__": 109 } ], "_prefab": null, @@ -4800,7 +5188,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 100 + "__id__": 108 }, "_enabled": true, "_materials": [ @@ -4834,13 +5222,13 @@ "_name": "magic_Icon", "_objFlags": 0, "_parent": { - "__id__": 99 + "__id__": 107 }, "_children": [], "_active": true, "_components": [ { - "__id__": 103 + "__id__": 111 } ], "_prefab": null, @@ -4896,7 +5284,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 110 }, "_enabled": true, "_materials": [ @@ -4930,13 +5318,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 99 + "__id__": 107 }, "_children": [], "_active": true, "_components": [ { - "__id__": 105 + "__id__": 113 } ], "_prefab": null, @@ -4992,7 +5380,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 104 + "__id__": 112 }, "_enabled": true, "_materials": [ @@ -5026,13 +5414,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 99 + "__id__": 107 }, "_children": [], "_active": true, "_components": [ { - "__id__": 107 + "__id__": 115 } ], "_prefab": null, @@ -5088,7 +5476,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 106 + "__id__": 114 }, "_enabled": true, "_materials": [ @@ -5122,38 +5510,38 @@ "_name": "buy_Btn", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [ - { - "__id__": 109 - }, - { - "__id__": 111 - }, - { - "__id__": 113 - }, - { - "__id__": 115 - }, { "__id__": 117 }, { "__id__": 119 + }, + { + "__id__": 121 + }, + { + "__id__": 123 + }, + { + "__id__": 125 + }, + { + "__id__": 127 } ], "_active": true, "_components": [ { - "__id__": 121 + "__id__": 129 }, { - "__id__": 122 + "__id__": 130 }, { - "__id__": 124 + "__id__": 132 } ], "_prefab": null, @@ -5209,13 +5597,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 110 + "__id__": 118 } ], "_prefab": null, @@ -5271,7 +5659,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 109 + "__id__": 117 }, "_enabled": true, "_materials": [ @@ -5305,13 +5693,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 112 + "__id__": 120 } ], "_prefab": null, @@ -5367,7 +5755,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 111 + "__id__": 119 }, "_enabled": true, "_materials": [ @@ -5401,13 +5789,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 114 + "__id__": 122 } ], "_prefab": null, @@ -5463,7 +5851,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 113 + "__id__": 121 }, "_enabled": true, "_materials": [ @@ -5497,13 +5885,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 116 + "__id__": 124 } ], "_prefab": null, @@ -5559,7 +5947,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 115 + "__id__": 123 }, "_enabled": true, "_materials": [ @@ -5593,13 +5981,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 118 + "__id__": 126 } ], "_prefab": null, @@ -5655,7 +6043,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 117 + "__id__": 125 }, "_enabled": true, "_materials": [ @@ -5689,13 +6077,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 120 + "__id__": 128 } ], "_prefab": null, @@ -5751,7 +6139,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 119 + "__id__": 127 }, "_enabled": true, "_materials": [ @@ -5785,7 +6173,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 108 + "__id__": 116 }, "_enabled": true, "_materials": [ @@ -5819,7 +6207,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 108 + "__id__": 116 }, "_enabled": true, "_normalMaterial": null, @@ -5828,7 +6216,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 123 + "__id__": 131 } ], "_N$interactable": true, @@ -5884,7 +6272,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 108 + "__id__": 116 }, "_id": "3dIBlmgnFLIKI+Rx3mWLiH" }, @@ -5903,7 +6291,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 108 + "__id__": 116 }, "_enabled": true, "_id": "f9YC9UOyxPc4DLFd+bNIec" @@ -5913,16 +6301,16 @@ "_name": "close", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 126 + "__id__": 134 }, { - "__id__": 127 + "__id__": 135 } ], "_prefab": null, @@ -5978,7 +6366,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 125 + "__id__": 133 }, "_enabled": true, "_materials": [ @@ -6012,7 +6400,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 125 + "__id__": 133 }, "_enabled": true, "_normalMaterial": null, @@ -6021,7 +6409,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 128 + "__id__": 136 } ], "_N$interactable": true, @@ -6077,7 +6465,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 125 + "__id__": 133 }, "_id": "e2r0BmMa5MrIsk8JJmyNf3" }, @@ -6096,7 +6484,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 68 + "__id__": 76 }, "_enabled": true, "alignMode": 1, @@ -6126,24 +6514,9 @@ "__id__": 9 }, "_children": [ - { - "__id__": 131 - }, - { - "__id__": 133 - }, - { - "__id__": 135 - }, - { - "__id__": 137 - }, { "__id__": 139 }, - { - "__id__": 140 - }, { "__id__": 141 }, @@ -6152,12 +6525,27 @@ }, { "__id__": 145 + }, + { + "__id__": 147 + }, + { + "__id__": 148 + }, + { + "__id__": 149 + }, + { + "__id__": 151 + }, + { + "__id__": 153 } ], "_active": true, "_components": [ { - "__id__": 150 + "__id__": 158 } ], "_prefab": null, @@ -6213,13 +6601,13 @@ "_name": "topBg", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, "_components": [ { - "__id__": 132 + "__id__": 140 } ], "_prefab": null, @@ -6275,7 +6663,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 131 + "__id__": 139 }, "_enabled": true, "_materials": [ @@ -6309,13 +6697,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, "_components": [ { - "__id__": 134 + "__id__": 142 } ], "_prefab": null, @@ -6371,7 +6759,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 133 + "__id__": 141 }, "_enabled": true, "_materials": [ @@ -6405,13 +6793,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, "_components": [ { - "__id__": 136 + "__id__": 144 } ], "_prefab": null, @@ -6467,7 +6855,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 135 + "__id__": 143 }, "_enabled": true, "_materials": [ @@ -6501,13 +6889,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, "_components": [ { - "__id__": 138 + "__id__": 146 } ], "_prefab": null, @@ -6563,7 +6951,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 137 + "__id__": 145 }, "_enabled": true, "_materials": [ @@ -6597,7 +6985,7 @@ "_name": "level", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, @@ -6655,7 +7043,7 @@ "_name": "time", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, @@ -6713,13 +7101,13 @@ "_name": "Ice", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": false, "_components": [ { - "__id__": 142 + "__id__": 150 } ], "_prefab": null, @@ -6775,7 +7163,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 141 + "__id__": 149 }, "_enabled": true, "_materials": [ @@ -6807,13 +7195,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": false, "_components": [ { - "__id__": 144 + "__id__": 152 } ], "_prefab": null, @@ -6869,7 +7257,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 143 + "__id__": 151 }, "_enabled": true, "_materials": [ @@ -6902,17 +7290,17 @@ "_name": "returnBtn", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [ { - "__id__": 146 + "__id__": 154 } ], "_active": false, "_components": [ { - "__id__": 148 + "__id__": 156 } ], "_prefab": null, @@ -6968,13 +7356,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 145 + "__id__": 153 }, "_children": [], "_active": true, "_components": [ { - "__id__": 147 + "__id__": 155 } ], "_prefab": null, @@ -7030,7 +7418,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 146 + "__id__": 154 }, "_enabled": true, "_materials": [ @@ -7064,7 +7452,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 145 + "__id__": 153 }, "_enabled": true, "_normalMaterial": null, @@ -7073,7 +7461,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 149 + "__id__": 157 } ], "_N$interactable": true, @@ -7129,7 +7517,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 145 + "__id__": 153 }, "_id": "34Z6b/IgpOtKrGQXG1ECg6" }, @@ -7148,7 +7536,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 130 + "__id__": 138 }, "_enabled": true, "alignMode": 1, @@ -7181,10 +7569,10 @@ "_active": false, "_components": [ { - "__id__": 152 + "__id__": 160 }, { - "__id__": 153 + "__id__": 161 } ], "_prefab": null, @@ -7240,7 +7628,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 151 + "__id__": 159 }, "_enabled": true, "_materials": [ @@ -7272,7 +7660,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 151 + "__id__": 159 }, "_enabled": true, "alignMode": 1, @@ -7329,32 +7717,32 @@ "__id__": 5 }, "_children": [ - { - "__id__": 156 - }, - { - "__id__": 160 - }, - { - "__id__": 162 - }, { "__id__": 164 }, { - "__id__": 166 + "__id__": 168 + }, + { + "__id__": 170 }, { "__id__": 172 + }, + { + "__id__": 174 + }, + { + "__id__": 180 } ], "_active": false, "_components": [ { - "__id__": 174 + "__id__": 182 }, { - "__id__": 175 + "__id__": 183 } ], "_prefab": null, @@ -7410,19 +7798,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [], "_active": true, "_components": [ { - "__id__": 157 + "__id__": 165 }, { - "__id__": 158 + "__id__": 166 }, { - "__id__": 159 + "__id__": 167 } ], "_prefab": null, @@ -7478,7 +7866,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 156 + "__id__": 164 }, "_enabled": true, "_materials": [ @@ -7510,7 +7898,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 156 + "__id__": 164 }, "_enabled": true, "alignMode": 1, @@ -7537,7 +7925,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 156 + "__id__": 164 }, "_enabled": true, "_id": "1e62ukhsJObKLFucCNzfwm" @@ -7547,13 +7935,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [], "_active": true, "_components": [ { - "__id__": 161 + "__id__": 169 } ], "_prefab": null, @@ -7609,7 +7997,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 160 + "__id__": 168 }, "_enabled": true, "_materials": [ @@ -7641,13 +8029,13 @@ "_name": "light", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [], "_active": true, "_components": [ { - "__id__": 163 + "__id__": 171 } ], "_prefab": null, @@ -7703,7 +8091,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 162 + "__id__": 170 }, "_enabled": true, "_materials": [ @@ -7735,13 +8123,13 @@ "_name": "icon", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [], "_active": true, "_components": [ { - "__id__": 165 + "__id__": 173 } ], "_prefab": null, @@ -7797,7 +8185,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 164 + "__id__": 172 }, "_enabled": true, "_materials": [ @@ -7827,20 +8215,20 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [ { - "__id__": 167 + "__id__": 175 } ], "_active": true, "_components": [ { - "__id__": 169 + "__id__": 177 }, { - "__id__": 170 + "__id__": 178 } ], "_prefab": null, @@ -7896,13 +8284,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 174 }, "_children": [], "_active": true, "_components": [ { - "__id__": 168 + "__id__": 176 } ], "_prefab": null, @@ -7958,7 +8346,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 167 + "__id__": 175 }, "_enabled": true, "_materials": [ @@ -7990,7 +8378,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 166 + "__id__": 174 }, "_enabled": true, "_materials": [ @@ -8022,7 +8410,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 166 + "__id__": 174 }, "_enabled": true, "_normalMaterial": null, @@ -8031,7 +8419,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 171 + "__id__": 179 } ], "_N$interactable": true, @@ -8087,14 +8475,14 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 166 + "__id__": 174 }, "_id": "2bhrCpcRxImqyWzBaIVVCd" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 155 + "__id__": 163 }, "component": "", "_componentId": "7fe14dRFQZKSKKAoEn4S7OU", @@ -8106,13 +8494,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [], "_active": true, "_components": [ { - "__id__": 173 + "__id__": 181 } ], "_prefab": null, @@ -8168,7 +8556,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 172 + "__id__": 180 }, "_enabled": true, "_materials": [ @@ -8200,7 +8588,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 155 + "__id__": 163 }, "_enabled": true, "alignMode": 1, @@ -8227,7 +8615,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 155 + "__id__": 163 }, "_enabled": true, "label": null, @@ -8243,22 +8631,22 @@ }, "_children": [ { - "__id__": 177 - }, - { - "__id__": 181 - }, - { - "__id__": 183 + "__id__": 185 }, { "__id__": 189 + }, + { + "__id__": 191 + }, + { + "__id__": 197 } ], "_active": false, "_components": [ { - "__id__": 195 + "__id__": 203 } ], "_prefab": null, @@ -8314,19 +8702,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 176 + "__id__": 184 }, "_children": [], "_active": true, "_components": [ { - "__id__": 178 + "__id__": 186 }, { - "__id__": 179 + "__id__": 187 }, { - "__id__": 180 + "__id__": 188 } ], "_prefab": null, @@ -8382,7 +8770,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 177 + "__id__": 185 }, "_enabled": true, "_materials": [ @@ -8414,7 +8802,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 177 + "__id__": 185 }, "_enabled": true, "alignMode": 1, @@ -8441,7 +8829,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 177 + "__id__": 185 }, "_enabled": true, "_id": "7aMdyhm41AyqFZMnIAtTUY" @@ -8451,13 +8839,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 176 + "__id__": 184 }, "_children": [], "_active": true, "_components": [ { - "__id__": 182 + "__id__": 190 } ], "_prefab": null, @@ -8513,7 +8901,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 181 + "__id__": 189 }, "_enabled": true, "_materials": [ @@ -8545,20 +8933,20 @@ "_name": "nextBtn", "_objFlags": 0, "_parent": { - "__id__": 176 + "__id__": 184 }, "_children": [ { - "__id__": 184 + "__id__": 192 } ], "_active": true, "_components": [ { - "__id__": 186 + "__id__": 194 }, { - "__id__": 187 + "__id__": 195 } ], "_prefab": null, @@ -8614,13 +9002,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 183 + "__id__": 191 }, "_children": [], "_active": true, "_components": [ { - "__id__": 185 + "__id__": 193 } ], "_prefab": null, @@ -8676,7 +9064,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 184 + "__id__": 192 }, "_enabled": true, "_materials": [ @@ -8710,7 +9098,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 183 + "__id__": 191 }, "_enabled": true, "_materials": [ @@ -8742,7 +9130,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 183 + "__id__": 191 }, "_enabled": true, "_normalMaterial": null, @@ -8751,7 +9139,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 188 + "__id__": 196 } ], "_N$interactable": true, @@ -8807,7 +9195,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 183 + "__id__": 191 }, "_id": "02dmnqIIhNA7gNoxAqWnCT" }, @@ -8826,20 +9214,20 @@ "_name": "homeBtn", "_objFlags": 0, "_parent": { - "__id__": 176 + "__id__": 184 }, "_children": [ { - "__id__": 190 + "__id__": 198 } ], "_active": true, "_components": [ { - "__id__": 192 + "__id__": 200 }, { - "__id__": 193 + "__id__": 201 } ], "_prefab": null, @@ -8895,13 +9283,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 189 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 191 + "__id__": 199 } ], "_prefab": null, @@ -8957,7 +9345,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 190 + "__id__": 198 }, "_enabled": true, "_materials": [ @@ -8991,7 +9379,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 189 + "__id__": 197 }, "_enabled": true, "_materials": [ @@ -9023,7 +9411,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 189 + "__id__": 197 }, "_enabled": true, "_normalMaterial": null, @@ -9032,7 +9420,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 194 + "__id__": 202 } ], "_N$interactable": true, @@ -9088,7 +9476,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 189 + "__id__": 197 }, "_id": "340osYA4tCpJlhedNAxg8f" }, @@ -9107,7 +9495,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 176 + "__id__": 184 }, "_enabled": true, "alignMode": 1, @@ -9138,28 +9526,28 @@ }, "_children": [ { - "__id__": 197 + "__id__": 205 }, { - "__id__": 201 + "__id__": 209 }, { - "__id__": 203 + "__id__": 211 }, { - "__id__": 275 + "__id__": 283 }, { - "__id__": 296 + "__id__": 304 }, { - "__id__": 319 + "__id__": 327 } ], "_active": false, "_components": [ { - "__id__": 340 + "__id__": 348 } ], "_prefab": null, @@ -9215,19 +9603,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [], "_active": true, "_components": [ { - "__id__": 198 + "__id__": 206 }, { - "__id__": 199 + "__id__": 207 }, { - "__id__": 200 + "__id__": 208 } ], "_prefab": null, @@ -9283,7 +9671,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 197 + "__id__": 205 }, "_enabled": true, "_materials": [ @@ -9315,7 +9703,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 197 + "__id__": 205 }, "_enabled": true, "alignMode": 1, @@ -9342,7 +9730,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 197 + "__id__": 205 }, "_enabled": true, "_id": "c22Pk+4yZHHaEcGiym9WxK" @@ -9352,13 +9740,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [], "_active": true, "_components": [ { - "__id__": 202 + "__id__": 210 } ], "_prefab": null, @@ -9414,7 +9802,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 201 + "__id__": 209 }, "_enabled": true, "_materials": [ @@ -9446,21 +9834,9 @@ "_name": "Time", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [ - { - "__id__": 204 - }, - { - "__id__": 206 - }, - { - "__id__": 208 - }, - { - "__id__": 210 - }, { "__id__": 212 }, @@ -9468,10 +9844,22 @@ "__id__": 214 }, { - "__id__": 230 + "__id__": 216 }, { - "__id__": 269 + "__id__": 218 + }, + { + "__id__": 220 + }, + { + "__id__": 222 + }, + { + "__id__": 238 + }, + { + "__id__": 277 } ], "_active": true, @@ -9529,13 +9917,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [], "_active": true, "_components": [ { - "__id__": 205 + "__id__": 213 } ], "_prefab": null, @@ -9591,7 +9979,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 204 + "__id__": 212 }, "_enabled": true, "_materials": [ @@ -9625,13 +10013,13 @@ "_name": "result_Label1", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [], "_active": true, "_components": [ { - "__id__": 207 + "__id__": 215 } ], "_prefab": null, @@ -9687,7 +10075,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 206 + "__id__": 214 }, "_enabled": true, "_materials": [ @@ -9721,13 +10109,13 @@ "_name": "time_show", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [], "_active": false, "_components": [ { - "__id__": 209 + "__id__": 217 } ], "_prefab": null, @@ -9783,7 +10171,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 208 + "__id__": 216 }, "_enabled": true, "_materials": [ @@ -9817,13 +10205,13 @@ "_name": "label", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [], "_active": false, "_components": [ { - "__id__": 211 + "__id__": 219 } ], "_prefab": null, @@ -9879,7 +10267,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 210 + "__id__": 218 }, "_enabled": true, "_materials": [ @@ -9912,13 +10300,13 @@ "_name": "time_hide", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [], "_active": true, "_components": [ { - "__id__": 213 + "__id__": 221 } ], "_prefab": null, @@ -9974,7 +10362,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 212 + "__id__": 220 }, "_enabled": true, "_materials": [ @@ -10008,35 +10396,35 @@ "_name": "timeBtn", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [ - { - "__id__": 215 - }, - { - "__id__": 217 - }, - { - "__id__": 219 - }, - { - "__id__": 221 - }, { "__id__": 223 }, { "__id__": 225 + }, + { + "__id__": 227 + }, + { + "__id__": 229 + }, + { + "__id__": 231 + }, + { + "__id__": 233 } ], "_active": false, "_components": [ { - "__id__": 227 + "__id__": 235 }, { - "__id__": 228 + "__id__": 236 } ], "_prefab": null, @@ -10092,13 +10480,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": true, "_components": [ { - "__id__": 216 + "__id__": 224 } ], "_prefab": null, @@ -10154,7 +10542,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 215 + "__id__": 223 }, "_enabled": true, "_materials": [ @@ -10188,13 +10576,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": true, "_components": [ { - "__id__": 218 + "__id__": 226 } ], "_prefab": null, @@ -10250,7 +10638,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 217 + "__id__": 225 }, "_enabled": true, "_materials": [ @@ -10284,13 +10672,13 @@ "_name": "number2", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": true, "_components": [ { - "__id__": 220 + "__id__": 228 } ], "_prefab": null, @@ -10346,7 +10734,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 219 + "__id__": 227 }, "_enabled": true, "_materials": [ @@ -10380,13 +10768,13 @@ "_name": "number1", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": false, "_components": [ { - "__id__": 222 + "__id__": 230 } ], "_prefab": null, @@ -10442,7 +10830,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 221 + "__id__": 229 }, "_enabled": true, "_materials": [ @@ -10476,13 +10864,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": true, "_components": [ { - "__id__": 224 + "__id__": 232 } ], "_prefab": null, @@ -10538,7 +10926,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 223 + "__id__": 231 }, "_enabled": true, "_materials": [ @@ -10572,13 +10960,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": true, "_components": [ { - "__id__": 226 + "__id__": 234 } ], "_prefab": null, @@ -10634,7 +11022,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 225 + "__id__": 233 }, "_enabled": true, "_materials": [ @@ -10668,7 +11056,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 214 + "__id__": 222 }, "_enabled": true, "_materials": [ @@ -10702,7 +11090,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 214 + "__id__": 222 }, "_enabled": true, "_normalMaterial": null, @@ -10711,7 +11099,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 229 + "__id__": 237 } ], "_N$interactable": true, @@ -10767,7 +11155,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 214 + "__id__": 222 }, "_id": "f26wyaXk1ODqKTicGneesK" }, @@ -10784,41 +11172,41 @@ "_name": "buyBtn", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [ - { - "__id__": 231 - }, - { - "__id__": 233 - }, - { - "__id__": 235 - }, - { - "__id__": 237 - }, { "__id__": 239 }, { - "__id__": 246 + "__id__": 241 }, { - "__id__": 255 + "__id__": 243 }, { - "__id__": 264 + "__id__": 245 + }, + { + "__id__": 247 + }, + { + "__id__": 254 + }, + { + "__id__": 263 + }, + { + "__id__": 272 } ], "_active": true, "_components": [ { - "__id__": 266 + "__id__": 274 }, { - "__id__": 267 + "__id__": 275 } ], "_prefab": null, @@ -10874,13 +11262,13 @@ "_name": "btn_zi_xhongshi", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [], "_active": true, "_components": [ { - "__id__": 232 + "__id__": 240 } ], "_prefab": null, @@ -10936,7 +11324,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 231 + "__id__": 239 }, "_enabled": true, "_materials": [ @@ -10970,13 +11358,13 @@ "_name": "coins_+", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [], "_active": true, "_components": [ { - "__id__": 234 + "__id__": 242 } ], "_prefab": null, @@ -11032,7 +11420,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 233 + "__id__": 241 }, "_enabled": true, "_materials": [ @@ -11066,13 +11454,13 @@ "_name": "coins2", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [], "_active": true, "_components": [ { - "__id__": 236 + "__id__": 244 } ], "_prefab": null, @@ -11128,7 +11516,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 235 + "__id__": 243 }, "_enabled": true, "_materials": [ @@ -11162,13 +11550,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [], "_active": true, "_components": [ { - "__id__": 238 + "__id__": 246 } ], "_prefab": null, @@ -11224,7 +11612,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 237 + "__id__": 245 }, "_enabled": true, "_materials": [ @@ -11258,17 +11646,17 @@ "_name": "coin1", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [ { - "__id__": 240 + "__id__": 248 }, { - "__id__": 242 + "__id__": 250 }, { - "__id__": 244 + "__id__": 252 } ], "_active": false, @@ -11326,13 +11714,13 @@ "_name": "coins5", "_objFlags": 0, "_parent": { - "__id__": 239 + "__id__": 247 }, "_children": [], "_active": true, "_components": [ { - "__id__": 241 + "__id__": 249 } ], "_prefab": null, @@ -11388,7 +11776,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 240 + "__id__": 248 }, "_enabled": true, "_materials": [ @@ -11422,13 +11810,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 239 + "__id__": 247 }, "_children": [], "_active": true, "_components": [ { - "__id__": 243 + "__id__": 251 } ], "_prefab": null, @@ -11484,7 +11872,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 242 + "__id__": 250 }, "_enabled": true, "_materials": [ @@ -11518,13 +11906,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 239 + "__id__": 247 }, "_children": [], "_active": true, "_components": [ { - "__id__": 245 + "__id__": 253 } ], "_prefab": null, @@ -11580,7 +11968,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 244 + "__id__": 252 }, "_enabled": true, "_materials": [ @@ -11614,20 +12002,20 @@ "_name": "coin2", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [ { - "__id__": 247 + "__id__": 255 }, { - "__id__": 249 + "__id__": 257 }, { - "__id__": 251 + "__id__": 259 }, { - "__id__": 253 + "__id__": 261 } ], "_active": false, @@ -11685,13 +12073,13 @@ "_name": "coins1", "_objFlags": 0, "_parent": { - "__id__": 246 + "__id__": 254 }, "_children": [], "_active": true, "_components": [ { - "__id__": 248 + "__id__": 256 } ], "_prefab": null, @@ -11747,7 +12135,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 247 + "__id__": 255 }, "_enabled": true, "_materials": [ @@ -11781,13 +12169,13 @@ "_name": "coins5", "_objFlags": 0, "_parent": { - "__id__": 246 + "__id__": 254 }, "_children": [], "_active": true, "_components": [ { - "__id__": 250 + "__id__": 258 } ], "_prefab": null, @@ -11843,7 +12231,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 249 + "__id__": 257 }, "_enabled": true, "_materials": [ @@ -11877,13 +12265,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 246 + "__id__": 254 }, "_children": [], "_active": true, "_components": [ { - "__id__": 252 + "__id__": 260 } ], "_prefab": null, @@ -11939,7 +12327,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 251 + "__id__": 259 }, "_enabled": true, "_materials": [ @@ -11973,13 +12361,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 246 + "__id__": 254 }, "_children": [], "_active": true, "_components": [ { - "__id__": 254 + "__id__": 262 } ], "_prefab": null, @@ -12035,7 +12423,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 253 + "__id__": 261 }, "_enabled": true, "_materials": [ @@ -12069,20 +12457,20 @@ "_name": "coin3", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [ { - "__id__": 256 + "__id__": 264 }, { - "__id__": 258 + "__id__": 266 }, { - "__id__": 260 + "__id__": 268 }, { - "__id__": 262 + "__id__": 270 } ], "_active": false, @@ -12140,13 +12528,13 @@ "_name": "coins1", "_objFlags": 0, "_parent": { - "__id__": 255 + "__id__": 263 }, "_children": [], "_active": true, "_components": [ { - "__id__": 257 + "__id__": 265 } ], "_prefab": null, @@ -12202,7 +12590,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 256 + "__id__": 264 }, "_enabled": true, "_materials": [ @@ -12236,13 +12624,13 @@ "_name": "coins5", "_objFlags": 0, "_parent": { - "__id__": 255 + "__id__": 263 }, "_children": [], "_active": true, "_components": [ { - "__id__": 259 + "__id__": 267 } ], "_prefab": null, @@ -12298,7 +12686,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 258 + "__id__": 266 }, "_enabled": true, "_materials": [ @@ -12332,13 +12720,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 255 + "__id__": 263 }, "_children": [], "_active": true, "_components": [ { - "__id__": 261 + "__id__": 269 } ], "_prefab": null, @@ -12394,7 +12782,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 260 + "__id__": 268 }, "_enabled": true, "_materials": [ @@ -12428,13 +12816,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 255 + "__id__": 263 }, "_children": [], "_active": true, "_components": [ { - "__id__": 263 + "__id__": 271 } ], "_prefab": null, @@ -12490,7 +12878,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 262 + "__id__": 270 }, "_enabled": true, "_materials": [ @@ -12524,13 +12912,13 @@ "_name": "coins", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [], "_active": true, "_components": [ { - "__id__": 265 + "__id__": 273 } ], "_prefab": null, @@ -12586,7 +12974,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 264 + "__id__": 272 }, "_enabled": true, "_materials": [ @@ -12620,7 +13008,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 230 + "__id__": 238 }, "_enabled": true, "_materials": [ @@ -12652,7 +13040,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 230 + "__id__": 238 }, "_enabled": true, "_normalMaterial": null, @@ -12661,7 +13049,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 268 + "__id__": 276 } ], "_N$interactable": true, @@ -12717,7 +13105,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 230 + "__id__": 238 }, "_id": "d9X6reFQ5ElIF/oEEoTwvB" }, @@ -12736,20 +13124,20 @@ "_name": "homeBtn", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [ { - "__id__": 270 + "__id__": 278 } ], "_active": true, "_components": [ { - "__id__": 272 + "__id__": 280 }, { - "__id__": 273 + "__id__": 281 } ], "_prefab": null, @@ -12805,13 +13193,13 @@ "_name": "btn_zi_xhongshi", "_objFlags": 0, "_parent": { - "__id__": 269 + "__id__": 277 }, "_children": [], "_active": true, "_components": [ { - "__id__": 271 + "__id__": 279 } ], "_prefab": null, @@ -12867,7 +13255,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 270 + "__id__": 278 }, "_enabled": true, "_materials": [ @@ -12901,7 +13289,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 269 + "__id__": 277 }, "_enabled": true, "_materials": [ @@ -12933,7 +13321,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 269 + "__id__": 277 }, "_enabled": true, "_normalMaterial": null, @@ -12942,7 +13330,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 274 + "__id__": 282 } ], "_N$interactable": true, @@ -12998,7 +13386,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 269 + "__id__": 277 }, "_id": "48mz2WOYxOmpmmNFGfPFpu" }, @@ -13017,23 +13405,23 @@ "_name": "Boom", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [ { - "__id__": 276 + "__id__": 284 }, { - "__id__": 278 - }, - { - "__id__": 280 + "__id__": 286 }, { "__id__": 288 }, { - "__id__": 294 + "__id__": 296 + }, + { + "__id__": 302 } ], "_active": false, @@ -13091,13 +13479,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 275 + "__id__": 283 }, "_children": [], "_active": true, "_components": [ { - "__id__": 277 + "__id__": 285 } ], "_prefab": null, @@ -13153,7 +13541,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 276 + "__id__": 284 }, "_enabled": true, "_materials": [ @@ -13187,13 +13575,13 @@ "_name": "boom_show", "_objFlags": 0, "_parent": { - "__id__": 275 + "__id__": 283 }, "_children": [], "_active": true, "_components": [ { - "__id__": 279 + "__id__": 287 } ], "_prefab": null, @@ -13249,7 +13637,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 278 + "__id__": 286 }, "_enabled": true, "_materials": [ @@ -13283,23 +13671,23 @@ "_name": "boomBtn", "_objFlags": 0, "_parent": { - "__id__": 275 + "__id__": 283 }, "_children": [ { - "__id__": 281 + "__id__": 289 }, { - "__id__": 283 + "__id__": 291 } ], "_active": false, "_components": [ { - "__id__": 285 + "__id__": 293 }, { - "__id__": 286 + "__id__": 294 } ], "_prefab": null, @@ -13355,13 +13743,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 280 + "__id__": 288 }, "_children": [], "_active": true, "_components": [ { - "__id__": 282 + "__id__": 290 } ], "_prefab": null, @@ -13417,7 +13805,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 281 + "__id__": 289 }, "_enabled": true, "_materials": [ @@ -13451,13 +13839,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 280 + "__id__": 288 }, "_children": [], "_active": true, "_components": [ { - "__id__": 284 + "__id__": 292 } ], "_prefab": null, @@ -13513,7 +13901,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 283 + "__id__": 291 }, "_enabled": true, "_materials": [ @@ -13547,7 +13935,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 280 + "__id__": 288 }, "_enabled": true, "_materials": [ @@ -13581,7 +13969,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 280 + "__id__": 288 }, "_enabled": true, "_normalMaterial": null, @@ -13590,7 +13978,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 287 + "__id__": 295 } ], "_N$interactable": true, @@ -13646,7 +14034,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 280 + "__id__": 288 }, "_id": "fdZzVHD4hNAIg80rQMiVrL" }, @@ -13663,20 +14051,20 @@ "_name": "timeBtn", "_objFlags": 0, "_parent": { - "__id__": 275 + "__id__": 283 }, "_children": [ { - "__id__": 289 + "__id__": 297 } ], "_active": true, "_components": [ { - "__id__": 291 + "__id__": 299 }, { - "__id__": 292 + "__id__": 300 } ], "_prefab": null, @@ -13732,13 +14120,13 @@ "_name": "btn_zi_xhongshi", "_objFlags": 0, "_parent": { - "__id__": 288 + "__id__": 296 }, "_children": [], "_active": true, "_components": [ { - "__id__": 290 + "__id__": 298 } ], "_prefab": null, @@ -13794,7 +14182,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 289 + "__id__": 297 }, "_enabled": true, "_materials": [ @@ -13828,7 +14216,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 288 + "__id__": 296 }, "_enabled": true, "_materials": [ @@ -13860,7 +14248,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 288 + "__id__": 296 }, "_enabled": true, "_normalMaterial": null, @@ -13869,7 +14257,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 293 + "__id__": 301 } ], "_N$interactable": true, @@ -13925,7 +14313,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 288 + "__id__": 296 }, "_id": "55yv+R8WZJC6lx8Nc3Ql1k" }, @@ -13944,13 +14332,13 @@ "_name": "result_title4", "_objFlags": 0, "_parent": { - "__id__": 275 + "__id__": 283 }, "_children": [], "_active": true, "_components": [ { - "__id__": 295 + "__id__": 303 } ], "_prefab": null, @@ -14006,7 +14394,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 294 + "__id__": 302 }, "_enabled": true, "_materials": [ @@ -14040,20 +14428,20 @@ "_name": "Lock", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [ { - "__id__": 297 + "__id__": 305 }, { - "__id__": 299 + "__id__": 307 }, { - "__id__": 301 + "__id__": 309 }, { - "__id__": 303 + "__id__": 311 } ], "_active": false, @@ -14111,13 +14499,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 296 + "__id__": 304 }, "_children": [], "_active": true, "_components": [ { - "__id__": 298 + "__id__": 306 } ], "_prefab": null, @@ -14173,7 +14561,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 297 + "__id__": 305 }, "_enabled": true, "_materials": [ @@ -14207,13 +14595,13 @@ "_name": "label", "_objFlags": 0, "_parent": { - "__id__": 296 + "__id__": 304 }, "_children": [], "_active": true, "_components": [ { - "__id__": 300 + "__id__": 308 } ], "_prefab": null, @@ -14269,7 +14657,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 299 + "__id__": 307 }, "_enabled": true, "_materials": [ @@ -14302,13 +14690,13 @@ "_name": "boom_show", "_objFlags": 0, "_parent": { - "__id__": 296 + "__id__": 304 }, "_children": [], "_active": true, "_components": [ { - "__id__": 302 + "__id__": 310 } ], "_prefab": null, @@ -14364,7 +14752,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 301 + "__id__": 309 }, "_enabled": false, "_materials": [ @@ -14398,35 +14786,35 @@ "_name": "lockBtn", "_objFlags": 0, "_parent": { - "__id__": 296 + "__id__": 304 }, "_children": [ - { - "__id__": 304 - }, - { - "__id__": 306 - }, - { - "__id__": 308 - }, - { - "__id__": 310 - }, { "__id__": 312 }, { "__id__": 314 + }, + { + "__id__": 316 + }, + { + "__id__": 318 + }, + { + "__id__": 320 + }, + { + "__id__": 322 } ], "_active": true, "_components": [ { - "__id__": 316 + "__id__": 324 }, { - "__id__": 317 + "__id__": 325 } ], "_prefab": null, @@ -14482,13 +14870,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": true, "_components": [ { - "__id__": 305 + "__id__": 313 } ], "_prefab": null, @@ -14544,7 +14932,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 304 + "__id__": 312 }, "_enabled": true, "_materials": [ @@ -14578,13 +14966,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": true, "_components": [ { - "__id__": 307 + "__id__": 315 } ], "_prefab": null, @@ -14640,7 +15028,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 306 + "__id__": 314 }, "_enabled": true, "_materials": [ @@ -14674,13 +15062,13 @@ "_name": "number2", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": true, "_components": [ { - "__id__": 309 + "__id__": 317 } ], "_prefab": null, @@ -14736,7 +15124,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 308 + "__id__": 316 }, "_enabled": true, "_materials": [ @@ -14770,13 +15158,13 @@ "_name": "number1", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": false, "_components": [ { - "__id__": 311 + "__id__": 319 } ], "_prefab": null, @@ -14832,7 +15220,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 310 + "__id__": 318 }, "_enabled": true, "_materials": [ @@ -14866,13 +15254,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": true, "_components": [ { - "__id__": 313 + "__id__": 321 } ], "_prefab": null, @@ -14928,7 +15316,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 312 + "__id__": 320 }, "_enabled": true, "_materials": [ @@ -14962,13 +15350,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": true, "_components": [ { - "__id__": 315 + "__id__": 323 } ], "_prefab": null, @@ -15024,7 +15412,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 314 + "__id__": 322 }, "_enabled": true, "_materials": [ @@ -15058,7 +15446,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 303 + "__id__": 311 }, "_enabled": true, "_materials": [ @@ -15092,7 +15480,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 303 + "__id__": 311 }, "_enabled": true, "_normalMaterial": null, @@ -15101,7 +15489,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 318 + "__id__": 326 } ], "_N$interactable": true, @@ -15157,7 +15545,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 303 + "__id__": 311 }, "_id": "655dVf4UVDOrfIwT5AEPmn" }, @@ -15174,23 +15562,23 @@ "_name": "Health", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [ - { - "__id__": 320 - }, - { - "__id__": 322 - }, { "__id__": 328 }, { - "__id__": 332 + "__id__": 330 }, { - "__id__": 338 + "__id__": 336 + }, + { + "__id__": 340 + }, + { + "__id__": 346 } ], "_active": false, @@ -15248,13 +15636,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 319 + "__id__": 327 }, "_children": [], "_active": true, "_components": [ { - "__id__": 321 + "__id__": 329 } ], "_prefab": null, @@ -15310,7 +15698,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 320 + "__id__": 328 }, "_enabled": true, "_materials": [ @@ -15344,20 +15732,20 @@ "_name": "boom_show", "_objFlags": 0, "_parent": { - "__id__": 319 + "__id__": 327 }, "_children": [ { - "__id__": 323 + "__id__": 331 }, { - "__id__": 325 + "__id__": 333 } ], "_active": true, "_components": [ { - "__id__": 327 + "__id__": 335 } ], "_prefab": null, @@ -15413,13 +15801,13 @@ "_name": "hp_-", "_objFlags": 0, "_parent": { - "__id__": 322 + "__id__": 330 }, "_children": [], "_active": true, "_components": [ { - "__id__": 324 + "__id__": 332 } ], "_prefab": null, @@ -15475,7 +15863,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 323 + "__id__": 331 }, "_enabled": true, "_materials": [ @@ -15509,13 +15897,13 @@ "_name": "hp_1", "_objFlags": 0, "_parent": { - "__id__": 322 + "__id__": 330 }, "_children": [], "_active": true, "_components": [ { - "__id__": 326 + "__id__": 334 } ], "_prefab": null, @@ -15571,7 +15959,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 325 + "__id__": 333 }, "_enabled": true, "_materials": [ @@ -15605,7 +15993,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 322 + "__id__": 330 }, "_enabled": true, "_materials": [ @@ -15639,16 +16027,16 @@ "_name": "homeBtn", "_objFlags": 0, "_parent": { - "__id__": 319 + "__id__": 327 }, "_children": [], "_active": true, "_components": [ { - "__id__": 329 + "__id__": 337 }, { - "__id__": 330 + "__id__": 338 } ], "_prefab": null, @@ -15704,7 +16092,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 328 + "__id__": 336 }, "_enabled": true, "_materials": [ @@ -15738,7 +16126,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 328 + "__id__": 336 }, "_enabled": true, "_normalMaterial": null, @@ -15747,7 +16135,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 331 + "__id__": 339 } ], "_N$interactable": true, @@ -15803,7 +16191,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 328 + "__id__": 336 }, "_id": "e6+nQbfBJDk5i7aunx3eFh" }, @@ -15822,20 +16210,20 @@ "_name": "timeBtn", "_objFlags": 0, "_parent": { - "__id__": 319 + "__id__": 327 }, "_children": [ { - "__id__": 333 + "__id__": 341 } ], "_active": true, "_components": [ { - "__id__": 335 + "__id__": 343 }, { - "__id__": 336 + "__id__": 344 } ], "_prefab": null, @@ -15891,13 +16279,13 @@ "_name": "btn_zi_xhongshi", "_objFlags": 0, "_parent": { - "__id__": 332 + "__id__": 340 }, "_children": [], "_active": true, "_components": [ { - "__id__": 334 + "__id__": 342 } ], "_prefab": null, @@ -15953,7 +16341,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 333 + "__id__": 341 }, "_enabled": true, "_materials": [ @@ -15987,7 +16375,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 332 + "__id__": 340 }, "_enabled": true, "_materials": [ @@ -16019,7 +16407,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 332 + "__id__": 340 }, "_enabled": true, "_normalMaterial": null, @@ -16028,7 +16416,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 337 + "__id__": 345 } ], "_N$interactable": true, @@ -16084,7 +16472,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 332 + "__id__": 340 }, "_id": "bbSZLwLOdIJJ624BuB24QD" }, @@ -16103,13 +16491,13 @@ "_name": "result_title4", "_objFlags": 0, "_parent": { - "__id__": 319 + "__id__": 327 }, "_children": [], "_active": true, "_components": [ { - "__id__": 339 + "__id__": 347 } ], "_prefab": null, @@ -16165,7 +16553,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 338 + "__id__": 346 }, "_enabled": true, "_materials": [ @@ -16199,7 +16587,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 196 + "__id__": 204 }, "_enabled": true, "alignMode": 1, @@ -16257,22 +16645,13 @@ }, "_children": [ { - "__id__": 343 + "__id__": 351 }, { - "__id__": 346 + "__id__": 354 }, { - "__id__": 348 - }, - { - "__id__": 355 - }, - { - "__id__": 357 - }, - { - "__id__": 361 + "__id__": 356 }, { "__id__": 363 @@ -16280,9 +16659,6 @@ { "__id__": 365 }, - { - "__id__": 367 - }, { "__id__": 369 }, @@ -16292,9 +16668,15 @@ { "__id__": 373 }, + { + "__id__": 375 + }, { "__id__": 377 }, + { + "__id__": 379 + }, { "__id__": 381 }, @@ -16302,16 +16684,22 @@ "__id__": 385 }, { - "__id__": 387 + "__id__": 389 }, { - "__id__": 389 + "__id__": 393 + }, + { + "__id__": 395 + }, + { + "__id__": 397 } ], "_active": false, "_components": [ { - "__id__": 391 + "__id__": 399 } ], "_prefab": null, @@ -16367,16 +16755,16 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 344 + "__id__": 352 }, { - "__id__": 345 + "__id__": 353 } ], "_prefab": null, @@ -16432,7 +16820,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 343 + "__id__": 351 }, "_enabled": true, "_materials": [ @@ -16464,7 +16852,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 343 + "__id__": 351 }, "_enabled": true, "_id": "081I6vq85Jwqkph7MYgiJK" @@ -16474,13 +16862,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 347 + "__id__": 355 } ], "_prefab": null, @@ -16536,7 +16924,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 346 + "__id__": 354 }, "_enabled": true, "_materials": [ @@ -16568,23 +16956,23 @@ "_name": "btn", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [ { - "__id__": 349 + "__id__": 357 } ], "_active": true, "_components": [ { - "__id__": 351 + "__id__": 359 }, { - "__id__": 352 + "__id__": 360 }, { - "__id__": 354 + "__id__": 362 } ], "_prefab": null, @@ -16640,13 +17028,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 348 + "__id__": 356 }, "_children": [], "_active": true, "_components": [ { - "__id__": 350 + "__id__": 358 } ], "_prefab": null, @@ -16702,7 +17090,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 349 + "__id__": 357 }, "_enabled": true, "_materials": [ @@ -16736,7 +17124,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 348 + "__id__": 356 }, "_enabled": true, "_materials": [ @@ -16770,7 +17158,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 348 + "__id__": 356 }, "_enabled": true, "_normalMaterial": null, @@ -16779,7 +17167,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 353 + "__id__": 361 } ], "_N$interactable": true, @@ -16835,7 +17223,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 348 + "__id__": 356 }, "_id": "10Gq5GdVNFoaGKYCbUkdh0" }, @@ -16854,7 +17242,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 348 + "__id__": 356 }, "_enabled": true, "_id": "48L+wrOmdFHpjlTvLGv0eT" @@ -16864,13 +17252,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 356 + "__id__": 364 } ], "_prefab": null, @@ -16926,7 +17314,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 355 + "__id__": 363 }, "_enabled": true, "_materials": [ @@ -16960,16 +17348,16 @@ "_name": "closeBtn", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 358 + "__id__": 366 }, { - "__id__": 359 + "__id__": 367 } ], "_prefab": null, @@ -17025,7 +17413,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 357 + "__id__": 365 }, "_enabled": true, "_materials": [ @@ -17059,7 +17447,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 357 + "__id__": 365 }, "_enabled": true, "_normalMaterial": null, @@ -17068,7 +17456,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 360 + "__id__": 368 } ], "_N$interactable": true, @@ -17124,7 +17512,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 357 + "__id__": 365 }, "_id": "9cyVET3cdKsYjhCs6UcCZp" }, @@ -17143,13 +17531,13 @@ "_name": "musicOpen", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 362 + "__id__": 370 } ], "_prefab": null, @@ -17205,7 +17593,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 361 + "__id__": 369 }, "_enabled": true, "_materials": [ @@ -17239,13 +17627,13 @@ "_name": "effectOpen", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 364 + "__id__": 372 } ], "_prefab": null, @@ -17301,7 +17689,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 363 + "__id__": 371 }, "_enabled": true, "_materials": [ @@ -17335,13 +17723,13 @@ "_name": "vibrateOpen", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 366 + "__id__": 374 } ], "_prefab": null, @@ -17397,7 +17785,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 365 + "__id__": 373 }, "_enabled": true, "_materials": [ @@ -17431,13 +17819,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 368 + "__id__": 376 } ], "_prefab": null, @@ -17493,7 +17881,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 367 + "__id__": 375 }, "_enabled": true, "_materials": [ @@ -17527,13 +17915,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 370 + "__id__": 378 } ], "_prefab": null, @@ -17589,7 +17977,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 369 + "__id__": 377 }, "_enabled": true, "_materials": [ @@ -17623,13 +18011,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 372 + "__id__": 380 } ], "_prefab": null, @@ -17685,7 +18073,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 371 + "__id__": 379 }, "_enabled": true, "_materials": [ @@ -17719,16 +18107,16 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 374 + "__id__": 382 }, { - "__id__": 375 + "__id__": 383 } ], "_prefab": null, @@ -17779,372 +18167,6 @@ "groupIndex": 0, "_id": "0emiMlo39FNJtEsFI9D5v4" }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 373 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "a688098b-eb7a-4f82-b737-8cd50c9f6d8c" - }, - "_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": "e8fZCwg3hM77wGmFJ8O1mI" - }, - { - "__type__": "cc.Button", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 373 - }, - "_enabled": true, - "_normalMaterial": null, - "_grayMaterial": null, - "duration": 0.1, - "zoomScale": 1.2, - "clickEvents": [ - { - "__id__": 376 - } - ], - "_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__": 373 - }, - "_id": "f5jlj3QZFNUoLmIDeOTDNk" - }, - { - "__type__": "cc.ClickEvent", - "target": { - "__id__": 342 - }, - "component": "", - "_componentId": "aca4aut33NCvIC0yg3JmY0h", - "handler": "clickMusic", - "customEventData": "" - }, - { - "__type__": "cc.Node", - "_name": "bg", - "_objFlags": 0, - "_parent": { - "__id__": 342 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 378 - }, - { - "__id__": 379 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 264, - "height": 104 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 219.146, - 56.233, - 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": "a3lzmxFAhJYLYWX/fLFCYt" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 377 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "a688098b-eb7a-4f82-b737-8cd50c9f6d8c" - }, - "_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": "a0FWgB1tRLz6tYFfnw1vHU" - }, - { - "__type__": "cc.Button", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 377 - }, - "_enabled": true, - "_normalMaterial": null, - "_grayMaterial": null, - "duration": 0.1, - "zoomScale": 1.2, - "clickEvents": [ - { - "__id__": 380 - } - ], - "_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__": 377 - }, - "_id": "f7PV5tqLpANY2mQ5mNiG8G" - }, - { - "__type__": "cc.ClickEvent", - "target": { - "__id__": 342 - }, - "component": "", - "_componentId": "aca4aut33NCvIC0yg3JmY0h", - "handler": "clickEffect", - "customEventData": "" - }, - { - "__type__": "cc.Node", - "_name": "bg", - "_objFlags": 0, - "_parent": { - "__id__": 342 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 382 - }, - { - "__id__": 383 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 264, - "height": 104 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 219.146, - -182.765, - 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": "7ckpG8hpBFkqVlDj/UQ7KM" - }, { "__type__": "cc.Sprite", "_name": "", @@ -18177,7 +18199,7 @@ "_atlas": { "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7" }, - "_id": "f4myl5ioJMyIZT8XzdxYOh" + "_id": "e8fZCwg3hM77wGmFJ8O1mI" }, { "__type__": "cc.Button", @@ -18251,12 +18273,378 @@ "_N$target": { "__id__": 381 }, + "_id": "f5jlj3QZFNUoLmIDeOTDNk" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 350 + }, + "component": "", + "_componentId": "aca4aut33NCvIC0yg3JmY0h", + "handler": "clickMusic", + "customEventData": "" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 350 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 386 + }, + { + "__id__": 387 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 264, + "height": 104 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 219.146, + 56.233, + 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": "a3lzmxFAhJYLYWX/fLFCYt" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 385 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a688098b-eb7a-4f82-b737-8cd50c9f6d8c" + }, + "_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": "a0FWgB1tRLz6tYFfnw1vHU" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 385 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 388 + } + ], + "_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__": 385 + }, + "_id": "f7PV5tqLpANY2mQ5mNiG8G" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 350 + }, + "component": "", + "_componentId": "aca4aut33NCvIC0yg3JmY0h", + "handler": "clickEffect", + "customEventData": "" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 350 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 390 + }, + { + "__id__": 391 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 264, + "height": 104 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 219.146, + -182.765, + 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": "7ckpG8hpBFkqVlDj/UQ7KM" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 389 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a688098b-eb7a-4f82-b737-8cd50c9f6d8c" + }, + "_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": "f4myl5ioJMyIZT8XzdxYOh" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 389 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 392 + } + ], + "_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__": 389 + }, "_id": "f9Y6q5sbpGXrDTpVBgbvWY" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 342 + "__id__": 350 }, "component": "", "_componentId": "aca4aut33NCvIC0yg3JmY0h", @@ -18268,13 +18656,13 @@ "_name": "music", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 386 + "__id__": 394 } ], "_prefab": null, @@ -18330,7 +18718,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 385 + "__id__": 393 }, "_enabled": true, "_materials": [ @@ -18364,13 +18752,13 @@ "_name": "effct", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 388 + "__id__": 396 } ], "_prefab": null, @@ -18426,7 +18814,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 387 + "__id__": 395 }, "_enabled": true, "_materials": [ @@ -18460,13 +18848,13 @@ "_name": "vibrate", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 390 + "__id__": 398 } ], "_prefab": null, @@ -18522,7 +18910,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 389 + "__id__": 397 }, "_enabled": true, "_materials": [ @@ -18556,17 +18944,17 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 342 + "__id__": 350 }, "_enabled": true, "music": { - "__id__": 385 + "__id__": 393 }, "effect": { - "__id__": 387 + "__id__": 395 }, "vibrate": { - "__id__": 389 + "__id__": 397 }, "open": { "__uuid__": "562063eb-13eb-498c-8e63-d24e8c32d078" @@ -18587,10 +18975,10 @@ "_active": false, "_components": [ { - "__id__": 393 + "__id__": 401 }, { - "__id__": 394 + "__id__": 402 } ], "_prefab": null, @@ -18646,7 +19034,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 392 + "__id__": 400 }, "_enabled": true, "_materials": [ @@ -18688,7 +19076,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 392 + "__id__": 400 }, "_enabled": false, "_id": "00qpMLeBFNhYRX9r3QZvyP" diff --git a/assets/Scene/HomeScene.fire b/assets/Scene/HomeScene.fire index 92904c6..1340848 100644 --- a/assets/Scene/HomeScene.fire +++ b/assets/Scene/HomeScene.fire @@ -75,31 +75,31 @@ "__id__": 5 }, { - "__id__": 84 + "__id__": 115 }, { - "__id__": 128 + "__id__": 159 }, { - "__id__": 146 + "__id__": 177 }, { - "__id__": 166 + "__id__": 197 }, { - "__id__": 219 + "__id__": 250 } ], "_active": true, "_components": [ { - "__id__": 221 + "__id__": 252 }, { - "__id__": 222 + "__id__": 253 }, { - "__id__": 223 + "__id__": 254 } ], "_prefab": null, @@ -273,12 +273,18 @@ }, { "__id__": 78 + }, + { + "__id__": 101 + }, + { + "__id__": 106 } ], "_active": true, "_components": [ { - "__id__": 83 + "__id__": 114 } ], "_prefab": null, @@ -3733,7 +3739,7 @@ }, { "__type__": "cc.Node", - "_name": "shezhiBtn", + "_name": "tiaodik", "_objFlags": 0, "_parent": { "__id__": 5 @@ -3741,12 +3747,1232 @@ "_children": [ { "__id__": 79 + }, + { + "__id__": 81 + }, + { + "__id__": 87 + }, + { + "__id__": 93 + } + ], + "_active": false, + "_components": [ + { + "__id__": 99 + }, + { + "__id__": 100 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 154, + "height": 598 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 409.721, + -250.086, + 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": "6dqgv+aKdPoakjPzpvDNA5" + }, + { + "__type__": "cc.Node", + "_name": "tiaodik", + "_objFlags": 0, + "_parent": { + "__id__": 78 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 80 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 154, + "height": 598 + }, + "_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": "38J+7t9XZDb4WIhWVq750i" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 79 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "abe182b3-b936-4f20-ba7c-8d2456d35c89" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "86L4gO+JlM/bf6mEXs44/n" + }, + { + "__type__": "cc.Node", + "_name": "shengyin", + "_objFlags": 0, + "_parent": { + "__id__": 78 + }, + "_children": [ + { + "__id__": 82 + }, + { + "__id__": 84 } ], "_active": true, "_components": [ { - "__id__": 81 + "__id__": 86 + } + ], + "_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, + 213, + 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": "01N1oAxMtFlatBhgv2WzYs" + }, + { + "__type__": "cc.Node", + "_name": "闊充箰00", + "_objFlags": 0, + "_parent": { + "__id__": 81 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 83 + } + ], + "_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": "61RfAR37dGI5zVtfcXavG7" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 82 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "341042f4-0224-41f0-a6a3-91e723dbdce1" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "453TPzj9lFAJfI67H3x3FM" + }, + { + "__type__": "cc.Node", + "_name": "闊充箰01", + "_objFlags": 0, + "_parent": { + "__id__": 81 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 85 + } + ], + "_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": "53fDxKBwJMSbGuFjwFMZhh" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 84 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "e6f3c660-cfa7-4368-b36d-609458c5678b" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "a9hNzWp4xAqImydzVwg0GG" + }, + { + "__type__": "cc.Toggle", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 81 + }, + "_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__": 81 + }, + "_N$isChecked": false, + "toggleGroup": null, + "checkMark": { + "__id__": 85 + }, + "checkEvents": [], + "_id": "c09/yHVMJDoam/VbhBXxcH" + }, + { + "__type__": "cc.Node", + "_name": "yinyue", + "_objFlags": 0, + "_parent": { + "__id__": 78 + }, + "_children": [ + { + "__id__": 88 + }, + { + "__id__": 90 + } + ], + "_active": true, + "_components": [ + { + "__id__": 92 + } + ], + "_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, + 16, + 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": "71cNsfALdAbJ6TMbqIMEDs" + }, + { + "__type__": "cc.Node", + "_name": "闊虫晥00", + "_objFlags": 0, + "_parent": { + "__id__": 87 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 89 + } + ], + "_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__": 88 + }, + "_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__": 87 + }, + "_children": [], + "_active": false, + "_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": "2aCrXDpFlK1Y1LFC/H773f" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 90 + }, + "_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__": 87 + }, + "_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__": 87 + }, + "_N$isChecked": false, + "toggleGroup": null, + "checkMark": { + "__id__": 91 + }, + "checkEvents": [], + "_id": "b9cAW4AvdAXZdGsjzb8ZZf" + }, + { + "__type__": "cc.Node", + "_name": "zhendong", + "_objFlags": 0, + "_parent": { + "__id__": 78 + }, + "_children": [ + { + "__id__": 94 + }, + { + "__id__": 96 + } + ], + "_active": true, + "_components": [ + { + "__id__": 98 + } + ], + "_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__": 93 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 95 + } + ], + "_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__": 94 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "cadd896f-dd2c-43fa-8788-334576768186" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "fb9In1Ki5NRJoR+ASxwH6D" + }, + { + "__type__": "cc.Node", + "_name": "闇囧姩01", + "_objFlags": 0, + "_parent": { + "__id__": 93 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 97 + } + ], + "_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__": 96 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "6f871c8f-5b0f-4063-a6f6-290947cc7e44" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "b4FcAyEHpGjIYB1ndEaO5N" + }, + { + "__type__": "cc.Toggle", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 93 + }, + "_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__": 93 + }, + "_N$isChecked": false, + "toggleGroup": null, + "checkMark": { + "__id__": 97 + }, + "checkEvents": [], + "_id": "f9H3N/MqVI0ZJ6D1GMBA4u" + }, + { + "__type__": "cc.Layout", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 78 + }, + "_enabled": false, + "_layoutSize": { + "__type__": "cc.Size", + "width": 300, + "height": 200 + }, + "_resize": 0, + "_N$layoutType": 2, + "_N$cellSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_N$startAxis": 0, + "_N$paddingLeft": 0, + "_N$paddingRight": 0, + "_N$paddingTop": 25, + "_N$paddingBottom": 15, + "_N$spacingX": 0, + "_N$spacingY": 75, + "_N$verticalDirection": 1, + "_N$horizontalDirection": 0, + "_N$affectedByScale": false, + "_id": "d74wutOahLy60VTMTqn6zt" + }, + { + "__type__": "cc.Animation", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 78 + }, + "_enabled": true, + "_defaultClip": null, + "_clips": [ + { + "__uuid__": "50c01dd8-431f-43cc-820e-abb2a859d031" + } + ], + "playOnLoad": false, + "_id": "06zhlax2BIgq2BGFohNQeX" + }, + { + "__type__": "cc.Node", + "_name": "shezhiBtn", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [ + { + "__id__": 102 + } + ], + "_active": true, + "_components": [ + { + "__id__": 104 } ], "_prefab": null, @@ -3802,13 +5028,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 78 + "__id__": 101 }, "_children": [], "_active": true, "_components": [ { - "__id__": 80 + "__id__": 103 } ], "_prefab": null, @@ -3864,7 +5090,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 79 + "__id__": 102 }, "_enabled": true, "_materials": [ @@ -3898,7 +5124,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 78 + "__id__": 101 }, "_enabled": true, "_normalMaterial": null, @@ -3907,7 +5133,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 82 + "__id__": 105 } ], "_N$interactable": true, @@ -3963,7 +5189,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 78 + "__id__": 101 }, "_id": "02bgX7BW9KmbZ6ke3vsVWy" }, @@ -3977,6 +5203,391 @@ "handler": "openPause", "customEventData": "" }, + { + "__type__": "cc.Node", + "_name": "shop", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [ + { + "__id__": 107 + } + ], + "_active": true, + "_components": [ + { + "__id__": 112 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -400, + -650, + 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": "7fuhipepBHYpfdIqaFxgVg" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 512, + "_parent": { + "__id__": 106 + }, + "_children": [ + { + "__id__": 108 + } + ], + "_active": true, + "_components": [ + { + "__id__": 110 + }, + { + "__id__": 111 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_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, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "531BJn26hM+aG5nJ2Lj7hb" + }, + { + "__type__": "cc.Node", + "_name": "Label", + "_objFlags": 512, + "_parent": { + "__id__": 107 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 109 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_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": "a0MiAVCvxPD7RxY7rmqhdV" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 108 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "shop", + "_N$string": "shop", + "_fontSize": 20, + "_lineHeight": 40, + "_enableWrapText": false, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 1, + "_N$cacheMode": 1, + "_id": "73G/inpnlJNqatqG+8+q4q" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 107 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "a5vX0Ko7VLM4aBSZIAc+aU" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 107 + }, + "_enabled": true, + "alignMode": 0, + "_target": null, + "_alignFlags": 45, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 100, + "_originalHeight": 40, + "_id": "84zJXNFs5AU54kxE1JCeN3" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 106 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 113 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 230, + "g": 230, + "b": 230, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "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": 120, + "g": 120, + "b": 120, + "a": 200 + }, + "_N$normalSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "_N$hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$disabledSprite": { + "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e" + }, + "_N$target": { + "__id__": 107 + }, + "_id": "88UX+E3n9ImZvBg4tRwHFR" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 2 + }, + "component": "", + "_componentId": "1dc93b4fehOrpGgTkihBH4g", + "handler": "openShop", + "customEventData": "" + }, { "__type__": "cc.Widget", "_name": "", @@ -4013,25 +5624,25 @@ }, "_children": [ { - "__id__": 85 + "__id__": 116 }, { - "__id__": 89 + "__id__": 120 }, { - "__id__": 91 + "__id__": 122 }, { - "__id__": 119 + "__id__": 150 }, { - "__id__": 123 + "__id__": 154 } ], "_active": false, "_components": [ { - "__id__": 127 + "__id__": 158 } ], "_prefab": null, @@ -4087,19 +5698,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 84 + "__id__": 115 }, "_children": [], "_active": true, "_components": [ { - "__id__": 86 + "__id__": 117 }, { - "__id__": 87 + "__id__": 118 }, { - "__id__": 88 + "__id__": 119 } ], "_prefab": null, @@ -4155,7 +5766,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 85 + "__id__": 116 }, "_enabled": true, "_materials": [ @@ -4187,7 +5798,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 85 + "__id__": 116 }, "_enabled": true, "alignMode": 1, @@ -4214,7 +5825,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 85 + "__id__": 116 }, "_enabled": true, "_id": "dfDCcIpbVJQaLDWZH9iaPD" @@ -4224,13 +5835,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 84 + "__id__": 115 }, "_children": [], "_active": false, "_components": [ { - "__id__": 90 + "__id__": 121 } ], "_prefab": null, @@ -4286,7 +5897,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 89 + "__id__": 120 }, "_enabled": true, "_materials": [ @@ -4316,47 +5927,47 @@ "_name": "rank", "_objFlags": 0, "_parent": { - "__id__": 84 + "__id__": 115 }, "_children": [ { - "__id__": 92 + "__id__": 123 }, { - "__id__": 94 + "__id__": 125 }, { - "__id__": 96 + "__id__": 127 }, { - "__id__": 98 + "__id__": 129 }, { - "__id__": 100 + "__id__": 131 }, { - "__id__": 102 + "__id__": 133 }, { - "__id__": 104 + "__id__": 135 }, { - "__id__": 106 + "__id__": 137 }, { - "__id__": 108 + "__id__": 139 }, { - "__id__": 110 + "__id__": 141 }, { - "__id__": 112 + "__id__": 143 } ], "_active": true, "_components": [ { - "__id__": 118 + "__id__": 149 } ], "_prefab": null, @@ -4412,13 +6023,13 @@ "_name": "paihang1_1_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 93 + "__id__": 124 } ], "_prefab": null, @@ -4474,7 +6085,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 92 + "__id__": 123 }, "_enabled": true, "_materials": [ @@ -4504,13 +6115,13 @@ "_name": "paihang1_2_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 95 + "__id__": 126 } ], "_prefab": null, @@ -4566,7 +6177,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 94 + "__id__": 125 }, "_enabled": true, "_materials": [ @@ -4596,13 +6207,13 @@ "_name": "paihang1_3_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 97 + "__id__": 128 } ], "_prefab": null, @@ -4658,7 +6269,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 96 + "__id__": 127 }, "_enabled": true, "_materials": [ @@ -4688,13 +6299,13 @@ "_name": "paihang1_4_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 99 + "__id__": 130 } ], "_prefab": null, @@ -4750,7 +6361,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 98 + "__id__": 129 }, "_enabled": true, "_materials": [ @@ -4780,13 +6391,13 @@ "_name": "paihang1_4_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 101 + "__id__": 132 } ], "_prefab": null, @@ -4842,7 +6453,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 100 + "__id__": 131 }, "_enabled": true, "_materials": [ @@ -4872,13 +6483,13 @@ "_name": "paihang1_4_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 103 + "__id__": 134 } ], "_prefab": null, @@ -4934,7 +6545,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 133 }, "_enabled": true, "_materials": [ @@ -4964,13 +6575,13 @@ "_name": "icon", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 105 + "__id__": 136 } ], "_prefab": null, @@ -5026,7 +6637,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 104 + "__id__": 135 }, "_enabled": true, "_materials": [ @@ -5058,13 +6669,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 107 + "__id__": 138 } ], "_prefab": null, @@ -5120,7 +6731,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 106 + "__id__": 137 }, "_enabled": true, "_materials": [ @@ -5153,13 +6764,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 109 + "__id__": 140 } ], "_prefab": null, @@ -5215,7 +6826,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 108 + "__id__": 139 }, "_enabled": true, "_materials": [ @@ -5248,13 +6859,13 @@ "_name": "shuzi3_6", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 111 + "__id__": 142 } ], "_prefab": null, @@ -5310,7 +6921,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 110 + "__id__": 141 }, "_enabled": true, "_materials": [ @@ -5340,20 +6951,20 @@ "_name": "btn", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [ { - "__id__": 113 + "__id__": 144 } ], "_active": true, "_components": [ { - "__id__": 115 + "__id__": 146 }, { - "__id__": 116 + "__id__": 147 } ], "_prefab": null, @@ -5409,13 +7020,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 112 + "__id__": 143 }, "_children": [], "_active": true, "_components": [ { - "__id__": 114 + "__id__": 145 } ], "_prefab": null, @@ -5471,7 +7082,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 113 + "__id__": 144 }, "_enabled": true, "_materials": [ @@ -5505,7 +7116,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 112 + "__id__": 143 }, "_enabled": true, "_materials": [ @@ -5539,7 +7150,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 112 + "__id__": 143 }, "_enabled": true, "_normalMaterial": null, @@ -5548,7 +7159,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 117 + "__id__": 148 } ], "_N$interactable": true, @@ -5604,7 +7215,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 112 + "__id__": 143 }, "_id": "0b4hiJfolDCqERI+qJ8NNt" }, @@ -5621,7 +7232,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 91 + "__id__": 122 }, "_enabled": true, "_materials": [ @@ -5651,17 +7262,17 @@ "_name": "logo", "_objFlags": 0, "_parent": { - "__id__": 84 + "__id__": 115 }, "_children": [ { - "__id__": 120 + "__id__": 151 } ], "_active": false, "_components": [ { - "__id__": 122 + "__id__": 153 } ], "_prefab": null, @@ -5717,13 +7328,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 119 + "__id__": 150 }, "_children": [], "_active": true, "_components": [ { - "__id__": 121 + "__id__": 152 } ], "_prefab": null, @@ -5779,7 +7390,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 120 + "__id__": 151 }, "_enabled": true, "_materials": [ @@ -5812,7 +7423,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 119 + "__id__": 150 }, "_enabled": true, "_materials": [ @@ -5846,16 +7457,16 @@ "_name": "closeBtn", "_objFlags": 0, "_parent": { - "__id__": 84 + "__id__": 115 }, "_children": [], "_active": true, "_components": [ { - "__id__": 124 + "__id__": 155 }, { - "__id__": 125 + "__id__": 156 } ], "_prefab": null, @@ -5911,7 +7522,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 123 + "__id__": 154 }, "_enabled": true, "_materials": [ @@ -5945,7 +7556,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 123 + "__id__": 154 }, "_enabled": true, "_normalMaterial": null, @@ -5954,7 +7565,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 126 + "__id__": 157 } ], "_N$interactable": true, @@ -6010,7 +7621,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 123 + "__id__": 154 }, "_id": "aeOKxuEtVBQ76OAxASWQGP" }, @@ -6029,7 +7640,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 84 + "__id__": 115 }, "_enabled": true, "alignMode": 1, @@ -6060,13 +7671,13 @@ }, "_children": [ { - "__id__": 129 + "__id__": 160 }, { - "__id__": 132 + "__id__": 163 }, { - "__id__": 134 + "__id__": 165 } ], "_active": false, @@ -6124,16 +7735,16 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 128 + "__id__": 159 }, "_children": [], "_active": true, "_components": [ { - "__id__": 130 + "__id__": 161 }, { - "__id__": 131 + "__id__": 162 } ], "_prefab": null, @@ -6189,7 +7800,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 129 + "__id__": 160 }, "_enabled": true, "_materials": [ @@ -6221,7 +7832,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 129 + "__id__": 160 }, "_enabled": true, "_id": "6eAfAN7PxP8LBtlAPfR/Ia" @@ -6231,13 +7842,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 128 + "__id__": 159 }, "_children": [], "_active": false, "_components": [ { - "__id__": 133 + "__id__": 164 } ], "_prefab": null, @@ -6293,7 +7904,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 132 + "__id__": 163 }, "_enabled": true, "_materials": [ @@ -6323,20 +7934,20 @@ "_name": "reward", "_objFlags": 0, "_parent": { - "__id__": 128 + "__id__": 159 }, "_children": [ { - "__id__": 135 + "__id__": 166 }, { - "__id__": 139 + "__id__": 170 } ], "_active": true, "_components": [ { - "__id__": 145 + "__id__": 176 } ], "_prefab": null, @@ -6392,16 +8003,16 @@ "_name": "closeBtn", "_objFlags": 0, "_parent": { - "__id__": 134 + "__id__": 165 }, "_children": [], "_active": true, "_components": [ { - "__id__": 136 + "__id__": 167 }, { - "__id__": 137 + "__id__": 168 } ], "_prefab": null, @@ -6457,7 +8068,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 135 + "__id__": 166 }, "_enabled": true, "_materials": [ @@ -6491,7 +8102,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 135 + "__id__": 166 }, "_enabled": true, "_normalMaterial": null, @@ -6500,7 +8111,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 138 + "__id__": 169 } ], "_N$interactable": true, @@ -6556,7 +8167,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 135 + "__id__": 166 }, "_id": "8697ar7LREtafp+rIsxcSE" }, @@ -6575,20 +8186,20 @@ "_name": "btn", "_objFlags": 0, "_parent": { - "__id__": 134 + "__id__": 165 }, "_children": [ { - "__id__": 140 + "__id__": 171 } ], "_active": true, "_components": [ { - "__id__": 142 + "__id__": 173 }, { - "__id__": 143 + "__id__": 174 } ], "_prefab": null, @@ -6644,13 +8255,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 139 + "__id__": 170 }, "_children": [], "_active": true, "_components": [ { - "__id__": 141 + "__id__": 172 } ], "_prefab": null, @@ -6706,7 +8317,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 140 + "__id__": 171 }, "_enabled": true, "_materials": [ @@ -6740,7 +8351,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 139 + "__id__": 170 }, "_enabled": true, "_materials": [ @@ -6774,7 +8385,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 139 + "__id__": 170 }, "_enabled": true, "_normalMaterial": null, @@ -6783,7 +8394,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 144 + "__id__": 175 } ], "_N$interactable": true, @@ -6839,7 +8450,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 139 + "__id__": 170 }, "_id": "a99do5CqxGB7rnced8tB+I" }, @@ -6856,7 +8467,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 134 + "__id__": 165 }, "_enabled": true, "_materials": [ @@ -6890,25 +8501,25 @@ }, "_children": [ { - "__id__": 147 + "__id__": 178 }, { - "__id__": 151 + "__id__": 182 }, { - "__id__": 153 + "__id__": 184 }, { - "__id__": 155 + "__id__": 186 }, { - "__id__": 159 + "__id__": 190 } ], "_active": false, "_components": [ { - "__id__": 165 + "__id__": 196 } ], "_prefab": null, @@ -6964,19 +8575,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 146 + "__id__": 177 }, "_children": [], "_active": true, "_components": [ { - "__id__": 148 + "__id__": 179 }, { - "__id__": 149 + "__id__": 180 }, { - "__id__": 150 + "__id__": 181 } ], "_prefab": null, @@ -7032,7 +8643,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 147 + "__id__": 178 }, "_enabled": true, "_materials": [ @@ -7064,7 +8675,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 147 + "__id__": 178 }, "_enabled": true, "alignMode": 1, @@ -7091,7 +8702,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 147 + "__id__": 178 }, "_enabled": true, "_id": "d3WO2KgvBHxZSuuuiocs4j" @@ -7101,13 +8712,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 146 + "__id__": 177 }, "_children": [], "_active": true, "_components": [ { - "__id__": 152 + "__id__": 183 } ], "_prefab": null, @@ -7163,7 +8774,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 151 + "__id__": 182 }, "_enabled": true, "_materials": [ @@ -7193,13 +8804,13 @@ "_name": "Stamina", "_objFlags": 0, "_parent": { - "__id__": 146 + "__id__": 177 }, "_children": [], "_active": true, "_components": [ { - "__id__": 154 + "__id__": 185 } ], "_prefab": null, @@ -7255,7 +8866,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 153 + "__id__": 184 }, "_enabled": true, "_materials": [ @@ -7285,16 +8896,16 @@ "_name": "closeBtn", "_objFlags": 0, "_parent": { - "__id__": 146 + "__id__": 177 }, "_children": [], "_active": true, "_components": [ { - "__id__": 156 + "__id__": 187 }, { - "__id__": 157 + "__id__": 188 } ], "_prefab": null, @@ -7350,7 +8961,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 155 + "__id__": 186 }, "_enabled": true, "_materials": [ @@ -7384,7 +8995,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 155 + "__id__": 186 }, "_enabled": true, "_normalMaterial": null, @@ -7393,7 +9004,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 158 + "__id__": 189 } ], "_N$interactable": true, @@ -7449,7 +9060,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 155 + "__id__": 186 }, "_id": "4fx9FNHrVMm7QEtzYiJ4Ca" }, @@ -7468,20 +9079,20 @@ "_name": "btn", "_objFlags": 0, "_parent": { - "__id__": 146 + "__id__": 177 }, "_children": [ { - "__id__": 160 + "__id__": 191 } ], "_active": true, "_components": [ { - "__id__": 162 + "__id__": 193 }, { - "__id__": 163 + "__id__": 194 } ], "_prefab": null, @@ -7537,13 +9148,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 159 + "__id__": 190 }, "_children": [], "_active": true, "_components": [ { - "__id__": 161 + "__id__": 192 } ], "_prefab": null, @@ -7599,7 +9210,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 160 + "__id__": 191 }, "_enabled": true, "_materials": [ @@ -7633,7 +9244,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 159 + "__id__": 190 }, "_enabled": true, "_materials": [ @@ -7667,7 +9278,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 159 + "__id__": 190 }, "_enabled": true, "_normalMaterial": null, @@ -7676,7 +9287,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 164 + "__id__": 195 } ], "_N$interactable": true, @@ -7732,7 +9343,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 159 + "__id__": 190 }, "_id": "6f5W0gZq1NG4kBoigH1HP7" }, @@ -7749,7 +9360,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 146 + "__id__": 177 }, "_enabled": true, "alignMode": 1, @@ -7780,67 +9391,67 @@ }, "_children": [ { - "__id__": 167 + "__id__": 198 }, { - "__id__": 170 + "__id__": 201 }, { - "__id__": 172 + "__id__": 203 }, { - "__id__": 178 + "__id__": 209 }, { - "__id__": 180 + "__id__": 211 }, { - "__id__": 184 + "__id__": 215 }, { - "__id__": 186 + "__id__": 217 }, { - "__id__": 188 + "__id__": 219 }, { - "__id__": 190 + "__id__": 221 }, { - "__id__": 192 + "__id__": 223 }, { - "__id__": 194 + "__id__": 225 }, { - "__id__": 196 + "__id__": 227 }, { - "__id__": 200 + "__id__": 231 }, { - "__id__": 204 + "__id__": 235 }, { - "__id__": 208 + "__id__": 239 }, { - "__id__": 210 + "__id__": 241 }, { - "__id__": 212 + "__id__": 243 }, { - "__id__": 214 + "__id__": 245 }, { - "__id__": 216 + "__id__": 247 } ], "_active": false, "_components": [ { - "__id__": 218 + "__id__": 249 } ], "_prefab": null, @@ -7896,16 +9507,16 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 168 + "__id__": 199 }, { - "__id__": 169 + "__id__": 200 } ], "_prefab": null, @@ -7961,7 +9572,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 167 + "__id__": 198 }, "_enabled": true, "_materials": [ @@ -7993,7 +9604,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 167 + "__id__": 198 }, "_enabled": true, "_id": "22/vLI0+hBZrCrug3svOux" @@ -8003,13 +9614,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 171 + "__id__": 202 } ], "_prefab": null, @@ -8065,7 +9676,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 170 + "__id__": 201 }, "_enabled": true, "_materials": [ @@ -8097,20 +9708,20 @@ "_name": "btn", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [ { - "__id__": 173 + "__id__": 204 } ], "_active": true, "_components": [ { - "__id__": 175 + "__id__": 206 }, { - "__id__": 176 + "__id__": 207 } ], "_prefab": null, @@ -8166,13 +9777,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 172 + "__id__": 203 }, "_children": [], "_active": true, "_components": [ { - "__id__": 174 + "__id__": 205 } ], "_prefab": null, @@ -8228,7 +9839,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 173 + "__id__": 204 }, "_enabled": true, "_materials": [ @@ -8262,7 +9873,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 172 + "__id__": 203 }, "_enabled": true, "_materials": [ @@ -8296,7 +9907,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 172 + "__id__": 203 }, "_enabled": true, "_normalMaterial": null, @@ -8305,7 +9916,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 177 + "__id__": 208 } ], "_N$interactable": true, @@ -8361,7 +9972,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 172 + "__id__": 203 }, "_id": "b8Y9x+dpZGKKCgiAzSbF2w" }, @@ -8380,13 +9991,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 179 + "__id__": 210 } ], "_prefab": null, @@ -8442,7 +10053,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 178 + "__id__": 209 }, "_enabled": true, "_materials": [ @@ -8476,16 +10087,16 @@ "_name": "closeBtn", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 181 + "__id__": 212 }, { - "__id__": 182 + "__id__": 213 } ], "_prefab": null, @@ -8541,7 +10152,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 180 + "__id__": 211 }, "_enabled": true, "_materials": [ @@ -8575,7 +10186,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 180 + "__id__": 211 }, "_enabled": true, "_normalMaterial": null, @@ -8584,7 +10195,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 183 + "__id__": 214 } ], "_N$interactable": true, @@ -8640,7 +10251,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 180 + "__id__": 211 }, "_id": "3fEch1YYZH6oMgUJ5+mat/" }, @@ -8659,13 +10270,13 @@ "_name": "musicOpen", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 185 + "__id__": 216 } ], "_prefab": null, @@ -8721,7 +10332,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 184 + "__id__": 215 }, "_enabled": true, "_materials": [ @@ -8755,13 +10366,13 @@ "_name": "effectOpen", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 187 + "__id__": 218 } ], "_prefab": null, @@ -8817,7 +10428,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 186 + "__id__": 217 }, "_enabled": true, "_materials": [ @@ -8851,13 +10462,13 @@ "_name": "vibrateOpen", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 189 + "__id__": 220 } ], "_prefab": null, @@ -8913,7 +10524,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 188 + "__id__": 219 }, "_enabled": true, "_materials": [ @@ -8947,13 +10558,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 191 + "__id__": 222 } ], "_prefab": null, @@ -9009,7 +10620,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 190 + "__id__": 221 }, "_enabled": true, "_materials": [ @@ -9043,13 +10654,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 193 + "__id__": 224 } ], "_prefab": null, @@ -9105,7 +10716,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 192 + "__id__": 223 }, "_enabled": true, "_materials": [ @@ -9139,13 +10750,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 195 + "__id__": 226 } ], "_prefab": null, @@ -9201,7 +10812,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 194 + "__id__": 225 }, "_enabled": true, "_materials": [ @@ -9235,16 +10846,16 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 197 + "__id__": 228 }, { - "__id__": 198 + "__id__": 229 } ], "_prefab": null, @@ -9300,7 +10911,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 196 + "__id__": 227 }, "_enabled": true, "_materials": [ @@ -9334,7 +10945,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 196 + "__id__": 227 }, "_enabled": true, "_normalMaterial": null, @@ -9343,7 +10954,7 @@ "zoomScale": 1.2, "clickEvents": [ { - "__id__": 199 + "__id__": 230 } ], "_N$interactable": true, @@ -9399,14 +11010,14 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 196 + "__id__": 227 }, "_id": "625dakXShD7bgpaU3SIzV2" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 166 + "__id__": 197 }, "component": "", "_componentId": "aca4aut33NCvIC0yg3JmY0h", @@ -9418,16 +11029,16 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 201 + "__id__": 232 }, { - "__id__": 202 + "__id__": 233 } ], "_prefab": null, @@ -9483,7 +11094,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 200 + "__id__": 231 }, "_enabled": true, "_materials": [ @@ -9517,7 +11128,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 200 + "__id__": 231 }, "_enabled": true, "_normalMaterial": null, @@ -9526,7 +11137,7 @@ "zoomScale": 1.2, "clickEvents": [ { - "__id__": 203 + "__id__": 234 } ], "_N$interactable": true, @@ -9582,14 +11193,14 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 200 + "__id__": 231 }, "_id": "72VsvwUtxAD6Hj+ox2n5Ez" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 166 + "__id__": 197 }, "component": "", "_componentId": "aca4aut33NCvIC0yg3JmY0h", @@ -9601,16 +11212,16 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 205 + "__id__": 236 }, { - "__id__": 206 + "__id__": 237 } ], "_prefab": null, @@ -9666,7 +11277,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 204 + "__id__": 235 }, "_enabled": true, "_materials": [ @@ -9700,7 +11311,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 204 + "__id__": 235 }, "_enabled": true, "_normalMaterial": null, @@ -9709,7 +11320,7 @@ "zoomScale": 1.2, "clickEvents": [ { - "__id__": 207 + "__id__": 238 } ], "_N$interactable": true, @@ -9765,14 +11376,14 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 204 + "__id__": 235 }, "_id": "efSi0dlVNIXJRT6hEV1IpJ" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 166 + "__id__": 197 }, "component": "", "_componentId": "aca4aut33NCvIC0yg3JmY0h", @@ -9784,13 +11395,13 @@ "_name": "music", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 209 + "__id__": 240 } ], "_prefab": null, @@ -9846,7 +11457,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 208 + "__id__": 239 }, "_enabled": true, "_materials": [ @@ -9880,13 +11491,13 @@ "_name": "effct", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 211 + "__id__": 242 } ], "_prefab": null, @@ -9942,7 +11553,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 210 + "__id__": 241 }, "_enabled": true, "_materials": [ @@ -9976,13 +11587,13 @@ "_name": "vibrate", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 213 + "__id__": 244 } ], "_prefab": null, @@ -10038,7 +11649,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 212 + "__id__": 243 }, "_enabled": true, "_materials": [ @@ -10072,13 +11683,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 215 + "__id__": 246 } ], "_prefab": null, @@ -10134,7 +11745,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 214 + "__id__": 245 }, "_enabled": true, "_materials": [ @@ -10167,13 +11778,13 @@ "_name": "openID", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 217 + "__id__": 248 } ], "_prefab": null, @@ -10229,7 +11840,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 216 + "__id__": 247 }, "_enabled": true, "_materials": [ @@ -10262,17 +11873,17 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 166 + "__id__": 197 }, "_enabled": true, "music": { - "__id__": 208 + "__id__": 239 }, "effect": { - "__id__": 210 + "__id__": 241 }, "vibrate": { - "__id__": 212 + "__id__": 243 }, "open": { "__uuid__": "562063eb-13eb-498c-8e63-d24e8c32d078" @@ -10293,7 +11904,7 @@ "_active": false, "_components": [ { - "__id__": 220 + "__id__": 251 } ], "_prefab": null, @@ -10349,7 +11960,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 219 + "__id__": 250 }, "_enabled": true, "_materials": [ diff --git a/assets/Script/Barrier.ts b/assets/Script/Barrier.ts index 26e23b3..3a9ab85 100644 --- a/assets/Script/Barrier.ts +++ b/assets/Script/Barrier.ts @@ -1,7 +1,7 @@ import CollisionDetection from "./CollisionDetection"; import MapConroler from "./Map"; -const {ccclass, property} = cc._decorator; +const { ccclass, property } = cc._decorator; @ccclass export default class Block extends cc.Component { @@ -25,7 +25,7 @@ export default class Block extends cc.Component { private initialTouchOffset: cc.Vec2 = null; private offsetTolerance = 100; // 偏移容忍度; - allBlocks:any; //所有的方块,用于计算posX,posY消除 + allBlocks: any; //所有的方块,用于计算posX,posY消除 touchPoint: cc.Vec2 = null; //触摸点 isTouch: boolean = false; //是否触摸 posX: number = 0; //地图块的X坐标 @@ -35,8 +35,8 @@ export default class Block extends cc.Component { moveUp: boolean = true; //是否可以上移; moveDown: boolean = true; //是否可以下移; moveCorner: number = 0; //是否碰撞角落 - moveY:number = 0; //是否可以上下移动; - moveX:number = 0; //是否可以左右移动; + moveY: number = 0; //是否可以上下移动; + moveX: number = 0; //是否可以左右移动; touchPointX: number = 0; //触摸点X坐标; touchPointY: number = 0; //触摸点Y坐标; blockId: number = 0; //方块ID; @@ -44,27 +44,27 @@ export default class Block extends cc.Component { level: number = 0; //叠加方块层数; pz: boolean = false; collider: any; - block_Info:any; + block_Info: any; _touchListener: any; - relative_Position:cc.Vec2; //点击和方块相对位置 + relative_Position: cc.Vec2; //点击和方块相对位置 private _eventManager: any; hit: cc.Node; - onLoad () { + onLoad() { // 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.stacking = cc.v2(0, 0); // this.selfBoxColliders = this.node.getComponentsInChildren(cc.BoxCollider) // .filter(collider => collider.tag < 4); } - start () { + start() { } @@ -72,21 +72,22 @@ export default class Block extends cc.Component { return JSON.parse(JSON.stringify(obj)); } - init(block_Info,posX,posY,node){ + init(block_Info, posX, posY, node) { this.block_Info = this.jsonDeepClone(block_Info); let mapInfo = MapConroler._instance.mapInfo; - for(let i=0; i = []; + + @property({ type: [cc.SpriteAtlas], tooltip: "方块颜色" }) + Block_Color: Array = []; @property(cc.EditBox) custom: cc.EditBox = null; - + @property(cc.Node) @@ -45,30 +45,30 @@ export default class NewClass extends cc.Component { // LIFE-CYCLE CALLBACKS: - onLoad () { - cc.game.setFrameRate(63); + onLoad() { + cc.game.setFrameRate(63); LQCollideSystem.is_enable = true; // console.log("加载关卡配置2"); // window.initMgr(); GameManager._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 != ""){ + 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); + cc.fx.AudioManager._instance.playEffect("zhuan1", null); this.node.getChildByName("zhuanchang").active = true; - this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",false); + this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); setTimeout(() => { - cc.fx.GameConfig.GM_INFO.first = false; - cc.director.loadScene("GameScene"); + cc.fx.GameConfig.GM_INFO.first = false; + cc.director.loadScene("GameScene"); }, 1000); - + } } - start () { + start() { // console.log("已经进入Home界面"); // console.log("金币",cc.fx.GameConfig.GM_INFO.coin); // console.log("关卡",cc.fx.GameConfig.GM_INFO.level+1); @@ -76,15 +76,15 @@ export default class NewClass extends cc.Component { cc.fx.GameTool.getHealth(null); // cc.fx.GameConfig.LEVEL_INFO_init(false,0); setTimeout(() => { - NumberToImage.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level+1),25,15,"big_",this.level,false); - NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin,30,15,"coin_",this.coin,true); + NumberToImage.numberToImageNodes((cc.fx.GameConfig.GM_INFO.level + 1), 25, 15, "big_", this.level, false); + NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.coin, 30, 15, "coin_", this.coin, true); this.setHealthInfo(); }, 0); - if(cc.fx.GameConfig.GM_INFO.gameState){ + if (cc.fx.GameConfig.GM_INFO.gameState) { this.node.getChildByName("zhuanchang").active = true; setTimeout(() => { - cc.fx.AudioManager._instance.playEffect("zhuan2",null); - this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"down",false); + 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((entry) => { if (entry.animation.name === "down" && !cc.fx.GameConfig.GM_INFO.first) { // 动画播放结束后执行的逻辑 @@ -93,8 +93,8 @@ export default class NewClass extends cc.Component { }); }, 500); } - else{ - if(!cc.fx.GameConfig.GM_INFO.first) + else { + if (!cc.fx.GameConfig.GM_INFO.first) this.node.getChildByName("zhuanchang").active = false; } @@ -103,19 +103,19 @@ export default class NewClass extends cc.Component { } //开始倒计时 - startTimeCutDown(){ - this.scheduleCallback = function(){ - if(this.pause) return; - if(cc.fx.GameConfig.GM_INFO.min_Time <= 0){ + startTimeCutDown() { + this.scheduleCallback = function () { + 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,(data)=>{ + cc.fx.GameTool.setUserHealth(1, (data) => { cc.fx.GameTool.getHealth(null); this.setHealthInfo(); }) } - else{ + 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; @@ -124,39 +124,39 @@ export default class NewClass extends cc.Component { this.schedule(this.scheduleCallback, 1); } // 停止倒计时 - stopTimeCutDown(){ - if(this.scheduleCallback){ + stopTimeCutDown() { + if (this.scheduleCallback) { this.unschedule(this.scheduleCallback); } } - - setHealthInfo(){ - if(cc.fx.GameConfig.GM_INFO.hp == 5){ + + setHealthInfo() { + if (cc.fx.GameConfig.GM_INFO.hp == 5) { this.Stamina.getChildByName("man").active = true; - this.Stamina.getChildByName("health").active = false; + 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.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){ + else { + this.Stamina.getChildByName("man").active = false; + this.Stamina.getChildByName("health").active = true; + NumberToImage.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) { let time = cc.fx.GameTool.getTimeMargin(cc.fx.GameConfig.GM_INFO.min_Time); this.Stamina.getChildByName("time").getComponent(cc.Label).string = time; this.startTimeCutDown(); - } + } } } - - startGame(){ - cc.fx.AudioManager._instance.playEffect("anniu_Big",null); - if(cc.fx.GameConfig.GM_INFO.hp < 1){ + + startGame() { + cc.fx.AudioManager._instance.playEffect("anniu_Big", null); + if (cc.fx.GameConfig.GM_INFO.hp < 1) { MiniGameSdk.API.showToast("体力值不足"); return; } - if(this.node.getChildByName("Load").getChildByName("startBtn").getComponent("btnControl")._touch){ + 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; @@ -164,105 +164,124 @@ export default class NewClass extends cc.Component { // 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); + 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); // } } + + + } - - - closeRank(){ - this.node.getChildByName("Rank").active = false; - } - - openRank(){ - this.node.getChildByName("Rank").active = true; - } - - openReward(){ - this.node.getChildByName("Reward").active = true; - } - - clickShop() { - // 假设已经获取到了 userId 和 productId - const userId = cc.fx.GameConfig.GM_INFO.openid; - const productId = '1'; - console.log("即将创建createorder"); - //@ts-ignore - wx.cloud.callFunction({ - name: "createOrder", - data: { - "userId":userId, - "productId":productId, - }, - success: (res) => { - // 取得云函数返回的订单信息 - console.log("createOrder结果:",res.result); - const 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(res) { - /* 成功回调 */ - console.log("支付成功",res); - }, - fail(res) { - /* 失败回调 */ - console.log("支付失败",res); - }, - complete(res){ - console.log("支付完成",res); + //打开商店 + openShop() { + // 加载 shop bundle + cc.assetManager.loadBundle('shop', (err: Error, bundle: cc.AssetManager.Bundle) => { + bundle.load('prefab/shop', cc.Prefab, (err: Error, prefab: cc.Prefab) => { + if (err) { + cc.error(err.message || err); + return; + } + if (prefab) { + const shopNode = cc.instantiate(prefab); + this.node.addChild(shopNode); + console.log("shopNode parent:", shopNode.parent); } }); - }, - }); - } + }); + } + + closeRank() { + this.node.getChildByName("Rank").active = false; + } + + openRank() { + this.node.getChildByName("Rank").active = true; + } + + openReward() { + this.node.getChildByName("Reward").active = true; + } + + clickShop() { + // 假设已经获取到了 userId 和 productId + const userId = cc.fx.GameConfig.GM_INFO.openid; + const productId = '1'; + console.log("即将创建createorder"); + //@ts-ignore + wx.cloud.callFunction({ + name: "createOrder", + data: { + "userId": userId, + "productId": productId, + }, + success: (res) => { + // 取得云函数返回的订单信息 + console.log("createOrder结果:", res.result); + const 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(res) { + /* 成功回调 */ + console.log("支付成功", res); + }, + fail(res) { + /* 失败回调 */ + console.log("支付失败", res); + }, + complete(res) { + console.log("支付完成", res); + } + }); + }, + }); + } - openPause(){ - cc.fx.AudioManager._instance.playEffect("anniu_little",null); + openPause() { + cc.fx.AudioManager._instance.playEffect("anniu_little", null); console.log(cc.fx.GameConfig.GM_INFO); - if(cc.fx.GameConfig.GM_INFO.openid == undefined){ + 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").active = true; this.node.getChildByName("Pause").getChildByName("openID").getComponent(cc.Label).string = cc.fx.GameConfig.GM_INFO.openid; - } + } - closePause(){ - cc.fx.AudioManager._instance.playEffect("anniu_little",null); - this.node.getChildByName("Pause").active = false; + closePause() { + cc.fx.AudioManager._instance.playEffect("anniu_little", null); + this.node.getChildByName("Pause").active = false; - } + } - closeReward(){ - this.node.getChildByName("Reward").active = false; - } + closeReward() { + this.node.getChildByName("Reward").active = false; + } - openStamina(){ - this.node.getChildByName("Stamina").active = true; - } + openStamina() { + this.node.getChildByName("Stamina").active = true; + } - closeStamina(){ - this.node.getChildByName("Stamina").active = false; - } + closeStamina() { + this.node.getChildByName("Stamina").active = false; + } // update (dt) {} diff --git a/assets/Script/Map.ts b/assets/Script/Map.ts index 222d966..612a9dc 100644 --- a/assets/Script/Map.ts +++ b/assets/Script/Map.ts @@ -10,7 +10,7 @@ import { LQCollide } from "./lq_collide_system/lq_collide"; import NumberToImage from "./NumberToImage"; import { MiniGameSdk } from "./Sdk/MiniGameSdk"; -const {ccclass, property} = cc._decorator; +const { ccclass, property } = cc._decorator; @@ -19,23 +19,23 @@ export default class MapConroler extends cc.Component { static _instance: any; - @property({type: [cc.Prefab], tooltip:"方块数组"}) - Block_Array : Array = []; + @property({ type: [cc.Prefab], tooltip: "方块数组" }) + Block_Array: Array = []; - @property({type: [cc.Prefab], tooltip:"方块道具数组"}) - Block_Prop : Array = []; + @property({ type: [cc.Prefab], tooltip: "方块道具数组" }) + Block_Prop: Array = []; @property(cc.Prefab) MapBlockPrefab: cc.Prefab = null; - @property({type: [cc.SpriteAtlas], tooltip:"方块颜色"}) - Block_Color : Array = []; + @property({ type: [cc.SpriteAtlas], tooltip: "方块颜色" }) + Block_Color: Array = []; - @property({type: [cc.Prefab], tooltip:"墙壁数组"}) - Wall_Prefab : Array = []; + @property({ type: [cc.Prefab], tooltip: "墙壁数组" }) + Wall_Prefab: Array = []; + - @property(cc.Prefab) wallTurnPrefab: cc.Prefab = null; @@ -63,10 +63,10 @@ export default class MapConroler extends cc.Component { @property(cc.Node) hammerMask: cc.Node = null; - @property(cc.Node) + @property(cc.Node) freezeMask: cc.Node = null; - + @property(cc.Node) coinPop: cc.Node = null; @@ -82,13 +82,13 @@ export default class MapConroler extends cc.Component { mapInfo: any; //地图除了底块的其他信息 blocks: any; //方块数组 wallInfo: any; //墙壁数组 - wallArray:any; // + wallArray: any; // openWall: any; //开关墙数组 freezeWall: any; //冻结墙数组 - riseFallBlcok:any; //升降地块数组 + riseFallBlcok: any; //升降地块数组 scheduleCallback: any;//倒计时用 - homeCanTouch:boolean = true;//按钮可用状态 - againCanTouch:boolean = true;//重玩按钮可以用状态 + homeCanTouch: boolean = true;//按钮可用状态 + againCanTouch: boolean = true;//重玩按钮可以用状态 gameOver: boolean = false;//游戏结束状态 gameWin: boolean = false;//游戏胜利状态 gameStart: boolean = false;//游戏开始状态 @@ -96,8 +96,8 @@ export default class MapConroler extends cc.Component { count_Time: number = 0; //用于统计总游戏时长 add_Time: number = 0; //复活时间 mapBlockArray: any; //地图的所有格子状态存储 - pause:boolean = false;//暂停状态 - hammer:boolean = false;//锤子状态 + pause: boolean = false;//暂停状态 + hammer: boolean = false;//锤子状态 freezeArray: any; //冻结 loackArray: any; //上锁 particleEffects: cc.ParticleAsset[]; @@ -110,16 +110,16 @@ export default class MapConroler extends cc.Component { // mapInfo: number[][] = []; - onLoad () { + onLoad() { cc.fx.GameConfig.GM_INFO.review = 0; cc.fx.GameConfig.GM_INFO.gameState = true; this.mask.opacity = 0; this.node.getChildByName("Adhesive").zIndex = 500; - cc.game.setFrameRate(63); - cc.fx.AudioManager._instance.playEffect("zhuan2",null); + cc.game.setFrameRate(63); + cc.fx.AudioManager._instance.playEffect("zhuan2", null); this.node.parent.parent.parent.getChildByName("zhuanchang").active = true; - this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"down",false); + this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "down", false); this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setCompleteListener((entry) => { if (entry.animation.name === "down") { // 动画播放结束后执行的逻辑 @@ -133,22 +133,22 @@ export default class MapConroler extends cc.Component { this.bottomDoors = []; //下门 this.gameWin = false; this.gameOver = false; - this.gameStart = false; + this.gameStart = false; this.homeCanTouch = true; this.againCanTouch = true; this.new_mode = 0; - + this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString(); this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString(); this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString(); - + // cc.game.addPersistRootNode(this.node); MapConroler._instance = this; - } + } - start () { + start() { setTimeout(() => { - cc.director.preloadScene("HomeScene", (err, asset) => { + cc.director.preloadScene("HomeScene", (err, asset) => { if (err) { console.error('动态加载 HomeScene 失败:', err); return; @@ -160,38 +160,38 @@ export default class MapConroler extends cc.Component { this.Wall_Prefab = GameManager._instance.Wall_Prefab; this.Block_Color = GameManager._instance.Block_Color; // this.particleEffects = GameManager._instance.particleEffects; - + this.initMap(); - + } - startUpdate(){ - if(this.gameStart == false){ + startUpdate() { + if (this.gameStart == false) { this.gameStart = true; //发送数数事件——进入关卡 console.log("准备进入下一关,发送下一关进入"); cc.fx.GameTool.shushu_Track("enter_stage"); this.startTimeCutDown(); - for(let i =0; i { - const startTime = performance.now(); - for (let i = 0; i < BLOCKS_PER_FRAME && index < blockArray.length; i++) { - let blockInfo = blockArray[index]; - // 缓存 Block_Array 访问 - const blockPrefab = this.Block_Array[blockInfo.block]; - let block = cc.instantiate(blockPrefab); - block.parent = this.node; - block.setPosition(cc.v2(blockInfo.position.x, blockInfo.position.y)); - if (blockInfo.block != 23) { - this.blockNum += 1; - this.blocks.push(block); - if (blockInfo.type == 1) { - let info = { - id: blockInfo.id + 1, - block: blockInfo.block, - color: blockInfo.stacking, - type: 10, - position: blockInfo.position, - stacking: blockInfo.color - }; - // 缓存 Block_Array 访问 - const blockUpPrefab = this.Block_Array[info.block]; - let blockUp = cc.instantiate(blockUpPrefab); - blockUp.parent = this.node; - blockUp.setPosition(cc.v2(info.position.x, info.position.y)); - - this.blocks.push(blockUp); - block.getComponent("Block").init(blockInfo, null, null, blockUp); - blockUp.getComponent("Block").init(info, null, null, block); - + const createBlocks = () => { + const startTime = performance.now(); + for (let i = 0; i < BLOCKS_PER_FRAME && index < blockArray.length; i++) { + let blockInfo = blockArray[index]; + // 缓存 Block_Array 访问 + const blockPrefab = this.Block_Array[blockInfo.block]; + let block = cc.instantiate(blockPrefab); + block.parent = this.node; + block.setPosition(cc.v2(blockInfo.position.x, blockInfo.position.y)); + if (blockInfo.block != 23) { this.blockNum += 1; - } else if (blockInfo.type == 9) { - if(blockInfo.adhesiveTime < 2){ + this.blocks.push(block); + if (blockInfo.type == 1) { + let info = { + id: blockInfo.id + 1, + block: blockInfo.block, + color: blockInfo.stacking, + type: 10, + position: blockInfo.position, + stacking: blockInfo.color + }; + // 缓存 Block_Array 访问 + const blockUpPrefab = this.Block_Array[info.block]; + let blockUp = cc.instantiate(blockUpPrefab); + blockUp.parent = this.node; + blockUp.setPosition(cc.v2(info.position.x, info.position.y)); + + this.blocks.push(blockUp); + block.getComponent("Block").init(blockInfo, null, null, blockUp); + blockUp.getComponent("Block").init(info, null, null, block); + + this.blockNum += 1; + } else if (blockInfo.type == 9) { + if (blockInfo.adhesiveTime < 2) { + index++; + continue; + } index++; - continue; + let info = blockArray[index]; + // 缓存 Block_Array 访问 + const blockUpPrefab = this.Block_Array[info.block]; + let blockUp = cc.instantiate(blockUpPrefab); + blockUp.parent = this.node; + blockUp.setPosition(cc.v2(info.position.x, info.position.y)); + + this.blocks.push(blockUp); + block.getComponent("Block").init(blockInfo, null, null, blockUp, false); + setTimeout(() => { + blockUp.getComponent("Block").init(info, null, null, block, true); + }, 100); + this.blockNum += 1; + } else { + block.getComponent("Block").init(blockInfo); } - index++; - let info = blockArray[index]; - // 缓存 Block_Array 访问 - const blockUpPrefab = this.Block_Array[info.block]; - let blockUp = cc.instantiate(blockUpPrefab); - blockUp.parent = this.node; - blockUp.setPosition(cc.v2(info.position.x, info.position.y)); - - this.blocks.push(blockUp); - block.getComponent("Block").init(blockInfo, null, null, blockUp,false); - setTimeout(() => { - blockUp.getComponent("Block").init(info, null, null, block,true); - }, 100); - this.blockNum += 1; - } else { - block.getComponent("Block").init(blockInfo); - } + } + else { + block.getComponent("Barrier").init(blockInfo); + } + index++; } - else{ - block.getComponent("Barrier").init(blockInfo); + const endTime = performance.now(); + const frameTime = endTime - startTime; + // 如果当前帧执行时间过长,减少每帧创建数量 + if (frameTime > 16) { + BLOCKS_PER_FRAME = Math.max(BLOCKS_PER_FRAME - 1, MIN_PER_FRAME); + } else { + BLOCKS_PER_FRAME = Math.min(BLOCKS_PER_FRAME + 1, MAX_PER_FRAME); } - index++; - } - const endTime = performance.now(); - const frameTime = endTime - startTime; - // 如果当前帧执行时间过长,减少每帧创建数量 - if (frameTime > 16) { - BLOCKS_PER_FRAME = Math.max(BLOCKS_PER_FRAME - 1, MIN_PER_FRAME); - } else { - BLOCKS_PER_FRAME = Math.min(BLOCKS_PER_FRAME + 1, MAX_PER_FRAME); - } - // 如果还有方块未创建,下一帧继续创建 - if (index < blockArray.length) { - // 使用 scheduleOnce 在下一帧执行 createBlocks - this.scheduleOnce(() => { - createBlocks(); - }, 0); - } else { + // 如果还有方块未创建,下一帧继续创建 + if (index < blockArray.length) { + // 使用 scheduleOnce 在下一帧执行 createBlocks + this.scheduleOnce(() => { + createBlocks(); + }, 0); + } else { - } - }; - - // 开始分帧创建方块 - createBlocks(); -} -//给创建方块排序,用来降低drawcall 合批 -sortBlock(allBlocks: { color: number; block: number; type: number }[]) { - return allBlocks.sort((a, b) => { - // 先处理 type 为 1 的情况,将其放到最后 - if (a.type === 1 && b.type !== 1) { - return 1; - } - if (a.type !== 1 && b.type === 1) { - return -1; - } - - // 对 type 不为 0 的元素按 type 排序 - if (a.type !== 0 && b.type !== 0) { - return a.type - b.type; - } - if (a.type !== 0 && b.type === 0) { - return 1; - } - if (a.type === 0 && b.type !== 0) { - return -1; - } - - // 再处理 block 为 23 的情况,将其放到最前面 - if (a.block === 23 && b.block !== 23) { - return -1; - } - if (a.block !== 23 && b.block === 23) { - return 1; - } - - // 其余按 color 升序排列 - return a.color - b.color; - }); -} - - -//创建墙壁 - -wallInit() { - let index = 0; // 当前要创建的墙壁索引 - let WALLS_PER_FRAME = 1; // 初始每帧创建的墙壁数量 - const MAX_PER_FRAME = 10; // 每帧最大创建数量 - const MIN_PER_FRAME = 1; // 每帧最小创建数量 - - const createWalls = () => { - const startTime = performance.now(); - for (let i = 0; i < WALLS_PER_FRAME && index < this.wallInfo.length; i++) { - let block = this.wallInfo[index]; - let dir = this.getWllDiraction("wall", cc.v2(block.getComponent("MapBlock").posX, block.getComponent("MapBlock").posY)); - if (dir != null) { - this.createWall(dir, block); } - index++; - } - const endTime = performance.now(); - const frameTime = endTime - startTime; - // 如果当前帧执行时间过长,减少每帧创建数量 - if (frameTime > 16) { - WALLS_PER_FRAME = Math.max(WALLS_PER_FRAME - 1, MIN_PER_FRAME); - } else { - WALLS_PER_FRAME = Math.min(WALLS_PER_FRAME + 1, MAX_PER_FRAME); - } + }; - // 如果还有墙壁未创建,下一帧继续创建 - if (index < this.wallInfo.length) { - this.scheduleOnce(() => { - createWalls(); - }, 0); - } else { - // 所有墙壁创建完成后,创建拐角节点 - this.createCornerNodes(); - } - }; + // 开始分帧创建方块 + createBlocks(); + } + //给创建方块排序,用来降低drawcall 合批 + sortBlock(allBlocks: { color: number; block: number; type: number }[]) { + return allBlocks.sort((a, b) => { + // 先处理 type 为 1 的情况,将其放到最后 + if (a.type === 1 && b.type !== 1) { + return 1; + } + if (a.type !== 1 && b.type === 1) { + return -1; + } - // 开始分帧创建墙壁 - createWalls(); -} + // 对 type 不为 0 的元素按 type 排序 + if (a.type !== 0 && b.type !== 0) { + return a.type - b.type; + } + if (a.type !== 0 && b.type === 0) { + return 1; + } + if (a.type === 0 && b.type !== 0) { + return -1; + } -// ... 已有代码 ... + // 再处理 block 为 23 的情况,将其放到最前面 + if (a.block === 23 && b.block !== 23) { + return -1; + } + if (a.block !== 23 && b.block === 23) { + return 1; + } - getWllDiraction(type,pointA){ + // 其余按 color 升序排列 + return a.color - b.color; + }); + } + + + //创建墙壁 + + wallInit() { + let index = 0; // 当前要创建的墙壁索引 + let WALLS_PER_FRAME = 1; // 初始每帧创建的墙壁数量 + const MAX_PER_FRAME = 10; // 每帧最大创建数量 + const MIN_PER_FRAME = 1; // 每帧最小创建数量 + + const createWalls = () => { + const startTime = performance.now(); + for (let i = 0; i < WALLS_PER_FRAME && index < this.wallInfo.length; i++) { + let block = this.wallInfo[index]; + let dir = this.getWllDiraction("wall", cc.v2(block.getComponent("MapBlock").posX, block.getComponent("MapBlock").posY)); + if (dir != null) { + this.createWall(dir, block); + } + index++; + } + const endTime = performance.now(); + const frameTime = endTime - startTime; + // 如果当前帧执行时间过长,减少每帧创建数量 + if (frameTime > 16) { + WALLS_PER_FRAME = Math.max(WALLS_PER_FRAME - 1, MIN_PER_FRAME); + } else { + WALLS_PER_FRAME = Math.min(WALLS_PER_FRAME + 1, MAX_PER_FRAME); + } + + // 如果还有墙壁未创建,下一帧继续创建 + if (index < this.wallInfo.length) { + this.scheduleOnce(() => { + createWalls(); + }, 0); + } else { + // 所有墙壁创建完成后,创建拐角节点 + this.createCornerNodes(); + } + }; + + // 开始分帧创建墙壁 + createWalls(); + } + + // ... 已有代码 ... + + getWllDiraction(type, pointA) { let dir = []; - let pointB = cc.v2(pointA.x + 1,pointA.y); - let pointC = cc.v2(pointA.x - 1,pointA.y); - let pointD = cc.v2(pointA.x,pointA.y + 1); - let pointE = cc.v2(pointA.x,pointA.y - 1); + let pointB = cc.v2(pointA.x + 1, pointA.y); + let pointC = cc.v2(pointA.x - 1, pointA.y); + let pointD = cc.v2(pointA.x, pointA.y + 1); + let pointE = cc.v2(pointA.x, pointA.y - 1); let opacity = 0; - if(type == "wall") opacity = 255; - if(type == "turn") opacity = 250; - - if(pointB.x < this.mapWidth){ - if(this.mapBlocksWall[pointB.x][pointB.y].opacity == opacity ){ - if(type == "turn" && this.mapBlocksWall[pointB.x][pointB.y].getComponent("MapBlock").direction == "right"){ - + if (type == "wall") opacity = 255; + if (type == "turn") opacity = 250; + + if (pointB.x < this.mapWidth) { + if (this.mapBlocksWall[pointB.x][pointB.y].opacity == opacity) { + if (type == "turn" && this.mapBlocksWall[pointB.x][pointB.y].getComponent("MapBlock").direction == "right") { + } else dir.push("right"); } } - if(pointC.x >= 0){ - if(this.mapBlocksWall[pointC.x][pointC.y].opacity == opacity){ - if(type == "turn" && this.mapBlocksWall[pointC.x][pointC.y].getComponent("MapBlock").direction == "left"){ - + if (pointC.x >= 0) { + if (this.mapBlocksWall[pointC.x][pointC.y].opacity == opacity) { + if (type == "turn" && this.mapBlocksWall[pointC.x][pointC.y].getComponent("MapBlock").direction == "left") { + } else dir.push("left"); } } - if(pointD.y < this.mapHeight){ - if(this.mapBlocksWall[pointD.x][pointD.y].opacity == opacity){ - if(type == "turn" && this.mapBlocksWall[pointD.x][pointD.y].getComponent("MapBlock").direction == "up"){ - + if (pointD.y < this.mapHeight) { + if (this.mapBlocksWall[pointD.x][pointD.y].opacity == opacity) { + if (type == "turn" && this.mapBlocksWall[pointD.x][pointD.y].getComponent("MapBlock").direction == "up") { + } else dir.push("up"); } } - if(pointE.y >= 0){ - if(this.mapBlocksWall[pointE.x][pointE.y].opacity == opacity){ - if(type == "turn" && this.mapBlocksWall[pointE.x][pointE.y].getComponent("MapBlock").direction == "down"){ - + if (pointE.y >= 0) { + if (this.mapBlocksWall[pointE.x][pointE.y].opacity == opacity) { + if (type == "turn" && this.mapBlocksWall[pointE.x][pointE.y].getComponent("MapBlock").direction == "down") { + } else dir.push("down"); } } - if(dir.length > 2){ + if (dir.length > 2) { return null; } - if(dir.length == 1){ - if(type == "wall") + if (dir.length == 1) { + if (type == "wall") return dir[0]; - else + else return null; } - else if(dir.length == 2){ + else if (dir.length == 2) { return dir[0] + dir[1]; } } createCornerNodes() { // 定义拐角位置 - for(let i=0; i 3) maxX = maxX-1; + if (block.name == "block10") { + minX = width - 1; + if (this.mapWidth > 3) maxX = maxX - 1; } - else if(block.name == "block11"){ - minX = width-2; - if(this.mapWidth > 3) maxX = maxX-2; + else if (block.name == "block11") { + minX = width - 2; + if (this.mapWidth > 3) maxX = maxX - 2; } - else if(block.name == "block14"){ - minX = width-1; - maxX = maxX-1; + else if (block.name == "block14") { + minX = width - 1; + maxX = maxX - 1; } - else if(block.name == "block16"){ - minX = width-1; - maxX = maxX-1; + else if (block.name == "block16") { + minX = width - 1; + maxX = maxX - 1; } - else if(block.name == "block18"){ - minX = width-1; - maxX = maxX-1; + else if (block.name == "block18") { + minX = width - 1; + maxX = maxX - 1; } - else if(block.name == "block21"){ - minX = width-1; - maxX = maxX-1; + else if (block.name == "block21") { + minX = width - 1; + maxX = maxX - 1; } - - return {minX:minX,maxX:maxX,minY:minY,maxY:maxY}; + + return { minX: minX, maxX: maxX, minY: minY, maxY: maxY }; } //检测落点是否可以消除 - checkPass(node,blocks) { + checkPass(node, blocks) { let minAndMax = this.getMinAndMax(node); let minX = minAndMax.minX; let maxX = minAndMax.maxX; @@ -849,18 +849,18 @@ wallInit() { // 获取地图边界信息 let allBlocks = []; - for(let i=0;i wallPos.x){ + let wallPos = cc.v2(wallLeft.getComponent("Wall").posX, wallLeft.getComponent("Wall").posY); + for (let i = 0; i < allBlocks.length; i++) { + if (allBlocks[i].y == wallPos.y && allBlocks[i].x > wallPos.x) { // console.log("id:",wall.getChildByName("num").getComponent(cc.Label).string); leftWalls.push(wallLeft); } } } // console.log("得到左边墙壁数组",date6); - if(leftWalls.length != 0){ - let result = this.detectingBlock("left",node.getComponent("Block").posX,node.getComponent("Block").posY,allBlocks); - if(result == true) result = this.passWall(result,leftWalls,node); + if (leftWalls.length != 0) { + let result = this.detectingBlock("left", node.getComponent("Block").posX, node.getComponent("Block").posY, allBlocks); + if (result == true) result = this.passWall(result, leftWalls, node); // console.log("碰到左边缘结果:",jg); - if(result){ - + if (result) { + this.blockNum -= 1; this.special_Treatment(node); jg = 2; - this.createParticle(node,jg); + this.createParticle(node, jg); return jg; } } @@ -898,144 +898,144 @@ wallInit() { // console.log("碰到右边缘",date3); pz += 1; let rightWalls = []; - for(let i = 0; i < this.rightDoors.length; i++){ + for (let i = 0; i < this.rightDoors.length; i++) { let wallRight = this.rightDoors[i].getChildByName("wall"); - let wallPos = cc.v2(wallRight.getComponent("Wall").posX,wallRight.getComponent("Wall").posY); - for(let i = 0; i < allBlocks.length; i++){ - if(allBlocks[i].y == wallPos.y && allBlocks[i].x < wallPos.x){ + let wallPos = cc.v2(wallRight.getComponent("Wall").posX, wallRight.getComponent("Wall").posY); + for (let i = 0; i < allBlocks.length; i++) { + if (allBlocks[i].y == wallPos.y && allBlocks[i].x < wallPos.x) { // console.log("id:",wall.getChildByName("num").getComponent(cc.Label).string); rightWalls.push(wallRight); } } } - if(rightWalls.length != 0){ - let result = this.detectingBlock("right",node.getComponent("Block").posX,node.getComponent("Block").posY,allBlocks); - - if(result == true) result = this.passWall(result,rightWalls,node); + if (rightWalls.length != 0) { + let result = this.detectingBlock("right", node.getComponent("Block").posX, node.getComponent("Block").posY, allBlocks); + + if (result == true) result = this.passWall(result, rightWalls, node); // console.log("碰到右边缘结果:",jg); - if(result){ - + if (result) { + this.blockNum -= 1; this.special_Treatment(node); jg = 3; - this.createParticle(node,jg); + this.createParticle(node, jg); return jg; } } - + } - if (nodePos.y <= minY || direction[2] == true) { + if (nodePos.y <= minY || direction[2] == true) { pz += 1; // const date4 = new Date().getTime(); // console.log("碰到下边缘",date4); let downWalls = []; - for(let i = 0; i < this.topDoors.length; i++){ + for (let i = 0; i < this.topDoors.length; i++) { let wallBottom = this.topDoors[i].getChildByName("wall"); - let wallPos = cc.v2(wallBottom.getComponent("Wall").posX,wallBottom.getComponent("Wall").posY); - for(let i = 0; i < allBlocks.length; i++){ + let wallPos = cc.v2(wallBottom.getComponent("Wall").posX, wallBottom.getComponent("Wall").posY); + for (let i = 0; i < allBlocks.length; i++) { let luocha = Math.abs(allBlocks[i].y - wallPos.y) - if(allBlocks[i].x == wallPos.x && allBlocks[i].y > wallPos.y && luocha <= node.getComponent("Block").shu){ + if (allBlocks[i].x == wallPos.x && allBlocks[i].y > wallPos.y && luocha <= node.getComponent("Block").shu) { // console.log("id:",wall.getChildByName("num").getComponent(cc.Label).string); downWalls.push(wallBottom); } } } - if(downWalls.length != 0){ - let result = this.detectingBlock("down",node.getComponent("Block").posX,node.getComponent("Block").posY,allBlocks); - if(result == true) result = this.passWall(result,downWalls,node); + if (downWalls.length != 0) { + let result = this.detectingBlock("down", node.getComponent("Block").posX, node.getComponent("Block").posY, allBlocks); + if (result == true) result = this.passWall(result, downWalls, node); // console.log("碰到下边缘结果:",jg); - if(result){ - + if (result) { + this.blockNum -= 1; this.special_Treatment(node); jg = 1; - this.createParticle(node,jg); + this.createParticle(node, jg); return jg; } } - + } - if (nodePos.y >= maxY || direction[3] == true) { + if (nodePos.y >= maxY || direction[3] == true) { pz += 1; // const date5 = new Date().getTime(); // console.log("碰到上边缘",date5); let upWalls = []; - for(let i = 0; i < this.bottomDoors.length; i++){ + for (let i = 0; i < this.bottomDoors.length; i++) { let wallTop = this.bottomDoors[i].getChildByName("wall"); - let wallPos = cc.v2(wallTop.getComponent("Wall").posX,wallTop.getComponent("Wall").posY); - for(let i = 0; i < allBlocks.length; i++){ + let wallPos = cc.v2(wallTop.getComponent("Wall").posX, wallTop.getComponent("Wall").posY); + for (let i = 0; i < allBlocks.length; i++) { let luocha = Math.abs(allBlocks[i].y - wallPos.y) - if(allBlocks[i].x == wallPos.x && allBlocks[i].y < wallPos.y && luocha <= node.getComponent("Block").shu){ + if (allBlocks[i].x == wallPos.x && allBlocks[i].y < wallPos.y && luocha <= node.getComponent("Block").shu) { upWalls.push(wallTop); } } } - if(upWalls.length != 0){ - let result = this.detectingBlock("up",node.getComponent("Block").posX,node.getComponent("Block").posY,allBlocks); - if(result == true) result = this.passWall(result,upWalls,node); + if (upWalls.length != 0) { + let result = this.detectingBlock("up", node.getComponent("Block").posX, node.getComponent("Block").posY, allBlocks); + if (result == true) result = this.passWall(result, upWalls, node); // console.log("碰到上边缘结果:",result); - if(result){ - + if (result) { + this.blockNum -= 1; this.special_Treatment(node); jg = 0; - this.createParticle(node,jg); + this.createParticle(node, jg); return jg; } } } - if(pz == 0 )jg = -1; + if (pz == 0) jg = -1; // const date10 = new Date().getTime(); // console.log("所有检测结束耗时",date10,jg); return jg; } - changeState(){ - if(this.openWall.length != 0){ - for(let i=0; i 0){ - for(let i=0; i 0) { + for (let i = 0; i < blocks.length; i++) { let pos = blocks[i]; let x = pos.x; - let y = pos.y; + let y = pos.y; id = this.mapBlocksWall[x][y].getComponent("MapBlock").block_Id; - jg = this.checkAllDirections(id,direction,x,y); - if(!jg){ + jg = this.checkAllDirections(id, direction, x, y); + if (!jg) { // console.log("方向检测没过"); i = 1000000; return jg; - } + } } } // const date7 = new Date().getTime(); @@ -1069,100 +1069,100 @@ wallInit() { } //检测物体各方向是否有别的物块,防止碰到墙壁了但是是凹凸形状,墙与块之间有阻挡物块 - checkAllDirections(id,direction,x,y){ + checkAllDirections(id, direction, x, y) { let jg = true; - - if(direction == "left"){ - if(this.mapBlocksWall[x-1][y].getComponent("MapBlock").block_Id != "" && this.mapBlocksWall[x-1][y].getComponent("MapBlock").block_Id!= "Wall" - && this.mapBlocksWall[x-1][y].getComponent("MapBlock").block_Id != id ){ + + if (direction == "left") { + if (this.mapBlocksWall[x - 1][y].getComponent("MapBlock").block_Id != "" && this.mapBlocksWall[x - 1][y].getComponent("MapBlock").block_Id != "Wall" + && this.mapBlocksWall[x - 1][y].getComponent("MapBlock").block_Id != id) { // console.log("左侧有物体") jg = false; return jg; } - if(this.mapBlocksWall[x-1][y].opacity == 249){ + if (this.mapBlocksWall[x - 1][y].opacity == 249) { jg = false; return jg; } - if((x - 2) >= 0){ - if(this.mapBlocksWall[x-2][y].getComponent("MapBlock").block_Id != "" && this.mapBlocksWall[x-2][y].getComponent("MapBlock").block_Id!= "Wall" - && this.mapBlocksWall[x-2][y].getComponent("MapBlock").block_Id != id ){ + if ((x - 2) >= 0) { + if (this.mapBlocksWall[x - 2][y].getComponent("MapBlock").block_Id != "" && this.mapBlocksWall[x - 2][y].getComponent("MapBlock").block_Id != "Wall" + && this.mapBlocksWall[x - 2][y].getComponent("MapBlock").block_Id != id) { // console.log("左侧有物体") jg = false; return jg; } - if(this.mapBlocksWall[x-2][y].opacity == 249){ + if (this.mapBlocksWall[x - 2][y].opacity == 249) { jg = false; return jg; } } } - else if(direction == "right"){ - if(this.mapBlocksWall[x+1][y].getComponent("MapBlock").block_Id != "" && this.mapBlocksWall[x+1][y].getComponent("MapBlock").block_Id!= "Wall" - && this.mapBlocksWall[x+1][y].getComponent("MapBlock").block_Id != id ){ + else if (direction == "right") { + if (this.mapBlocksWall[x + 1][y].getComponent("MapBlock").block_Id != "" && this.mapBlocksWall[x + 1][y].getComponent("MapBlock").block_Id != "Wall" + && this.mapBlocksWall[x + 1][y].getComponent("MapBlock").block_Id != id) { // console.log("右侧有物体") jg = false; return jg; } - if(this.mapBlocksWall[x+1][y].opacity == 249){ + if (this.mapBlocksWall[x + 1][y].opacity == 249) { jg = false; return jg; } - if((x + 2) <= this.mapBlocksWall.length-1){ - if(this.mapBlocksWall[x+2][y].getComponent("MapBlock").block_Id != "" && this.mapBlocksWall[x+2][y].getComponent("MapBlock").block_Id!= "Wall" - && this.mapBlocksWall[x+2][y].getComponent("MapBlock").block_Id != id ){ + if ((x + 2) <= this.mapBlocksWall.length - 1) { + if (this.mapBlocksWall[x + 2][y].getComponent("MapBlock").block_Id != "" && this.mapBlocksWall[x + 2][y].getComponent("MapBlock").block_Id != "Wall" + && this.mapBlocksWall[x + 2][y].getComponent("MapBlock").block_Id != id) { // console.log("右侧有物体") jg = false; return jg; } - if(this.mapBlocksWall[x+2][y].opacity == 249){ + if (this.mapBlocksWall[x + 2][y].opacity == 249) { jg = false; return jg; } } } - if(direction == "up"){ - if(this.mapBlocksWall[x][y+1].getComponent("MapBlock").block_Id != "" && this.mapBlocksWall[x][y+1].getComponent("MapBlock").block_Id!= "Wall" - && this.mapBlocksWall[x][y+1].getComponent("MapBlock").block_Id != id ){ + if (direction == "up") { + if (this.mapBlocksWall[x][y + 1].getComponent("MapBlock").block_Id != "" && this.mapBlocksWall[x][y + 1].getComponent("MapBlock").block_Id != "Wall" + && this.mapBlocksWall[x][y + 1].getComponent("MapBlock").block_Id != id) { // console.log("上侧有物体") jg = false; return jg; } - if(this.mapBlocksWall[x][y+1].opacity == 249){ + if (this.mapBlocksWall[x][y + 1].opacity == 249) { jg = false; return jg; } - if((y + 2) <= this.mapBlocksWall[x].length-1){ - if(this.mapBlocksWall[x][y+2].getComponent("MapBlock").block_Id != "" && this.mapBlocksWall[x][y+2].getComponent("MapBlock").block_Id!= "Wall" - && this.mapBlocksWall[x][y+2].getComponent("MapBlock").block_Id != id ){ + if ((y + 2) <= this.mapBlocksWall[x].length - 1) { + if (this.mapBlocksWall[x][y + 2].getComponent("MapBlock").block_Id != "" && this.mapBlocksWall[x][y + 2].getComponent("MapBlock").block_Id != "Wall" + && this.mapBlocksWall[x][y + 2].getComponent("MapBlock").block_Id != id) { // console.log("上侧有物体") jg = false; return jg; } - if(this.mapBlocksWall[x][y+2].opacity == 249){ + if (this.mapBlocksWall[x][y + 2].opacity == 249) { jg = false; return jg; } } } - if(direction == "down"){ - if(this.mapBlocksWall[x][y-1].getComponent("MapBlock").block_Id != "" && this.mapBlocksWall[x][y-1].getComponent("MapBlock").block_Id!= "Wall" - && this.mapBlocksWall[x][y-1].getComponent("MapBlock").block_Id != id ){ + if (direction == "down") { + if (this.mapBlocksWall[x][y - 1].getComponent("MapBlock").block_Id != "" && this.mapBlocksWall[x][y - 1].getComponent("MapBlock").block_Id != "Wall" + && this.mapBlocksWall[x][y - 1].getComponent("MapBlock").block_Id != id) { // console.log("下侧有物体") jg = false; return jg; } - if(this.mapBlocksWall[x][y-1].opacity == 249){ + if (this.mapBlocksWall[x][y - 1].opacity == 249) { jg = false; return jg; } - if((y - 2) >= 0){ - if(this.mapBlocksWall[x][y-2].getComponent("MapBlock").block_Id != "" && this.mapBlocksWall[x][y-2].getComponent("MapBlock").block_Id!= "Wall" - && this.mapBlocksWall[x][y-2].getComponent("MapBlock").block_Id != id ){ + if ((y - 2) >= 0) { + if (this.mapBlocksWall[x][y - 2].getComponent("MapBlock").block_Id != "" && this.mapBlocksWall[x][y - 2].getComponent("MapBlock").block_Id != "Wall" + && this.mapBlocksWall[x][y - 2].getComponent("MapBlock").block_Id != id) { // console.log("下侧有物体") jg = false; return jg; } - if(this.mapBlocksWall[x][y-2].opacity == 249){ + if (this.mapBlocksWall[x][y - 2].opacity == 249) { jg = false; return jg; } @@ -1172,107 +1172,107 @@ wallInit() { return jg; } - checkDiraction(allBlocks,maxX,maxY){ - let jg = [false,false,false,false]; - for(let i=0; i 0 && jg[0] == false){ - if(this.mapBlocksWall[allBlocks[i].x-1][allBlocks[i].y].opacity == 250){ + checkDiraction(allBlocks, maxX, maxY) { + let jg = [false, false, false, false]; + for (let i = 0; i < allBlocks.length; i++) { + if (allBlocks[i].x > 0 && jg[0] == false) { + if (this.mapBlocksWall[allBlocks[i].x - 1][allBlocks[i].y].opacity == 250) { jg[0] = true; - } + } } - if( jg[1] == false){ - if(this.mapBlocksWall[allBlocks[i].x+1][allBlocks[i].y].opacity == 250){ + if (jg[1] == false) { + if (this.mapBlocksWall[allBlocks[i].x + 1][allBlocks[i].y].opacity == 250) { jg[1] = true; - } + } } - if(allBlocks[i].y > 0 && jg[2] == false){ - if(this.mapBlocksWall[allBlocks[i].x][allBlocks[i].y-1].opacity == 250){ + if (allBlocks[i].y > 0 && jg[2] == false) { + if (this.mapBlocksWall[allBlocks[i].x][allBlocks[i].y - 1].opacity == 250) { jg[2] = true; - } + } } - if(jg[3] == false){ - if(this.mapBlocksWall[allBlocks[i].x][allBlocks[i].y+1].opacity == 250){ + if (jg[3] == false) { + if (this.mapBlocksWall[allBlocks[i].x][allBlocks[i].y + 1].opacity == 250) { jg[3] = true; - } + } } } return jg; } - checkLeft(allBlocks){ + checkLeft(allBlocks) { let jg = false; return jg; } - checkRight(allBlocks,max){ + checkRight(allBlocks, max) { let jg = false; - for(let i=0; i { - if(child.getComponent("Block")){ - if(child.getComponent("Block").type == 4) + if (child.getComponent("Block")) { + if (child.getComponent("Block").type == 4) return child } }); - if(freezeBlock.length > 0){ - for(let i=0; i 0) { + for (let i = 0; i < freezeBlock.length; i++) { freezeBlock[i].getChildByName("freeze").getComponent("Freeze").reduce(1); } } - if(node.getComponent("Block").type == 2 || node.getComponent("Block").type == 4){ + if (node.getComponent("Block").type == 2 || node.getComponent("Block").type == 4) { let lockBlock = this.node.children.filter(child => { - if(child.getComponent("Block")){ - if(child.getComponent("Block").type == 3) + if (child.getComponent("Block")) { + if (child.getComponent("Block").type == 3) return child } }); - if(lockBlock.length > 0) - for(let i=0; i 0) + for (let i = 0; i < lockBlock.length; i++) { lockBlock[i].getChildByName("lock").getComponent("Lock").reduce(); } - + } - for(let i=0;i 156){ + winLevel() { + cc.fx.AudioManager._instance.playEffect("anniu_Big", null); + if (cc.fx.GameConfig.GM_INFO.level > 156) { cc.fx.GameConfig.GM_INFO.level = 156; MapConroler._instance = null; - - if(this.new_mode == 3){ + + if (this.new_mode == 3) { this.node.parent.parent.getChildByName("Win").active = false; this.openNewMode(2); - cc.fx.GameConfig.LEVEL_INFO_init(false,0); + cc.fx.GameConfig.LEVEL_INFO_init(false, 0); return; } // cc.fx.GameConfig.LEVEL_INFO_init(true); - cc.fx.AudioManager._instance.playEffect("zhuan1",null); + cc.fx.AudioManager._instance.playEffect("zhuan1", null); this.node.parent.parent.parent.getChildByName("zhuanchang").active = true; - this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",false); + this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); // this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setCompleteListener((entry) => { // if (entry.animation.name === "up") { // // 动画播放结束后执行的逻辑 @@ -1338,21 +1338,21 @@ wallInit() { setTimeout(() => { cc.director.loadScene("HomeScene"); }, 1200); - } - else{ - + } + else { + // console.log("下一关"); MapConroler._instance = null; - - if(this.new_mode == 3){ + + if (this.new_mode == 3) { this.node.parent.parent.getChildByName("Win").active = false; this.openNewMode(2); - cc.fx.GameConfig.LEVEL_INFO_init(false,0); + cc.fx.GameConfig.LEVEL_INFO_init(false, 0); return; } - cc.fx.AudioManager._instance.playEffect("zhuan1",null); + cc.fx.AudioManager._instance.playEffect("zhuan1", null); this.node.parent.parent.parent.getChildByName("zhuanchang").active = true; - this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",false); + this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); // this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setCompleteListener((entry) => { // if (entry.animation.name === "up") { // // 动画播放结束后执行的逻辑 @@ -1360,28 +1360,28 @@ wallInit() { // } // }); setTimeout(() => { - cc.fx.GameConfig.LEVEL_INFO_init(true,0); + cc.fx.GameConfig.LEVEL_INFO_init(true, 0); }, 1200); - + // this.node.parent.parent.parent.destroy(); - + } } - againLevel(){ - cc.fx.AudioManager._instance.playEffect("anniu_Big",null); - if(cc.fx.GameConfig.GM_INFO.hp < 1){ + againLevel() { + cc.fx.AudioManager._instance.playEffect("anniu_Big", null); + if (cc.fx.GameConfig.GM_INFO.hp < 1) { MiniGameSdk.API.showToast("体力值不足"); return; - } - if(!this.againCanTouch) return; - + } + if (!this.againCanTouch) return; + this.againCanTouch = false; - + MapConroler._instance = null; - cc.fx.AudioManager._instance.playEffect("zhuan1",null); + cc.fx.AudioManager._instance.playEffect("zhuan1", null); this.node.parent.parent.parent.getChildByName("zhuanchang").active = true; - this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",false); + this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); // this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setCompleteListener((entry) => { // if (entry.animation.name === "up") { // // 动画播放结束后执行的逻辑 @@ -1389,34 +1389,34 @@ wallInit() { // } // }); setTimeout(() => { - cc.fx.GameConfig.LEVEL_INFO_init(true,0); + cc.fx.GameConfig.LEVEL_INFO_init(true, 0); }, 1200); // this.node.parent.parent.parent.destroy(); } - reviewLevel(){ - cc.fx.AudioManager._instance.playEffect("anniu_Big",null); + reviewLevel() { + cc.fx.AudioManager._instance.playEffect("anniu_Big", null); let coin = 900; - if(cc.fx.GameConfig.GM_INFO.review == 1) coin = 1900; - else if(cc.fx.GameConfig.GM_INFO.review == 2) coin = 2500; + if (cc.fx.GameConfig.GM_INFO.review == 1) coin = 1900; + else if (cc.fx.GameConfig.GM_INFO.review == 2) coin = 2500; // console.log("自身金币:",cc.fx.GameConfig.GM_INFO.coin,"消耗金币:",coin); - if(cc.fx.GameConfig.GM_INFO.coin < Math.abs(coin)){ + if (cc.fx.GameConfig.GM_INFO.coin < Math.abs(coin)) { MiniGameSdk.API.showToast("金币不足,无法加时间"); return; } - else{ + else { this.runRewive(-coin); } } - runRewive(data){ - console.log("复活回调函数内",data); + runRewive(data) { + console.log("复活回调函数内", data); cc.fx.GameTool.changeCoin(data); MiniGameSdk.API.showToast("继续游戏"); - - if(cc.fx.GameConfig.GM_INFO.review < 2) + + if (cc.fx.GameConfig.GM_INFO.review < 2) cc.fx.GameConfig.GM_INFO.review += 1; - + this.gameOver = false; this.timeNumber = 21; this.add_Time += 20; @@ -1426,11 +1426,11 @@ wallInit() { } - - homeBtn(){ + + homeBtn() { // alert("游戏失败"); - cc.fx.AudioManager._instance.playEffect("anniu_Big",null); - if(!this.homeCanTouch) return; + cc.fx.AudioManager._instance.playEffect("anniu_Big", null); + if (!this.homeCanTouch) return; this.homeCanTouch = false; this.node.parent.parent.getChildByName("Lose").active = true; this.node.parent.parent.getChildByName("Lose").getChildByName("Time").active = false; @@ -1438,40 +1438,40 @@ wallInit() { this.node.parent.parent.getChildByName("Lose").getChildByName("Lock").active = false; this.node.parent.parent.getChildByName("Lose").getChildByName("Health").active = true; let data = { - time:this.count_Time, - add_Time:this.add_Time, - result:"fail" + time: this.count_Time, + add_Time: this.add_Time, + result: "fail" } - cc.fx.GameTool.shushu_Track("finish_stage",data); - if(this.gameStart == true){ - cc.fx.GameTool.setUserHealth(-1,(data)=>{ + cc.fx.GameTool.shushu_Track("finish_stage", data); + if (this.gameStart == true) { + cc.fx.GameTool.setUserHealth(-1, (data) => { }) } // this.node.parent.parent.parent.destroy(); } - returnHome(){ - cc.fx.AudioManager._instance.playEffect("anniu_Big",null); - if(MapConroler._instance = null){ + returnHome() { + cc.fx.AudioManager._instance.playEffect("anniu_Big", null); + if (MapConroler._instance = null) { return; } // MiniGameSdk.API.showToast("体力值减少"); MapConroler._instance = null; - cc.fx.GameConfig.LEVEL_INFO_init(false,0); - if(this.new_mode == 3){ + cc.fx.GameConfig.LEVEL_INFO_init(false, 0); + if (this.new_mode == 3) { this.node.parent.parent.getChildByName("Win").active = false; this.openNewMode(1); return; } - cc.fx.AudioManager._instance.playEffect("zhuan1",null); + cc.fx.AudioManager._instance.playEffect("zhuan1", null); this.node.parent.parent.parent.getChildByName("zhuanchang").active = true; - this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",false); + this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); cc.director.preloadScene("HomeScene", (err, asset) => { if (err) { console.error('动态加载 Prefab 失败:', err); return; } - + }); setTimeout(() => { @@ -1480,39 +1480,39 @@ wallInit() { } //判断游戏失败 - failLevel(type){ + failLevel(type) { this.stopTimeCutDown(); - if(this.gameOver== true ||this.gameWin == true){ + if (this.gameOver == true || this.gameWin == true) { return; } let time = 0; this.gameOver = true; - if(type == "boom"){ + if (type == "boom") { time = 2000; } setTimeout(() => { - this.node.parent.parent.getChildByName("Lose").active = true; - this.node.parent.parent.getChildByName("Lose").getChildByName("Time").active = true; - this.node.parent.parent.getChildByName("Lose").getChildByName("Boom").active = false; - let buyBtn = this.node.parent.parent.getChildByName("Lose").getChildByName("Time").getChildByName("buyBtn"); - buyBtn.getChildByName("coin1").active = buyBtn.getChildByName("coin2").active = buyBtn.getChildByName("coin3").active =false; - if(cc.fx.GameConfig.GM_INFO.review == 0)buyBtn.getChildByName("coin1").active = true; - else if(cc.fx.GameConfig.GM_INFO.review == 1) buyBtn.getChildByName("coin2").active = true; - else if(cc.fx.GameConfig.GM_INFO.review == 2) buyBtn.getChildByName("coin3").active = true; - if(type){ - if(type == "boom"){ - this.node.parent.parent.getChildByName("Lose").getChildByName("Time").active = false; - this.node.parent.parent.getChildByName("Lose").getChildByName("Boom").active = true; - } + this.node.parent.parent.getChildByName("Lose").active = true; + this.node.parent.parent.getChildByName("Lose").getChildByName("Time").active = true; + this.node.parent.parent.getChildByName("Lose").getChildByName("Boom").active = false; + let buyBtn = this.node.parent.parent.getChildByName("Lose").getChildByName("Time").getChildByName("buyBtn"); + buyBtn.getChildByName("coin1").active = buyBtn.getChildByName("coin2").active = buyBtn.getChildByName("coin3").active = false; + if (cc.fx.GameConfig.GM_INFO.review == 0) buyBtn.getChildByName("coin1").active = true; + else if (cc.fx.GameConfig.GM_INFO.review == 1) buyBtn.getChildByName("coin2").active = true; + else if (cc.fx.GameConfig.GM_INFO.review == 2) buyBtn.getChildByName("coin3").active = true; + if (type) { + if (type == "boom") { + this.node.parent.parent.getChildByName("Lose").getChildByName("Time").active = false; + this.node.parent.parent.getChildByName("Lose").getChildByName("Boom").active = true; } + } }, time); - + // console.log("游戏失败"); } //打开新模式弹窗 - openNewMode(type){ + openNewMode(type) { let index = 0; const BLOCKS_PER_FRAME = 5; // 每帧销毁的方块数量 const destroyBlocks = () => { @@ -1534,70 +1534,70 @@ wallInit() { this.node.parent.parent.getChildByName("NewMode").getComponent("NewMode").setMode(type); } - - downDoor(color,type){ - for(let i=0; i{ + cc.fx.StorageMessage.setStorage("prop", propInfo); + cc.fx.GameTool.setUserProp(2001, cc.fx.GameConfig.GM_INFO.freezeAmount, (data) => { }) let data = { - id:"2001", - num:-1 + id: "2001", + num: -1 } - cc.fx.GameTool.shushu_Track("resource_cost",data); + cc.fx.GameTool.shushu_Track("resource_cost", data); } else MiniGameSdk.API.showToast("道具使用中,请稍后再试"); } @@ -1638,8 +1638,8 @@ wallInit() { } //解开时间冻结 - openIce(){ - if(this.node.parent.getChildByName("Ice").active){ + openIce() { + if (this.node.parent.getChildByName("Ice").active) { this.freezeMask.active = false; let freezeBtn = this.node.parent.getChildByName("Bottom").getChildByName("timeBtn"); freezeBtn.getComponent("btnControl").setTouch(true); @@ -1649,50 +1649,50 @@ wallInit() { // this.startTimeCutDown(); } } - - handleBuySuccess(data){ + + handleBuySuccess(data) { this.pause = false; const timestamp = Date.now(); // console.log("回调函数内:",this.pause); let freezeBtn = this.node.parent.getChildByName("Bottom").getChildByName("timeBtn"); let hammerBtn = this.node.parent.getChildByName("Bottom").getChildByName("destroyBtn"); let magicBtn = this.node.parent.getChildByName("Bottom").getChildByName("magicBtn"); - if(data == "freezeAmount") freezeBtn.getComponent("btnControl").setTouch(true); - else if(data == "hammerAmount") hammerBtn.getComponent("btnControl").setTouch(true); - else if(data == "magicAmount") magicBtn.getComponent("btnControl").setTouch(true); - if(data == "freezeAmount"){ + if (data == "freezeAmount") freezeBtn.getComponent("btnControl").setTouch(true); + else if (data == "hammerAmount") hammerBtn.getComponent("btnControl").setTouch(true); + else if (data == "magicAmount") magicBtn.getComponent("btnControl").setTouch(true); + if (data == "freezeAmount") { cc.fx.GameConfig.GM_INFO.freezeAmount += 3; let propInfo = cc.fx.StorageMessage.getStorage("prop"); propInfo.freezeAmount = cc.fx.GameConfig.GM_INFO.freezeAmount; propInfo.timestamp = timestamp; - cc.fx.StorageMessage.setStorage("prop",propInfo); + cc.fx.StorageMessage.setStorage("prop", propInfo); this.node.parent.parent.parent.getComponent("SceneManager").closePropBuy(); setTimeout(() => { this.iceLabel.string = cc.fx.GameConfig.GM_INFO.freezeAmount.toString(); MiniGameSdk.API.showToast("购买冻结时间道具成功"); }, 200); - + } - else if(data == "magicAmount"){ + else if (data == "magicAmount") { cc.fx.GameConfig.GM_INFO.magicAmount += 3; let propInfo = cc.fx.StorageMessage.getStorage("prop"); propInfo.magicAmount = cc.fx.GameConfig.GM_INFO.magicAmount; propInfo.timestamp = timestamp; - cc.fx.StorageMessage.setStorage("prop",propInfo); + cc.fx.StorageMessage.setStorage("prop", propInfo); this.node.parent.parent.parent.getComponent("SceneManager").closePropBuy(); setTimeout(() => { MiniGameSdk.API.showToast("购买锤子道具成功"); this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString(); }, 200); - + } - else if(data == "hammerAmount"){ + else if (data == "hammerAmount") { cc.fx.GameConfig.GM_INFO.hammerAmount += 3; let propInfo = cc.fx.StorageMessage.getStorage("prop"); propInfo.hammerAmount = cc.fx.GameConfig.GM_INFO.hammerAmount; propInfo.timestamp = timestamp; - cc.fx.StorageMessage.setStorage("prop",propInfo); + cc.fx.StorageMessage.setStorage("prop", propInfo); this.node.parent.parent.parent.getComponent("SceneManager").closePropBuy(); setTimeout(() => { this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString(); @@ -1700,51 +1700,51 @@ wallInit() { }, 200); } - - + + } //使用锤子道具 - useHammer(){ - if(this.node.parent.getChildByName("Ice").active == true || this.hammer == true - || this.magicMask.active== true || this.timeNumber <= 1){ + useHammer() { + if (this.node.parent.getChildByName("Ice").active == true || this.hammer == true + || this.magicMask.active == true || this.timeNumber <= 1) { return; } let hammerBtn = this.node.parent.getChildByName("Bottom").getChildByName("destroyBtn"); - if(hammerBtn.getComponent("btnControl")._touch){ + if (hammerBtn.getComponent("btnControl")._touch) { hammerBtn.getComponent("btnControl").setTouch(false); - if(cc.fx.GameConfig.GM_INFO.hammerAmount < 1){ - if(cc.fx.GameConfig.GM_INFO.coin < 1500){ + if (cc.fx.GameConfig.GM_INFO.hammerAmount < 1) { + if (cc.fx.GameConfig.GM_INFO.coin < 1500) { MiniGameSdk.API.showToast("金币不足,无法购买道具"); hammerBtn.getComponent("btnControl").setTouch(true); return; } - this.node.parent.parent.getChildByName("propWindow").active = true; + this.node.parent.parent.getChildByName("propWindow").active = true; this.node.parent.parent.parent.getComponent("SceneManager").openPropBuy("hammer"); } - else{ - if(!this.hammer){ + else { + if (!this.hammer) { const timestamp = Date.now(); this.hammerMask.active = true; this.hammer = true; cc.fx.GameConfig.GM_INFO.hammerAmount -= 1; - if(cc.fx.GameConfig.GM_INFO.hammerAmount < 0) + if (cc.fx.GameConfig.GM_INFO.hammerAmount < 0) cc.fx.GameConfig.GM_INFO.hammerAmount = 0; this.hammerLabel.string = cc.fx.GameConfig.GM_INFO.hammerAmount.toString(); let propInfo = cc.fx.StorageMessage.getStorage("prop"); - console.log("锤子道具信息:",propInfo); + console.log("锤子道具信息:", propInfo); propInfo.hammerAmount = cc.fx.GameConfig.GM_INFO.hammerAmount; propInfo.timestamp = timestamp; - cc.fx.StorageMessage.setStorage("prop",propInfo); - cc.fx.GameTool.setUserProp(2002,cc.fx.GameConfig.GM_INFO.hammerAmount,(data)=>{ + cc.fx.StorageMessage.setStorage("prop", propInfo); + cc.fx.GameTool.setUserProp(2002, cc.fx.GameConfig.GM_INFO.hammerAmount, (data) => { }) let data = { - id:"2002", - num:-1 + id: "2002", + num: -1 } - cc.fx.GameTool.shushu_Track("resource_cost",data); + cc.fx.GameTool.shushu_Track("resource_cost", data); } else MiniGameSdk.API.showToast("道具使用中,请稍后再试"); } @@ -1752,42 +1752,42 @@ wallInit() { } } - - buyMagic(){ - if(cc.fx.GameConfig.GM_INFO.coin < 1500){ + + buyMagic() { + if (cc.fx.GameConfig.GM_INFO.coin < 1500) { MiniGameSdk.API.showToast("金币不足,无法购买道具"); return; } - cc.fx.GameTool.buyProp(2003,this.handleBuySuccess.bind(this,"magicAmount")); + cc.fx.GameTool.buyProp(2003, this.handleBuySuccess.bind(this, "magicAmount")); } - buyHammer(){ - if(cc.fx.GameConfig.GM_INFO.coin < 1500){ + buyHammer() { + if (cc.fx.GameConfig.GM_INFO.coin < 1500) { MiniGameSdk.API.showToast("金币不足,无法购买道具"); return; } - cc.fx.GameTool.buyProp(2002, this.handleBuySuccess.bind(this,"hammerAmount")); + cc.fx.GameTool.buyProp(2002, this.handleBuySuccess.bind(this, "hammerAmount")); } - buyFreeze(){ - if(cc.fx.GameConfig.GM_INFO.coin < 1500){ + buyFreeze() { + if (cc.fx.GameConfig.GM_INFO.coin < 1500) { MiniGameSdk.API.showToast("金币不足,无法购买道具"); return; } - cc.fx.GameTool.buyProp(2001,this.handleBuySuccess.bind(this,"freezeAmount")); + cc.fx.GameTool.buyProp(2001, this.handleBuySuccess.bind(this, "freezeAmount")); } //使用魔法棒随机消除两个方块 - useMagic(){ - if(this.node.parent.getChildByName("Ice").active == true || this.hammer == true - || this.magicMask.active== true || this.timeNumber <= 1){ + useMagic() { + if (this.node.parent.getChildByName("Ice").active == true || this.hammer == true + || this.magicMask.active == true || this.timeNumber <= 1) { return; } let magicBtn = this.node.parent.getChildByName("Bottom").getChildByName("magicBtn"); - if(magicBtn.getComponent("btnControl")._touch){ + if (magicBtn.getComponent("btnControl")._touch) { magicBtn.getComponent("btnControl").setTouch(false); - if(cc.fx.GameConfig.GM_INFO.magicAmount < 1){ - if(cc.fx.GameConfig.GM_INFO.coin < 1500){ + if (cc.fx.GameConfig.GM_INFO.magicAmount < 1) { + if (cc.fx.GameConfig.GM_INFO.coin < 1500) { MiniGameSdk.API.showToast("金币不足,无法购买道具"); magicBtn.getComponent("btnControl").setTouch(true); return; @@ -1796,114 +1796,114 @@ wallInit() { this.node.parent.parent.parent.getComponent("SceneManager").openPropBuy("magic"); // MiniGameSdk.API.showToast("魔法棒数量不足,自动购买魔法棒"); } - else{ + else { const timestamp = Date.now(); this.magicMask.active = true; setTimeout(() => { this.magicMask.active = false; magicBtn.getComponent("btnControl").setTouch(true); }, 1000); - + cc.fx.GameConfig.GM_INFO.magicAmount -= 1; - if(cc.fx.GameConfig.GM_INFO.magicAmount < 0) + if (cc.fx.GameConfig.GM_INFO.magicAmount < 0) cc.fx.GameConfig.GM_INFO.magicAmount = 0; this.magicLabel.string = cc.fx.GameConfig.GM_INFO.magicAmount.toString(); let propInfo = cc.fx.StorageMessage.getStorage("prop"); propInfo.magicAmount = cc.fx.GameConfig.GM_INFO.magicAmount; propInfo.timestamp = timestamp; - cc.fx.StorageMessage.setStorage("prop",propInfo); - cc.fx.GameTool.setUserProp(2003,cc.fx.GameConfig.GM_INFO.magicAmount,(data)=>{ + cc.fx.StorageMessage.setStorage("prop", propInfo); + cc.fx.GameTool.setUserProp(2003, cc.fx.GameConfig.GM_INFO.magicAmount, (data) => { }) let data = { - id:"2003", - num:-1 - } - cc.fx.GameTool.shushu_Track("resource_cost",data); + id: "2003", + num: -1 + } + cc.fx.GameTool.shushu_Track("resource_cost", data); let nomalArray = []; // this.magicBtn.node.active = false; - for(let i =0; i 1){ + if (nomalArray.length > 1) { nomalArray = cc.fx.GameTool.shuffleArray(nomalArray); nomalArray[0].getComponent("Block").eliminate(); let time = 0; - if(nomalArray[0].getComponent("Block").type == 1 || nomalArray[0].getComponent("Block").type == 9){ + if (nomalArray[0].getComponent("Block").type == 1 || nomalArray[0].getComponent("Block").type == 9) { time = 200; } - if(time > 0){ + if (time > 0) { setTimeout(() => { nomalArray[1].getComponent("Block").eliminate(); }, time); return; } - else{ + else { nomalArray[1].getComponent("Block").eliminate(); return; } } - else if(nomalArray.length == 1){ + else if (nomalArray.length == 1) { nomalArray[0].getComponent("Block").eliminate(); let time = 0; - if(nomalArray[0].getComponent("Block").type == 1 || nomalArray[0].getComponent("Block").type == 9){ + if (nomalArray[0].getComponent("Block").type == 1 || nomalArray[0].getComponent("Block").type == 9) { time = 200; } setTimeout(() => { - if(this.freezeArray.length == 0 && this.loackArray.length == 0){ + if (this.freezeArray.length == 0 && this.loackArray.length == 0) { // console.log("只剩下一个块道具使用完毕"); } - else{ - if(this.loackArray.length != 0){ + else { + if (this.loackArray.length != 0) { // console.log("消除一个普通块后,消除一个带锁块"); this.loackArray[0].getComponent("Block").eliminate(); return; } - else if(this.freezeArray.length!= 0){ + else if (this.freezeArray.length != 0) { // console.log("消除一个普通块后,消除一个冻结块"); this.freezeArray[0].getComponent("Block").eliminate(); - return; + return; } } - }, 200+time); + }, 200 + time); } - else{ + else { let count = 2; - if(this.loackArray.length!= 0){ - for(let i=0; i { - if(count != 0){ - for(let i=0; i 13){ + if (this.mapWidth == 8 && this.mapHeight > 13) { this.node.scale = 1; } @@ -1947,7 +1947,7 @@ wallInit() { } //创建门的粒子特效 - createParticle(block,jg){ + createParticle(block, jg) { let particle = cc.instantiate(MapConroler._instance.Block_Prop[9]); particle.parent = this.node; particle.zIndex = 1000; @@ -1955,83 +1955,83 @@ wallInit() { let height = Math.floor(block.height / 120); let name = ""; - if(jg == 0 || jg == 1){ + if (jg == 0 || jg == 1) { let y = block.y + block.height; - let x = block.x - block.width/2; + let x = block.x - block.width / 2; name = "top_" + width + "_" + height; - if(jg == 1){ + if (jg == 1) { name = "bot_" + width + "_" + height; y = block.y; } - if(block.anchorX == 0.5){ + if (block.anchorX == 0.5) { x = block.x; } - else if(block.anchorX == 0.33){ - x = block.x + block.width*(0.5-0.33); + else if (block.anchorX == 0.33) { + x = block.x + block.width * (0.5 - 0.33); } - else if(block.anchorX == 0.66){ - x = block.x + block.width*(0.5-0.66); + else if (block.anchorX == 0.66) { + x = block.x + block.width * (0.5 - 0.66); } - particle.setPosition(x, y); - } - else if(jg == 2 || jg == 3){ + particle.setPosition(x, y); + } + else if (jg == 2 || jg == 3) { name = "left_" + height + "_" + width; let x = block.x - block.width; - let y = block.y + block.height/2; - if(block.anchorX == 0.5){ - x = block.x - block.width/2; + let y = block.y + block.height / 2; + if (block.anchorX == 0.5) { + x = block.x - block.width / 2; } - else if(block.anchorX == 0.33){ - x = block.x - block.width*0.33; + else if (block.anchorX == 0.33) { + x = block.x - block.width * 0.33; } - else if(block.anchorX == 0.66){ - x = block.x + block.width*0.66; + else if (block.anchorX == 0.66) { + x = block.x + block.width * 0.66; } - if(jg == 3){ + if (jg == 3) { name = "right_" + height + "_" + width; x = block.x; - if(block.anchorX == 0.5){ - x = block.x + block.width/2; + if (block.anchorX == 0.5) { + x = block.x + block.width / 2; } - else if(block.anchorX == 0.33){ - x = block.x + block.width*0.66; + else if (block.anchorX == 0.33) { + x = block.x + block.width * 0.66; } - else if(block.anchorX == 0.66){ - x = block.x + block.width*0.33; + else if (block.anchorX == 0.66) { + x = block.x + block.width * 0.33; } } - particle.setPosition(x, y); - } + particle.setPosition(x, y); + } - let particleNode = particle.getChildByName(name); + let particleNode = particle.getChildByName(name); let color = block.getComponent("Block").color - 1; particleNode.getComponent(cc.ParticleSystem).spriteFrame = particle.getComponent("Reduce").Block_Color[color]; particleNode.active = true; setTimeout(() => { cc.tween(particle) - .to(2, {opacity: 0}) - .call(() => { - particle.destroy(); - }) - .start(); + .to(2, { opacity: 0 }) + .call(() => { + particle.destroy(); + }) + .start(); }, 1200); } removeOneBlock() { // 移除所有方块 - for(let i =0 ; i = []; + @property({ type: [cc.Prefab], tooltip: "方块数组" }) + Block_Array: Array = []; - @property({type: [cc.Prefab], tooltip:"墙壁数组"}) - Wall_Prefab : Array = []; + @property({ type: [cc.Prefab], tooltip: "墙壁数组" }) + Wall_Prefab: Array = []; particleEffects: cc.ParticleAsset[]; // @property({type: [cc.ParticleSystem], tooltip:"粒子数组"}) // particleEffects : Array = []; - load1 :boolean = false; - load2 :boolean = false; - load3 :boolean = false; + load1: boolean = false; + load2: boolean = false; + load3: boolean = false; btnName: string = ''; callBack: any; - + // LIFE-CYCLE CALLBACKS: - onLoad () { - cc.game.setFrameRate(63); + onLoad() { + cc.game.setFrameRate(63); this.changeBg(); setTimeout(() => { @@ -64,17 +64,17 @@ export default class SceneManager extends cc.Component { // console.log('成功预加载 HomeScene 场景'); }); }, 1000); - + } - - changeBg(){ + + changeBg() { let number = Math.floor(Math.random() * 8) + 1; const path = 'bg/bg' + number; cc.resources.load(path, cc.SpriteFrame, (err, spriteFrame: cc.SpriteFrame) => { if (err) { console.error('动态加载背景图失败:', err); return; - } + } this.node.getChildByName("Game").getChildByName("bg").getComponent(cc.Sprite).spriteFrame = spriteFrame; }) } @@ -95,7 +95,7 @@ export default class SceneManager extends cc.Component { } setWallPrefabSort() { - const order = ['down', 'downLeft', 'downRight', 'left','right','up','upLeft','upRight']; + const order = ['down', 'downLeft', 'downRight', 'left', 'right', 'up', 'upLeft', 'upRight']; this.Wall_Prefab.sort((a, b) => { const indexA = order.indexOf(a.name); const indexB = order.indexOf(b.name); @@ -103,22 +103,22 @@ export default class SceneManager extends cc.Component { if (indexB === -1) return -1; return indexA - indexB; }); - + } setParticleSort() { const order = ['top', 'bot', 'rig', 'lef']; this.particleEffects.sort((a, b) => { // console.log(a.name.substr(0,3),b.name.substr(0,3)); - const indexA = order.indexOf(a.name.substr(0,3)); - const indexB = order.indexOf(b.name.substr(0,3)); + const indexA = order.indexOf(a.name.substr(0, 3)); + const indexB = order.indexOf(b.name.substr(0, 3)); if (indexA === -1) return 1; if (indexB === -1) return -1; return indexA - indexB; }); } - setSort(){ + setSort() { this.Block_Array.sort((a, b) => { // 从名称中提取数字部分 const numberA = parseInt(a.name.match(/\d+/)?.[0] || '0', 10); @@ -127,11 +127,11 @@ export default class SceneManager extends cc.Component { }); } - start () { + start() { } - startGame(){ + startGame() { cc.director.loadScene("HomeScene", (err) => { if (err) { console.error('加载 HomeScene 场景失败:', err); @@ -143,29 +143,29 @@ export default class SceneManager extends cc.Component { } - returnHome(){ - if(this.node.getChildByName("Pause").getChildByName("btn").getComponent("btnControl")._touch){ - if(MapConroler._instance.gameStart == true){ + returnHome() { + if (this.node.getChildByName("Pause").getChildByName("btn").getComponent("btnControl")._touch) { + if (MapConroler._instance.gameStart == true) { MiniGameSdk.API.showToast("体力值减少"); - cc.fx.GameTool.setUserHealth(-1,(data)=>{ + cc.fx.GameTool.setUserHealth(-1, (data) => { }) let data = { - time:MapConroler._instance.count_Time, - add_Time:MapConroler._instance.add_Time, - result:"give_up" + time: MapConroler._instance.count_Time, + add_Time: MapConroler._instance.add_Time, + result: "give_up" } - cc.fx.GameTool.shushu_Track("finish_stage",data); + 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); + cc.fx.AudioManager._instance.playEffect("zhuan1", null); this.node.getChildByName("zhuanchang").active = true; - this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1,"up",false); + this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false); cc.director.preloadScene("HomeScene", (err, asset) => { if (err) { console.error('动态加载 Prefab 失败:', err); return; } - + }); setTimeout(() => { cc.director.loadScene("HomeScene"); @@ -208,9 +208,9 @@ export default class SceneManager extends cc.Component { }); } - openPause(){ - cc.fx.AudioManager._instance.playEffect("anniu_little",null); - if(this.pause.getComponent("btnControl")._touch){ + openPause() { + 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; MapConroler._instance.pause = true; @@ -218,16 +218,16 @@ export default class SceneManager extends cc.Component { } - closePause(){ - cc.fx.AudioManager._instance.playEffect("anniu_little",null); + closePause() { + cc.fx.AudioManager._instance.playEffect("anniu_little", null); this.pause.getComponent("btnControl").setTouch(true); - this.node.getChildByName("Pause").active = false; - if(MapConroler._instance.node.parent.getChildByName("Ice").active == false){ + this.node.getChildByName("Pause").active = false; + if (MapConroler._instance.node.parent.getChildByName("Ice").active == false) { MapConroler._instance.pause = false; - } + } } - openPropBuy(name){ + openPropBuy(name) { MapConroler._instance.pause = true; this.btnName = name; let propWindow = this.node.getChildByName("Game").getChildByName("propWindow"); @@ -239,35 +239,51 @@ export default class SceneManager extends cc.Component { propWindow.getChildByName(name).active = true; } - clickBtn(){ - cc.fx.AudioManager._instance.playEffect("anniu_Big",null); + clickBtn() { + cc.fx.AudioManager._instance.playEffect("anniu_Big", null); let 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") + if (propWindow.getChildByName("buy_Btn").getComponent("btnControl")._touch) { + propWindow.getChildByName("buy_Btn").getComponent("btnControl").setTouch(false); + if (this.btnName == "freeze") MapConroler._instance.buyFreeze(); - else if(this.btnName == "hammer") + else if (this.btnName == "hammer") MapConroler._instance.buyHammer(); - else if(this.btnName == "magic") + else if (this.btnName == "magic") MapConroler._instance.buyMagic(); } } + //打开商店 + openShop() { + // 加载 shop bundle + cc.assetManager.loadBundle('shop', (err: Error, bundle: cc.AssetManager.Bundle) => { + bundle.load('prefab/shop', cc.Prefab, (err: Error, prefab: cc.Prefab) => { + if (err) { + cc.error(err.message || err); + return; + } + if (prefab) { + const shopNode = cc.instantiate(prefab); + this.node.addChild(shopNode); + console.log("shopNode parent:", shopNode.parent); + } + }); + }); + } - - closePropBuy(){ + closePropBuy() { MapConroler._instance.pause = false; let freezeBtn = MapConroler._instance.node.parent.getChildByName("Bottom").getChildByName("timeBtn"); let hammerBtn = MapConroler._instance.node.parent.getChildByName("Bottom").getChildByName("destroyBtn"); let magicBtn = MapConroler._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); + 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; } - update (dt) { + update(dt) { } } diff --git a/assets/Script/btnControl.ts b/assets/Script/btnControl.ts index 2c7158c..e5a6105 100644 --- a/assets/Script/btnControl.ts +++ b/assets/Script/btnControl.ts @@ -1,9 +1,4 @@ -// 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; diff --git a/assets/TextureBlock/block/AutoAtlas.pac b/assets/TextureBlock/block/AutoAtlas.pac new file mode 100644 index 0000000..56719c9 --- /dev/null +++ b/assets/TextureBlock/block/AutoAtlas.pac @@ -0,0 +1,3 @@ +{ + "__type__": "cc.SpriteAtlas" +} \ No newline at end of file diff --git a/assets/TextureBlock/block/AutoAtlas.pac.meta b/assets/TextureBlock/block/AutoAtlas.pac.meta new file mode 100644 index 0000000..db517bd --- /dev/null +++ b/assets/TextureBlock/block/AutoAtlas.pac.meta @@ -0,0 +1,23 @@ +{ + "ver": "1.2.5", + "uuid": "9df3aaf8-59bc-4eff-aa56-554ab3d4d2cb", + "importer": "auto-atlas", + "maxWidth": 1024, + "maxHeight": 1024, + "padding": 2, + "compressionLevel": 6, + "allowRotation": true, + "forceSquared": false, + "powerOfTwo": false, + "algorithm": "MaxRects", + "format": "png", + "quality": 80, + "contourBleed": true, + "paddingBleed": true, + "filterUnused": true, + "packable": false, + "premultiplyAlpha": false, + "filterMode": "bilinear", + "platformSettings": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/TextureBlock/block/block2.png.meta b/assets/TextureBlock/block/block2.png.meta index e4afe0c..742e11e 100644 --- a/assets/TextureBlock/block/block2.png.meta +++ b/assets/TextureBlock/block/block2.png.meta @@ -9,7 +9,7 @@ "genMipmaps": false, "packable": true, "width": 1847, - "height": 1977, + "height": 1998, "platformSettings": {}, "subMetas": {} } \ No newline at end of file diff --git a/assets/UI/UI/publicUI.png.meta b/assets/UI/UI/publicUI.png.meta index 6488669..9633dc9 100644 --- a/assets/UI/UI/publicUI.png.meta +++ b/assets/UI/UI/publicUI.png.meta @@ -8,8 +8,8 @@ "premultiplyAlpha": false, "genMipmaps": false, "packable": true, - "width": 2047, - "height": 2011, + "width": 2038, + "height": 1972, "platformSettings": {}, "subMetas": {} } \ No newline at end of file diff --git a/assets/UI/UI/set.meta b/assets/UI/UI/set.meta new file mode 100644 index 0000000..e4167ce --- /dev/null +++ b/assets/UI/UI/set.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "c31c74ba-a2b0-4b6f-ac21-5c87b44aea4a", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/UI/UI/set/tiaodik.png b/assets/UI/UI/set/tiaodik.png new file mode 100644 index 0000000..728b78e Binary files /dev/null and b/assets/UI/UI/set/tiaodik.png differ diff --git a/assets/UI/UI/set/tiaodik.png.meta b/assets/UI/UI/set/tiaodik.png.meta new file mode 100644 index 0000000..5e26337 --- /dev/null +++ b/assets/UI/UI/set/tiaodik.png.meta @@ -0,0 +1,38 @@ +{ + "ver": "2.3.7", + "uuid": "fcaa412a-64a2-4cdc-937f-1f4fbc527dfc", + "importer": "texture", + "type": "sprite", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "width": 154, + "height": 598, + "platformSettings": {}, + "subMetas": { + "tiaodik": { + "ver": "1.0.6", + "uuid": "abe182b3-b936-4f20-ba7c-8d2456d35c89", + "importer": "sprite-frame", + "rawTextureUuid": "fcaa412a-64a2-4cdc-937f-1f4fbc527dfc", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 154, + "height": 598, + "rawWidth": 154, + "rawHeight": 598, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/assets/UI/UI/set/闇囧姩00.png b/assets/UI/UI/set/闇囧姩00.png new file mode 100644 index 0000000..db24d6d Binary files /dev/null and b/assets/UI/UI/set/闇囧姩00.png differ diff --git a/assets/UI/UI/set/闇囧姩00.png.meta b/assets/UI/UI/set/闇囧姩00.png.meta new file mode 100644 index 0000000..a38d07f --- /dev/null +++ b/assets/UI/UI/set/闇囧姩00.png.meta @@ -0,0 +1,38 @@ +{ + "ver": "2.3.7", + "uuid": "306b721d-bd6d-4dc2-9c7e-0d42021be3b3", + "importer": "texture", + "type": "sprite", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "width": 116, + "height": 122, + "platformSettings": {}, + "subMetas": { + "闇囧姩00": { + "ver": "1.0.6", + "uuid": "cadd896f-dd2c-43fa-8788-334576768186", + "importer": "sprite-frame", + "rawTextureUuid": "306b721d-bd6d-4dc2-9c7e-0d42021be3b3", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 116, + "height": 122, + "rawWidth": 116, + "rawHeight": 122, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/assets/UI/UI/set/闇囧姩01.png b/assets/UI/UI/set/闇囧姩01.png new file mode 100644 index 0000000..ad7a995 Binary files /dev/null and b/assets/UI/UI/set/闇囧姩01.png differ diff --git a/assets/UI/UI/set/闇囧姩01.png.meta b/assets/UI/UI/set/闇囧姩01.png.meta new file mode 100644 index 0000000..ee5c561 --- /dev/null +++ b/assets/UI/UI/set/闇囧姩01.png.meta @@ -0,0 +1,38 @@ +{ + "ver": "2.3.7", + "uuid": "f8ebdf98-79f3-41fd-8663-8abd3225fa66", + "importer": "texture", + "type": "sprite", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "width": 116, + "height": 122, + "platformSettings": {}, + "subMetas": { + "闇囧姩01": { + "ver": "1.0.6", + "uuid": "6f871c8f-5b0f-4063-a6f6-290947cc7e44", + "importer": "sprite-frame", + "rawTextureUuid": "f8ebdf98-79f3-41fd-8663-8abd3225fa66", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 116, + "height": 122, + "rawWidth": 116, + "rawHeight": 122, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/assets/UI/UI/set/闊充箰00.png b/assets/UI/UI/set/闊充箰00.png new file mode 100644 index 0000000..2151d5e Binary files /dev/null and b/assets/UI/UI/set/闊充箰00.png differ diff --git a/assets/UI/UI/set/闊充箰00.png.meta b/assets/UI/UI/set/闊充箰00.png.meta new file mode 100644 index 0000000..92c901c --- /dev/null +++ b/assets/UI/UI/set/闊充箰00.png.meta @@ -0,0 +1,38 @@ +{ + "ver": "2.3.7", + "uuid": "964de756-e8ea-44b4-9371-ea2af234714a", + "importer": "texture", + "type": "sprite", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "width": 116, + "height": 122, + "platformSettings": {}, + "subMetas": { + "闊充箰00": { + "ver": "1.0.6", + "uuid": "341042f4-0224-41f0-a6a3-91e723dbdce1", + "importer": "sprite-frame", + "rawTextureUuid": "964de756-e8ea-44b4-9371-ea2af234714a", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 116, + "height": 122, + "rawWidth": 116, + "rawHeight": 122, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/assets/UI/UI/set/闊充箰01.png b/assets/UI/UI/set/闊充箰01.png new file mode 100644 index 0000000..3a96861 Binary files /dev/null and b/assets/UI/UI/set/闊充箰01.png differ diff --git a/assets/UI/UI/set/闊充箰01.png.meta b/assets/UI/UI/set/闊充箰01.png.meta new file mode 100644 index 0000000..d934b0f --- /dev/null +++ b/assets/UI/UI/set/闊充箰01.png.meta @@ -0,0 +1,38 @@ +{ + "ver": "2.3.7", + "uuid": "f5f584ca-c27f-40a2-96e6-6bc312eb3c21", + "importer": "texture", + "type": "sprite", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "width": 116, + "height": 122, + "platformSettings": {}, + "subMetas": { + "闊充箰01": { + "ver": "1.0.6", + "uuid": "e6f3c660-cfa7-4368-b36d-609458c5678b", + "importer": "sprite-frame", + "rawTextureUuid": "f5f584ca-c27f-40a2-96e6-6bc312eb3c21", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 116, + "height": 122, + "rawWidth": 116, + "rawHeight": 122, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/assets/UI/UI/set/闊虫晥00.png b/assets/UI/UI/set/闊虫晥00.png new file mode 100644 index 0000000..ae57f5d Binary files /dev/null and b/assets/UI/UI/set/闊虫晥00.png differ diff --git a/assets/UI/UI/set/闊虫晥00.png.meta b/assets/UI/UI/set/闊虫晥00.png.meta new file mode 100644 index 0000000..4a91195 --- /dev/null +++ b/assets/UI/UI/set/闊虫晥00.png.meta @@ -0,0 +1,38 @@ +{ + "ver": "2.3.7", + "uuid": "ea182daa-7a43-48b5-9a08-f20f71980deb", + "importer": "texture", + "type": "sprite", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "width": 116, + "height": 122, + "platformSettings": {}, + "subMetas": { + "闊虫晥00": { + "ver": "1.0.6", + "uuid": "d56be779-2bae-49dd-ade4-41a2154e4f83", + "importer": "sprite-frame", + "rawTextureUuid": "ea182daa-7a43-48b5-9a08-f20f71980deb", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 116, + "height": 122, + "rawWidth": 116, + "rawHeight": 122, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/assets/UI/UI/set/闊虫晥01.png b/assets/UI/UI/set/闊虫晥01.png new file mode 100644 index 0000000..6b42937 Binary files /dev/null and b/assets/UI/UI/set/闊虫晥01.png differ diff --git a/assets/UI/UI/set/闊虫晥01.png.meta b/assets/UI/UI/set/闊虫晥01.png.meta new file mode 100644 index 0000000..8bdfe1f --- /dev/null +++ b/assets/UI/UI/set/闊虫晥01.png.meta @@ -0,0 +1,38 @@ +{ + "ver": "2.3.7", + "uuid": "dfa1190c-5129-4775-b495-d2aca6a3a5bf", + "importer": "texture", + "type": "sprite", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "width": 116, + "height": 122, + "platformSettings": {}, + "subMetas": { + "闊虫晥01": { + "ver": "1.0.6", + "uuid": "8dff3740-d0f0-4fb7-8b47-61acb1349b7a", + "importer": "sprite-frame", + "rawTextureUuid": "dfa1190c-5129-4775-b495-d2aca6a3a5bf", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 116, + "height": 122, + "rawWidth": 116, + "rawHeight": 122, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/assets/animation/set.anim b/assets/animation/set.anim new file mode 100644 index 0000000..c9b23b0 --- /dev/null +++ b/assets/animation/set.anim @@ -0,0 +1,69 @@ +{ + "__type__": "cc.AnimationClip", + "_name": "set", + "_objFlags": 0, + "_native": "", + "_duration": 0.45, + "sample": 60, + "speed": 1, + "wrapMode": 1, + "curveData": { + "paths": { + "shengyin": { + "props": { + "x": [ + { + "frame": 0.15, + "value": 210 + }, + { + "frame": 0.26666666666666666, + "value": 49.411764705882334 + }, + { + "frame": 0.45, + "value": 0 + } + ] + } + }, + "zhendong": { + "props": { + "x": [ + { + "frame": 0, + "value": 210 + }, + { + "frame": 0.11666666666666667, + "value": 23.333333333333336 + }, + { + "frame": 0.3333333333333333, + "value": 0 + } + ] + } + }, + "yinyue": { + "props": { + "x": [ + { + "frame": 0.06666666666666667, + "value": 210 + }, + { + "frame": 0.18333333333333332, + "value": 83.99999999999999 + }, + { + "frame": 0.38333333333333336, + "value": 0 + } + ] + } + } + } + }, + "events": [] +} \ No newline at end of file diff --git a/assets/animation/set.anim.meta b/assets/animation/set.anim.meta new file mode 100644 index 0000000..9c4d021 --- /dev/null +++ b/assets/animation/set.anim.meta @@ -0,0 +1,6 @@ +{ + "ver": "2.1.2", + "uuid": "50c01dd8-431f-43cc-820e-abb2a859d031", + "importer": "animation-clip", + "subMetas": {} +} \ No newline at end of file diff --git a/assets/prefab/map/wall.prefab b/assets/prefab/map/wall.prefab index c624363..37d990f 100644 --- a/assets/prefab/map/wall.prefab +++ b/assets/prefab/map/wall.prefab @@ -236,6 +236,7 @@ "special": 0, "color": 0, "wall_SpriteFrames": null, + "down_SpriteFrames": null, "_id": "" }, { diff --git a/assets/res/font/font.png.meta b/assets/res/font/font.png.meta index 2190bd8..75a10dc 100644 --- a/assets/res/font/font.png.meta +++ b/assets/res/font/font.png.meta @@ -8,8 +8,8 @@ "premultiplyAlpha": false, "genMipmaps": false, "packable": true, - "width": 256, - "height": 1200, + "width": 1549, + "height": 254, "platformSettings": {}, "subMetas": {} } \ No newline at end of file diff --git a/assets/res/texture_Block/down.png.meta b/assets/res/texture_Block/down.png.meta index aaff3e6..b31b1de 100644 --- a/assets/res/texture_Block/down.png.meta +++ b/assets/res/texture_Block/down.png.meta @@ -8,8 +8,8 @@ "premultiplyAlpha": false, "genMipmaps": false, "packable": true, - "width": 2012, - "height": 331, + "width": 986, + "height": 708, "platformSettings": {}, "subMetas": {} } \ No newline at end of file diff --git a/assets/res/texture_Block/freeze.png.meta b/assets/res/texture_Block/freeze.png.meta index 82bd257..75b6ea4 100644 --- a/assets/res/texture_Block/freeze.png.meta +++ b/assets/res/texture_Block/freeze.png.meta @@ -8,8 +8,8 @@ "premultiplyAlpha": false, "genMipmaps": false, "packable": true, - "width": 992, - "height": 1851, + "width": 2009, + "height": 1995, "platformSettings": {}, "subMetas": {} } \ No newline at end of file diff --git a/assets/shop.meta b/assets/shop.meta new file mode 100644 index 0000000..a40b8c3 --- /dev/null +++ b/assets/shop.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "28d9b746-520c-4ddc-95f8-401692d28ffc", + "importer": "folder", + "isBundle": true, + "bundleName": "shop", + "priority": 6, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/shop/img.meta b/assets/shop/img.meta new file mode 100644 index 0000000..131f5f9 --- /dev/null +++ b/assets/shop/img.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "e4b11ec6-5712-4dba-ba33-eb23129e396a", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/shop/img/coin-0.plist b/assets/shop/img/coin-0.plist new file mode 100644 index 0000000..ec4da69 --- /dev/null +++ b/assets/shop/img/coin-0.plist @@ -0,0 +1,128 @@ + + + + +frames + +coins6.png + +frame +{{0,0},{240,182}} +offset +{0,0} +rotated + +sourceColorRect +{{0,0},{240,182}} +sourceSize +{240,182} + +coins5.png + +frame +{{0,183},{231,169}} +offset +{0,0} +rotated + +sourceColorRect +{{0,0},{231,169}} +sourceSize +{231,169} + +coins8.png + +frame +{{241,0},{213,195}} +offset +{0,0} +rotated + +sourceColorRect +{{0,0},{213,195}} +sourceSize +{213,195} + +coins1.png + +frame +{{0,353},{206,141}} +offset +{0,0} +rotated + +sourceColorRect +{{0,0},{206,141}} +sourceSize +{206,141} + +coins7.png + +frame +{{232,214},{185,206}} +offset +{0,0} +rotated + +sourceColorRect +{{0,0},{185,206}} +sourceSize +{185,206} + +coins4.png + +frame +{{437,0},{171,191}} +offset +{0,0} +rotated + +sourceColorRect +{{0,0},{171,191}} +sourceSize +{171,191} + +coins3.png + +frame +{{418,214},{189,165}} +offset +{0,0} +rotated + +sourceColorRect +{{0,0},{189,165}} +sourceSize +{189,165} + +coins2.png + +frame +{{0,495},{163,151}} +offset +{0,0} +rotated + +sourceColorRect +{{0,0},{163,151}} +sourceSize +{163,151} + + +metadata + +format +2 +pixelFormat +RGBA8888 +premultiplyAlpha + +realTextureFileName +coin-0.png +textureFileName +coin-0.png +size +{608,646} + + + diff --git a/assets/shop/img/coin-0.plist.meta b/assets/shop/img/coin-0.plist.meta new file mode 100644 index 0000000..20c4e71 --- /dev/null +++ b/assets/shop/img/coin-0.plist.meta @@ -0,0 +1,197 @@ +{ + "ver": "1.2.6", + "uuid": "7aef6fef-1f14-4aeb-ba2e-3738a437eb63", + "importer": "asset", + "rawTextureUuid": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "size": { + "width": 608, + "height": 646 + }, + "type": "Texture Packer", + "subMetas": { + "coins6.png": { + "ver": "1.0.6", + "uuid": "be3accec-ceea-4b09-af1d-982fcd3879e8", + "importer": "sprite-frame", + "rawTextureUuid": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "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, + "spriteType": "normal", + "subMetas": {} + }, + "coins5.png": { + "ver": "1.0.6", + "uuid": "319350a2-b9b5-4967-aab8-0e192088a665", + "importer": "sprite-frame", + "rawTextureUuid": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 183, + "width": 231, + "height": 169, + "rawWidth": 231, + "rawHeight": 169, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "coins8.png": { + "ver": "1.0.6", + "uuid": "67ab3632-96c7-4db0-b1d9-1dcf80e62ce4", + "importer": "sprite-frame", + "rawTextureUuid": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 241, + "trimY": 0, + "width": 213, + "height": 195, + "rawWidth": 213, + "rawHeight": 195, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "coins1.png": { + "ver": "1.0.6", + "uuid": "c725d7a9-6d3f-481d-8dbc-dcd5fa68db99", + "importer": "sprite-frame", + "rawTextureUuid": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 353, + "width": 206, + "height": 141, + "rawWidth": 206, + "rawHeight": 141, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "coins7.png": { + "ver": "1.0.6", + "uuid": "25612630-24db-43ef-a7a9-0a56c98dc21e", + "importer": "sprite-frame", + "rawTextureUuid": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 232, + "trimY": 214, + "width": 185, + "height": 206, + "rawWidth": 185, + "rawHeight": 206, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "coins4.png": { + "ver": "1.0.6", + "uuid": "927ccbda-a1dc-4ee0-a38a-a3ab66e81d9f", + "importer": "sprite-frame", + "rawTextureUuid": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 437, + "trimY": 0, + "width": 171, + "height": 191, + "rawWidth": 171, + "rawHeight": 191, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "coins3.png": { + "ver": "1.0.6", + "uuid": "cfa73259-f87a-4e91-b391-96f0f0872993", + "importer": "sprite-frame", + "rawTextureUuid": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 418, + "trimY": 214, + "width": 189, + "height": 165, + "rawWidth": 189, + "rawHeight": 165, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "coins2.png": { + "ver": "1.0.6", + "uuid": "d5b945ef-6a0b-46b0-8a2a-51581517d407", + "importer": "sprite-frame", + "rawTextureUuid": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 495, + "width": 163, + "height": 151, + "rawWidth": 163, + "rawHeight": 151, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/assets/shop/img/coin-0.png b/assets/shop/img/coin-0.png new file mode 100644 index 0000000..4aaa0a0 Binary files /dev/null and b/assets/shop/img/coin-0.png differ diff --git a/assets/shop/img/coin-0.png.meta b/assets/shop/img/coin-0.png.meta new file mode 100644 index 0000000..e278b59 --- /dev/null +++ b/assets/shop/img/coin-0.png.meta @@ -0,0 +1,15 @@ +{ + "ver": "2.3.7", + "uuid": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "importer": "texture", + "type": "raw", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "width": 608, + "height": 646, + "platformSettings": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/shop/img/coins_sz0.png b/assets/shop/img/coins_sz0.png new file mode 100644 index 0000000..4dd7f80 Binary files /dev/null and b/assets/shop/img/coins_sz0.png differ diff --git a/assets/shop/img/coins_sz0.png.meta b/assets/shop/img/coins_sz0.png.meta new file mode 100644 index 0000000..550ef7a --- /dev/null +++ b/assets/shop/img/coins_sz0.png.meta @@ -0,0 +1,38 @@ +{ + "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": "48980365-90cf-4473-a3a1-9a24c319ade3", + "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 new file mode 100644 index 0000000..ed5170f Binary files /dev/null and b/assets/shop/img/coins_sz1.png differ diff --git a/assets/shop/img/coins_sz1.png.meta b/assets/shop/img/coins_sz1.png.meta new file mode 100644 index 0000000..a8d576c --- /dev/null +++ b/assets/shop/img/coins_sz1.png.meta @@ -0,0 +1,38 @@ +{ + "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": "adf8c904-5cf8-473c-bb84-fc8d34231c5e", + "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 new file mode 100644 index 0000000..4f86ef7 Binary files /dev/null and b/assets/shop/img/coins_sz10.png differ diff --git a/assets/shop/img/coins_sz10.png.meta b/assets/shop/img/coins_sz10.png.meta new file mode 100644 index 0000000..f8292a5 --- /dev/null +++ b/assets/shop/img/coins_sz10.png.meta @@ -0,0 +1,38 @@ +{ + "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": "f7af558f-2dec-4cc5-8c41-ea9802ca48d1", + "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 new file mode 100644 index 0000000..9e64d57 Binary files /dev/null and b/assets/shop/img/coins_sz11.png differ diff --git a/assets/shop/img/coins_sz11.png.meta b/assets/shop/img/coins_sz11.png.meta new file mode 100644 index 0000000..58981cc --- /dev/null +++ b/assets/shop/img/coins_sz11.png.meta @@ -0,0 +1,38 @@ +{ + "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": "6ede9adc-b6cd-470c-84d8-ce11efce7ff5", + "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 new file mode 100644 index 0000000..afaf23f Binary files /dev/null and b/assets/shop/img/coins_sz12.png differ diff --git a/assets/shop/img/coins_sz12.png.meta b/assets/shop/img/coins_sz12.png.meta new file mode 100644 index 0000000..2ae349d --- /dev/null +++ b/assets/shop/img/coins_sz12.png.meta @@ -0,0 +1,38 @@ +{ + "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": "eaafa373-6457-4f01-9ab1-bc6fa92a1055", + "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 new file mode 100644 index 0000000..582718b Binary files /dev/null and b/assets/shop/img/coins_sz13.png differ diff --git a/assets/shop/img/coins_sz13.png.meta b/assets/shop/img/coins_sz13.png.meta new file mode 100644 index 0000000..b70a438 --- /dev/null +++ b/assets/shop/img/coins_sz13.png.meta @@ -0,0 +1,38 @@ +{ + "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": "afcb3489-a773-4e2a-94ee-8ddfb7b82621", + "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 new file mode 100644 index 0000000..10c8078 Binary files /dev/null and b/assets/shop/img/coins_sz2.png differ diff --git a/assets/shop/img/coins_sz2.png.meta b/assets/shop/img/coins_sz2.png.meta new file mode 100644 index 0000000..fbf2f05 --- /dev/null +++ b/assets/shop/img/coins_sz2.png.meta @@ -0,0 +1,38 @@ +{ + "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": "7ef619f2-0732-42d5-b6ff-0811a5ef6779", + "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 new file mode 100644 index 0000000..e099815 Binary files /dev/null and b/assets/shop/img/coins_sz3.png differ diff --git a/assets/shop/img/coins_sz3.png.meta b/assets/shop/img/coins_sz3.png.meta new file mode 100644 index 0000000..e1b9097 --- /dev/null +++ b/assets/shop/img/coins_sz3.png.meta @@ -0,0 +1,38 @@ +{ + "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": "59fd0e78-3b3c-4b59-b077-67aa8a039a7c", + "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 new file mode 100644 index 0000000..813ab17 Binary files /dev/null and b/assets/shop/img/coins_sz4.png differ diff --git a/assets/shop/img/coins_sz4.png.meta b/assets/shop/img/coins_sz4.png.meta new file mode 100644 index 0000000..b9e06e5 --- /dev/null +++ b/assets/shop/img/coins_sz4.png.meta @@ -0,0 +1,38 @@ +{ + "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": "99e903c5-6d68-487a-86cd-c37e798c7550", + "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 new file mode 100644 index 0000000..9267310 Binary files /dev/null and b/assets/shop/img/coins_sz5.png differ diff --git a/assets/shop/img/coins_sz5.png.meta b/assets/shop/img/coins_sz5.png.meta new file mode 100644 index 0000000..dc644f0 --- /dev/null +++ b/assets/shop/img/coins_sz5.png.meta @@ -0,0 +1,38 @@ +{ + "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": "c3253224-ec4b-44d2-9def-74df957c47b4", + "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 new file mode 100644 index 0000000..b910d08 Binary files /dev/null and b/assets/shop/img/coins_sz6.png differ diff --git a/assets/shop/img/coins_sz6.png.meta b/assets/shop/img/coins_sz6.png.meta new file mode 100644 index 0000000..55ebfdc --- /dev/null +++ b/assets/shop/img/coins_sz6.png.meta @@ -0,0 +1,38 @@ +{ + "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": "e4e164e2-1df8-4177-983b-46399fca88ec", + "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 new file mode 100644 index 0000000..59ec4ee Binary files /dev/null and b/assets/shop/img/coins_sz7.png differ diff --git a/assets/shop/img/coins_sz7.png.meta b/assets/shop/img/coins_sz7.png.meta new file mode 100644 index 0000000..c8c92e6 --- /dev/null +++ b/assets/shop/img/coins_sz7.png.meta @@ -0,0 +1,38 @@ +{ + "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": "c811b5c4-066b-4453-b11a-03486ab423fc", + "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 new file mode 100644 index 0000000..451bab2 Binary files /dev/null and b/assets/shop/img/coins_sz8.png differ diff --git a/assets/shop/img/coins_sz8.png.meta b/assets/shop/img/coins_sz8.png.meta new file mode 100644 index 0000000..d665ed0 --- /dev/null +++ b/assets/shop/img/coins_sz8.png.meta @@ -0,0 +1,38 @@ +{ + "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": "9c283cba-2471-4e6d-923d-b74575b68dbc", + "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 new file mode 100644 index 0000000..8a3f27b Binary files /dev/null and b/assets/shop/img/coins_sz9.png differ diff --git a/assets/shop/img/coins_sz9.png.meta b/assets/shop/img/coins_sz9.png.meta new file mode 100644 index 0000000..874aa01 --- /dev/null +++ b/assets/shop/img/coins_sz9.png.meta @@ -0,0 +1,38 @@ +{ + "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": "e338b14d-e1c9-4505-82fd-13cc88d15f9e", + "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 new file mode 100644 index 0000000..94fb8f1 Binary files /dev/null and b/assets/shop/img/cost_0.png differ diff --git a/assets/shop/img/cost_0.png.meta b/assets/shop/img/cost_0.png.meta new file mode 100644 index 0000000..aa0c4ab --- /dev/null +++ b/assets/shop/img/cost_0.png.meta @@ -0,0 +1,38 @@ +{ + "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": "b1b9c0be-4f7a-4c8f-99cb-99aa2a5fad7a", + "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 new file mode 100644 index 0000000..888697a Binary files /dev/null and b/assets/shop/img/cost_1.png differ diff --git a/assets/shop/img/cost_1.png.meta b/assets/shop/img/cost_1.png.meta new file mode 100644 index 0000000..f9db6b3 --- /dev/null +++ b/assets/shop/img/cost_1.png.meta @@ -0,0 +1,38 @@ +{ + "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": "556d8e60-f9a8-46a7-b79e-3993bcd65a45", + "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 new file mode 100644 index 0000000..996c752 Binary files /dev/null and b/assets/shop/img/cost_10.png differ diff --git a/assets/shop/img/cost_10.png.meta b/assets/shop/img/cost_10.png.meta new file mode 100644 index 0000000..1427cc2 --- /dev/null +++ b/assets/shop/img/cost_10.png.meta @@ -0,0 +1,38 @@ +{ + "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": "f1028c3f-7467-4079-94f7-b7d77662c91f", + "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 new file mode 100644 index 0000000..c94027b Binary files /dev/null and b/assets/shop/img/cost_11.png differ diff --git a/assets/shop/img/cost_11.png.meta b/assets/shop/img/cost_11.png.meta new file mode 100644 index 0000000..1ddf491 --- /dev/null +++ b/assets/shop/img/cost_11.png.meta @@ -0,0 +1,38 @@ +{ + "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": "6a23b7d1-bd37-43ad-8142-cf277520ea21", + "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 new file mode 100644 index 0000000..e9a71ad Binary files /dev/null and b/assets/shop/img/cost_2.png differ diff --git a/assets/shop/img/cost_2.png.meta b/assets/shop/img/cost_2.png.meta new file mode 100644 index 0000000..810792d --- /dev/null +++ b/assets/shop/img/cost_2.png.meta @@ -0,0 +1,38 @@ +{ + "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": "de943f06-3742-460c-8d8f-0b03bd071100", + "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 new file mode 100644 index 0000000..43e732d Binary files /dev/null and b/assets/shop/img/cost_3.png differ diff --git a/assets/shop/img/cost_3.png.meta b/assets/shop/img/cost_3.png.meta new file mode 100644 index 0000000..ca0083c --- /dev/null +++ b/assets/shop/img/cost_3.png.meta @@ -0,0 +1,38 @@ +{ + "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": "85261a34-8be8-435c-8c78-9207d5e6322e", + "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 new file mode 100644 index 0000000..d14a9dd Binary files /dev/null and b/assets/shop/img/cost_4.png differ diff --git a/assets/shop/img/cost_4.png.meta b/assets/shop/img/cost_4.png.meta new file mode 100644 index 0000000..7e3578d --- /dev/null +++ b/assets/shop/img/cost_4.png.meta @@ -0,0 +1,38 @@ +{ + "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": "6f5e14e5-bcc4-4db3-8072-b6fe96d91c87", + "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 new file mode 100644 index 0000000..f17b20c Binary files /dev/null and b/assets/shop/img/cost_5.png differ diff --git a/assets/shop/img/cost_5.png.meta b/assets/shop/img/cost_5.png.meta new file mode 100644 index 0000000..df2c04b --- /dev/null +++ b/assets/shop/img/cost_5.png.meta @@ -0,0 +1,38 @@ +{ + "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": "23ac2edd-38a4-4669-94dd-422bc2eb89df", + "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 new file mode 100644 index 0000000..36fb196 Binary files /dev/null and b/assets/shop/img/cost_6.png differ diff --git a/assets/shop/img/cost_6.png.meta b/assets/shop/img/cost_6.png.meta new file mode 100644 index 0000000..f38c4ef --- /dev/null +++ b/assets/shop/img/cost_6.png.meta @@ -0,0 +1,38 @@ +{ + "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": "1331d313-a78d-461e-abbc-2ffff9e1db1f", + "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 new file mode 100644 index 0000000..8ceee8e Binary files /dev/null and b/assets/shop/img/cost_7.png differ diff --git a/assets/shop/img/cost_7.png.meta b/assets/shop/img/cost_7.png.meta new file mode 100644 index 0000000..aa0569d --- /dev/null +++ b/assets/shop/img/cost_7.png.meta @@ -0,0 +1,38 @@ +{ + "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": "32fa0a07-ae4e-48f7-91dd-46ffb8620739", + "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 new file mode 100644 index 0000000..2ac6b72 Binary files /dev/null and b/assets/shop/img/cost_8.png differ diff --git a/assets/shop/img/cost_8.png.meta b/assets/shop/img/cost_8.png.meta new file mode 100644 index 0000000..5959d99 --- /dev/null +++ b/assets/shop/img/cost_8.png.meta @@ -0,0 +1,38 @@ +{ + "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": "cd39387b-1159-4712-8c61-f004be89fb80", + "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 new file mode 100644 index 0000000..3d3e670 Binary files /dev/null and b/assets/shop/img/cost_9.png differ diff --git a/assets/shop/img/cost_9.png.meta b/assets/shop/img/cost_9.png.meta new file mode 100644 index 0000000..da6776d --- /dev/null +++ b/assets/shop/img/cost_9.png.meta @@ -0,0 +1,38 @@ +{ + "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": "e83c98d2-86c2-4cfd-8be8-77e11e9dca04", + "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 new file mode 100644 index 0000000..2ac1814 Binary files /dev/null and b/assets/shop/img/cost_yuan.png differ diff --git a/assets/shop/img/cost_yuan.png.meta b/assets/shop/img/cost_yuan.png.meta new file mode 100644 index 0000000..52b0da9 --- /dev/null +++ b/assets/shop/img/cost_yuan.png.meta @@ -0,0 +1,38 @@ +{ + "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": "ed52ffde-cd70-4093-befc-350b89c5692e", + "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/texture_atlas-0.plist b/assets/shop/img/texture_atlas-0.plist new file mode 100644 index 0000000..4ed6f8c --- /dev/null +++ b/assets/shop/img/texture_atlas-0.plist @@ -0,0 +1,37 @@ + + + + +frames + +shop_2.jpg + +frame +{{0,0},{1080,2340}} +offset +{0,0} +rotated + +sourceColorRect +{{0,0},{1080,2340}} +sourceSize +{1080,2340} + + +metadata + +format +2 +pixelFormat +RGBA8888 +premultiplyAlpha + +realTextureFileName +texture_atlas-0.png +textureFileName +texture_atlas-0.png +size +{1080,2340} + + + diff --git a/assets/shop/img/texture_atlas-0.plist.meta b/assets/shop/img/texture_atlas-0.plist.meta new file mode 100644 index 0000000..e9637df --- /dev/null +++ b/assets/shop/img/texture_atlas-0.plist.meta @@ -0,0 +1,36 @@ +{ + "ver": "1.2.6", + "uuid": "ad450c22-24c1-4352-a09f-151cb9f3ab8a", + "importer": "asset", + "rawTextureUuid": "267f6a1d-6833-4412-9b85-df929fcb2d9d", + "size": { + "width": 1080, + "height": 2340 + }, + "type": "Texture Packer", + "subMetas": { + "shop_2.jpg": { + "ver": "1.0.6", + "uuid": "24a3a948-d370-492b-a604-772db3e9092d", + "importer": "sprite-frame", + "rawTextureUuid": "267f6a1d-6833-4412-9b85-df929fcb2d9d", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 1080, + "height": 2340, + "rawWidth": 1080, + "rawHeight": 2340, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/assets/shop/img/texture_atlas-0.png b/assets/shop/img/texture_atlas-0.png new file mode 100644 index 0000000..a0b91a6 Binary files /dev/null and b/assets/shop/img/texture_atlas-0.png differ diff --git a/assets/shop/img/texture_atlas-0.png.meta b/assets/shop/img/texture_atlas-0.png.meta new file mode 100644 index 0000000..d438d7d --- /dev/null +++ b/assets/shop/img/texture_atlas-0.png.meta @@ -0,0 +1,15 @@ +{ + "ver": "2.3.7", + "uuid": "267f6a1d-6833-4412-9b85-df929fcb2d9d", + "importer": "texture", + "type": "raw", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "width": 1080, + "height": 2340, + "platformSettings": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/shop/img/texture_atlas-1.plist b/assets/shop/img/texture_atlas-1.plist new file mode 100644 index 0000000..2549010 --- /dev/null +++ b/assets/shop/img/texture_atlas-1.plist @@ -0,0 +1,89 @@ + + + + +frames + +shop_1.png + +frame +{{0,0},{1080,436}} +offset +{0,0} +rotated + +sourceColorRect +{{0,0},{1080,436}} +sourceSize +{1080,436} + +txt1.png + +frame +{{0,437},{907,62}} +offset +{0,0} +rotated + +sourceColorRect +{{0,0},{907,62}} +sourceSize +{907,62} + +btn1.png + +frame +{{0,500},{99,531}} +offset +{0,0} +rotated + +sourceColorRect +{{0,0},{99,531}} +sourceSize +{99,531} + +coins_di.png + +frame +{{0,600},{327,454}} +offset +{0,0} +rotated + +sourceColorRect +{{0,0},{327,454}} +sourceSize +{327,454} + +tx.png + +frame +{{455,600},{188,207}} +offset +{0,0} +rotated + +sourceColorRect +{{0,0},{188,207}} +sourceSize +{188,207} + + +metadata + +format +2 +pixelFormat +RGBA8888 +premultiplyAlpha + +realTextureFileName +texture_atlas-1.png +textureFileName +texture_atlas-1.png +size +{1080,927} + + + diff --git a/assets/shop/img/texture_atlas-1.plist.meta b/assets/shop/img/texture_atlas-1.plist.meta new file mode 100644 index 0000000..716a8e8 --- /dev/null +++ b/assets/shop/img/texture_atlas-1.plist.meta @@ -0,0 +1,128 @@ +{ + "ver": "1.2.6", + "uuid": "47589a11-b9e5-45cb-b50d-398e1e8b3843", + "importer": "asset", + "rawTextureUuid": "779cfcd5-4697-4641-83eb-340dd9bc5986", + "size": { + "width": 1080, + "height": 927 + }, + "type": "Texture Packer", + "subMetas": { + "shop_1.png": { + "ver": "1.0.6", + "uuid": "9745d59d-e668-40ca-a540-c4ee007a9b8b", + "importer": "sprite-frame", + "rawTextureUuid": "779cfcd5-4697-4641-83eb-340dd9bc5986", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 1080, + "height": 436, + "rawWidth": 1080, + "rawHeight": 436, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "txt1.png": { + "ver": "1.0.6", + "uuid": "760f4de0-8da0-4f0a-b3cb-5b6fe8b0b611", + "importer": "sprite-frame", + "rawTextureUuid": "779cfcd5-4697-4641-83eb-340dd9bc5986", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 437, + "width": 907, + "height": 62, + "rawWidth": 907, + "rawHeight": 62, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "btn1.png": { + "ver": "1.0.6", + "uuid": "a278a94d-ca26-4f4b-83fb-5d1058d39304", + "importer": "sprite-frame", + "rawTextureUuid": "779cfcd5-4697-4641-83eb-340dd9bc5986", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 500, + "width": 99, + "height": 531, + "rawWidth": 99, + "rawHeight": 531, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "coins_di.png": { + "ver": "1.0.6", + "uuid": "b07b3564-ce23-49f8-9891-2001cb80a72a", + "importer": "sprite-frame", + "rawTextureUuid": "779cfcd5-4697-4641-83eb-340dd9bc5986", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 600, + "width": 327, + "height": 454, + "rawWidth": 327, + "rawHeight": 454, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "tx.png": { + "ver": "1.0.6", + "uuid": "b2bc9ecc-be9e-42f3-abe3-8d684cdc362a", + "importer": "sprite-frame", + "rawTextureUuid": "779cfcd5-4697-4641-83eb-340dd9bc5986", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 455, + "trimY": 600, + "width": 188, + "height": 207, + "rawWidth": 188, + "rawHeight": 207, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/assets/shop/img/texture_atlas-1.png b/assets/shop/img/texture_atlas-1.png new file mode 100644 index 0000000..5094c04 Binary files /dev/null and b/assets/shop/img/texture_atlas-1.png differ diff --git a/assets/shop/img/texture_atlas-1.png.meta b/assets/shop/img/texture_atlas-1.png.meta new file mode 100644 index 0000000..c991a36 --- /dev/null +++ b/assets/shop/img/texture_atlas-1.png.meta @@ -0,0 +1,15 @@ +{ + "ver": "2.3.7", + "uuid": "779cfcd5-4697-4641-83eb-340dd9bc5986", + "importer": "texture", + "type": "raw", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "width": 1080, + "height": 927, + "platformSettings": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/shop/img/txt2.png b/assets/shop/img/txt2.png new file mode 100644 index 0000000..9c71eaa Binary files /dev/null and b/assets/shop/img/txt2.png differ diff --git a/assets/shop/img/txt2.png.meta b/assets/shop/img/txt2.png.meta new file mode 100644 index 0000000..742bc1f --- /dev/null +++ b/assets/shop/img/txt2.png.meta @@ -0,0 +1,38 @@ +{ + "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": "ddc9da1a-c580-42d3-9b11-cb8e4356e9ea", + "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/img/鍟嗗煄.jpg b/assets/shop/img/鍟嗗煄.jpg new file mode 100644 index 0000000..c48cb2c Binary files /dev/null and b/assets/shop/img/鍟嗗煄.jpg differ diff --git a/assets/shop/img/鍟嗗煄.jpg.meta b/assets/shop/img/鍟嗗煄.jpg.meta new file mode 100644 index 0000000..45ca437 --- /dev/null +++ b/assets/shop/img/鍟嗗煄.jpg.meta @@ -0,0 +1,38 @@ +{ + "ver": "2.3.7", + "uuid": "d8bf615a-752c-47ba-84e3-8ef47d9c4de1", + "importer": "texture", + "type": "sprite", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "width": 1080, + "height": 2340, + "platformSettings": {}, + "subMetas": { + "鍟嗗煄": { + "ver": "1.0.6", + "uuid": "e5988eaf-bd0d-45a7-811e-6a186c615794", + "importer": "sprite-frame", + "rawTextureUuid": "d8bf615a-752c-47ba-84e3-8ef47d9c4de1", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 1080, + "height": 2340, + "rawWidth": 1080, + "rawHeight": 2340, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/assets/shop/prefab.meta b/assets/shop/prefab.meta new file mode 100644 index 0000000..012740a --- /dev/null +++ b/assets/shop/prefab.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "ac030bb2-163b-4609-8553-0d6e7e662d03", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/shop/prefab/Tops.prefab b/assets/shop/prefab/Tops.prefab new file mode 100644 index 0000000..78dc9b8 --- /dev/null +++ b/assets/shop/prefab/Tops.prefab @@ -0,0 +1,2066 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "Tops", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + }, + { + "__id__": 26 + }, + { + "__id__": 40 + }, + { + "__id__": 44 + }, + { + "__id__": 48 + } + ], + "_active": true, + "_components": [ + { + "__id__": 51 + } + ], + "_prefab": { + "__id__": 52 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 750, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 180, + "height": 180 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -418.15, + -85.399, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "e21bf9e2-2981-4ab4-8d7a-b3f339a27122" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "0ecmfC4WtDwqw2va1D+ynr", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Stamina", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 6 + }, + { + "__id__": 9 + }, + { + "__id__": 12 + }, + { + "__id__": 15 + }, + { + "__id__": 18 + }, + { + "__id__": 20 + } + ], + "_active": true, + "_components": [ + { + "__id__": 23 + } + ], + "_prefab": { + "__id__": 25 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 350, + "height": 150 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -102.46, + -87.107, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 7 + } + ], + "_prefab": { + "__id__": 8 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 382, + "height": 85 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c3063f58-52e1-4552-8660-fe0b4fbc6036" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "5evpf3XnRFl4bf4j4Jvb9p", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 10 + } + ], + "_prefab": { + "__id__": 11 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 63, + "height": 56 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -120.21, + -1.322, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 9 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c00afd58-6ef6-4674-a68a-373015c8d376" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "cfoolKUm9N2rxBCXcTxZd8", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 13 + } + ], + "_prefab": { + "__id__": 14 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 70, + "height": 69 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 147.114, + 0.31, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 12 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d13e982d-fed1-454a-b4c4-c92e5bbdfd2d" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "4f7MYNKJRBGI3DZ3YVEmnu", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "man", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 16 + } + ], + "_prefab": { + "__id__": 17 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 94, + "height": 47 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -1.951, + 0.13, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 15 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "24643945-c61a-4dce-b2c0-6de0c11ae435" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "501HcOv3tMGrMa3gn6MLBK", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "health", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": false, + "_components": [], + "_prefab": { + "__id__": 19 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -61.628, + 1.821, + 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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "adarAr3llA0KcGLWo+aVAz", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "time", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 21 + } + ], + "_prefab": { + "__id__": 22 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 109, + "g": 70, + "b": 70, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100.1, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 72.788, + -4.433, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "00:00", + "_N$string": "00:00", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 0, + "_N$verticalAlign": 0, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "caitorOWtAQZn2KcRo0mY1", + "sync": false + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + { + "__id__": 24 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 5 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "1dc93b4fehOrpGgTkihBH4g", + "handler": "openStamina", + "customEventData": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "4dAhGM2V1E/Jm8L7wckigH", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Coin", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 27 + }, + { + "__id__": 30 + }, + { + "__id__": 33 + }, + { + "__id__": 36 + } + ], + "_active": true, + "_components": [ + { + "__id__": 38 + } + ], + "_prefab": { + "__id__": 39 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 350, + "height": 150 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 315.081, + -87.107, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 26 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 28 + } + ], + "_prefab": { + "__id__": 29 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 382, + "height": 85 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 27 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c3063f58-52e1-4552-8660-fe0b4fbc6036" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "03aHGNRx1GupkH/aVgJR0/", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 26 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 31 + } + ], + "_prefab": { + "__id__": 32 + }, + "_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": [ + -120.21, + -1.322, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 30 + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "ceQLVElcpCBbMZcwQekYo3", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 26 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 34 + } + ], + "_prefab": { + "__id__": 35 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 70, + "height": 69 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 147.114, + 0.31, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 33 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d13e982d-fed1-454a-b4c4-c92e5bbdfd2d" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d9YjiO+mBJj4kU8RxiAudy", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Coin", + "_objFlags": 0, + "_parent": { + "__id__": 26 + }, + "_children": [], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 37 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 200, + "height": 200 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -0.255, + 1.584, + 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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "eeQeilstBGN4djR+E7PkAO", + "sync": false + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 26 + }, + "_enabled": false, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + null + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 26 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "03ouFAX6JG25+CStgsS95/", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 41 + }, + { + "__id__": 42 + } + ], + "_prefab": { + "__id__": 43 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 168, + "height": 191 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 408.004, + -588.064, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 40 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "213d54e8-9413-40dd-a7be-bf0e40c4757e" + }, + "_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": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 40 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + null + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 40 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "7fdgju7V1F/pmbeJylhKgt", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 45 + }, + { + "__id__": 46 + } + ], + "_prefab": { + "__id__": 47 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 168, + "height": 191 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 408.622, + -334.976, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 44 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "43614b1f-b917-4fa8-a281-9fcc6985e35c" + }, + "_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": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 44 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + null + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 44 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "3eyPqqPUZMbKgcBeW3zhi9", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 49 + } + ], + "_prefab": { + "__id__": 50 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 731, + "height": 946 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -418.15, + -86.088, + 0, + 0, + 0, + 0, + 1, + 0.15, + 0.15, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 48 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "46896dd3-d3de-4947-b2dd-eb2b1b69bef1" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "c6PEBTZt1L2ZQgBb7yEBo+", + "sync": false + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 1, + "_left": 0, + "_right": 0, + "_top": 210, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/assets/shop/prefab/Tops.prefab.meta b/assets/shop/prefab/Tops.prefab.meta new file mode 100644 index 0000000..9aeb362 --- /dev/null +++ b/assets/shop/prefab/Tops.prefab.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.3.2", + "uuid": "4466b8d6-b468-4cb5-bc57-7a2bd3df12e4", + "importer": "prefab", + "optimizationPolicy": "AUTO", + "asyncLoadAssets": false, + "readonly": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/shop/prefab/item.prefab b/assets/shop/prefab/item.prefab new file mode 100644 index 0000000..fcbb449 --- /dev/null +++ b/assets/shop/prefab/item.prefab @@ -0,0 +1,658 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + }, + { + "__id__": 8 + } + ], + "_active": true, + "_components": [ + { + "__id__": 12 + }, + { + "__id__": 13 + }, + { + "__id__": 15 + }, + { + "__id__": 16 + } + ], + "_prefab": { + "__id__": 18 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8cdb44ac-a3f6-449f-b354-7cd48cf84061" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 6 + } + ], + "_prefab": { + "__id__": 7 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 106.74, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "100元", + "_N$string": "100元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 9 + }, + { + "__id__": 10 + } + ], + "_prefab": { + "__id__": 11 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 110.74, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "450万", + "_N$string": "450万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 14 + } + ], + "_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__": 1 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 1 + }, + "component": "", + "_componentId": "de906iE/HVHpI6VO7IMvKaI", + "handler": "buyProp", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 17 + } + ], + "_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": "" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 1 + }, + "component": "", + "_componentId": "de906iE/HVHpI6VO7IMvKaI", + "handler": "", + "customEventData": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/assets/shop/prefab/item.prefab.meta b/assets/shop/prefab/item.prefab.meta new file mode 100644 index 0000000..3abfcd1 --- /dev/null +++ b/assets/shop/prefab/item.prefab.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.3.2", + "uuid": "a81d74d9-943b-4d0e-aad5-2999276d3447", + "importer": "prefab", + "optimizationPolicy": "AUTO", + "asyncLoadAssets": false, + "readonly": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/shop/prefab/shop.prefab b/assets/shop/prefab/shop.prefab new file mode 100644 index 0000000..04e4ee6 --- /dev/null +++ b/assets/shop/prefab/shop.prefab @@ -0,0 +1,7763 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "shop", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 6 + }, + { + "__id__": 10 + }, + { + "__id__": 14 + }, + { + "__id__": 20 + }, + { + "__id__": 27 + }, + { + "__id__": 48 + }, + { + "__id__": 62 + }, + { + "__id__": 208 + }, + { + "__id__": 212 + } + ], + "_active": true, + "_components": [ + { + "__id__": 216 + } + ], + "_prefab": { + "__id__": 217 + }, + "_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": "" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + }, + { + "__id__": 4 + } + ], + "_prefab": { + "__id__": 5 + }, + "_opacity": 150, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 2340 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.BlockInputEvents", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "37yYMxbm9Ch6mSwwX/Tozs", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "shop_2", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 7 + }, + { + "__id__": 8 + } + ], + "_prefab": { + "__id__": 9 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 2340 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "24a3a948-d370-492b-a604-772db3e9092d" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "ad450c22-24c1-4352-a09f-151cb9f3ab8a" + }, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "alignMode": 1, + "_target": { + "__id__": 1 + }, + "_alignFlags": 45, + "_left": 0, + "_right": 0, + "_top": -210, + "_bottom": -210, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 1080, + "_originalHeight": 2340, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d7kf1rnZdB6KTrT4E+bvIo", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "shop_1", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 11 + }, + { + "__id__": 12 + } + ], + "_prefab": { + "__id__": 13 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 436 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 949.9650000000001, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "9745d59d-e668-40ca-a540-c4ee007a9b8b" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "alignMode": 1, + "_target": { + "__id__": 1 + }, + "_alignFlags": 41, + "_left": 0, + "_right": 0, + "_top": -207.96500000000003, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 1080, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "90DrGs6xtHo4tHMIZiqLcb", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "btn1", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 15 + }, + { + "__id__": 16 + }, + { + "__id__": 17 + } + ], + "_prefab": { + "__id__": 19 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 99, + "height": 531 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 466.1360000000001, + 909.3890000000001, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a278a94d-ca26-4f4b-83fb-5d1058d39304" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "alignMode": 1, + "_target": { + "__id__": 1 + }, + "_alignFlags": 33, + "_left": 0, + "_right": 24.36399999999992, + "_top": -214.889, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 18 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 14 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 1 + }, + "component": "", + "_componentId": "48bfeZuYFZE2qmgxbW2IigB", + "handler": "closeShop", + "customEventData": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "a2ox7Ov9ZOB6iBpRQMSCCo", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "tx", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 21 + } + ], + "_active": true, + "_components": [ + { + "__id__": 24 + }, + { + "__id__": 25 + } + ], + "_prefab": { + "__id__": 26 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 188, + "height": 207 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -396.283, + 792.312, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 20 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 22 + } + ], + "_prefab": { + "__id__": 23 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 731, + "height": 946 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 7.769, + 0, + 0, + 0, + 0, + 1, + 0.15, + 0.15, + 0.15 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 21 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "46896dd3-d3de-4947-b2dd-eb2b1b69bef1" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d0cu9Nk4dKAZm9+TEr1h++", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b2bc9ecc-be9e-42f3-abe3-8d684cdc362a" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "alignMode": 1, + "_target": { + "__id__": 1 + }, + "_alignFlags": 9, + "_left": 49.716999999999985, + "_right": 327.573, + "_top": 64.18799999999999, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 188, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "3ckQl/Tq5GbrsTP7UO38K3", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Stamina", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 28 + }, + { + "__id__": 31 + }, + { + "__id__": 34 + }, + { + "__id__": 37 + }, + { + "__id__": 40 + }, + { + "__id__": 42 + } + ], + "_active": true, + "_components": [ + { + "__id__": 45 + } + ], + "_prefab": { + "__id__": 47 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 350, + "height": 150 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -81.953, + 843.354, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 29 + } + ], + "_prefab": { + "__id__": 30 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 382, + "height": 85 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 28 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c3063f58-52e1-4552-8660-fe0b4fbc6036" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "6aVfqR99lM8b6s1IfFRYgi", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 32 + } + ], + "_prefab": { + "__id__": 33 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 63, + "height": 56 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -120.21, + -1.322, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 31 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c00afd58-6ef6-4674-a68a-373015c8d376" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "acxWLwLgNPM5VDtDzhPjtp", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 35 + } + ], + "_prefab": { + "__id__": 36 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 70, + "height": 69 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 147.114, + 0.31, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 34 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d13e982d-fed1-454a-b4c4-c92e5bbdfd2d" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d0UvPpwplBxaQVyjLRxNG1", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "man", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 38 + } + ], + "_prefab": { + "__id__": 39 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 94, + "height": 47 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -1.951, + 0.13, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 37 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "24643945-c61a-4dce-b2c0-6de0c11ae435" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "2dvYFmzLRBJaIsm94hfDMQ", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "health", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": false, + "_components": [], + "_prefab": { + "__id__": 41 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -61.628, + 1.821, + 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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "88IgQBjH1Jo6ZZInXvN0ae", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "time", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 43 + } + ], + "_prefab": { + "__id__": 44 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 109, + "g": 70, + "b": 70, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100.1, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 72.788, + -4.433, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 42 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "00:00", + "_N$string": "00:00", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 0, + "_N$verticalAlign": 0, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "5eVwMMS0VEuK9KkGYaVfU8", + "sync": false + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 27 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + { + "__id__": 46 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 27 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "1dc93b4fehOrpGgTkihBH4g", + "handler": "openStamina", + "customEventData": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "cfwKYUzqBBtYvOE6xeCswl", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Coin", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 49 + }, + { + "__id__": 52 + }, + { + "__id__": 55 + }, + { + "__id__": 58 + } + ], + "_active": true, + "_components": [ + { + "__id__": 60 + } + ], + "_prefab": { + "__id__": 61 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 350, + "height": 150 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 335.588, + 843.354, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 48 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 50 + } + ], + "_prefab": { + "__id__": 51 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 382, + "height": 85 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 49 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c3063f58-52e1-4552-8660-fe0b4fbc6036" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "ecYhqIPwNJX5efs88/AoQx", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 48 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 53 + } + ], + "_prefab": { + "__id__": 54 + }, + "_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": [ + -120.21, + -1.322, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 52 + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "57LSY16pBJD6eBAcvkUnBv", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 48 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 56 + } + ], + "_prefab": { + "__id__": 57 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 70, + "height": 69 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 147.114, + 0.31, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 55 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d13e982d-fed1-454a-b4c4-c92e5bbdfd2d" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "efsl7ltxZA56KA2MUqzwPk", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Coin", + "_objFlags": 0, + "_parent": { + "__id__": 48 + }, + "_children": [], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 59 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 200, + "height": 200 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -0.255, + 1.584, + 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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "6bzgOXQXtJzr+SvxqA0HSq", + "sync": false + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 48 + }, + "_enabled": false, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + null + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 48 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "dbTBrfJ3pF26e9bPbIoOkH", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "itemcontent", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 63 + }, + { + "__id__": 70 + } + ], + "_active": true, + "_components": [ + { + "__id__": 68 + } + ], + "_prefab": { + "__id__": 207 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 1500 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -103.383, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "scrollBar", + "_objFlags": 0, + "_parent": { + "__id__": 62 + }, + "_children": [ + { + "__id__": 64 + } + ], + "_active": false, + "_components": [ + { + "__id__": 67 + }, + { + "__id__": 205 + } + ], + "_prefab": { + "__id__": 206 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 12, + "height": 1500 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 540, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "bar", + "_objFlags": 0, + "_parent": { + "__id__": 63 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 65 + } + ], + "_prefab": { + "__id__": 66 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 10, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -1, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 64 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "5c3bb932-6c3c-468f-88a9-c8c61d458641" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d14edZvsdIGLew5wSDs6B8", + "sync": false + }, + { + "__type__": "cc.Scrollbar", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 63 + }, + "_enabled": true, + "_scrollView": { + "__id__": 68 + }, + "_touching": false, + "_opacity": 255, + "enableAutoHide": true, + "autoHideTime": 1, + "_N$handle": { + "__id__": 65 + }, + "_N$direction": 1, + "_id": "" + }, + { + "__type__": "cc.ScrollView", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 62 + }, + "_enabled": true, + "horizontal": false, + "vertical": true, + "inertia": true, + "brake": 0.75, + "elastic": true, + "bounceDuration": 0.23, + "scrollEvents": [], + "cancelInnerEvents": true, + "_N$content": { + "__id__": 69 + }, + "content": { + "__id__": 69 + }, + "_N$horizontalScrollBar": null, + "_N$verticalScrollBar": { + "__id__": 67 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "content", + "_objFlags": 0, + "_parent": { + "__id__": 70 + }, + "_children": [ + { + "__id__": 73 + }, + { + "__id__": 76 + }, + { + "__id__": 92 + }, + { + "__id__": 108 + }, + { + "__id__": 124 + }, + { + "__id__": 140 + }, + { + "__id__": 156 + }, + { + "__id__": 172 + }, + { + "__id__": 188 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 204 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 2340 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 1 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 750.47, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "view", + "_objFlags": 0, + "_parent": { + "__id__": 62 + }, + "_children": [ + { + "__id__": 69 + } + ], + "_active": true, + "_components": [ + { + "__id__": 71 + } + ], + "_prefab": { + "__id__": 72 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 1500 + }, + "_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": "" + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 70 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 0, + "_segments": 64, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "7eaCjkUUtJholSqbUUNrQb", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "txt1", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 74 + } + ], + "_prefab": { + "__id__": 75 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 907, + "height": 62 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 8.5, + -27, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 73 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "760f4de0-8da0-4f0a-b3cb-5b6fe8b0b611" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "99poj1KG1LJ6aqPTcYloJk", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 77 + }, + { + "__id__": 80 + }, + { + "__id__": 83 + } + ], + "_active": true, + "_components": [ + { + "__id__": 87 + }, + { + "__id__": 88 + }, + { + "__id__": 90 + } + ], + "_prefab": { + "__id__": 91 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -346.5, + -319, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 78 + } + ], + "_prefab": { + "__id__": 79 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 77 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c725d7a9-6d3f-481d-8dbc-dcd5fa68db99" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 76 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 81 + } + ], + "_prefab": { + "__id__": 82 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 106.74, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 80 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "100元", + "_N$string": "100元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 76 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 84 + }, + { + "__id__": 85 + } + ], + "_prefab": { + "__id__": 86 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 110.74, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 83 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "450万", + "_N$string": "450万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 83 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 76 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 76 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 76 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 89 + } + ], + "_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__": 76 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 76 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 76 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "afI23KGK1LbZzVXNadOcOh", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 93 + }, + { + "__id__": 96 + }, + { + "__id__": 99 + } + ], + "_active": true, + "_components": [ + { + "__id__": 103 + }, + { + "__id__": 104 + }, + { + "__id__": 106 + } + ], + "_prefab": { + "__id__": 107 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -4.5, + -319, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 92 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 94 + } + ], + "_prefab": { + "__id__": 95 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 93 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d5b945ef-6a0b-46b0-8a2a-51581517d407" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 92 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 92 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 97 + } + ], + "_prefab": { + "__id__": 98 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 106.74, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 96 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "200元", + "_N$string": "200元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 92 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 92 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 100 + }, + { + "__id__": 101 + } + ], + "_prefab": { + "__id__": 102 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 110.74, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 99 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "550万", + "_N$string": "550万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 99 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 92 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 92 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 92 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 105 + } + ], + "_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__": 92 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 92 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 92 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "d729gzZw1CebBIrDC0zVvp", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 109 + }, + { + "__id__": 112 + }, + { + "__id__": 115 + } + ], + "_active": true, + "_components": [ + { + "__id__": 119 + }, + { + "__id__": 120 + }, + { + "__id__": 122 + } + ], + "_prefab": { + "__id__": 123 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 337.5, + -319, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 108 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 110 + } + ], + "_prefab": { + "__id__": 111 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 109 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "cfa73259-f87a-4e91-b391-96f0f0872993" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 108 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 108 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 113 + } + ], + "_prefab": { + "__id__": 114 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 106.74, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 112 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "300元", + "_N$string": "300元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 108 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 108 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 116 + }, + { + "__id__": 117 + } + ], + "_prefab": { + "__id__": 118 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 110.74, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 115 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "700万", + "_N$string": "700万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 115 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 108 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 108 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 108 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 121 + } + ], + "_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__": 108 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 108 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 108 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "f5iPfzyF1LDLpvRXmkUoer", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 125 + }, + { + "__id__": 128 + }, + { + "__id__": 131 + } + ], + "_active": true, + "_components": [ + { + "__id__": 135 + }, + { + "__id__": 136 + }, + { + "__id__": 138 + } + ], + "_prefab": { + "__id__": 139 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -346.5, + -803, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 124 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 126 + } + ], + "_prefab": { + "__id__": 127 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 125 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "927ccbda-a1dc-4ee0-a38a-a3ab66e81d9f" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 124 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 124 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 129 + } + ], + "_prefab": { + "__id__": 130 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 106.74, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 128 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "500元", + "_N$string": "500元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 124 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 124 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 132 + }, + { + "__id__": 133 + } + ], + "_prefab": { + "__id__": 134 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 110.74, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 131 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "800万", + "_N$string": "800万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 131 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 124 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 124 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 124 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 137 + } + ], + "_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__": 124 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 124 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 124 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "66+qsnLwJF0LkQjTqG9Xpt", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 141 + }, + { + "__id__": 144 + }, + { + "__id__": 147 + } + ], + "_active": true, + "_components": [ + { + "__id__": 151 + }, + { + "__id__": 152 + }, + { + "__id__": 154 + } + ], + "_prefab": { + "__id__": 155 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -4.5, + -803, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 140 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 142 + } + ], + "_prefab": { + "__id__": 143 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 141 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "319350a2-b9b5-4967-aab8-0e192088a665" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 140 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 140 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 145 + } + ], + "_prefab": { + "__id__": 146 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 128.98, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 144 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "1000元", + "_N$string": "1000元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 140 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 140 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 148 + }, + { + "__id__": 149 + } + ], + "_prefab": { + "__id__": 150 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 132.98, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 147 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "1000万", + "_N$string": "1000万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 147 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 140 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 140 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 140 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 153 + } + ], + "_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__": 140 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 140 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 140 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "48YmE9K01FpaVYgaSxME1L", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 157 + }, + { + "__id__": 160 + }, + { + "__id__": 163 + } + ], + "_active": true, + "_components": [ + { + "__id__": 167 + }, + { + "__id__": 168 + }, + { + "__id__": 170 + } + ], + "_prefab": { + "__id__": 171 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 337.5, + -803, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 156 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 158 + } + ], + "_prefab": { + "__id__": 159 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 157 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "be3accec-ceea-4b09-af1d-982fcd3879e8" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 156 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 156 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 161 + } + ], + "_prefab": { + "__id__": 162 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 128.98, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 160 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "1500元", + "_N$string": "1500元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 156 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 156 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 164 + }, + { + "__id__": 165 + } + ], + "_prefab": { + "__id__": 166 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 132.98, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 163 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "1500万", + "_N$string": "1500万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 163 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 156 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 156 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 156 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 169 + } + ], + "_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__": 156 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 156 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 156 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "f6mohWehlEx5/9GXtk15qJ", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 173 + }, + { + "__id__": 176 + }, + { + "__id__": 179 + } + ], + "_active": true, + "_components": [ + { + "__id__": 183 + }, + { + "__id__": 184 + }, + { + "__id__": 186 + } + ], + "_prefab": { + "__id__": 187 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -346.5, + -1287, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 172 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 174 + } + ], + "_prefab": { + "__id__": 175 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 173 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "25612630-24db-43ef-a7a9-0a56c98dc21e" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 172 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 172 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 177 + } + ], + "_prefab": { + "__id__": 178 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 128.98, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 176 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "2000元", + "_N$string": "2000元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 172 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 172 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 180 + }, + { + "__id__": 181 + } + ], + "_prefab": { + "__id__": 182 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 132.98, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 179 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "2000万", + "_N$string": "2000万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 179 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 172 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 172 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 172 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 185 + } + ], + "_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__": 172 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 172 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 172 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "d5kpPO81xADLw8urE8HYwZ", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 189 + }, + { + "__id__": 192 + }, + { + "__id__": 195 + } + ], + "_active": true, + "_components": [ + { + "__id__": 199 + }, + { + "__id__": 200 + }, + { + "__id__": 202 + } + ], + "_prefab": { + "__id__": 203 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -4.5, + -1287, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 188 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 190 + } + ], + "_prefab": { + "__id__": 191 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 189 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "67ab3632-96c7-4db0-b1d9-1dcf80e62ce4" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 188 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 188 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 193 + } + ], + "_prefab": { + "__id__": 194 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 128.98, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 192 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "6000元", + "_N$string": "6000元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 188 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 188 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 196 + }, + { + "__id__": 197 + } + ], + "_prefab": { + "__id__": 198 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 132.98, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 195 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "5000万", + "_N$string": "5000万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 195 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 188 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 188 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 188 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 201 + } + ], + "_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__": 188 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 188 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 188 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "f6NMyq3+ZJfrCbT4XAJ1Mh", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "7bpN5qjjpDYqndxZBdfWFN", + "sync": false + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 63 + }, + "_enabled": true, + "alignMode": 0, + "_target": null, + "_alignFlags": 37, + "_left": 1068, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 12, + "_originalHeight": 237, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "9aNMp065ZLTryhmf8DtMA1", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "3aLsaRTllN04hhnLouRCo2", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 209 + }, + { + "__id__": 210 + } + ], + "_prefab": { + "__id__": 211 + }, + "_opacity": 150, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 200 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 1062.507, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 208 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.BlockInputEvents", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 208 + }, + "_enabled": true, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "9dgIB3VNlAC4rOLKR63X1h", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 213 + }, + { + "__id__": 214 + } + ], + "_prefab": { + "__id__": 215 + }, + "_opacity": 150, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 200 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -1059.951, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 212 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.BlockInputEvents", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 212 + }, + "_enabled": true, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "c5IbgSqWhDerwgA0hdz30t", + "sync": false + }, + { + "__type__": "48bfeZuYFZE2qmgxbW2IigB", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "shop": { + "__id__": 1 + }, + "itemList": { + "__id__": 69 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/assets/shop/prefab/shop.prefab.meta b/assets/shop/prefab/shop.prefab.meta new file mode 100644 index 0000000..ff6a118 --- /dev/null +++ b/assets/shop/prefab/shop.prefab.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.3.2", + "uuid": "b01ef5c5-2755-455d-acb4-ba3818f5e331", + "importer": "prefab", + "optimizationPolicy": "AUTO", + "asyncLoadAssets": false, + "readonly": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/shop/script.meta b/assets/shop/script.meta new file mode 100644 index 0000000..ab6b940 --- /dev/null +++ b/assets/shop/script.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "c35d8611-3d61-4523-8ec7-3e961e2c46ab", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/shop/script/item.ts b/assets/shop/script/item.ts new file mode 100644 index 0000000..8a5844d --- /dev/null +++ b/assets/shop/script/item.ts @@ -0,0 +1,33 @@ + + +const { ccclass, property } = cc._decorator; + +@ccclass +export default class NewClass extends cc.Component { + + @property(cc.Label) + label: cc.Label = null; + + @property + text: string = 'hello'; + // LIFE-CYCLE CALLBACKS: + + // onLoad () {} + + start() { + + } + + //购买商品道具 + buyProp(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; + } + + // update (dt) {} +} diff --git a/assets/shop/script/item.ts.meta b/assets/shop/script/item.ts.meta new file mode 100644 index 0000000..cd926ec --- /dev/null +++ b/assets/shop/script/item.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "de906884-fc75-47a4-8e95-3bb20cbca688", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/shop/script/shop.ts b/assets/shop/script/shop.ts new file mode 100644 index 0000000..cd90396 --- /dev/null +++ b/assets/shop/script/shop.ts @@ -0,0 +1,56 @@ +import List from "../../Script/module/RankList/List"; + +const { ccclass, property } = cc._decorator; + +@ccclass +export default class NewClass extends cc.Component { + //商店界面 + @property(cc.Node) + shop: cc.Node = null; + //商品列表 + @property(cc.Node) + itemList: cc.Node = null; + // onLoad () {} + + start() { + this.openShop(); + } + //打开商店界面 + openShop() { + // 商品数据数组 + const 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 (let i = 1; i <= 8 && i < this.itemList.children.length; i++) { + const spriteComp = this.itemList.children[i].children[0].getComponent(cc.Sprite); + const price = this.itemList.children[i].children[1].getComponent(cc.Label); + const title = this.itemList.children[i].children[2].getComponent(cc.Label); + const 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; + } + } + } + + + //关闭商店界面 + closeShop() { + //销毁预制体 + this.shop.destroy(); + } + + // update (dt) {} +} diff --git a/assets/shop/script/shop.ts.meta b/assets/shop/script/shop.ts.meta new file mode 100644 index 0000000..cd5ab08 --- /dev/null +++ b/assets/shop/script/shop.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "48bfe66e-6056-44da-a9a0-c5b5b6222801", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/library/imports/06/06097023-184a-44ab-be97-104b5b23de45.json b/library/imports/06/06097023-184a-44ab-be97-104b5b23de45.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/06/06097023-184a-44ab-be97-104b5b23de45.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/06/06097023-184a-44ab-be97-104b5b23de45.png b/library/imports/06/06097023-184a-44ab-be97-104b5b23de45.png new file mode 100644 index 0000000..9c71eaa Binary files /dev/null and b/library/imports/06/06097023-184a-44ab-be97-104b5b23de45.png differ diff --git a/library/imports/07/0734a70a-118d-4d9d-9a9f-9a61c11641d2.json b/library/imports/07/0734a70a-118d-4d9d-9a9f-9a61c11641d2.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/07/0734a70a-118d-4d9d-9a9f-9a61c11641d2.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/07/0734a70a-118d-4d9d-9a9f-9a61c11641d2.png b/library/imports/07/0734a70a-118d-4d9d-9a9f-9a61c11641d2.png new file mode 100644 index 0000000..4dd7f80 Binary files /dev/null and b/library/imports/07/0734a70a-118d-4d9d-9a9f-9a61c11641d2.png differ diff --git a/library/imports/07/07f20dc4-bce8-41f5-94b8-896b4ab7fbaf.json b/library/imports/07/07f20dc4-bce8-41f5-94b8-896b4ab7fbaf.json index e67e60d..3789721 100644 --- a/library/imports/07/07f20dc4-bce8-41f5-94b8-896b4ab7fbaf.json +++ b/library/imports/07/07f20dc4-bce8-41f5-94b8-896b4ab7fbaf.json @@ -3,5 +3,5 @@ "_name": "ThinkingAnalyticsSDK.d", "_objFlags": 0, "_native": "", - "text": "\ndeclare class ThinkingAnalyticsAPI {\n constructor(config:any);\n\tinit(): void;\n\ttrack(eventName:string): void;\n\ttrack(eventName:string, properties:any): void;\n\ttrack(eventName:string, properties:any, time:any): void;\n\ttrack(eventName:string, properties:any, time:any, onComplete:any): void;\n\ttrack(taEvent:any): void;\n\ttrackUpdate(taEvent:any): void;\n\ttrackFirstEvent(taEvent:any): void;\n\ttrackOverwrite(taEvent:any): void;\n\ttimeEvent(eventName:string): void;\n\tlogin(accoundId:string): void;\n\tlogout(): void;\n\tsetSuperProperties(properties:any): void;\n\tunsetSuperProperty(properties:any): void;\n\tclearSuperProperties(): void;\n\tuserSet(properties:any): void;\n\tuserSetOnce(properties:any): void;\n\tuserAppend(properties:any): void;\n\tuserUniqAppend(properties:any): void;\n\tuserAdd(properties:any): void;\n\tuserUnset(property:string): void;\n\tuserDel(): void;\n\tflush(): void;\n\tauthorizeOpenID(distinctId:string): void;\n\tidentify(distinctId:string): void;\n\tinitInstance(name:string): ThinkingAnalyticsAPI;\n\tinitInstance(name:string, config:any): ThinkingAnalyticsAPI;\n\tlightInstance(name:string): any;\n\tsetDynamicSuperProperties(properties: any): void;\n\tgetDeviceId(callback?: any): string;\n\tgetDistinctId(callback?: any): string;\n\tgetAccountId(callback?: any): string;\n\tgetPresetProperties(callback?: any): any;\n\tgetSuperProperties(callback?: any): any;\n\t/**\n * Pause/Resume reporting event data\n * @param {bool} enabled:true is Resume, false is Pause\n * @deprecated This method is deprecated, use setTrackStatus() instand.\n */\n\tenableTracking(enabled:boolean): void;\n\t/**\n * Stop reporting event data, and cache data will be cleared\n * @deprecated This method is deprecated, use setTrackStatus() instand.\n */\n optOutTracking(): void;\n\t/**\n * Stop reporting event data, and cache data will be cleared, and flush a user_del\n * @deprecated This method is deprecated, use setTrackStatus() instand.\n */\n optOutTrackingAndDeleteUser(): void;\n\t/**\n * Allow reporting event data\n * @deprecated This method is deprecated, use setTrackStatus() instand.\n */\n optInTracking(): void;\n\t/**\n * Set status for events reporting\n * PAUSE, pause events reporting\n * STOP, stop events reporting, and cache data will be cleared\n * SAVE_ONLY, event data stores in the cache, but not be reported (native support, js equal to NORMAL)\n * NORMAL, resume event reporting\n * @param {string} status, events reporting status\n */\n\tsetTrackStatus(status: string): void;\n}\n" + "text": "\r\ndeclare class ThinkingAnalyticsAPI {\r\n constructor(config:any);\r\n\tinit(): void;\r\n\ttrack(eventName:string): void;\r\n\ttrack(eventName:string, properties:any): void;\r\n\ttrack(eventName:string, properties:any, time:any): void;\r\n\ttrack(eventName:string, properties:any, time:any, onComplete:any): void;\r\n\ttrack(taEvent:any): void;\r\n\ttrackUpdate(taEvent:any): void;\r\n\ttrackFirstEvent(taEvent:any): void;\r\n\ttrackOverwrite(taEvent:any): void;\r\n\ttimeEvent(eventName:string): void;\r\n\tlogin(accoundId:string): void;\r\n\tlogout(): void;\r\n\tsetSuperProperties(properties:any): void;\r\n\tunsetSuperProperty(properties:any): void;\r\n\tclearSuperProperties(): void;\r\n\tuserSet(properties:any): void;\r\n\tuserSetOnce(properties:any): void;\r\n\tuserAppend(properties:any): void;\r\n\tuserUniqAppend(properties:any): void;\r\n\tuserAdd(properties:any): void;\r\n\tuserUnset(property:string): void;\r\n\tuserDel(): void;\r\n\tflush(): void;\r\n\tauthorizeOpenID(distinctId:string): void;\r\n\tidentify(distinctId:string): void;\r\n\tinitInstance(name:string): ThinkingAnalyticsAPI;\r\n\tinitInstance(name:string, config:any): ThinkingAnalyticsAPI;\r\n\tlightInstance(name:string): any;\r\n\tsetDynamicSuperProperties(properties: any): void;\r\n\tgetDeviceId(callback?: any): string;\r\n\tgetDistinctId(callback?: any): string;\r\n\tgetAccountId(callback?: any): string;\r\n\tgetPresetProperties(callback?: any): any;\r\n\tgetSuperProperties(callback?: any): any;\r\n\t/**\r\n * Pause/Resume reporting event data\r\n * @param {bool} enabled:true is Resume, false is Pause\r\n * @deprecated This method is deprecated, use setTrackStatus() instand.\r\n */\r\n\tenableTracking(enabled:boolean): void;\r\n\t/**\r\n * Stop reporting event data, and cache data will be cleared\r\n * @deprecated This method is deprecated, use setTrackStatus() instand.\r\n */\r\n optOutTracking(): void;\r\n\t/**\r\n * Stop reporting event data, and cache data will be cleared, and flush a user_del\r\n * @deprecated This method is deprecated, use setTrackStatus() instand.\r\n */\r\n optOutTrackingAndDeleteUser(): void;\r\n\t/**\r\n * Allow reporting event data\r\n * @deprecated This method is deprecated, use setTrackStatus() instand.\r\n */\r\n optInTracking(): void;\r\n\t/**\r\n * Set status for events reporting\r\n * PAUSE, pause events reporting\r\n * STOP, stop events reporting, and cache data will be cleared\r\n * SAVE_ONLY, event data stores in the cache, but not be reported (native support, js equal to NORMAL)\r\n * NORMAL, resume event reporting\r\n * @param {string} status, events reporting status\r\n */\r\n\tsetTrackStatus(status: string): void;\r\n}\r\n" } \ No newline at end of file diff --git a/library/imports/08/08a0b3cf-1219-46ba-8171-206dfe24151b.json b/library/imports/08/08a0b3cf-1219-46ba-8171-206dfe24151b.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/08/08a0b3cf-1219-46ba-8171-206dfe24151b.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/08/08a0b3cf-1219-46ba-8171-206dfe24151b.png b/library/imports/08/08a0b3cf-1219-46ba-8171-206dfe24151b.png new file mode 100644 index 0000000..b910d08 Binary files /dev/null and b/library/imports/08/08a0b3cf-1219-46ba-8171-206dfe24151b.png differ diff --git a/library/imports/0b/0b9eeb66-4947-4945-9090-4bdd53602c3f.js b/library/imports/0b/0b9eeb66-4947-4945-9090-4bdd53602c3f.js index 978d582..0c10207 100644 --- a/library/imports/0b/0b9eeb66-4947-4945-9090-4bdd53602c3f.js +++ b/library/imports/0b/0b9eeb66-4947-4945-9090-4bdd53602c3f.js @@ -11,9 +11,7 @@ cc._RF.push(module, '0b9eetmSUdJRZCQS91TYCw/', 'TmoTiledMap'); // 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: { @@ -27,7 +25,6 @@ cc.Class({ cc.error("TiledmapOptimize: 未设置objectMaterial!"); return; } - this._super(); }, _buildLayerAndGroup: function _buildLayerAndGroup() { @@ -35,32 +32,25 @@ cc.Class({ 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 = []; @@ -72,49 +62,40 @@ cc.Class({ 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; + // 修改结束 - 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; @@ -122,11 +103,9 @@ cc.Class({ 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; @@ -134,33 +113,26 @@ cc.Class({ child.height = texture.height; images.push(child); } - maxWidth = Math.max(maxWidth, child.width); maxHeight = Math.max(maxHeight, child.height); } - } // 设置材质的texture属性 - + } + // 设置材质的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() { diff --git a/library/imports/0b/0b9eeb66-4947-4945-9090-4bdd53602c3f.js.map b/library/imports/0b/0b9eeb66-4947-4945-9090-4bdd53602c3f.js.map index 73b0aaf..6b0ffa3 100644 --- a/library/imports/0b/0b9eeb66-4947-4945-9090-4bdd53602c3f.js.map +++ b/library/imports/0b/0b9eeb66-4947-4945-9090-4bdd53602c3f.js.map @@ -1 +1 @@ -{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoTiledMap.js"],"names":["TmoTiledLayer","require","TmoObjectGroup","cc","Class","TiledMap","properties","objectMaterial","Material","noColor","singleTexture","_objectTextures","_applyFile","error","_super","_buildLayerAndGroup","tilesets","_tilesets","texGrids","_texGrids","animations","_animations","length","i","l","tilesetInfo","fillTextureGrids","_fillAniGrids","layers","_layers","groups","_groups","images","_images","oldNodeNames","n","node","_name","mapInfo","_mapInfo","layerInfos","getAllChildren","textures","_textures","maxWidth","maxHeight","firstTmxLayer","len","layerInfo","name","child","getChildByName","Node","addChild","setSiblingIndex","active","visible","TMXLayerInfo","layer","getComponent","addComponent","_init","ownTiles","push","TMXObjectGroupInfo","group","TMXImageLayerInfo","texture","sourceImage","opacity","_offset","v2","offset","x","y","image","Sprite","spf","spriteFrame","SpriteFrame","setTexture","width","height","Math","max","objectTextures","idx","setProperty","children","c","destroy","_syncAnchorPoint","getObjectMaterial","isNoColor","isSingleTexture","getObjectTextures"],"mappings":"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","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/class.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\nconst TmoTiledLayer = require(\"./TmoTiledLayer\");\r\nconst TmoObjectGroup = require(\"./TmoObjectGroup\");\r\ncc.Class({\r\n extends: cc.TiledMap,\r\n properties: {\r\n objectMaterial: cc.Material,\r\n noColor: true,\r\n singleTexture: true,\r\n\r\n _objectTextures: [],\r\n },\r\n \r\n\r\n _applyFile: function () {\r\n if (!this.objectMaterial) {\r\n cc.error(\"TiledmapOptimize: 未设置objectMaterial!\");\r\n return;\r\n }\r\n\r\n this._super();\r\n },\r\n\r\n _buildLayerAndGroup: function () {\r\n let tilesets = this._tilesets;\r\n let texGrids = this._texGrids;\r\n let animations = this._animations;\r\n texGrids.length = 0;\r\n for (let i = 0, l = tilesets.length; i < l; ++i) {\r\n let tilesetInfo = tilesets[i];\r\n if (!tilesetInfo) continue;\r\n cc.TiledMap.fillTextureGrids(tilesetInfo, texGrids, i);\r\n }\r\n this._fillAniGrids(texGrids, animations);\r\n\r\n let layers = this._layers;\r\n let groups = this._groups;\r\n let images = this._images;\r\n let oldNodeNames = {};\r\n for (let i = 0, n = layers.length; i < n; i++) {\r\n oldNodeNames[layers[i].node._name] = true;\r\n }\r\n for (let i = 0, n = groups.length; i < n; i++) {\r\n oldNodeNames[groups[i].node._name] = true;\r\n }\r\n for (let i = 0, n = images.length; i < n; i++) {\r\n oldNodeNames[images[i]._name] = true;\r\n }\r\n\r\n layers = this._layers = [];\r\n groups = this._groups = [];\r\n images = this._images = [];\r\n\r\n let mapInfo = this._mapInfo;\r\n let node = this.node;\r\n let layerInfos = mapInfo.getAllChildren();\r\n let textures = this._textures;\r\n let maxWidth = 0;\r\n let maxHeight = 0;\r\n\r\n this._objectTextures = [];\r\n let firstTmxLayer = null;\r\n\r\n if (layerInfos && layerInfos.length > 0) {\r\n for (let i = 0, len = layerInfos.length; i < len; i++) {\r\n let layerInfo = layerInfos[i];\r\n let name = layerInfo.name;\r\n\r\n let child = this.node.getChildByName(name);\r\n oldNodeNames[name] = false;\r\n\r\n if (!child) {\r\n child = new cc.Node();\r\n child.name = name;\r\n node.addChild(child);\r\n }\r\n\r\n child.setSiblingIndex(i);\r\n child.active = layerInfo.visible;\r\n\r\n if (layerInfo instanceof cc.TMXLayerInfo) {\r\n // 此处修改 改为创建MyTiledLayer\r\n let layer = child.getComponent(TmoTiledLayer);\r\n if (!layer) {\r\n layer = child.addComponent(TmoTiledLayer);\r\n }\r\n // 修改结束\r\n // 此处修改 传递firstTmxLayer 记录firstTmxLayer\r\n layer._init(layerInfo, mapInfo, tilesets, textures, texGrids, this, firstTmxLayer);\r\n firstTmxLayer = firstTmxLayer || layer;\r\n // 修改结束\r\n\r\n // tell the layerinfo to release the ownership of the tiles map.\r\n layerInfo.ownTiles = false;\r\n layers.push(layer);\r\n }\r\n else if (layerInfo instanceof cc.TMXObjectGroupInfo) {\r\n let group = child.getComponent(TmoObjectGroup);\r\n if (!group) {\r\n group = child.addComponent(TmoObjectGroup);\r\n }\r\n\r\n group._init(layerInfo, mapInfo, texGrids, this);\r\n groups.push(group);\r\n }\r\n else if (layerInfo instanceof cc.TMXImageLayerInfo) {\r\n let texture = layerInfo.sourceImage;\r\n child.opacity = layerInfo.opacity;\r\n child.layerInfo = layerInfo;\r\n child._offset = cc.v2(layerInfo.offset.x, -layerInfo.offset.y);\r\n\r\n let image = child.getComponent(cc.Sprite);\r\n if (!image) {\r\n image = child.addComponent(cc.Sprite);\r\n }\r\n\r\n let spf = image.spriteFrame || new cc.SpriteFrame();\r\n spf.setTexture(texture);\r\n image.spriteFrame = spf;\r\n\r\n child.width = texture.width;\r\n child.height = texture.height;\r\n images.push(child);\r\n }\r\n\r\n maxWidth = Math.max(maxWidth, child.width);\r\n maxHeight = Math.max(maxHeight, child.height);\r\n }\r\n }\r\n\r\n // 设置材质的texture属性\r\n let objectTextures = this._objectTextures;\r\n for (let i = 0; i < objectTextures.length; i++) {\r\n let idx = i === 0 ? '' : i;\r\n this.objectMaterial.setProperty(`texture${idx}`, objectTextures[i], 0);\r\n }\r\n\r\n let children = node.children;\r\n for (let i = 0, n = children.length; i < n; i++) {\r\n let c = children[i];\r\n if (oldNodeNames[c._name]) {\r\n c.destroy();\r\n }\r\n }\r\n\r\n this.node.width = maxWidth;\r\n this.node.height = maxHeight;\r\n this._syncAnchorPoint();\r\n },\r\n\r\n getObjectMaterial: function () {\r\n return this.objectMaterial;\r\n },\r\n\r\n isNoColor: function () {\r\n return this.noColor;\r\n },\r\n\r\n isSingleTexture: function () {\r\n return this.singleTexture;\r\n },\r\n\r\n getObjectTextures: function () {\r\n return this._objectTextures;\r\n }\r\n});"]} \ No newline at end of file +{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoTiledMap.js"],"names":["TmoTiledLayer","require","TmoObjectGroup","cc","Class","TiledMap","properties","objectMaterial","Material","noColor","singleTexture","_objectTextures","_applyFile","error","_super","_buildLayerAndGroup","tilesets","_tilesets","texGrids","_texGrids","animations","_animations","length","i","l","tilesetInfo","fillTextureGrids","_fillAniGrids","layers","_layers","groups","_groups","images","_images","oldNodeNames","n","node","_name","mapInfo","_mapInfo","layerInfos","getAllChildren","textures","_textures","maxWidth","maxHeight","firstTmxLayer","len","layerInfo","name","child","getChildByName","Node","addChild","setSiblingIndex","active","visible","TMXLayerInfo","layer","getComponent","addComponent","_init","ownTiles","push","TMXObjectGroupInfo","group","TMXImageLayerInfo","texture","sourceImage","opacity","_offset","v2","offset","x","y","image","Sprite","spf","spriteFrame","SpriteFrame","setTexture","width","height","Math","max","objectTextures","idx","setProperty","children","c","destroy","_syncAnchorPoint","getObjectMaterial","isNoColor","isSingleTexture","getObjectTextures"],"mappings":"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","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/class.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\nconst TmoTiledLayer = require(\"./TmoTiledLayer\");\r\nconst TmoObjectGroup = require(\"./TmoObjectGroup\");\r\ncc.Class({\r\n extends: cc.TiledMap,\r\n properties: {\r\n objectMaterial: cc.Material,\r\n noColor: true,\r\n singleTexture: true,\r\n\r\n _objectTextures: [],\r\n },\r\n \r\n\r\n _applyFile: function () {\r\n if (!this.objectMaterial) {\r\n cc.error(\"TiledmapOptimize: 未设置objectMaterial!\");\r\n return;\r\n }\r\n\r\n this._super();\r\n },\r\n\r\n _buildLayerAndGroup: function () {\r\n let tilesets = this._tilesets;\r\n let texGrids = this._texGrids;\r\n let animations = this._animations;\r\n texGrids.length = 0;\r\n for (let i = 0, l = tilesets.length; i < l; ++i) {\r\n let tilesetInfo = tilesets[i];\r\n if (!tilesetInfo) continue;\r\n cc.TiledMap.fillTextureGrids(tilesetInfo, texGrids, i);\r\n }\r\n this._fillAniGrids(texGrids, animations);\r\n\r\n let layers = this._layers;\r\n let groups = this._groups;\r\n let images = this._images;\r\n let oldNodeNames = {};\r\n for (let i = 0, n = layers.length; i < n; i++) {\r\n oldNodeNames[layers[i].node._name] = true;\r\n }\r\n for (let i = 0, n = groups.length; i < n; i++) {\r\n oldNodeNames[groups[i].node._name] = true;\r\n }\r\n for (let i = 0, n = images.length; i < n; i++) {\r\n oldNodeNames[images[i]._name] = true;\r\n }\r\n\r\n layers = this._layers = [];\r\n groups = this._groups = [];\r\n images = this._images = [];\r\n\r\n let mapInfo = this._mapInfo;\r\n let node = this.node;\r\n let layerInfos = mapInfo.getAllChildren();\r\n let textures = this._textures;\r\n let maxWidth = 0;\r\n let maxHeight = 0;\r\n\r\n this._objectTextures = [];\r\n let firstTmxLayer = null;\r\n\r\n if (layerInfos && layerInfos.length > 0) {\r\n for (let i = 0, len = layerInfos.length; i < len; i++) {\r\n let layerInfo = layerInfos[i];\r\n let name = layerInfo.name;\r\n\r\n let child = this.node.getChildByName(name);\r\n oldNodeNames[name] = false;\r\n\r\n if (!child) {\r\n child = new cc.Node();\r\n child.name = name;\r\n node.addChild(child);\r\n }\r\n\r\n child.setSiblingIndex(i);\r\n child.active = layerInfo.visible;\r\n\r\n if (layerInfo instanceof cc.TMXLayerInfo) {\r\n // 此处修改 改为创建MyTiledLayer\r\n let layer = child.getComponent(TmoTiledLayer);\r\n if (!layer) {\r\n layer = child.addComponent(TmoTiledLayer);\r\n }\r\n // 修改结束\r\n // 此处修改 传递firstTmxLayer 记录firstTmxLayer\r\n layer._init(layerInfo, mapInfo, tilesets, textures, texGrids, this, firstTmxLayer);\r\n firstTmxLayer = firstTmxLayer || layer;\r\n // 修改结束\r\n\r\n // tell the layerinfo to release the ownership of the tiles map.\r\n layerInfo.ownTiles = false;\r\n layers.push(layer);\r\n }\r\n else if (layerInfo instanceof cc.TMXObjectGroupInfo) {\r\n let group = child.getComponent(TmoObjectGroup);\r\n if (!group) {\r\n group = child.addComponent(TmoObjectGroup);\r\n }\r\n\r\n group._init(layerInfo, mapInfo, texGrids, this);\r\n groups.push(group);\r\n }\r\n else if (layerInfo instanceof cc.TMXImageLayerInfo) {\r\n let texture = layerInfo.sourceImage;\r\n child.opacity = layerInfo.opacity;\r\n child.layerInfo = layerInfo;\r\n child._offset = cc.v2(layerInfo.offset.x, -layerInfo.offset.y);\r\n\r\n let image = child.getComponent(cc.Sprite);\r\n if (!image) {\r\n image = child.addComponent(cc.Sprite);\r\n }\r\n\r\n let spf = image.spriteFrame || new cc.SpriteFrame();\r\n spf.setTexture(texture);\r\n image.spriteFrame = spf;\r\n\r\n child.width = texture.width;\r\n child.height = texture.height;\r\n images.push(child);\r\n }\r\n\r\n maxWidth = Math.max(maxWidth, child.width);\r\n maxHeight = Math.max(maxHeight, child.height);\r\n }\r\n }\r\n\r\n // 设置材质的texture属性\r\n let objectTextures = this._objectTextures;\r\n for (let i = 0; i < objectTextures.length; i++) {\r\n let idx = i === 0 ? '' : i;\r\n this.objectMaterial.setProperty(`texture${idx}`, objectTextures[i], 0);\r\n }\r\n\r\n let children = node.children;\r\n for (let i = 0, n = children.length; i < n; i++) {\r\n let c = children[i];\r\n if (oldNodeNames[c._name]) {\r\n c.destroy();\r\n }\r\n }\r\n\r\n this.node.width = maxWidth;\r\n this.node.height = maxHeight;\r\n this._syncAnchorPoint();\r\n },\r\n\r\n getObjectMaterial: function () {\r\n return this.objectMaterial;\r\n },\r\n\r\n isNoColor: function () {\r\n return this.noColor;\r\n },\r\n\r\n isSingleTexture: function () {\r\n return this.singleTexture;\r\n },\r\n\r\n getObjectTextures: function () {\r\n return this._objectTextures;\r\n }\r\n});"]} \ No newline at end of file diff --git a/library/imports/0e/0e005ec2-f5a3-41d3-8a99-7ea6d784440d.json b/library/imports/0e/0e005ec2-f5a3-41d3-8a99-7ea6d784440d.json index 0ce93b1..f356d1c 100644 --- a/library/imports/0e/0e005ec2-f5a3-41d3-8a99-7ea6d784440d.json +++ b/library/imports/0e/0e005ec2-f5a3-41d3-8a99-7ea6d784440d.json @@ -647,7 +647,7 @@ } } }, - "_atlasText": "\nskeleton.png\nsize: 96,96\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\n连接块/kou2shu\n rotate: false\n xy: 2, 39\n size: 24, 52\n orig: 24, 52\n offset: 0, 0\n index: -1\n连接块/luosi\n rotate: false\n xy: 2, 16\n size: 23, 21\n orig: 23, 21\n offset: 0, 0\n index: -1\n连接块/luosi2\n rotate: false\n xy: 2, 2\n size: 12, 12\n orig: 12, 12\n offset: 0, 0\n index: -1\n", + "_atlasText": "\r\nskeleton.png\r\nsize: 96,96\r\nformat: RGBA8888\r\nfilter: Linear,Linear\r\nrepeat: none\r\n连接块/kou2shu\r\n rotate: false\r\n xy: 2, 39\r\n size: 24, 52\r\n orig: 24, 52\r\n offset: 0, 0\r\n index: -1\r\n连接块/luosi\r\n rotate: false\r\n xy: 2, 16\r\n size: 23, 21\r\n orig: 23, 21\r\n offset: 0, 0\r\n index: -1\r\n连接块/luosi2\r\n rotate: false\r\n xy: 2, 2\r\n size: 12, 12\r\n orig: 12, 12\r\n offset: 0, 0\r\n index: -1\r\n", "textures": [ { "__uuid__": "dca5e70b-8d3f-4ac0-abe7-d0c5647f7837" diff --git a/library/imports/0f/0fb8590a-1468-4e6a-8ba6-c595642e4880.json b/library/imports/0f/0fb8590a-1468-4e6a-8ba6-c595642e4880.json index 9bf6a4d..fb2b970 100644 --- a/library/imports/0f/0fb8590a-1468-4e6a-8ba6-c595642e4880.json +++ b/library/imports/0f/0fb8590a-1468-4e6a-8ba6-c595642e4880.json @@ -759,7 +759,7 @@ } } }, - "_atlasText": "\nmofabang_texiao.png\nsize: 1000,1000\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\nimages/effects/chixu/chixu_00\n rotate: false\n xy: 2, 334\n size: 151, 124\n orig: 200, 200\n offset: 12, 44\n index: -1\nimages/effects/chixu/chixu_01\n rotate: true\n xy: 159, 567\n size: 148, 132\n orig: 200, 200\n offset: 12, 37\n index: -1\nimages/effects/chixu/chixu_02\n rotate: false\n xy: 2, 460\n size: 153, 125\n orig: 200, 200\n offset: 15, 37\n index: -1\nimages/effects/chixu/chixu_03\n rotate: false\n xy: 2, 587\n size: 155, 128\n orig: 200, 200\n offset: 15, 36\n index: -1\nimages/effects/chixu/chixu_04\n rotate: true\n xy: 157, 416\n size: 149, 126\n orig: 200, 200\n offset: 21, 36\n index: -1\nimages/effects/chixu/chixu_05\n rotate: true\n xy: 155, 265\n size: 149, 123\n orig: 200, 200\n offset: 21, 36\n index: -1\nimages/effects/chixu/chixu_06\n rotate: false\n xy: 148, 143\n size: 147, 120\n orig: 200, 200\n offset: 23, 38\n index: -1\nimages/effects/chixu/chixu_07\n rotate: true\n xy: 2, 61\n size: 145, 119\n orig: 200, 200\n offset: 24, 39\n index: -1\nimages/effects/chixu/chixu_08\n rotate: false\n xy: 2, 208\n size: 144, 124\n orig: 200, 200\n offset: 23, 41\n index: -1\nimages/effects/chixu/chixu_09\n rotate: false\n xy: 123, 23\n size: 140, 118\n orig: 200, 200\n offset: 23, 43\n index: -1\nimages/effects/chixu/chixu_10\n rotate: true\n xy: 265, 2\n size: 139, 117\n orig: 200, 200\n offset: 23, 43\n index: -1\nimages/effects/guangdian\n rotate: false\n xy: 2, 54\n size: 5, 5\n orig: 5, 5\n offset: 0, 0\n index: -1\nimages/effects/huiguang\n rotate: false\n xy: 2, 717\n size: 278, 278\n orig: 311, 310\n offset: 17, 16\n index: -1\nimages/effects/微信图片_20250515181822\n rotate: false\n xy: 280, 305\n size: 93, 109\n orig: 93, 109\n offset: 0, 0\n index: -1\n", + "_atlasText": "\r\nmofabang_texiao.png\r\nsize: 1000,1000\r\nformat: RGBA8888\r\nfilter: Linear,Linear\r\nrepeat: none\r\nimages/effects/chixu/chixu_00\r\n rotate: false\r\n xy: 2, 334\r\n size: 151, 124\r\n orig: 200, 200\r\n offset: 12, 44\r\n index: -1\r\nimages/effects/chixu/chixu_01\r\n rotate: true\r\n xy: 159, 567\r\n size: 148, 132\r\n orig: 200, 200\r\n offset: 12, 37\r\n index: -1\r\nimages/effects/chixu/chixu_02\r\n rotate: false\r\n xy: 2, 460\r\n size: 153, 125\r\n orig: 200, 200\r\n offset: 15, 37\r\n index: -1\r\nimages/effects/chixu/chixu_03\r\n rotate: false\r\n xy: 2, 587\r\n size: 155, 128\r\n orig: 200, 200\r\n offset: 15, 36\r\n index: -1\r\nimages/effects/chixu/chixu_04\r\n rotate: true\r\n xy: 157, 416\r\n size: 149, 126\r\n orig: 200, 200\r\n offset: 21, 36\r\n index: -1\r\nimages/effects/chixu/chixu_05\r\n rotate: true\r\n xy: 155, 265\r\n size: 149, 123\r\n orig: 200, 200\r\n offset: 21, 36\r\n index: -1\r\nimages/effects/chixu/chixu_06\r\n rotate: false\r\n xy: 148, 143\r\n size: 147, 120\r\n orig: 200, 200\r\n offset: 23, 38\r\n index: -1\r\nimages/effects/chixu/chixu_07\r\n rotate: true\r\n xy: 2, 61\r\n size: 145, 119\r\n orig: 200, 200\r\n offset: 24, 39\r\n index: -1\r\nimages/effects/chixu/chixu_08\r\n rotate: false\r\n xy: 2, 208\r\n size: 144, 124\r\n orig: 200, 200\r\n offset: 23, 41\r\n index: -1\r\nimages/effects/chixu/chixu_09\r\n rotate: false\r\n xy: 123, 23\r\n size: 140, 118\r\n orig: 200, 200\r\n offset: 23, 43\r\n index: -1\r\nimages/effects/chixu/chixu_10\r\n rotate: true\r\n xy: 265, 2\r\n size: 139, 117\r\n orig: 200, 200\r\n offset: 23, 43\r\n index: -1\r\nimages/effects/guangdian\r\n rotate: false\r\n xy: 2, 54\r\n size: 5, 5\r\n orig: 5, 5\r\n offset: 0, 0\r\n index: -1\r\nimages/effects/huiguang\r\n rotate: false\r\n xy: 2, 717\r\n size: 278, 278\r\n orig: 311, 310\r\n offset: 17, 16\r\n index: -1\r\nimages/effects/微信图片_20250515181822\r\n rotate: false\r\n xy: 280, 305\r\n size: 93, 109\r\n orig: 93, 109\r\n offset: 0, 0\r\n index: -1\r\n", "textures": [ { "__uuid__": "b11462e5-9624-4020-98f8-6418dfebaa5c" diff --git a/library/imports/10/10029dfc-5454-4977-bd11-8809e8f48cac.js.map b/library/imports/10/10029dfc-5454-4977-bd11-8809e8f48cac.js.map index 0aa3e8a..3bd3658 100644 --- a/library/imports/10/10029dfc-5454-4977-bd11-8809e8f48cac.js.map +++ b/library/imports/10/10029dfc-5454-4977-bd11-8809e8f48cac.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\module\\Storage\\Storage.ts"],"names":[],"mappings":";;;;;;;AAAA,SAAS;AACT,IAAI,cAAc,GAAG;IACjB,UAAU,EAAG,UAAS,GAAG;QACrB,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC;YAClC,IAAI,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC/C;QAED,IAAG,MAAM,EAAC;YACR,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC7B;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,EAAG,UAAS,GAAG,EAAC,KAAK;QAC3B,UAAU;QACV,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC1C,CAAC;IACD,aAAa,EAAG,UAAS,GAAG;QAC1B,UAAU;QACV,IAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC;YAClC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;SACpC;IACH,CAAC;CACJ,CAAC;AAEO,wCAAc","file":"","sourceRoot":"/","sourcesContent":["//缓存浏览器数据\nvar StorageMessage = {\n getStorage : function(key){\n var result = null;\n if(cc.sys.localStorage.getItem(key)){\n var result = cc.sys.localStorage.getItem(key);\n }\n \n if(result){\n result = JSON.parse(result);\n }\n return result;\n },\n setStorage : function(key,value){\n //主动拉起分享接口\n var temp = JSON.stringify(value);\n cc.sys.localStorage.setItem(key, temp)\n },\n removeStorage : function(key){\n //主动删除消息接口\n if(cc.sys.localStorage.getItem(key)){\n cc.sys.localStorage.removeItem(key)\n }\n },\n};\n\nexport { StorageMessage };"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\module\\Storage\\Storage.ts"],"names":[],"mappings":";;;;;;;AAAA,SAAS;AACT,IAAI,cAAc,GAAG;IACjB,UAAU,EAAG,UAAS,GAAG;QACrB,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC;YAClC,IAAI,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC/C;QAED,IAAG,MAAM,EAAC;YACR,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC7B;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,EAAG,UAAS,GAAG,EAAC,KAAK;QAC3B,UAAU;QACV,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC1C,CAAC;IACD,aAAa,EAAG,UAAS,GAAG;QAC1B,UAAU;QACV,IAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC;YAClC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;SACpC;IACH,CAAC;CACJ,CAAC;AAEO,wCAAc","file":"","sourceRoot":"/","sourcesContent":["//缓存浏览器数据\r\nvar StorageMessage = {\r\n getStorage : function(key){\r\n var result = null;\r\n if(cc.sys.localStorage.getItem(key)){\r\n var result = cc.sys.localStorage.getItem(key);\r\n }\r\n \r\n if(result){\r\n result = JSON.parse(result);\r\n }\r\n return result;\r\n },\r\n setStorage : function(key,value){\r\n //主动拉起分享接口\r\n var temp = JSON.stringify(value);\r\n cc.sys.localStorage.setItem(key, temp)\r\n },\r\n removeStorage : function(key){\r\n //主动删除消息接口\r\n if(cc.sys.localStorage.getItem(key)){\r\n cc.sys.localStorage.removeItem(key)\r\n }\r\n },\r\n};\r\n\r\nexport { StorageMessage };"]} \ No newline at end of file diff --git a/library/imports/10/1019c0e2-cc2c-4dde-93e4-86b676bc69cd.json b/library/imports/10/1019c0e2-cc2c-4dde-93e4-86b676bc69cd.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/10/1019c0e2-cc2c-4dde-93e4-86b676bc69cd.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/10/1019c0e2-cc2c-4dde-93e4-86b676bc69cd.png b/library/imports/10/1019c0e2-cc2c-4dde-93e4-86b676bc69cd.png new file mode 100644 index 0000000..c94027b Binary files /dev/null and b/library/imports/10/1019c0e2-cc2c-4dde-93e4-86b676bc69cd.png differ diff --git a/library/imports/12/1217c0be-cc7e-41be-b105-7c26baf444ff.json b/library/imports/12/1217c0be-cc7e-41be-b105-7c26baf444ff.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/12/1217c0be-cc7e-41be-b105-7c26baf444ff.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/12/1217c0be-cc7e-41be-b105-7c26baf444ff.png b/library/imports/12/1217c0be-cc7e-41be-b105-7c26baf444ff.png new file mode 100644 index 0000000..10c8078 Binary files /dev/null and b/library/imports/12/1217c0be-cc7e-41be-b105-7c26baf444ff.png differ diff --git a/library/imports/12/12c63ed2-bf61-4b5b-8d37-781d02f4386c.json b/library/imports/12/12c63ed2-bf61-4b5b-8d37-781d02f4386c.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/12/12c63ed2-bf61-4b5b-8d37-781d02f4386c.json @@ -0,0 +1,4 @@ +{ + "__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.png b/library/imports/12/12c63ed2-bf61-4b5b-8d37-781d02f4386c.png new file mode 100644 index 0000000..94fb8f1 Binary files /dev/null and b/library/imports/12/12c63ed2-bf61-4b5b-8d37-781d02f4386c.png differ diff --git a/library/imports/13/1331d313-a78d-461e-abbc-2ffff9e1db1f.json b/library/imports/13/1331d313-a78d-461e-abbc-2ffff9e1db1f.json new file mode 100644 index 0000000..7dcf2c2 --- /dev/null +++ b/library/imports/13/1331d313-a78d-461e-abbc-2ffff9e1db1f.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "cost_6", + "texture": "c8b66182-996c-4377-8d0a-024d8b17e581", + "atlas": "", + "rect": [ + 0, + 0, + 26, + 38 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 26, + 38 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/18/18d1ce4e-6c1b-4279-acac-c8ee5b30881b.js b/library/imports/18/18d1ce4e-6c1b-4279-acac-c8ee5b30881b.js index 48962bc..28df069 100644 --- a/library/imports/18/18d1ce4e-6c1b-4279-acac-c8ee5b30881b.js +++ b/library/imports/18/18d1ce4e-6c1b-4279-acac-c8ee5b30881b.js @@ -6,17 +6,14 @@ cc._RF.push(module, '18d1c5ObBtCeaysyO5bMIgb', 'TmoAssembler'); exports.__esModule = true; exports.TmoAssembler = void 0; - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -var gfx = cc.gfx; // 颜色去除 + 物件图集合批 - +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var gfx = cc.gfx; +// 颜色去除 + 物件图集合批 var vfmtPosUvIndex = new gfx.VertexFormat([{ name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, @@ -29,8 +26,9 @@ var vfmtPosUvIndex = new gfx.VertexFormat([{ name: "a_texture_idx", type: gfx.ATTR_TYPE_FLOAT32, num: 1 -}]); // 仅物件图集合批 +}]); +// 仅物件图集合批 var vfmtPosUvColorIndex = new gfx.VertexFormat([{ name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, @@ -49,19 +47,14 @@ var vfmtPosUvColorIndex = new gfx.VertexFormat([{ num: 4, normalize: true }]); - var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { _inheritsLoose(TmoAssembler, _cc$Assembler); - function TmoAssembler() { return _cc$Assembler.apply(this, arguments) || this; } - var _proto = TmoAssembler.prototype; - _proto.init = function init(comp) { _cc$Assembler.prototype.init.call(this, comp); - this._noColor = comp.isNoColor(); this.updateColor = this._noColor ? undefined : this.updateColorFunc; this.uvOffset = 2; @@ -71,25 +64,21 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { this.indicesCount = 6; this.verticesCount = 4; this._renderData = new cc.RenderData(); - this._renderData.init(this); - this.initLocal(); this.initData(); }; - _proto.initLocal = function initLocal() { this._local = []; this._local.length = 4; }; - _proto.initData = function initData() { var data = this._renderData; - data.createFlexData(0, this.verticesCount, this.indicesCount, this.getVfmt()); // 填充顶点索引信息 + data.createFlexData(0, this.verticesCount, this.indicesCount, this.getVfmt()); + // 填充顶点索引信息 var indices = data.iDatas[0]; var count = indices.length / 6; - for (var i = 0, idx = 0; i < count; i++) { var vertextID = i * 4; indices[idx++] = vertextID; @@ -100,18 +89,14 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { indices[idx++] = vertextID + 2; } }; - _proto.getBuffer = function getBuffer() { return cc.renderer._handle.getBuffer("mesh", this.getVfmt()); }; - _proto.getVfmt = function getVfmt() { return this._noColor ? vfmtPosUvIndex : vfmtPosUvColorIndex; }; - _proto.updateRenderData = function updateRenderData(sprite) { this.packToDynamicAtlas(sprite, sprite._spriteFrame); - if (sprite._vertsDirty) { this.updateUVs(sprite); this.updateVerts(sprite); @@ -119,31 +104,27 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { sprite._vertsDirty = false; } } + /** * 填充textureIndex数据 * @param {cc.Sprite} sprite - */ - ; - + */; _proto.updateTextureIdx = function updateTextureIdx(sprite) { var textureIdx = sprite._textureIdx; var verts = this._renderData.vDatas[0]; var verticesCount = this.verticesCount; var floatsPerVert = this.floatsPerVert; var textureIndexOffset = this.textureIndexOffset; - for (var i = 0; i < verticesCount; i++) { var index = i * floatsPerVert + textureIndexOffset; verts[index] = textureIdx; } }; - _proto.updateUVs = function updateUVs(sprite) { var uv = sprite._spriteFrame.uv; var uvOffset = this.uvOffset; var floatsPerVert = this.floatsPerVert; var verts = this._renderData.vDatas[0]; - for (var i = 0; i < 4; i++) { var srcOffset = i * 2; var dstOffset = floatsPerVert * i + uvOffset; @@ -151,18 +132,16 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { verts[dstOffset + 1] = uv[srcOffset + 1]; } }; - _proto.updateVerts = function updateVerts(sprite) { var node = sprite.node, - cw = node.width, - ch = node.height, - appx = node.anchorX * cw, - appy = node.anchorY * ch, - l, - b, - r, - t; - + cw = node.width, + ch = node.height, + appx = node.anchorX * cw, + appy = node.anchorY * ch, + l, + b, + r, + t; if (sprite.trim) { l = -appx; b = -appy; @@ -170,13 +149,13 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { t = ch - appy; } else { var frame = sprite.spriteFrame, - ow = frame._originalSize.width, - oh = frame._originalSize.height, - rw = frame._rect.width, - rh = frame._rect.height, - offset = frame._offset, - scaleX = cw / ow, - scaleY = ch / oh; + ow = frame._originalSize.width, + oh = frame._originalSize.height, + rw = frame._rect.width, + rh = frame._rect.height, + offset = frame._offset, + scaleX = cw / ow, + scaleY = ch / oh; var trimLeft = offset.x + (ow - rw) / 2; var trimRight = offset.x - (ow - rw) / 2; var trimBottom = offset.y + (oh - rh) / 2; @@ -186,7 +165,6 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { r = cw + trimRight * scaleX - appx; t = ch + trimTop * scaleY - appy; } - var local = this._local; local[0] = l; local[1] = b; @@ -194,28 +172,25 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { local[3] = t; this.updateWorldVerts(sprite); }; - _proto.updateColorFunc = function updateColorFunc(comp, color) { var uintVerts = this._renderData.uintVDatas[0]; if (!uintVerts) return; color = color != null ? color : comp.node.color._val; var floatsPerVert = this.floatsPerVert; var colorOffset = this.colorOffset; - for (var i = colorOffset, l = uintVerts.length; i < l; i += floatsPerVert) { uintVerts[i] = color; } }; - _proto.updateWorldVerts = function updateWorldVerts(comp) { if (CC_NATIVERENDERER) { // 原生平台兼容代码 复制于jsb-engine.js中的cc.Assembler2D.prototype.updateWorldVerts var local = this._local; var verts = this._renderData.vDatas[0]; var vl = local[0], - vr = local[2], - vb = local[1], - vt = local[3]; + vr = local[2], + vb = local[1], + vt = local[3]; var floatsPerVert = this.floatsPerVert; var vertexOffset = 0; // left bottom @@ -238,127 +213,116 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { var _verts = this._renderData.vDatas[0]; var matrix = comp.node._worldMatrix; var matrixm = matrix.m, - a = matrixm[0], - b = matrixm[1], - c = matrixm[4], - d = matrixm[5], - tx = matrixm[12], - ty = matrixm[13]; + a = matrixm[0], + b = matrixm[1], + c = matrixm[4], + d = matrixm[5], + tx = matrixm[12], + ty = matrixm[13]; var _vl = _local[0], - _vr = _local[2], - _vb = _local[1], - _vt = _local[3]; + _vr = _local[2], + _vb = _local[1], + _vt = _local[3]; var _floatsPerVert = this.floatsPerVert; var _vertexOffset = 0; var justTranslate = a === 1 && b === 0 && c === 0 && d === 1; - if (justTranslate) { // left bottom _verts[_vertexOffset] = _vl + tx; _verts[_vertexOffset + 1] = _vb + ty; - _vertexOffset += _floatsPerVert; // right bottom - + _vertexOffset += _floatsPerVert; + // right bottom _verts[_vertexOffset] = _vr + tx; _verts[_vertexOffset + 1] = _vb + ty; - _vertexOffset += _floatsPerVert; // left top - + _vertexOffset += _floatsPerVert; + // left top _verts[_vertexOffset] = _vl + tx; _verts[_vertexOffset + 1] = _vt + ty; - _vertexOffset += _floatsPerVert; // right top - + _vertexOffset += _floatsPerVert; + // right top _verts[_vertexOffset] = _vr + tx; _verts[_vertexOffset + 1] = _vt + ty; } else { var al = a * _vl, - ar = a * _vr, - bl = b * _vl, - br = b * _vr, - cb = c * _vb, - ct = c * _vt, - db = d * _vb, - dt = d * _vt; // left bottom + ar = a * _vr, + bl = b * _vl, + br = b * _vr, + cb = c * _vb, + ct = c * _vt, + db = d * _vb, + dt = d * _vt; + // left bottom _verts[_vertexOffset] = al + cb + tx; _verts[_vertexOffset + 1] = bl + db + ty; - _vertexOffset += _floatsPerVert; // right bottom - + _vertexOffset += _floatsPerVert; + // right bottom _verts[_vertexOffset] = ar + cb + tx; _verts[_vertexOffset + 1] = br + db + ty; - _vertexOffset += _floatsPerVert; // left top - + _vertexOffset += _floatsPerVert; + // left top _verts[_vertexOffset] = al + ct + tx; _verts[_vertexOffset + 1] = bl + dt + ty; - _vertexOffset += _floatsPerVert; // right top - + _vertexOffset += _floatsPerVert; + // right top _verts[_vertexOffset] = ar + ct + tx; _verts[_vertexOffset + 1] = br + dt + ty; } } }; - _proto.fillBuffers = function fillBuffers(comp, renderer) { if (renderer.worldMatDirty) { this.updateWorldVerts(comp); } - var renderData = this._renderData; var vData = renderData.vDatas[0]; var iData = renderData.iDatas[0]; var buffer = this.getBuffer(renderer); - var offsetInfo = buffer.request(this.verticesCount, this.indicesCount); // buffer data may be realloc, need get reference after request. + var offsetInfo = buffer.request(this.verticesCount, this.indicesCount); + + // buffer data may be realloc, need get reference after request. + // fill vertices - var vertexOffset = offsetInfo.byteOffset >> 2, - vbuf = buffer._vData; - + vbuf = buffer._vData; if (vData.length + vertexOffset > vbuf.length) { vbuf.set(vData.subarray(0, vbuf.length - vertexOffset), vertexOffset); } else { vbuf.set(vData, vertexOffset); - } // fill indices - + } + // fill indices var ibuf = buffer._iData, - indiceOffset = offsetInfo.indiceOffset, - vertexId = offsetInfo.vertexOffset; - + indiceOffset = offsetInfo.indiceOffset, + vertexId = offsetInfo.vertexOffset; for (var i = 0, l = iData.length; i < l; i++) { ibuf[indiceOffset++] = vertexId + iData[i]; } }; - _proto.packToDynamicAtlas = function packToDynamicAtlas(comp, frame) { if (CC_TEST) return; - if (!frame._original && cc.dynamicAtlasManager && frame._texture.packable) { var packedFrame = cc.dynamicAtlasManager.insertSpriteFrame(frame); - if (packedFrame) { frame._setDynamicAtlasFrame(packedFrame); } } - var material = comp._materials[0]; if (!material) return; - if (material.getProperty('texture') !== frame._texture) { // texture was packed to dynamic atlas, should update uvs comp._vertsDirty = true; - comp._updateMaterial(); } }; - _createClass(TmoAssembler, [{ key: "verticesFloats", get: function get() { return this.verticesCount * this.floatsPerVert; } }]); - return TmoAssembler; }(cc.Assembler); - exports.TmoAssembler = TmoAssembler; cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/18/18d1ce4e-6c1b-4279-acac-c8ee5b30881b.js.map b/library/imports/18/18d1ce4e-6c1b-4279-acac-c8ee5b30881b.js.map index 157674a..3bf0289 100644 --- a/library/imports/18/18d1ce4e-6c1b-4279-acac-c8ee5b30881b.js.map +++ b/library/imports/18/18d1ce4e-6c1b-4279-acac-c8ee5b30881b.js.map @@ -1 +1 @@ -{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoAssembler.js"],"names":["gfx","cc","vfmtPosUvIndex","VertexFormat","name","ATTR_POSITION","type","ATTR_TYPE_FLOAT32","num","ATTR_UV0","vfmtPosUvColorIndex","ATTR_COLOR","ATTR_TYPE_UINT8","normalize","TmoAssembler","init","comp","_noColor","isNoColor","updateColor","undefined","updateColorFunc","uvOffset","colorOffset","textureIndexOffset","floatsPerVert","indicesCount","verticesCount","_renderData","RenderData","initLocal","initData","_local","length","data","createFlexData","getVfmt","indices","iDatas","count","i","idx","vertextID","getBuffer","renderer","_handle","updateRenderData","sprite","packToDynamicAtlas","_spriteFrame","_vertsDirty","updateUVs","updateVerts","updateTextureIdx","textureIdx","_textureIdx","verts","vDatas","index","uv","srcOffset","dstOffset","node","cw","width","ch","height","appx","anchorX","appy","anchorY","l","b","r","t","trim","frame","spriteFrame","ow","_originalSize","oh","rw","_rect","rh","offset","_offset","scaleX","scaleY","trimLeft","x","trimRight","trimBottom","y","trimTop","local","updateWorldVerts","color","uintVerts","uintVDatas","_val","CC_NATIVERENDERER","vl","vr","vb","vt","vertexOffset","matrix","_worldMatrix","matrixm","m","a","c","d","tx","ty","justTranslate","al","ar","bl","br","cb","ct","db","dt","fillBuffers","worldMatDirty","renderData","vData","iData","buffer","offsetInfo","request","byteOffset","vbuf","_vData","set","subarray","ibuf","_iData","indiceOffset","vertexId","CC_TEST","_original","dynamicAtlasManager","_texture","packable","packedFrame","insertSpriteFrame","_setDynamicAtlasFrame","material","_materials","getProperty","_updateMaterial","Assembler"],"mappings":"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","sourceRoot":"/","sourcesContent":["let gfx = cc.gfx;\r\n// 颜色去除 + 物件图集合批\r\nvar vfmtPosUvIndex = new gfx.VertexFormat([\r\n { name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: gfx.ATTR_UV0, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: \"a_texture_idx\", type: gfx.ATTR_TYPE_FLOAT32, num: 1 },\r\n]);\r\n\r\n// 仅物件图集合批\r\nvar vfmtPosUvColorIndex = new gfx.VertexFormat([\r\n { name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: gfx.ATTR_UV0, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: \"a_texture_idx\", type: gfx.ATTR_TYPE_FLOAT32, num: 1 },\r\n { name: gfx.ATTR_COLOR, type: gfx.ATTR_TYPE_UINT8, num: 4, normalize: true },\r\n]);\r\n\r\nexport class TmoAssembler extends cc.Assembler {\r\n init(comp) {\r\n super.init(comp);\r\n\r\n this._noColor = comp.isNoColor();\r\n this.updateColor = this._noColor ? undefined : this.updateColorFunc;\r\n\r\n this.uvOffset = 2;\r\n this.colorOffset = 5;\r\n this.textureIndexOffset = 4;\r\n this.floatsPerVert = this._noColor ? 5 : 6;\r\n\r\n this.indicesCount = 6;\r\n this.verticesCount = 4;\r\n\r\n this._renderData = new cc.RenderData();\r\n this._renderData.init(this);\r\n\r\n this.initLocal();\r\n this.initData();\r\n }\r\n\r\n initLocal() {\r\n this._local = [];\r\n this._local.length = 4;\r\n }\r\n\r\n initData() {\r\n let data = this._renderData;\r\n data.createFlexData(0, this.verticesCount, this.indicesCount, this.getVfmt());\r\n\r\n // 填充顶点索引信息\r\n let indices = data.iDatas[0];\r\n let count = indices.length / 6;\r\n for (let i = 0, idx = 0; i < count; i++) {\r\n let vertextID = i * 4;\r\n indices[idx++] = vertextID;\r\n indices[idx++] = vertextID + 1;\r\n indices[idx++] = vertextID + 2;\r\n indices[idx++] = vertextID + 1;\r\n indices[idx++] = vertextID + 3;\r\n indices[idx++] = vertextID + 2;\r\n }\r\n }\r\n\r\n getBuffer() {\r\n return cc.renderer._handle.getBuffer(\"mesh\", this.getVfmt());\r\n }\r\n\r\n getVfmt() {\r\n return this._noColor ? vfmtPosUvIndex : vfmtPosUvColorIndex;\r\n }\r\n\r\n updateRenderData(sprite) {\r\n this.packToDynamicAtlas(sprite, sprite._spriteFrame);\r\n\r\n if (sprite._vertsDirty) {\r\n this.updateUVs(sprite);\r\n this.updateVerts(sprite);\r\n this.updateTextureIdx(sprite);\r\n sprite._vertsDirty = false;\r\n }\r\n }\r\n\r\n /**\r\n * 填充textureIndex数据\r\n * @param {cc.Sprite} sprite \r\n */\r\n updateTextureIdx(sprite) {\r\n let textureIdx = sprite._textureIdx;\r\n let verts = this._renderData.vDatas[0];\r\n\r\n let verticesCount = this.verticesCount;\r\n let floatsPerVert = this.floatsPerVert;\r\n let textureIndexOffset = this.textureIndexOffset;\r\n\r\n for (let i = 0; i < verticesCount; i++) {\r\n let index = i * floatsPerVert + textureIndexOffset;\r\n verts[index] = textureIdx;\r\n }\r\n }\r\n\r\n updateUVs(sprite) {\r\n let uv = sprite._spriteFrame.uv;\r\n let uvOffset = this.uvOffset;\r\n let floatsPerVert = this.floatsPerVert;\r\n let verts = this._renderData.vDatas[0];\r\n for (let i = 0; i < 4; i++) {\r\n let srcOffset = i * 2;\r\n let dstOffset = floatsPerVert * i + uvOffset;\r\n verts[dstOffset] = uv[srcOffset];\r\n verts[dstOffset + 1] = uv[srcOffset + 1];\r\n }\r\n }\r\n\r\n updateVerts(sprite) {\r\n let node = sprite.node,\r\n cw = node.width, ch = node.height,\r\n appx = node.anchorX * cw, appy = node.anchorY * ch,\r\n l, b, r, t;\r\n if (sprite.trim) {\r\n l = -appx;\r\n b = -appy;\r\n r = cw - appx;\r\n t = ch - appy;\r\n }\r\n else {\r\n let frame = sprite.spriteFrame,\r\n ow = frame._originalSize.width, oh = frame._originalSize.height,\r\n rw = frame._rect.width, rh = frame._rect.height,\r\n offset = frame._offset,\r\n scaleX = cw / ow, scaleY = ch / oh;\r\n let trimLeft = offset.x + (ow - rw) / 2;\r\n let trimRight = offset.x - (ow - rw) / 2;\r\n let trimBottom = offset.y + (oh - rh) / 2;\r\n let trimTop = offset.y - (oh - rh) / 2;\r\n l = trimLeft * scaleX - appx;\r\n b = trimBottom * scaleY - appy;\r\n r = cw + trimRight * scaleX - appx;\r\n t = ch + trimTop * scaleY - appy;\r\n }\r\n\r\n let local = this._local;\r\n local[0] = l;\r\n local[1] = b;\r\n local[2] = r;\r\n local[3] = t;\r\n this.updateWorldVerts(sprite);\r\n }\r\n\r\n get verticesFloats() {\r\n return this.verticesCount * this.floatsPerVert;\r\n }\r\n\r\n updateColorFunc(comp, color) {\r\n let uintVerts = this._renderData.uintVDatas[0];\r\n if (!uintVerts) return;\r\n color = color != null ? color : comp.node.color._val;\r\n let floatsPerVert = this.floatsPerVert;\r\n let colorOffset = this.colorOffset;\r\n for (let i = colorOffset, l = uintVerts.length; i < l; i += floatsPerVert) {\r\n uintVerts[i] = color;\r\n }\r\n }\r\n\r\n updateWorldVerts(comp) {\r\n if (CC_NATIVERENDERER) {\r\n // 原生平台兼容代码 复制于jsb-engine.js中的cc.Assembler2D.prototype.updateWorldVerts\r\n var local = this._local;\r\n var verts = this._renderData.vDatas[0];\r\n var vl = local[0],\r\n vr = local[2],\r\n vb = local[1],\r\n vt = local[3];\r\n var floatsPerVert = this.floatsPerVert;\r\n var vertexOffset = 0; // left bottom\r\n\r\n verts[vertexOffset] = vl;\r\n verts[vertexOffset + 1] = vb;\r\n vertexOffset += floatsPerVert; // right bottom\r\n\r\n verts[vertexOffset] = vr;\r\n verts[vertexOffset + 1] = vb;\r\n vertexOffset += floatsPerVert; // left top\r\n\r\n verts[vertexOffset] = vl;\r\n verts[vertexOffset + 1] = vt;\r\n vertexOffset += floatsPerVert; // right top\r\n\r\n verts[vertexOffset] = vr;\r\n verts[vertexOffset + 1] = vt;\r\n } else {\r\n let local = this._local;\r\n let verts = this._renderData.vDatas[0];\r\n\r\n let matrix = comp.node._worldMatrix;\r\n let matrixm = matrix.m,\r\n a = matrixm[0], b = matrixm[1], c = matrixm[4], d = matrixm[5],\r\n tx = matrixm[12], ty = matrixm[13];\r\n\r\n let vl = local[0], vr = local[2],\r\n vb = local[1], vt = local[3];\r\n\r\n let floatsPerVert = this.floatsPerVert;\r\n let vertexOffset = 0;\r\n let justTranslate = a === 1 && b === 0 && c === 0 && d === 1;\r\n\r\n if (justTranslate) {\r\n // left bottom\r\n verts[vertexOffset] = vl + tx;\r\n verts[vertexOffset + 1] = vb + ty;\r\n vertexOffset += floatsPerVert;\r\n // right bottom\r\n verts[vertexOffset] = vr + tx;\r\n verts[vertexOffset + 1] = vb + ty;\r\n vertexOffset += floatsPerVert;\r\n // left top\r\n verts[vertexOffset] = vl + tx;\r\n verts[vertexOffset + 1] = vt + ty;\r\n vertexOffset += floatsPerVert;\r\n // right top\r\n verts[vertexOffset] = vr + tx;\r\n verts[vertexOffset + 1] = vt + ty;\r\n } else {\r\n let al = a * vl, ar = a * vr,\r\n bl = b * vl, br = b * vr,\r\n cb = c * vb, ct = c * vt,\r\n db = d * vb, dt = d * vt;\r\n\r\n // left bottom\r\n verts[vertexOffset] = al + cb + tx;\r\n verts[vertexOffset + 1] = bl + db + ty;\r\n vertexOffset += floatsPerVert;\r\n // right bottom\r\n verts[vertexOffset] = ar + cb + tx;\r\n verts[vertexOffset + 1] = br + db + ty;\r\n vertexOffset += floatsPerVert;\r\n // left top\r\n verts[vertexOffset] = al + ct + tx;\r\n verts[vertexOffset + 1] = bl + dt + ty;\r\n vertexOffset += floatsPerVert;\r\n // right top\r\n verts[vertexOffset] = ar + ct + tx;\r\n verts[vertexOffset + 1] = br + dt + ty;\r\n }\r\n }\r\n }\r\n\r\n fillBuffers(comp, renderer) {\r\n if (renderer.worldMatDirty) {\r\n this.updateWorldVerts(comp);\r\n }\r\n\r\n let renderData = this._renderData;\r\n let vData = renderData.vDatas[0];\r\n let iData = renderData.iDatas[0];\r\n\r\n let buffer = this.getBuffer(renderer);\r\n let offsetInfo = buffer.request(this.verticesCount, this.indicesCount);\r\n\r\n // buffer data may be realloc, need get reference after request.\r\n\r\n // fill vertices\r\n let vertexOffset = offsetInfo.byteOffset >> 2,\r\n vbuf = buffer._vData;\r\n\r\n if (vData.length + vertexOffset > vbuf.length) {\r\n vbuf.set(vData.subarray(0, vbuf.length - vertexOffset), vertexOffset);\r\n } else {\r\n vbuf.set(vData, vertexOffset);\r\n }\r\n\r\n // fill indices\r\n let ibuf = buffer._iData,\r\n indiceOffset = offsetInfo.indiceOffset,\r\n vertexId = offsetInfo.vertexOffset;\r\n for (let i = 0, l = iData.length; i < l; i++) {\r\n ibuf[indiceOffset++] = vertexId + iData[i];\r\n }\r\n }\r\n\r\n packToDynamicAtlas(comp, frame) {\r\n if (CC_TEST) return;\r\n\r\n if (!frame._original && cc.dynamicAtlasManager && frame._texture.packable) {\r\n let packedFrame = cc.dynamicAtlasManager.insertSpriteFrame(frame);\r\n if (packedFrame) {\r\n frame._setDynamicAtlasFrame(packedFrame);\r\n }\r\n }\r\n let material = comp._materials[0];\r\n if (!material) return;\r\n\r\n if (material.getProperty('texture') !== frame._texture) {\r\n // texture was packed to dynamic atlas, should update uvs\r\n comp._vertsDirty = true;\r\n comp._updateMaterial();\r\n }\r\n }\r\n}"]} \ No newline at end of file +{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoAssembler.js"],"names":["gfx","cc","vfmtPosUvIndex","VertexFormat","name","ATTR_POSITION","type","ATTR_TYPE_FLOAT32","num","ATTR_UV0","vfmtPosUvColorIndex","ATTR_COLOR","ATTR_TYPE_UINT8","normalize","TmoAssembler","_cc$Assembler","_inheritsLoose","apply","arguments","_proto","prototype","init","comp","call","_noColor","isNoColor","updateColor","undefined","updateColorFunc","uvOffset","colorOffset","textureIndexOffset","floatsPerVert","indicesCount","verticesCount","_renderData","RenderData","initLocal","initData","_local","length","data","createFlexData","getVfmt","indices","iDatas","count","i","idx","vertextID","getBuffer","renderer","_handle","updateRenderData","sprite","packToDynamicAtlas","_spriteFrame","_vertsDirty","updateUVs","updateVerts","updateTextureIdx","textureIdx","_textureIdx","verts","vDatas","index","uv","srcOffset","dstOffset","node","cw","width","ch","height","appx","anchorX","appy","anchorY","l","b","r","t","trim","frame","spriteFrame","ow","_originalSize","oh","rw","_rect","rh","offset","_offset","scaleX","scaleY","trimLeft","x","trimRight","trimBottom","y","trimTop","local","updateWorldVerts","color","uintVerts","uintVDatas","_val","CC_NATIVERENDERER","vl","vr","vb","vt","vertexOffset","matrix","_worldMatrix","matrixm","m","a","c","d","tx","ty","justTranslate","al","ar","bl","br","cb","ct","db","dt","fillBuffers","worldMatDirty","renderData","vData","iData","buffer","offsetInfo","request","byteOffset","vbuf","_vData","set","subarray","ibuf","_iData","indiceOffset","vertexId","CC_TEST","_original","dynamicAtlasManager","_texture","packable","packedFrame","insertSpriteFrame","_setDynamicAtlasFrame","material","_materials","getProperty","_updateMaterial","_createClass","key","get","Assembler","exports"],"mappings":"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","sourceRoot":"/","sourcesContent":["let gfx = cc.gfx;\r\n// 颜色去除 + 物件图集合批\r\nvar vfmtPosUvIndex = new gfx.VertexFormat([\r\n { name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: gfx.ATTR_UV0, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: \"a_texture_idx\", type: gfx.ATTR_TYPE_FLOAT32, num: 1 },\r\n]);\r\n\r\n// 仅物件图集合批\r\nvar vfmtPosUvColorIndex = new gfx.VertexFormat([\r\n { name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: gfx.ATTR_UV0, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: \"a_texture_idx\", type: gfx.ATTR_TYPE_FLOAT32, num: 1 },\r\n { name: gfx.ATTR_COLOR, type: gfx.ATTR_TYPE_UINT8, num: 4, normalize: true },\r\n]);\r\n\r\nexport class TmoAssembler extends cc.Assembler {\r\n init(comp) {\r\n super.init(comp);\r\n\r\n this._noColor = comp.isNoColor();\r\n this.updateColor = this._noColor ? undefined : this.updateColorFunc;\r\n\r\n this.uvOffset = 2;\r\n this.colorOffset = 5;\r\n this.textureIndexOffset = 4;\r\n this.floatsPerVert = this._noColor ? 5 : 6;\r\n\r\n this.indicesCount = 6;\r\n this.verticesCount = 4;\r\n\r\n this._renderData = new cc.RenderData();\r\n this._renderData.init(this);\r\n\r\n this.initLocal();\r\n this.initData();\r\n }\r\n\r\n initLocal() {\r\n this._local = [];\r\n this._local.length = 4;\r\n }\r\n\r\n initData() {\r\n let data = this._renderData;\r\n data.createFlexData(0, this.verticesCount, this.indicesCount, this.getVfmt());\r\n\r\n // 填充顶点索引信息\r\n let indices = data.iDatas[0];\r\n let count = indices.length / 6;\r\n for (let i = 0, idx = 0; i < count; i++) {\r\n let vertextID = i * 4;\r\n indices[idx++] = vertextID;\r\n indices[idx++] = vertextID + 1;\r\n indices[idx++] = vertextID + 2;\r\n indices[idx++] = vertextID + 1;\r\n indices[idx++] = vertextID + 3;\r\n indices[idx++] = vertextID + 2;\r\n }\r\n }\r\n\r\n getBuffer() {\r\n return cc.renderer._handle.getBuffer(\"mesh\", this.getVfmt());\r\n }\r\n\r\n getVfmt() {\r\n return this._noColor ? vfmtPosUvIndex : vfmtPosUvColorIndex;\r\n }\r\n\r\n updateRenderData(sprite) {\r\n this.packToDynamicAtlas(sprite, sprite._spriteFrame);\r\n\r\n if (sprite._vertsDirty) {\r\n this.updateUVs(sprite);\r\n this.updateVerts(sprite);\r\n this.updateTextureIdx(sprite);\r\n sprite._vertsDirty = false;\r\n }\r\n }\r\n\r\n /**\r\n * 填充textureIndex数据\r\n * @param {cc.Sprite} sprite \r\n */\r\n updateTextureIdx(sprite) {\r\n let textureIdx = sprite._textureIdx;\r\n let verts = this._renderData.vDatas[0];\r\n\r\n let verticesCount = this.verticesCount;\r\n let floatsPerVert = this.floatsPerVert;\r\n let textureIndexOffset = this.textureIndexOffset;\r\n\r\n for (let i = 0; i < verticesCount; i++) {\r\n let index = i * floatsPerVert + textureIndexOffset;\r\n verts[index] = textureIdx;\r\n }\r\n }\r\n\r\n updateUVs(sprite) {\r\n let uv = sprite._spriteFrame.uv;\r\n let uvOffset = this.uvOffset;\r\n let floatsPerVert = this.floatsPerVert;\r\n let verts = this._renderData.vDatas[0];\r\n for (let i = 0; i < 4; i++) {\r\n let srcOffset = i * 2;\r\n let dstOffset = floatsPerVert * i + uvOffset;\r\n verts[dstOffset] = uv[srcOffset];\r\n verts[dstOffset + 1] = uv[srcOffset + 1];\r\n }\r\n }\r\n\r\n updateVerts(sprite) {\r\n let node = sprite.node,\r\n cw = node.width, ch = node.height,\r\n appx = node.anchorX * cw, appy = node.anchorY * ch,\r\n l, b, r, t;\r\n if (sprite.trim) {\r\n l = -appx;\r\n b = -appy;\r\n r = cw - appx;\r\n t = ch - appy;\r\n }\r\n else {\r\n let frame = sprite.spriteFrame,\r\n ow = frame._originalSize.width, oh = frame._originalSize.height,\r\n rw = frame._rect.width, rh = frame._rect.height,\r\n offset = frame._offset,\r\n scaleX = cw / ow, scaleY = ch / oh;\r\n let trimLeft = offset.x + (ow - rw) / 2;\r\n let trimRight = offset.x - (ow - rw) / 2;\r\n let trimBottom = offset.y + (oh - rh) / 2;\r\n let trimTop = offset.y - (oh - rh) / 2;\r\n l = trimLeft * scaleX - appx;\r\n b = trimBottom * scaleY - appy;\r\n r = cw + trimRight * scaleX - appx;\r\n t = ch + trimTop * scaleY - appy;\r\n }\r\n\r\n let local = this._local;\r\n local[0] = l;\r\n local[1] = b;\r\n local[2] = r;\r\n local[3] = t;\r\n this.updateWorldVerts(sprite);\r\n }\r\n\r\n get verticesFloats() {\r\n return this.verticesCount * this.floatsPerVert;\r\n }\r\n\r\n updateColorFunc(comp, color) {\r\n let uintVerts = this._renderData.uintVDatas[0];\r\n if (!uintVerts) return;\r\n color = color != null ? color : comp.node.color._val;\r\n let floatsPerVert = this.floatsPerVert;\r\n let colorOffset = this.colorOffset;\r\n for (let i = colorOffset, l = uintVerts.length; i < l; i += floatsPerVert) {\r\n uintVerts[i] = color;\r\n }\r\n }\r\n\r\n updateWorldVerts(comp) {\r\n if (CC_NATIVERENDERER) {\r\n // 原生平台兼容代码 复制于jsb-engine.js中的cc.Assembler2D.prototype.updateWorldVerts\r\n var local = this._local;\r\n var verts = this._renderData.vDatas[0];\r\n var vl = local[0],\r\n vr = local[2],\r\n vb = local[1],\r\n vt = local[3];\r\n var floatsPerVert = this.floatsPerVert;\r\n var vertexOffset = 0; // left bottom\r\n\r\n verts[vertexOffset] = vl;\r\n verts[vertexOffset + 1] = vb;\r\n vertexOffset += floatsPerVert; // right bottom\r\n\r\n verts[vertexOffset] = vr;\r\n verts[vertexOffset + 1] = vb;\r\n vertexOffset += floatsPerVert; // left top\r\n\r\n verts[vertexOffset] = vl;\r\n verts[vertexOffset + 1] = vt;\r\n vertexOffset += floatsPerVert; // right top\r\n\r\n verts[vertexOffset] = vr;\r\n verts[vertexOffset + 1] = vt;\r\n } else {\r\n let local = this._local;\r\n let verts = this._renderData.vDatas[0];\r\n\r\n let matrix = comp.node._worldMatrix;\r\n let matrixm = matrix.m,\r\n a = matrixm[0], b = matrixm[1], c = matrixm[4], d = matrixm[5],\r\n tx = matrixm[12], ty = matrixm[13];\r\n\r\n let vl = local[0], vr = local[2],\r\n vb = local[1], vt = local[3];\r\n\r\n let floatsPerVert = this.floatsPerVert;\r\n let vertexOffset = 0;\r\n let justTranslate = a === 1 && b === 0 && c === 0 && d === 1;\r\n\r\n if (justTranslate) {\r\n // left bottom\r\n verts[vertexOffset] = vl + tx;\r\n verts[vertexOffset + 1] = vb + ty;\r\n vertexOffset += floatsPerVert;\r\n // right bottom\r\n verts[vertexOffset] = vr + tx;\r\n verts[vertexOffset + 1] = vb + ty;\r\n vertexOffset += floatsPerVert;\r\n // left top\r\n verts[vertexOffset] = vl + tx;\r\n verts[vertexOffset + 1] = vt + ty;\r\n vertexOffset += floatsPerVert;\r\n // right top\r\n verts[vertexOffset] = vr + tx;\r\n verts[vertexOffset + 1] = vt + ty;\r\n } else {\r\n let al = a * vl, ar = a * vr,\r\n bl = b * vl, br = b * vr,\r\n cb = c * vb, ct = c * vt,\r\n db = d * vb, dt = d * vt;\r\n\r\n // left bottom\r\n verts[vertexOffset] = al + cb + tx;\r\n verts[vertexOffset + 1] = bl + db + ty;\r\n vertexOffset += floatsPerVert;\r\n // right bottom\r\n verts[vertexOffset] = ar + cb + tx;\r\n verts[vertexOffset + 1] = br + db + ty;\r\n vertexOffset += floatsPerVert;\r\n // left top\r\n verts[vertexOffset] = al + ct + tx;\r\n verts[vertexOffset + 1] = bl + dt + ty;\r\n vertexOffset += floatsPerVert;\r\n // right top\r\n verts[vertexOffset] = ar + ct + tx;\r\n verts[vertexOffset + 1] = br + dt + ty;\r\n }\r\n }\r\n }\r\n\r\n fillBuffers(comp, renderer) {\r\n if (renderer.worldMatDirty) {\r\n this.updateWorldVerts(comp);\r\n }\r\n\r\n let renderData = this._renderData;\r\n let vData = renderData.vDatas[0];\r\n let iData = renderData.iDatas[0];\r\n\r\n let buffer = this.getBuffer(renderer);\r\n let offsetInfo = buffer.request(this.verticesCount, this.indicesCount);\r\n\r\n // buffer data may be realloc, need get reference after request.\r\n\r\n // fill vertices\r\n let vertexOffset = offsetInfo.byteOffset >> 2,\r\n vbuf = buffer._vData;\r\n\r\n if (vData.length + vertexOffset > vbuf.length) {\r\n vbuf.set(vData.subarray(0, vbuf.length - vertexOffset), vertexOffset);\r\n } else {\r\n vbuf.set(vData, vertexOffset);\r\n }\r\n\r\n // fill indices\r\n let ibuf = buffer._iData,\r\n indiceOffset = offsetInfo.indiceOffset,\r\n vertexId = offsetInfo.vertexOffset;\r\n for (let i = 0, l = iData.length; i < l; i++) {\r\n ibuf[indiceOffset++] = vertexId + iData[i];\r\n }\r\n }\r\n\r\n packToDynamicAtlas(comp, frame) {\r\n if (CC_TEST) return;\r\n\r\n if (!frame._original && cc.dynamicAtlasManager && frame._texture.packable) {\r\n let packedFrame = cc.dynamicAtlasManager.insertSpriteFrame(frame);\r\n if (packedFrame) {\r\n frame._setDynamicAtlasFrame(packedFrame);\r\n }\r\n }\r\n let material = comp._materials[0];\r\n if (!material) return;\r\n\r\n if (material.getProperty('texture') !== frame._texture) {\r\n // texture was packed to dynamic atlas, should update uvs\r\n comp._vertsDirty = true;\r\n comp._updateMaterial();\r\n }\r\n }\r\n}"]} \ No newline at end of file diff --git a/library/imports/1c/1c619601-a6ae-4c45-be2c-20b0d95e950f.json b/library/imports/1c/1c619601-a6ae-4c45-be2c-20b0d95e950f.json index de262ab..3361336 100644 --- a/library/imports/1c/1c619601-a6ae-4c45-be2c-20b0d95e950f.json +++ b/library/imports/1c/1c619601-a6ae-4c45-be2c-20b0d95e950f.json @@ -236,6 +236,7 @@ "special": 0, "color": 0, "wall_SpriteFrames": null, + "down_SpriteFrames": null, "_id": "" }, { diff --git a/library/imports/1d/1dc936f8-7de8-4eae-91a0-4e48a1047e20.js b/library/imports/1d/1dc936f8-7de8-4eae-91a0-4e48a1047e20.js index 87e031d..7a1b8cc 100644 --- a/library/imports/1d/1dc936f8-7de8-4eae-91a0-4e48a1047e20.js +++ b/library/imports/1d/1dc936f8-7de8-4eae-91a0-4e48a1047e20.js @@ -169,6 +169,24 @@ var NewClass = /** @class */ (function (_super) { // } } }; + //打开商店 + 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; }; 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 983aef0..7acb276 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 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\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 diff --git a/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js b/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js index 0ff42c8..5a6640b 100644 --- a/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js +++ b/library/imports/22/2234ab2c-a7b4-48be-90e0-ae7aa58e9d91.js @@ -222,6 +222,7 @@ var MapConroler = /** @class */ (function (_super) { var _this = this; var blockArray = cc.fx.GameConfig.BLOCK_INFO[0]; blockArray = this.sortBlock(blockArray); + console.log("创建方块", blockArray); var index = 0; // 当前要创建的方块索引 var BLOCKS_PER_FRAME = 1; // 初始每帧创建的方块数量 var MAX_PER_FRAME = 10; // 每帧最大创建数量 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 07b4659..5d40fbb 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 \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 {\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\nsortBlock(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\nwallInit() {\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 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 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 0){\r\n for(let i=0; i= 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 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 {\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 {\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 {\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 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{\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 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 {\r\n if(count != 0){\r\n for(let i=0; i 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 = [];\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\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 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\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 let timeData = {\r\n count_Time: this.count_Time,\r\n add_Time: this.add_Time\r\n }\r\n cc.fx.GameTool.addLevel(timeData);\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 new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/22/227db116-a70e-4157-b553-bfe8d6d18a6a.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/22/227db116-a70e-4157-b553-bfe8d6d18a6a.png b/library/imports/22/227db116-a70e-4157-b553-bfe8d6d18a6a.png new file mode 100644 index 0000000..e9a71ad Binary files /dev/null and b/library/imports/22/227db116-a70e-4157-b553-bfe8d6d18a6a.png differ diff --git a/library/imports/23/23ac2edd-38a4-4669-94dd-422bc2eb89df.json b/library/imports/23/23ac2edd-38a4-4669-94dd-422bc2eb89df.json new file mode 100644 index 0000000..0707e77 --- /dev/null +++ b/library/imports/23/23ac2edd-38a4-4669-94dd-422bc2eb89df.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "cost_5", + "texture": "9ffc3971-f097-4de5-b88a-2e5e6d78104a", + "atlas": "", + "rect": [ + 0, + 0, + 25, + 36 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 25, + 36 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/24/24a3a948-d370-492b-a604-772db3e9092d.json b/library/imports/24/24a3a948-d370-492b-a604-772db3e9092d.json new file mode 100644 index 0000000..5f41005 --- /dev/null +++ b/library/imports/24/24a3a948-d370-492b-a604-772db3e9092d.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "shop_2", + "texture": "267f6a1d-6833-4412-9b85-df929fcb2d9d", + "atlas": "ad450c22-24c1-4352-a09f-151cb9f3ab8a", + "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/25/25612630-24db-43ef-a7a9-0a56c98dc21e.json b/library/imports/25/25612630-24db-43ef-a7a9-0a56c98dc21e.json new file mode 100644 index 0000000..cbb13e3 --- /dev/null +++ b/library/imports/25/25612630-24db-43ef-a7a9-0a56c98dc21e.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins7", + "texture": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "atlas": "7aef6fef-1f14-4aeb-ba2e-3738a437eb63", + "rect": [ + 232, + 214, + 185, + 206 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 185, + 206 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/26/267f6a1d-6833-4412-9b85-df929fcb2d9d.json b/library/imports/26/267f6a1d-6833-4412-9b85-df929fcb2d9d.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/26/267f6a1d-6833-4412-9b85-df929fcb2d9d.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/26/267f6a1d-6833-4412-9b85-df929fcb2d9d.png b/library/imports/26/267f6a1d-6833-4412-9b85-df929fcb2d9d.png new file mode 100644 index 0000000..a0b91a6 Binary files /dev/null and b/library/imports/26/267f6a1d-6833-4412-9b85-df929fcb2d9d.png differ diff --git a/library/imports/2a/2a1bffdc-6b63-425c-9710-a32b4d93ea4b.json b/library/imports/2a/2a1bffdc-6b63-425c-9710-a32b4d93ea4b.json index 0e971b2..88e9eb1 100644 --- a/library/imports/2a/2a1bffdc-6b63-425c-9710-a32b4d93ea4b.json +++ b/library/imports/2a/2a1bffdc-6b63-425c-9710-a32b4d93ea4b.json @@ -446,7 +446,7 @@ } } }, - "_atlasText": "\nzhandan.png\nsize: 1020,1020\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\nbanyuan0001\n rotate: true\n xy: 758, 692\n size: 86, 79\n orig: 265, 209\n offset: 87, 34\n index: -1\nbanyuan0004\n rotate: true\n xy: 633, 273\n size: 172, 133\n orig: 265, 209\n offset: 46, 11\n index: -1\nbanyuan0007\n rotate: false\n xy: 2, 4\n size: 242, 188\n orig: 265, 209\n offset: 10, 6\n index: -1\nbanyuan0010\n rotate: false\n xy: 2, 194\n size: 253, 195\n orig: 265, 209\n offset: 5, 7\n index: -1\nbanyuan0013\n rotate: false\n xy: 2, 611\n size: 259, 199\n orig: 265, 209\n offset: 2, 5\n index: -1\nbanyuan0016\n rotate: false\n xy: 2, 812\n size: 262, 203\n orig: 265, 209\n offset: 1, 3\n index: -1\nhuoquan0001\n rotate: true\n xy: 758, 780\n size: 123, 80\n orig: 222, 151\n offset: 52, 41\n index: -1\nhuoquan0004\n rotate: true\n xy: 633, 17\n size: 193, 140\n orig: 222, 151\n offset: 16, 9\n index: -1\nhuoquan0006\n rotate: true\n xy: 463, 615\n size: 209, 148\n orig: 222, 151\n offset: 7, 3\n index: -1\nhuoquan0009\n rotate: false\n xy: 468, 870\n size: 213, 145\n orig: 222, 151\n offset: 5, 2\n index: -1\nhuoquan0012\n rotate: true\n xy: 613, 655\n size: 213, 143\n orig: 222, 151\n offset: 5, 1\n index: -1\nhuoquan0015\n rotate: true\n xy: 633, 447\n size: 206, 140\n orig: 222, 151\n offset: 9, 1\n index: -1\nzaza0001\n rotate: true\n xy: 683, 905\n size: 110, 98\n orig: 251, 223\n offset: 74, 45\n index: -1\nzaza0003\n rotate: false\n xy: 240, 408\n size: 218, 201\n orig: 251, 223\n offset: 28, 0\n index: -1\nzaza0004\n rotate: false\n xy: 2, 391\n size: 236, 218\n orig: 251, 223\n offset: 15, 0\n index: -1\nzaza0008\n rotate: true\n xy: 266, 612\n size: 212, 195\n orig: 251, 223\n offset: 27, 6\n index: -1\nzaza0012\n rotate: true\n xy: 257, 191\n size: 215, 198\n orig: 251, 223\n offset: 24, 6\n index: -1\nzaza0016\n rotate: true\n xy: 266, 826\n size: 189, 200\n orig: 251, 223\n offset: 28, 4\n index: -1\nzaza0020\n rotate: true\n xy: 246, 2\n size: 187, 205\n orig: 251, 223\n offset: 24, 2\n index: -1\nzaza0024\n rotate: false\n xy: 457, 212\n size: 174, 194\n orig: 251, 223\n offset: 30, 6\n index: -1\nzaza0028\n rotate: false\n xy: 457, 16\n size: 174, 194\n orig: 251, 223\n offset: 30, 6\n index: -1\nzaza0032\n rotate: false\n xy: 460, 415\n size: 171, 194\n orig: 251, 223\n offset: 30, 6\n index: -1\nzhadan1\n rotate: false\n xy: 768, 352\n size: 60, 93\n orig: 62, 95\n offset: 1, 1\n index: -1\nzhadan2\n rotate: false\n xy: 768, 267\n size: 59, 83\n orig: 62, 95\n offset: 1, 1\n index: -1\nzhadan3\n rotate: false\n xy: 775, 447\n size: 59, 76\n orig: 62, 95\n offset: 1, 1\n index: -1\n", + "_atlasText": "\r\nzhandan.png\r\nsize: 1020,1020\r\nformat: RGBA8888\r\nfilter: Linear,Linear\r\nrepeat: none\r\nbanyuan0001\r\n rotate: true\r\n xy: 758, 692\r\n size: 86, 79\r\n orig: 265, 209\r\n offset: 87, 34\r\n index: -1\r\nbanyuan0004\r\n rotate: true\r\n xy: 633, 273\r\n size: 172, 133\r\n orig: 265, 209\r\n offset: 46, 11\r\n index: -1\r\nbanyuan0007\r\n rotate: false\r\n xy: 2, 4\r\n size: 242, 188\r\n orig: 265, 209\r\n offset: 10, 6\r\n index: -1\r\nbanyuan0010\r\n rotate: false\r\n xy: 2, 194\r\n size: 253, 195\r\n orig: 265, 209\r\n offset: 5, 7\r\n index: -1\r\nbanyuan0013\r\n rotate: false\r\n xy: 2, 611\r\n size: 259, 199\r\n orig: 265, 209\r\n offset: 2, 5\r\n index: -1\r\nbanyuan0016\r\n rotate: false\r\n xy: 2, 812\r\n size: 262, 203\r\n orig: 265, 209\r\n offset: 1, 3\r\n index: -1\r\nhuoquan0001\r\n rotate: true\r\n xy: 758, 780\r\n size: 123, 80\r\n orig: 222, 151\r\n offset: 52, 41\r\n index: -1\r\nhuoquan0004\r\n rotate: true\r\n xy: 633, 17\r\n size: 193, 140\r\n orig: 222, 151\r\n offset: 16, 9\r\n index: -1\r\nhuoquan0006\r\n rotate: true\r\n xy: 463, 615\r\n size: 209, 148\r\n orig: 222, 151\r\n offset: 7, 3\r\n index: -1\r\nhuoquan0009\r\n rotate: false\r\n xy: 468, 870\r\n size: 213, 145\r\n orig: 222, 151\r\n offset: 5, 2\r\n index: -1\r\nhuoquan0012\r\n rotate: true\r\n xy: 613, 655\r\n size: 213, 143\r\n orig: 222, 151\r\n offset: 5, 1\r\n index: -1\r\nhuoquan0015\r\n rotate: true\r\n xy: 633, 447\r\n size: 206, 140\r\n orig: 222, 151\r\n offset: 9, 1\r\n index: -1\r\nzaza0001\r\n rotate: true\r\n xy: 683, 905\r\n size: 110, 98\r\n orig: 251, 223\r\n offset: 74, 45\r\n index: -1\r\nzaza0003\r\n rotate: false\r\n xy: 240, 408\r\n size: 218, 201\r\n orig: 251, 223\r\n offset: 28, 0\r\n index: -1\r\nzaza0004\r\n rotate: false\r\n xy: 2, 391\r\n size: 236, 218\r\n orig: 251, 223\r\n offset: 15, 0\r\n index: -1\r\nzaza0008\r\n rotate: true\r\n xy: 266, 612\r\n size: 212, 195\r\n orig: 251, 223\r\n offset: 27, 6\r\n index: -1\r\nzaza0012\r\n rotate: true\r\n xy: 257, 191\r\n size: 215, 198\r\n orig: 251, 223\r\n offset: 24, 6\r\n index: -1\r\nzaza0016\r\n rotate: true\r\n xy: 266, 826\r\n size: 189, 200\r\n orig: 251, 223\r\n offset: 28, 4\r\n index: -1\r\nzaza0020\r\n rotate: true\r\n xy: 246, 2\r\n size: 187, 205\r\n orig: 251, 223\r\n offset: 24, 2\r\n index: -1\r\nzaza0024\r\n rotate: false\r\n xy: 457, 212\r\n size: 174, 194\r\n orig: 251, 223\r\n offset: 30, 6\r\n index: -1\r\nzaza0028\r\n rotate: false\r\n xy: 457, 16\r\n size: 174, 194\r\n orig: 251, 223\r\n offset: 30, 6\r\n index: -1\r\nzaza0032\r\n rotate: false\r\n xy: 460, 415\r\n size: 171, 194\r\n orig: 251, 223\r\n offset: 30, 6\r\n index: -1\r\nzhadan1\r\n rotate: false\r\n xy: 768, 352\r\n size: 60, 93\r\n orig: 62, 95\r\n offset: 1, 1\r\n index: -1\r\nzhadan2\r\n rotate: false\r\n xy: 768, 267\r\n size: 59, 83\r\n orig: 62, 95\r\n offset: 1, 1\r\n index: -1\r\nzhadan3\r\n rotate: false\r\n xy: 775, 447\r\n size: 59, 76\r\n orig: 62, 95\r\n offset: 1, 1\r\n index: -1\r\n", "textures": [ { "__uuid__": "15f7f173-be51-47f3-8314-66d14e63471f" diff --git a/library/imports/2c/2cd54f87-8181-484e-915e-e902e5bea0c1.js b/library/imports/2c/2cd54f87-8181-484e-915e-e902e5bea0c1.js index 3cc1670..104423b 100644 --- a/library/imports/2c/2cd54f87-8181-484e-915e-e902e5bea0c1.js +++ b/library/imports/2c/2cd54f87-8181-484e-915e-e902e5bea0c1.js @@ -10,6 +10,7 @@ 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 + cc.Class({ "extends": cc.Component, properties: { @@ -19,7 +20,8 @@ cc.Class({ female: 1 }), "default": 0 - } // foo: { + } + // foo: { // // ATTRIBUTES: // default: null, // The default value will be used only when the component attaching // // to a node for the first time @@ -34,12 +36,10 @@ cc.Class({ // this._bar = value; // } // }, - }, // LIFE-CYCLE CALLBACKS: // onLoad () {}, start: function start() {} // update (dt) {}, - }); cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/2c/2cd54f87-8181-484e-915e-e902e5bea0c1.js.map b/library/imports/2c/2cd54f87-8181-484e-915e-e902e5bea0c1.js.map index 1bfcf43..19b549f 100644 --- a/library/imports/2c/2cd54f87-8181-484e-915e-e902e5bea0c1.js.map +++ b/library/imports/2c/2cd54f87-8181-484e-915e-e902e5bea0c1.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\animation\\NewScript.js"],"names":["cc","Class","Component","properties","sex","type","Enum","male","female","start"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAEAA,EAAE,CAACC,KAAH,CAAS;AACL,aAASD,EAAE,CAACE,SADP;AAGLC,EAAAA,UAAU,EAAE;AACRC,IAAAA,GAAG,EAAC;AACAC,MAAAA,IAAI,EAACL,EAAE,CAACM,IAAH,CAAQ;AACTC,QAAAA,IAAI,EAAC,CADI;AAETC,QAAAA,MAAM,EAAC;AAFE,OAAR,CADL;AAKA,iBAAQ;AALR,KADI,CAQR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAtBQ,GAHP;AA4BL;AAEA;AAEAC,EAAAA,KAhCK,mBAgCI,CAER,CAlCI,CAoCL;;AApCK,CAAT","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/class.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\ncc.Class({\r\n extends: cc.Component,\r\n\r\n properties: {\r\n sex:{\r\n type:cc.Enum({\r\n male:0,\r\n female:1\r\n }),\r\n default:0\r\n }\r\n // foo: {\r\n // // ATTRIBUTES:\r\n // default: null, // The default value will be used only when the component attaching\r\n // // to a node for the first time\r\n // type: cc.SpriteFrame, // optional, default is typeof default\r\n // serializable: true, // optional, default is true\r\n // },\r\n // bar: {\r\n // get () {\r\n // return this._bar;\r\n // },\r\n // set (value) {\r\n // this._bar = value;\r\n // }\r\n // },\r\n },\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n // onLoad () {},\r\n\r\n start () {\r\n\r\n },\r\n\r\n // update (dt) {},\r\n});\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\animation\\NewScript.js"],"names":["cc","Class","Component","properties","sex","type","Enum","male","female","start"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEAA,EAAE,CAACC,KAAK,CAAC;EACL,WAASD,EAAE,CAACE,SAAS;EAErBC,UAAU,EAAE;IACRC,GAAG,EAAC;MACAC,IAAI,EAACL,EAAE,CAACM,IAAI,CAAC;QACTC,IAAI,EAAC,CAAC;QACNC,MAAM,EAAC;MACX,CAAC,CAAC;MACF,WAAQ;IACZ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;EACJ,CAAC;EAED;EAEA;EAEAC,KAAK,WAAAA,MAAA,EAAI,CAET,CAAC,CAED;AACJ,CAAC,CAAC","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/class.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\ncc.Class({\r\n extends: cc.Component,\r\n\r\n properties: {\r\n sex:{\r\n type:cc.Enum({\r\n male:0,\r\n female:1\r\n }),\r\n default:0\r\n }\r\n // foo: {\r\n // // ATTRIBUTES:\r\n // default: null, // The default value will be used only when the component attaching\r\n // // to a node for the first time\r\n // type: cc.SpriteFrame, // optional, default is typeof default\r\n // serializable: true, // optional, default is true\r\n // },\r\n // bar: {\r\n // get () {\r\n // return this._bar;\r\n // },\r\n // set (value) {\r\n // this._bar = value;\r\n // }\r\n // },\r\n },\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n // onLoad () {},\r\n\r\n start () {\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/30/303417e6-891a-4bda-950c-4d2a04a1f4aa.json b/library/imports/30/303417e6-891a-4bda-950c-4d2a04a1f4aa.json index 978d1e9..f3744b2 100644 --- a/library/imports/30/303417e6-891a-4bda-950c-4d2a04a1f4aa.json +++ b/library/imports/30/303417e6-891a-4bda-950c-4d2a04a1f4aa.json @@ -487,7 +487,7 @@ } } }, - "_atlasText": "\nmofabang_baozha.png\nsize: 2040,2040\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\nimages/effects/Glow1\n rotate: false\n xy: 862, 1516\n size: 216, 216\n orig: 256, 256\n offset: 20, 19\n index: -1\nimages/effects/hit/hit_00\n rotate: true\n xy: 1379, 1762\n size: 276, 272\n orig: 400, 400\n offset: 61, 64\n index: -1\nimages/effects/hit/hit_01\n rotate: false\n xy: 1395, 1520\n size: 248, 240\n orig: 400, 400\n offset: 76, 80\n index: -1\nimages/effects/hit/hit_02\n rotate: false\n xy: 2, 1734\n size: 332, 304\n orig: 400, 400\n offset: 39, 51\n index: -1\nimages/effects/hit/hit_03\n rotate: true\n xy: 604, 1726\n size: 312, 252\n orig: 400, 400\n offset: 50, 83\n index: -1\nimages/effects/hit/hit_04\n rotate: false\n xy: 270, 1524\n size: 272, 208\n orig: 400, 400\n offset: 78, 108\n index: -1\nimages/effects/hit/hit_05\n rotate: false\n xy: 2, 1512\n size: 266, 220\n orig: 400, 400\n offset: 79, 103\n index: -1\nimages/effects/hit/hit_06\n rotate: false\n xy: 1117, 1496\n size: 276, 240\n orig: 400, 400\n offset: 73, 94\n index: -1\nimages/effects/hit/hit_07\n rotate: true\n xy: 1117, 1738\n size: 300, 260\n orig: 400, 400\n offset: 67, 85\n index: -1\nimages/effects/hit/hit_08\n rotate: true\n xy: 858, 1734\n size: 304, 257\n orig: 400, 400\n offset: 69, 82\n index: -1\nimages/effects/hit/hit_09\n rotate: true\n xy: 336, 1738\n size: 300, 266\n orig: 400, 400\n offset: 70, 74\n index: -1\nimages/effects/hit/hit_10\n rotate: true\n xy: 1645, 1380\n size: 162, 230\n orig: 400, 400\n offset: 95, 114\n index: -1\nimages/effects/hit/hit_11\n rotate: false\n xy: 1148, 1399\n size: 101, 95\n orig: 400, 400\n offset: 99, 119\n index: -1\nimages/effects/hit/hit_12\n rotate: false\n xy: 2037, 2037\n size: 1, 1\n orig: 400, 400\n offset: 198, 213\n index: -1\nimages/lizi/shoujibaodian_34\n rotate: false\n xy: 1653, 1719\n size: 211, 319\n orig: 1136, 640\n offset: 696, 201\n index: -1\nimages/lizi/shoujibaodian_35\n rotate: true\n xy: 544, 1546\n size: 178, 316\n orig: 1136, 640\n offset: 694, 201\n index: -1\nimages/lizi/shoujibaodian_36\n rotate: true\n xy: 1645, 1544\n size: 173, 313\n orig: 1136, 640\n offset: 696, 200\n index: -1\nimages/lizi/shoujibaodian_37\n rotate: false\n xy: 1866, 1810\n size: 169, 228\n orig: 1136, 640\n offset: 698, 233\n index: -1\nimages/lizi/shoujibaodian_38\n rotate: true\n xy: 544, 1378\n size: 166, 228\n orig: 1136, 640\n offset: 702, 235\n index: -1\nimages/lizi/shoujibaodian_39\n rotate: true\n xy: 270, 1358\n size: 164, 219\n orig: 1136, 640\n offset: 703, 241\n index: -1\nimages/lizi/shoujibaodian_40\n rotate: true\n xy: 1395, 1361\n size: 157, 208\n orig: 1136, 640\n offset: 710, 249\n index: -1\nimages/lizi/shoujibaodian_41\n rotate: true\n xy: 774, 1396\n size: 118, 189\n orig: 1136, 640\n offset: 749, 266\n index: -1\nimages/lizi/shoujibaodian_42\n rotate: true\n xy: 2, 1430\n size: 80, 187\n orig: 1136, 640\n offset: 751, 268\n index: -1\nimages/lizi/shoujibaodian_43\n rotate: true\n xy: 965, 1418\n size: 76, 181\n orig: 1136, 640\n offset: 752, 269\n index: -1\nimages/lizi/shoujibaodian_44\n rotate: false\n xy: 1960, 1665\n size: 72, 143\n orig: 1136, 640\n offset: 753, 305\n index: -1\nimages/lizi/shoujibaodian_45\n rotate: false\n xy: 1960, 1520\n size: 69, 143\n orig: 1136, 640\n offset: 754, 304\n index: -1\nimages/lizi/shoujibaodian_46\n rotate: false\n xy: 1947, 1376\n size: 67, 142\n orig: 1136, 640\n offset: 755, 304\n index: -1\nimages/lizi/shoujibaodian_47\n rotate: false\n xy: 191, 1369\n size: 67, 141\n orig: 1136, 640\n offset: 755, 304\n index: -1\nimages/lizi/shoujibaodian_48\n rotate: false\n xy: 1877, 1400\n size: 68, 142\n orig: 1136, 640\n offset: 754, 303\n index: -1\n", + "_atlasText": "\r\nmofabang_baozha.png\r\nsize: 2040,2040\r\nformat: RGBA8888\r\nfilter: Linear,Linear\r\nrepeat: none\r\nimages/effects/Glow1\r\n rotate: false\r\n xy: 862, 1516\r\n size: 216, 216\r\n orig: 256, 256\r\n offset: 20, 19\r\n index: -1\r\nimages/effects/hit/hit_00\r\n rotate: true\r\n xy: 1379, 1762\r\n size: 276, 272\r\n orig: 400, 400\r\n offset: 61, 64\r\n index: -1\r\nimages/effects/hit/hit_01\r\n rotate: false\r\n xy: 1395, 1520\r\n size: 248, 240\r\n orig: 400, 400\r\n offset: 76, 80\r\n index: -1\r\nimages/effects/hit/hit_02\r\n rotate: false\r\n xy: 2, 1734\r\n size: 332, 304\r\n orig: 400, 400\r\n offset: 39, 51\r\n index: -1\r\nimages/effects/hit/hit_03\r\n rotate: true\r\n xy: 604, 1726\r\n size: 312, 252\r\n orig: 400, 400\r\n offset: 50, 83\r\n index: -1\r\nimages/effects/hit/hit_04\r\n rotate: false\r\n xy: 270, 1524\r\n size: 272, 208\r\n orig: 400, 400\r\n offset: 78, 108\r\n index: -1\r\nimages/effects/hit/hit_05\r\n rotate: false\r\n xy: 2, 1512\r\n size: 266, 220\r\n orig: 400, 400\r\n offset: 79, 103\r\n index: -1\r\nimages/effects/hit/hit_06\r\n rotate: false\r\n xy: 1117, 1496\r\n size: 276, 240\r\n orig: 400, 400\r\n offset: 73, 94\r\n index: -1\r\nimages/effects/hit/hit_07\r\n rotate: true\r\n xy: 1117, 1738\r\n size: 300, 260\r\n orig: 400, 400\r\n offset: 67, 85\r\n index: -1\r\nimages/effects/hit/hit_08\r\n rotate: true\r\n xy: 858, 1734\r\n size: 304, 257\r\n orig: 400, 400\r\n offset: 69, 82\r\n index: -1\r\nimages/effects/hit/hit_09\r\n rotate: true\r\n xy: 336, 1738\r\n size: 300, 266\r\n orig: 400, 400\r\n offset: 70, 74\r\n index: -1\r\nimages/effects/hit/hit_10\r\n rotate: true\r\n xy: 1645, 1380\r\n size: 162, 230\r\n orig: 400, 400\r\n offset: 95, 114\r\n index: -1\r\nimages/effects/hit/hit_11\r\n rotate: false\r\n xy: 1148, 1399\r\n size: 101, 95\r\n orig: 400, 400\r\n offset: 99, 119\r\n index: -1\r\nimages/effects/hit/hit_12\r\n rotate: false\r\n xy: 2037, 2037\r\n size: 1, 1\r\n orig: 400, 400\r\n offset: 198, 213\r\n index: -1\r\nimages/lizi/shoujibaodian_34\r\n rotate: false\r\n xy: 1653, 1719\r\n size: 211, 319\r\n orig: 1136, 640\r\n offset: 696, 201\r\n index: -1\r\nimages/lizi/shoujibaodian_35\r\n rotate: true\r\n xy: 544, 1546\r\n size: 178, 316\r\n orig: 1136, 640\r\n offset: 694, 201\r\n index: -1\r\nimages/lizi/shoujibaodian_36\r\n rotate: true\r\n xy: 1645, 1544\r\n size: 173, 313\r\n orig: 1136, 640\r\n offset: 696, 200\r\n index: -1\r\nimages/lizi/shoujibaodian_37\r\n rotate: false\r\n xy: 1866, 1810\r\n size: 169, 228\r\n orig: 1136, 640\r\n offset: 698, 233\r\n index: -1\r\nimages/lizi/shoujibaodian_38\r\n rotate: true\r\n xy: 544, 1378\r\n size: 166, 228\r\n orig: 1136, 640\r\n offset: 702, 235\r\n index: -1\r\nimages/lizi/shoujibaodian_39\r\n rotate: true\r\n xy: 270, 1358\r\n size: 164, 219\r\n orig: 1136, 640\r\n offset: 703, 241\r\n index: -1\r\nimages/lizi/shoujibaodian_40\r\n rotate: true\r\n xy: 1395, 1361\r\n size: 157, 208\r\n orig: 1136, 640\r\n offset: 710, 249\r\n index: -1\r\nimages/lizi/shoujibaodian_41\r\n rotate: true\r\n xy: 774, 1396\r\n size: 118, 189\r\n orig: 1136, 640\r\n offset: 749, 266\r\n index: -1\r\nimages/lizi/shoujibaodian_42\r\n rotate: true\r\n xy: 2, 1430\r\n size: 80, 187\r\n orig: 1136, 640\r\n offset: 751, 268\r\n index: -1\r\nimages/lizi/shoujibaodian_43\r\n rotate: true\r\n xy: 965, 1418\r\n size: 76, 181\r\n orig: 1136, 640\r\n offset: 752, 269\r\n index: -1\r\nimages/lizi/shoujibaodian_44\r\n rotate: false\r\n xy: 1960, 1665\r\n size: 72, 143\r\n orig: 1136, 640\r\n offset: 753, 305\r\n index: -1\r\nimages/lizi/shoujibaodian_45\r\n rotate: false\r\n xy: 1960, 1520\r\n size: 69, 143\r\n orig: 1136, 640\r\n offset: 754, 304\r\n index: -1\r\nimages/lizi/shoujibaodian_46\r\n rotate: false\r\n xy: 1947, 1376\r\n size: 67, 142\r\n orig: 1136, 640\r\n offset: 755, 304\r\n index: -1\r\nimages/lizi/shoujibaodian_47\r\n rotate: false\r\n xy: 191, 1369\r\n size: 67, 141\r\n orig: 1136, 640\r\n offset: 755, 304\r\n index: -1\r\nimages/lizi/shoujibaodian_48\r\n rotate: false\r\n xy: 1877, 1400\r\n size: 68, 142\r\n orig: 1136, 640\r\n offset: 754, 303\r\n index: -1\r\n", "textures": [ { "__uuid__": "48588bbe-3361-44a5-b782-53ef975a9355" diff --git a/library/imports/30/306b721d-bd6d-4dc2-9c7e-0d42021be3b3.json b/library/imports/30/306b721d-bd6d-4dc2-9c7e-0d42021be3b3.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/30/306b721d-bd6d-4dc2-9c7e-0d42021be3b3.json @@ -0,0 +1,4 @@ +{ + "__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 new file mode 100644 index 0000000..db24d6d Binary files /dev/null and b/library/imports/30/306b721d-bd6d-4dc2-9c7e-0d42021be3b3.png differ diff --git a/library/imports/30/30e2e490-5833-4a23-af45-6da61f37ada3.js b/library/imports/30/30e2e490-5833-4a23-af45-6da61f37ada3.js index f18b02f..3690afb 100644 --- a/library/imports/30/30e2e490-5833-4a23-af45-6da61f37ada3.js +++ b/library/imports/30/30e2e490-5833-4a23-af45-6da61f37ada3.js @@ -6,15 +6,14 @@ cc._RF.push(module, '30e2eSQWDNKI69FbaYfN62j', 'TmoObjectGroup'); 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 TmoSprite = require("./TmoSprite"); var _default = cc.Class({ "extends": cc.TiledObjectGroup, _init: function _init(groupInfo, mapInfo, texGrids, tiledMap) { @@ -35,8 +34,7 @@ var _default = cc.Class({ var mapSize = mapInfo._mapSize; var tileSize = mapInfo._tileSize; var width = 0, - height = 0; - + height = 0; if (mapInfo.orientation === Orientation.HEX) { if (mapInfo.getStaggerAxis() === StaggerAxis.STAGGERAXIS_X) { height = tileSize.height * (mapSize.height + 0.5); @@ -53,31 +51,28 @@ var _default = cc.Class({ 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 = {}; // 生成映射Map { Texture2D: textureIndex } + 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; } } - if (Orientation.ISO !== mapInfo.orientation) { object.y = height - object.y; } else { @@ -86,16 +81,13 @@ var _default = cc.Class({ 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; @@ -108,11 +100,9 @@ var _default = cc.Class({ 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; @@ -122,7 +112,6 @@ var _default = cc.Class({ textNode.width = object.width; textNode.height = object.height; } - if (objType === TMXObjectType.IMAGE) { var gid = object.gid; var grid = texGrids[(gid & FLIPPED_MASK) >>> 0]; @@ -134,19 +123,18 @@ var _default = cc.Class({ 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 + 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; @@ -154,7 +142,6 @@ var _default = cc.Class({ imgNode.anchorX = tileOffsetX / imgWidth; imgNode.anchorY = tileOffsetY / imgHeight; } - imgNode.active = object.visible; imgNode.angle = -object.rotation; imgNode.x = object.x - leftTopX; @@ -165,53 +152,48 @@ var _default = cc.Class({ 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 + sp.setVertsDirty(); + // object group may has no width or height info imgNode.width = imgWidth; - imgNode.height = imgHeight; // 收集图集 更新textureIndexMap + imgNode.height = imgHeight; + // 收集图集 更新textureIndexMap if (!textureIndexMap.has(sourceImage)) { textureIndexMap.set(sourceImage, objectTextures.length); objectTextures.push(sourceImage); - } // 设置textureIndex - + } + // 设置textureIndex var textureIndex = textureIndexMap.get(sourceImage); sp.setTextureIdx(textureIndex + 1); } } + this._objects = objects; - this._objects = objects; // destroy useless node - + // 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; @@ -220,7 +202,6 @@ var _default = cc.Class({ } } }); - exports["default"] = _default; module.exports = exports["default"]; diff --git a/library/imports/30/30e2e490-5833-4a23-af45-6da61f37ada3.js.map b/library/imports/30/30e2e490-5833-4a23-af45-6da61f37ada3.js.map index 90b54d5..56cd57c 100644 --- a/library/imports/30/30e2e490-5833-4a23-af45-6da61f37ada3.js.map +++ b/library/imports/30/30e2e490-5833-4a23-af45-6da61f37ada3.js.map @@ -1 +1 @@ -{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoObjectGroup.js"],"names":["TmoSprite","require","cc","Class","TiledObjectGroup","_init","groupInfo","mapInfo","texGrids","tiledMap","TiledMap","TMXObjectType","Orientation","StaggerAxis","TileFlag","FLIPPED_MASK","FLAG_HORIZONTAL","HORIZONTAL","FLAG_VERTICAL","VERTICAL","_groupName","name","_positionOffset","offset","_mapInfo","_properties","getProperties","_offset","v2","x","y","_opacity","mapSize","_mapSize","tileSize","_tileSize","width","height","orientation","HEX","getStaggerAxis","STAGGERAXIS_X","getHexSideLength","Math","floor","ISO","wh","node","setContentSize","leftTopX","anchorX","leftTopY","anchorY","objects","_objects","aliveNodes","textureIndexMap","Map","objectTextures","getObjectTextures","forEach","texture","idx","set","i","l","length","object","objType","type","points","polylinePoints","pi","posIdxX","posIdxY","TEXT","textName","id","textNode","getChildByName","Node","active","visible","angle","rotation","parent","color","opacity","setSiblingIndex","label","getComponent","Label","addComponent","overflow","Overflow","SHRINK","lineHeight","string","text","horizontalAlign","halign","verticalAlign","valign","fontSize","pixelsize","IMAGE","gid","grid","tileset","imgName","imgNode","imgWidth","imgHeight","tileOffsetX","tileOffset","tileOffsetY","PrivateNode","removeFromParent","destroy","_tiledMap","sp","spf","spriteFrame","SpriteFrame","setFlipX","setFlipY","sourceImage","setTexture","rect","setVertsDirty","has","push","textureIndex","get","setTextureIdx","children","uselessExp","n","c","cName","_name","isUseless","test"],"mappings":"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","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/class.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nconst TmoSprite = require(\"./TmoSprite\");\r\n\r\nexport default cc.Class({\r\n extends: cc.TiledObjectGroup,\r\n\r\n _init(groupInfo, mapInfo, texGrids, tiledMap) {\r\n const TiledMap = cc.TiledMap;\r\n const TMXObjectType = TiledMap.TMXObjectType;\r\n const Orientation = TiledMap.Orientation;\r\n const StaggerAxis = TiledMap.StaggerAxis;\r\n const TileFlag = TiledMap.TileFlag;\r\n const FLIPPED_MASK = TileFlag.FLIPPED_MASK;\r\n const FLAG_HORIZONTAL = TileFlag.HORIZONTAL;\r\n const FLAG_VERTICAL = TileFlag.VERTICAL;\r\n\r\n this._groupName = groupInfo.name;\r\n this._positionOffset = groupInfo.offset;\r\n this._mapInfo = mapInfo;\r\n this._properties = groupInfo.getProperties();\r\n this._offset = cc.v2(groupInfo.offset.x, -groupInfo.offset.y);\r\n this._opacity = groupInfo._opacity;\r\n\r\n let mapSize = mapInfo._mapSize;\r\n let tileSize = mapInfo._tileSize;\r\n let width = 0, height = 0;\r\n if (mapInfo.orientation === Orientation.HEX) {\r\n if (mapInfo.getStaggerAxis() === StaggerAxis.STAGGERAXIS_X) {\r\n height = tileSize.height * (mapSize.height + 0.5);\r\n width = (tileSize.width + mapInfo.getHexSideLength()) * Math.floor(mapSize.width / 2) + tileSize.width * (mapSize.width % 2);\r\n } else {\r\n width = tileSize.width * (mapSize.width + 0.5);\r\n height = (tileSize.height + mapInfo.getHexSideLength()) * Math.floor(mapSize.height / 2) + tileSize.height * (mapSize.height % 2);\r\n }\r\n } else if (mapInfo.orientation === Orientation.ISO) {\r\n let wh = mapSize.width + mapSize.height;\r\n width = tileSize.width * 0.5 * wh;\r\n height = tileSize.height * 0.5 * wh;\r\n } else {\r\n width = mapSize.width * tileSize.width;\r\n height = mapSize.height * tileSize.height;\r\n }\r\n this.node.setContentSize(width, height);\r\n\r\n let leftTopX = width * this.node.anchorX;\r\n let leftTopY = height * (1 - this.node.anchorY);\r\n\r\n let objects = groupInfo._objects;\r\n let aliveNodes = {};\r\n\r\n // 生成映射Map { Texture2D: textureIndex }\r\n let textureIndexMap = new Map();\r\n let objectTextures = tiledMap.getObjectTextures();\r\n objectTextures.forEach((texture, idx) => textureIndexMap.set(texture, idx));\r\n\r\n for (let i = 0, l = objects.length; i < l; i++) {\r\n let object = objects[i];\r\n let objType = object.type;\r\n object.offset = cc.v2(object.x, object.y);\r\n\r\n let points = object.points || object.polylinePoints;\r\n if (points) {\r\n for (let pi = 0; pi < points.length; pi++) {\r\n points[pi].y *= -1;\r\n }\r\n }\r\n\r\n if (Orientation.ISO !== mapInfo.orientation) {\r\n object.y = height - object.y;\r\n } else {\r\n let posIdxX = object.x / tileSize.height;\r\n let posIdxY = object.y / tileSize.height;\r\n object.x = tileSize.width * 0.5 * (mapSize.height + posIdxX - posIdxY);\r\n object.y = tileSize.height * 0.5 * (mapSize.width + mapSize.height - posIdxX - posIdxY);\r\n }\r\n\r\n if (objType === TMXObjectType.TEXT) {\r\n let textName = \"text\" + object.id;\r\n aliveNodes[textName] = true;\r\n\r\n let textNode = this.node.getChildByName(textName);\r\n if (!textNode) {\r\n textNode = new cc.Node();\r\n }\r\n\r\n textNode.active = object.visible;\r\n textNode.anchorX = 0;\r\n textNode.anchorY = 1;\r\n textNode.angle = -object.rotation;\r\n textNode.x = object.x - leftTopX;\r\n textNode.y = object.y - leftTopY;\r\n textNode.name = textName;\r\n textNode.parent = this.node;\r\n textNode.color = object.color;\r\n textNode.opacity = this._opacity;\r\n textNode.setSiblingIndex(i);\r\n\r\n let label = textNode.getComponent(cc.Label);\r\n if (!label) {\r\n label = textNode.addComponent(cc.Label);\r\n }\r\n\r\n label.overflow = cc.Label.Overflow.SHRINK;\r\n label.lineHeight = object.height;\r\n label.string = object.text;\r\n label.horizontalAlign = object.halign;\r\n label.verticalAlign = object.valign;\r\n label.fontSize = object.pixelsize;\r\n\r\n textNode.width = object.width;\r\n textNode.height = object.height;\r\n }\r\n\r\n if (objType === TMXObjectType.IMAGE) {\r\n let gid = object.gid;\r\n let grid = texGrids[(gid & FLIPPED_MASK) >>> 0];\r\n if (!grid) continue;\r\n let tileset = grid.tileset;\r\n let imgName = \"img\" + object.id;\r\n aliveNodes[imgName] = true;\r\n let imgNode = this.node.getChildByName(imgName);\r\n let imgWidth = object.width || grid.width;\r\n let imgHeight = object.height || grid.height;\r\n let tileOffsetX = tileset.tileOffset.x;\r\n let tileOffsetY = tileset.tileOffset.y;\r\n\r\n // Delete image nodes implemented as private nodes\r\n // Use cc.Node to implement node-level requirements\r\n if (imgNode instanceof cc.PrivateNode) {\r\n imgNode.removeFromParent();\r\n imgNode.destroy();\r\n imgNode = null;\r\n }\r\n\r\n if (!imgNode) {\r\n imgNode = new cc.Node();\r\n }\r\n\r\n if (Orientation.ISO == mapInfo.orientation) {\r\n imgNode.anchorX = 0.5 + tileOffsetX / imgWidth;\r\n imgNode.anchorY = tileOffsetY / imgHeight;\r\n } else {\r\n imgNode.anchorX = tileOffsetX / imgWidth;\r\n imgNode.anchorY = tileOffsetY / imgHeight;\r\n }\r\n imgNode.active = object.visible;\r\n imgNode.angle = -object.rotation;\r\n imgNode.x = object.x - leftTopX;\r\n imgNode.y = object.y - leftTopY;\r\n imgNode.name = imgName;\r\n imgNode.parent = this.node;\r\n imgNode.opacity = this._opacity;\r\n imgNode.setSiblingIndex(i);\r\n imgNode._tiledMap = tiledMap;\r\n\r\n\r\n let sp = imgNode.getComponent(TmoSprite);\r\n if (!sp) {\r\n sp = imgNode.addComponent(TmoSprite);\r\n }\r\n let spf = sp.spriteFrame;\r\n if (!spf) {\r\n spf = new cc.SpriteFrame();\r\n }\r\n\r\n if ((gid & FLAG_HORIZONTAL) >>> 0) {\r\n spf.setFlipX(true);\r\n } else {\r\n spf.setFlipX(false);\r\n }\r\n\r\n if ((gid & FLAG_VERTICAL) >>> 0) {\r\n spf.setFlipY(true);\r\n } else {\r\n spf.setFlipY(false);\r\n }\r\n\r\n let sourceImage = grid.tileset.sourceImage;\r\n spf.setTexture(sourceImage, cc.rect(grid));\r\n sp.spriteFrame = spf;\r\n sp.setVertsDirty();\r\n\r\n // object group may has no width or height info\r\n imgNode.width = imgWidth;\r\n imgNode.height = imgHeight;\r\n\r\n // 收集图集 更新textureIndexMap\r\n if (!textureIndexMap.has(sourceImage)) {\r\n textureIndexMap.set(sourceImage, objectTextures.length);\r\n objectTextures.push(sourceImage);\r\n }\r\n\r\n // 设置textureIndex\r\n let textureIndex = textureIndexMap.get(sourceImage);\r\n sp.setTextureIdx(textureIndex + 1);\r\n }\r\n }\r\n this._objects = objects;\r\n\r\n\r\n // destroy useless node\r\n let children = this.node.children;\r\n let uselessExp = /^(?:img|text)\\d+$/;\r\n for (let i = 0, n = children.length; i < n; i++) {\r\n let c = children[i];\r\n let cName = c._name;\r\n let isUseless = uselessExp.test(cName);\r\n if (isUseless && !aliveNodes[cName]) c.destroy();\r\n }\r\n\r\n }\r\n});\r\n"]} \ No newline at end of file +{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoObjectGroup.js"],"names":["TmoSprite","require","_default","cc","Class","TiledObjectGroup","_init","groupInfo","mapInfo","texGrids","tiledMap","TiledMap","TMXObjectType","Orientation","StaggerAxis","TileFlag","FLIPPED_MASK","FLAG_HORIZONTAL","HORIZONTAL","FLAG_VERTICAL","VERTICAL","_groupName","name","_positionOffset","offset","_mapInfo","_properties","getProperties","_offset","v2","x","y","_opacity","mapSize","_mapSize","tileSize","_tileSize","width","height","orientation","HEX","getStaggerAxis","STAGGERAXIS_X","getHexSideLength","Math","floor","ISO","wh","node","setContentSize","leftTopX","anchorX","leftTopY","anchorY","objects","_objects","aliveNodes","textureIndexMap","Map","objectTextures","getObjectTextures","forEach","texture","idx","set","i","l","length","object","objType","type","points","polylinePoints","pi","posIdxX","posIdxY","TEXT","textName","id","textNode","getChildByName","Node","active","visible","angle","rotation","parent","color","opacity","setSiblingIndex","label","getComponent","Label","addComponent","overflow","Overflow","SHRINK","lineHeight","string","text","horizontalAlign","halign","verticalAlign","valign","fontSize","pixelsize","IMAGE","gid","grid","tileset","imgName","imgNode","imgWidth","imgHeight","tileOffsetX","tileOffset","tileOffsetY","PrivateNode","removeFromParent","destroy","_tiledMap","sp","spf","spriteFrame","SpriteFrame","setFlipX","setFlipY","sourceImage","setTexture","rect","setVertsDirty","has","push","textureIndex","get","setTextureIdx","children","uselessExp","n","c","cName","_name","isUseless","test","exports","module"],"mappings":"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","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/class.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nconst TmoSprite = require(\"./TmoSprite\");\r\n\r\nexport default cc.Class({\r\n extends: cc.TiledObjectGroup,\r\n\r\n _init(groupInfo, mapInfo, texGrids, tiledMap) {\r\n const TiledMap = cc.TiledMap;\r\n const TMXObjectType = TiledMap.TMXObjectType;\r\n const Orientation = TiledMap.Orientation;\r\n const StaggerAxis = TiledMap.StaggerAxis;\r\n const TileFlag = TiledMap.TileFlag;\r\n const FLIPPED_MASK = TileFlag.FLIPPED_MASK;\r\n const FLAG_HORIZONTAL = TileFlag.HORIZONTAL;\r\n const FLAG_VERTICAL = TileFlag.VERTICAL;\r\n\r\n this._groupName = groupInfo.name;\r\n this._positionOffset = groupInfo.offset;\r\n this._mapInfo = mapInfo;\r\n this._properties = groupInfo.getProperties();\r\n this._offset = cc.v2(groupInfo.offset.x, -groupInfo.offset.y);\r\n this._opacity = groupInfo._opacity;\r\n\r\n let mapSize = mapInfo._mapSize;\r\n let tileSize = mapInfo._tileSize;\r\n let width = 0, height = 0;\r\n if (mapInfo.orientation === Orientation.HEX) {\r\n if (mapInfo.getStaggerAxis() === StaggerAxis.STAGGERAXIS_X) {\r\n height = tileSize.height * (mapSize.height + 0.5);\r\n width = (tileSize.width + mapInfo.getHexSideLength()) * Math.floor(mapSize.width / 2) + tileSize.width * (mapSize.width % 2);\r\n } else {\r\n width = tileSize.width * (mapSize.width + 0.5);\r\n height = (tileSize.height + mapInfo.getHexSideLength()) * Math.floor(mapSize.height / 2) + tileSize.height * (mapSize.height % 2);\r\n }\r\n } else if (mapInfo.orientation === Orientation.ISO) {\r\n let wh = mapSize.width + mapSize.height;\r\n width = tileSize.width * 0.5 * wh;\r\n height = tileSize.height * 0.5 * wh;\r\n } else {\r\n width = mapSize.width * tileSize.width;\r\n height = mapSize.height * tileSize.height;\r\n }\r\n this.node.setContentSize(width, height);\r\n\r\n let leftTopX = width * this.node.anchorX;\r\n let leftTopY = height * (1 - this.node.anchorY);\r\n\r\n let objects = groupInfo._objects;\r\n let aliveNodes = {};\r\n\r\n // 生成映射Map { Texture2D: textureIndex }\r\n let textureIndexMap = new Map();\r\n let objectTextures = tiledMap.getObjectTextures();\r\n objectTextures.forEach((texture, idx) => textureIndexMap.set(texture, idx));\r\n\r\n for (let i = 0, l = objects.length; i < l; i++) {\r\n let object = objects[i];\r\n let objType = object.type;\r\n object.offset = cc.v2(object.x, object.y);\r\n\r\n let points = object.points || object.polylinePoints;\r\n if (points) {\r\n for (let pi = 0; pi < points.length; pi++) {\r\n points[pi].y *= -1;\r\n }\r\n }\r\n\r\n if (Orientation.ISO !== mapInfo.orientation) {\r\n object.y = height - object.y;\r\n } else {\r\n let posIdxX = object.x / tileSize.height;\r\n let posIdxY = object.y / tileSize.height;\r\n object.x = tileSize.width * 0.5 * (mapSize.height + posIdxX - posIdxY);\r\n object.y = tileSize.height * 0.5 * (mapSize.width + mapSize.height - posIdxX - posIdxY);\r\n }\r\n\r\n if (objType === TMXObjectType.TEXT) {\r\n let textName = \"text\" + object.id;\r\n aliveNodes[textName] = true;\r\n\r\n let textNode = this.node.getChildByName(textName);\r\n if (!textNode) {\r\n textNode = new cc.Node();\r\n }\r\n\r\n textNode.active = object.visible;\r\n textNode.anchorX = 0;\r\n textNode.anchorY = 1;\r\n textNode.angle = -object.rotation;\r\n textNode.x = object.x - leftTopX;\r\n textNode.y = object.y - leftTopY;\r\n textNode.name = textName;\r\n textNode.parent = this.node;\r\n textNode.color = object.color;\r\n textNode.opacity = this._opacity;\r\n textNode.setSiblingIndex(i);\r\n\r\n let label = textNode.getComponent(cc.Label);\r\n if (!label) {\r\n label = textNode.addComponent(cc.Label);\r\n }\r\n\r\n label.overflow = cc.Label.Overflow.SHRINK;\r\n label.lineHeight = object.height;\r\n label.string = object.text;\r\n label.horizontalAlign = object.halign;\r\n label.verticalAlign = object.valign;\r\n label.fontSize = object.pixelsize;\r\n\r\n textNode.width = object.width;\r\n textNode.height = object.height;\r\n }\r\n\r\n if (objType === TMXObjectType.IMAGE) {\r\n let gid = object.gid;\r\n let grid = texGrids[(gid & FLIPPED_MASK) >>> 0];\r\n if (!grid) continue;\r\n let tileset = grid.tileset;\r\n let imgName = \"img\" + object.id;\r\n aliveNodes[imgName] = true;\r\n let imgNode = this.node.getChildByName(imgName);\r\n let imgWidth = object.width || grid.width;\r\n let imgHeight = object.height || grid.height;\r\n let tileOffsetX = tileset.tileOffset.x;\r\n let tileOffsetY = tileset.tileOffset.y;\r\n\r\n // Delete image nodes implemented as private nodes\r\n // Use cc.Node to implement node-level requirements\r\n if (imgNode instanceof cc.PrivateNode) {\r\n imgNode.removeFromParent();\r\n imgNode.destroy();\r\n imgNode = null;\r\n }\r\n\r\n if (!imgNode) {\r\n imgNode = new cc.Node();\r\n }\r\n\r\n if (Orientation.ISO == mapInfo.orientation) {\r\n imgNode.anchorX = 0.5 + tileOffsetX / imgWidth;\r\n imgNode.anchorY = tileOffsetY / imgHeight;\r\n } else {\r\n imgNode.anchorX = tileOffsetX / imgWidth;\r\n imgNode.anchorY = tileOffsetY / imgHeight;\r\n }\r\n imgNode.active = object.visible;\r\n imgNode.angle = -object.rotation;\r\n imgNode.x = object.x - leftTopX;\r\n imgNode.y = object.y - leftTopY;\r\n imgNode.name = imgName;\r\n imgNode.parent = this.node;\r\n imgNode.opacity = this._opacity;\r\n imgNode.setSiblingIndex(i);\r\n imgNode._tiledMap = tiledMap;\r\n\r\n\r\n let sp = imgNode.getComponent(TmoSprite);\r\n if (!sp) {\r\n sp = imgNode.addComponent(TmoSprite);\r\n }\r\n let spf = sp.spriteFrame;\r\n if (!spf) {\r\n spf = new cc.SpriteFrame();\r\n }\r\n\r\n if ((gid & FLAG_HORIZONTAL) >>> 0) {\r\n spf.setFlipX(true);\r\n } else {\r\n spf.setFlipX(false);\r\n }\r\n\r\n if ((gid & FLAG_VERTICAL) >>> 0) {\r\n spf.setFlipY(true);\r\n } else {\r\n spf.setFlipY(false);\r\n }\r\n\r\n let sourceImage = grid.tileset.sourceImage;\r\n spf.setTexture(sourceImage, cc.rect(grid));\r\n sp.spriteFrame = spf;\r\n sp.setVertsDirty();\r\n\r\n // object group may has no width or height info\r\n imgNode.width = imgWidth;\r\n imgNode.height = imgHeight;\r\n\r\n // 收集图集 更新textureIndexMap\r\n if (!textureIndexMap.has(sourceImage)) {\r\n textureIndexMap.set(sourceImage, objectTextures.length);\r\n objectTextures.push(sourceImage);\r\n }\r\n\r\n // 设置textureIndex\r\n let textureIndex = textureIndexMap.get(sourceImage);\r\n sp.setTextureIdx(textureIndex + 1);\r\n }\r\n }\r\n this._objects = objects;\r\n\r\n\r\n // destroy useless node\r\n let children = this.node.children;\r\n let uselessExp = /^(?:img|text)\\d+$/;\r\n for (let i = 0, n = children.length; i < n; i++) {\r\n let c = children[i];\r\n let cName = c._name;\r\n let isUseless = uselessExp.test(cName);\r\n if (isUseless && !aliveNodes[cName]) c.destroy();\r\n }\r\n\r\n }\r\n});\r\n"]} \ No newline at end of file diff --git a/library/imports/31/319350a2-b9b5-4967-aab8-0e192088a665.json b/library/imports/31/319350a2-b9b5-4967-aab8-0e192088a665.json new file mode 100644 index 0000000..0903077 --- /dev/null +++ b/library/imports/31/319350a2-b9b5-4967-aab8-0e192088a665.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins5", + "texture": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "atlas": "7aef6fef-1f14-4aeb-ba2e-3738a437eb63", + "rect": [ + 0, + 183, + 231, + 169 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 231, + 169 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/32/32fa0a07-ae4e-48f7-91dd-46ffb8620739.json b/library/imports/32/32fa0a07-ae4e-48f7-91dd-46ffb8620739.json new file mode 100644 index 0000000..f58ec7a --- /dev/null +++ b/library/imports/32/32fa0a07-ae4e-48f7-91dd-46ffb8620739.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "cost_7", + "texture": "f0c1b219-0608-4a6c-aef0-59fc9db4955e", + "atlas": "", + "rect": [ + 0, + 0, + 29, + 37 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 29, + 37 + ], + "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/34/341042f4-0224-41f0-a6a3-91e723dbdce1.json new file mode 100644 index 0000000..5c43976 --- /dev/null +++ b/library/imports/34/341042f4-0224-41f0-a6a3-91e723dbdce1.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "闊充箰00", + "texture": "964de756-e8ea-44b4-9371-ea2af234714a", + "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/3b/3b8e0a01-7634-402d-a8d2-349fbbc809f6.json b/library/imports/3b/3b8e0a01-7634-402d-a8d2-349fbbc809f6.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/3b/3b8e0a01-7634-402d-a8d2-349fbbc809f6.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/3b/3b8e0a01-7634-402d-a8d2-349fbbc809f6.png b/library/imports/3b/3b8e0a01-7634-402d-a8d2-349fbbc809f6.png new file mode 100644 index 0000000..8a3f27b Binary files /dev/null and b/library/imports/3b/3b8e0a01-7634-402d-a8d2-349fbbc809f6.png differ diff --git a/library/imports/44/4466b8d6-b468-4cb5-bc57-7a2bd3df12e4.json b/library/imports/44/4466b8d6-b468-4cb5-bc57-7a2bd3df12e4.json new file mode 100644 index 0000000..de3b2ed --- /dev/null +++ b/library/imports/44/4466b8d6-b468-4cb5-bc57-7a2bd3df12e4.json @@ -0,0 +1,2066 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "Tops", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "Tops", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + }, + { + "__id__": 26 + }, + { + "__id__": 40 + }, + { + "__id__": 44 + }, + { + "__id__": 48 + } + ], + "_active": true, + "_components": [ + { + "__id__": 51 + } + ], + "_prefab": { + "__id__": 52 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 750, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 180, + "height": 180 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -418.15, + -85.399, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "e21bf9e2-2981-4ab4-8d7a-b3f339a27122" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "0ecmfC4WtDwqw2va1D+ynr", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Stamina", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 6 + }, + { + "__id__": 9 + }, + { + "__id__": 12 + }, + { + "__id__": 15 + }, + { + "__id__": 18 + }, + { + "__id__": 20 + } + ], + "_active": true, + "_components": [ + { + "__id__": 23 + } + ], + "_prefab": { + "__id__": 25 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 350, + "height": 150 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -102.46, + -87.107, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 7 + } + ], + "_prefab": { + "__id__": 8 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 382, + "height": 85 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c3063f58-52e1-4552-8660-fe0b4fbc6036" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "5evpf3XnRFl4bf4j4Jvb9p", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 10 + } + ], + "_prefab": { + "__id__": 11 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 63, + "height": 56 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -120.21, + -1.322, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 9 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c00afd58-6ef6-4674-a68a-373015c8d376" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "cfoolKUm9N2rxBCXcTxZd8", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 13 + } + ], + "_prefab": { + "__id__": 14 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 70, + "height": 69 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 147.114, + 0.31, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 12 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d13e982d-fed1-454a-b4c4-c92e5bbdfd2d" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "4f7MYNKJRBGI3DZ3YVEmnu", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "man", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 16 + } + ], + "_prefab": { + "__id__": 17 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 94, + "height": 47 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -1.951, + 0.13, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 15 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "24643945-c61a-4dce-b2c0-6de0c11ae435" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "501HcOv3tMGrMa3gn6MLBK", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "health", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": false, + "_components": [], + "_prefab": { + "__id__": 19 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -61.628, + 1.821, + 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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "adarAr3llA0KcGLWo+aVAz", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "time", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 21 + } + ], + "_prefab": { + "__id__": 22 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 109, + "g": 70, + "b": 70, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100.1, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 72.788, + -4.433, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "00:00", + "_N$string": "00:00", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 0, + "_N$verticalAlign": 0, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "caitorOWtAQZn2KcRo0mY1", + "sync": false + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + { + "__id__": 24 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 5 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "1dc93b4fehOrpGgTkihBH4g", + "handler": "openStamina", + "customEventData": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "4dAhGM2V1E/Jm8L7wckigH", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Coin", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 27 + }, + { + "__id__": 30 + }, + { + "__id__": 33 + }, + { + "__id__": 36 + } + ], + "_active": true, + "_components": [ + { + "__id__": 38 + } + ], + "_prefab": { + "__id__": 39 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 350, + "height": 150 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 315.081, + -87.107, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 26 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 28 + } + ], + "_prefab": { + "__id__": 29 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 382, + "height": 85 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 27 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c3063f58-52e1-4552-8660-fe0b4fbc6036" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "03aHGNRx1GupkH/aVgJR0/", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 26 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 31 + } + ], + "_prefab": { + "__id__": 32 + }, + "_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": [ + -120.21, + -1.322, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 30 + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "ceQLVElcpCBbMZcwQekYo3", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 26 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 34 + } + ], + "_prefab": { + "__id__": 35 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 70, + "height": 69 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 147.114, + 0.31, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 33 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d13e982d-fed1-454a-b4c4-c92e5bbdfd2d" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d9YjiO+mBJj4kU8RxiAudy", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Coin", + "_objFlags": 0, + "_parent": { + "__id__": 26 + }, + "_children": [], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 37 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 200, + "height": 200 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -0.255, + 1.584, + 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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "eeQeilstBGN4djR+E7PkAO", + "sync": false + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 26 + }, + "_enabled": false, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + null + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 26 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "03ouFAX6JG25+CStgsS95/", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 41 + }, + { + "__id__": 42 + } + ], + "_prefab": { + "__id__": 43 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 168, + "height": 191 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 408.004, + -588.064, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 40 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "213d54e8-9413-40dd-a7be-bf0e40c4757e" + }, + "_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": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 40 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + null + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 40 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "7fdgju7V1F/pmbeJylhKgt", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 45 + }, + { + "__id__": 46 + } + ], + "_prefab": { + "__id__": 47 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 168, + "height": 191 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 408.622, + -334.976, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 44 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "43614b1f-b917-4fa8-a281-9fcc6985e35c" + }, + "_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": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 44 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + null + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 44 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "3eyPqqPUZMbKgcBeW3zhi9", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 49 + } + ], + "_prefab": { + "__id__": 50 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 731, + "height": 946 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -418.15, + -86.088, + 0, + 0, + 0, + 0, + 1, + 0.15, + 0.15, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 48 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "46896dd3-d3de-4947-b2dd-eb2b1b69bef1" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "c6PEBTZt1L2ZQgBb7yEBo+", + "sync": false + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 1, + "_left": 0, + "_right": 0, + "_top": 210, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/47/47589a11-b9e5-45cb-b50d-398e1e8b3843.json b/library/imports/47/47589a11-b9e5-45cb-b50d-398e1e8b3843.json new file mode 100644 index 0000000..d58e04e --- /dev/null +++ b/library/imports/47/47589a11-b9e5-45cb-b50d-398e1e8b3843.json @@ -0,0 +1,23 @@ +{ + "__type__": "cc.SpriteAtlas", + "_name": "texture_atlas-1.plist", + "_objFlags": 0, + "_native": "", + "_spriteFrames": { + "shop_1": { + "__uuid__": "9745d59d-e668-40ca-a540-c4ee007a9b8b" + }, + "txt1": { + "__uuid__": "760f4de0-8da0-4f0a-b3cb-5b6fe8b0b611" + }, + "btn1": { + "__uuid__": "a278a94d-ca26-4f4b-83fb-5d1058d39304" + }, + "coins_di": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "tx": { + "__uuid__": "b2bc9ecc-be9e-42f3-abe3-8d684cdc362a" + } + } +} \ No newline at end of file diff --git a/library/imports/47/47d4dd52-9152-4724-ab77-4e9d15e14c2e.json b/library/imports/47/47d4dd52-9152-4724-ab77-4e9d15e14c2e.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/47/47d4dd52-9152-4724-ab77-4e9d15e14c2e.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/47/47d4dd52-9152-4724-ab77-4e9d15e14c2e.png b/library/imports/47/47d4dd52-9152-4724-ab77-4e9d15e14c2e.png new file mode 100644 index 0000000..59ec4ee Binary files /dev/null and b/library/imports/47/47d4dd52-9152-4724-ab77-4e9d15e14c2e.png differ diff --git a/library/imports/48/48980365-90cf-4473-a3a1-9a24c319ade3.json b/library/imports/48/48980365-90cf-4473-a3a1-9a24c319ade3.json new file mode 100644 index 0000000..11ac13d --- /dev/null +++ b/library/imports/48/48980365-90cf-4473-a3a1-9a24c319ade3.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins_sz0", + "texture": "0734a70a-118d-4d9d-9a9f-9a61c11641d2", + "atlas": "", + "rect": [ + 0, + 0, + 47, + 49 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 47, + 49 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/48/48bfe66e-6056-44da-a9a0-c5b5b6222801.js b/library/imports/48/48bfe66e-6056-44da-a9a0-c5b5b6222801.js new file mode 100644 index 0000000..b05539a --- /dev/null +++ b/library/imports/48/48bfe66e-6056-44da-a9a0-c5b5b6222801.js @@ -0,0 +1,89 @@ +"use strict"; +cc._RF.push(module, '48bfeZuYFZE2qmgxbW2IigB', 'shop'); +// shop/script/shop.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.shop = null; + //商品列表 + _this.itemList = null; + return _this; + // update (dt) {} + } + // 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; + } + } + }; + //关闭商店界面 + 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; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/48/48bfe66e-6056-44da-a9a0-c5b5b6222801.js.map b/library/imports/48/48bfe66e-6056-44da-a9a0-c5b5b6222801.js.map new file mode 100644 index 0000000..0e61fc5 --- /dev/null +++ b/library/imports/48/48bfe66e-6056-44da-a9a0-c5b5b6222801.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\shop\\script\\shop.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import List from \"../../Script/module/RankList/List\";\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class NewClass extends cc.Component {\n //商店界面\n @property(cc.Node)\n shop: cc.Node = null;\n //商品列表\n @property(cc.Node)\n itemList: cc.Node = null;\n // onLoad () {}\n\n start() {\n this.openShop();\n }\n //打开商店界面\n openShop() {\n // 商品数据数组\n const products = [\n { product_id: \"gold_pack_1\", name: \"金币包1\", price: 600, title: \"3x2六档金币\" },\n { product_id: \"gold_pack_2\", name: \"金币包2\", price: 3600, title: \"\" },\n { product_id: \"gold_pack_3\", name: \"金币包3\", price: 6800, title: \"\" },\n { product_id: \"gold_pack_4\", name: \"金币包4\", price: 12800, title: \"\" },\n { product_id: \"gold_pack_5\", name: \"金币包5\", price: 32800, title: \"\" },\n { product_id: \"gold_pack_6\", name: \"金币包6\", price: 64800, title: \"\" },\n { product_id: \"unlimited_health_bundle_1\", name: \"无限体力组合包1\", price: 1800, title: \"3个横版礼包\" },\n { product_id: \"unlimited_health_bundle_2\", name: \"无限体力组合包2\", price: 6600, title: \"\" }\n ];\n for (let i = 1; i <= 8 && i < this.itemList.children.length; i++) {\n const spriteComp = this.itemList.children[i].children[0].getComponent(cc.Sprite);\n const price = this.itemList.children[i].children[1].getComponent(cc.Label);\n const title = this.itemList.children[i].children[2].getComponent(cc.Label);\n const product = products[i - 1];\n if (spriteComp && product) {\n // TODO: 根据 product_id 或 name 设置 spriteComp.spriteFrame\n }\n if (price && product) {\n price.string = (product.price / 100).toString() + \"元\";\n }\n if (title && product) {\n title.string = product.name;\n }\n }\n }\n\n\n //关闭商店界面\n closeShop() {\n //销毁预制体\n this.shop.destroy();\n }\n\n // update (dt) {}\n}\n"]} \ No newline at end of file diff --git a/library/imports/4e/4e6cd31e-a247-42dd-bae5-376b5be4059d.json b/library/imports/4e/4e6cd31e-a247-42dd-bae5-376b5be4059d.json index c933f82..72ef716 100644 --- a/library/imports/4e/4e6cd31e-a247-42dd-bae5-376b5be4059d.json +++ b/library/imports/4e/4e6cd31e-a247-42dd-bae5-376b5be4059d.json @@ -899,7 +899,7 @@ } } }, - "_atlasText": "\nfankui.png\nsize: 136,136\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\n20250523-155951/白1\n rotate: false\n xy: 0, 1\n size: 126, 134\n orig: 126, 134\n offset: 0, 0\n index: -1\n", + "_atlasText": "\r\nfankui.png\r\nsize: 136,136\r\nformat: RGBA8888\r\nfilter: Linear,Linear\r\nrepeat: none\r\n20250523-155951/白1\r\n rotate: false\r\n xy: 0, 1\r\n size: 126, 134\r\n orig: 126, 134\r\n offset: 0, 0\r\n index: -1\r\n", "textures": [ { "__uuid__": "10b3c05c-cb90-4a2e-8872-2a8b3e890ab5" diff --git a/library/imports/4e/4eaf518b-35ec-4262-928d-4d497c3f2830.json b/library/imports/4e/4eaf518b-35ec-4262-928d-4d497c3f2830.json index 3b04fd7..c08d709 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__": 66 + "__id__": 74 }, { - "__id__": 342 + "__id__": 350 }, { - "__id__": 392 + "__id__": 400 } ], "_active": true, "_components": [ { - "__id__": 395 + "__id__": 403 }, { - "__id__": 396 + "__id__": 404 }, { - "__id__": 397 + "__id__": 405 }, { - "__id__": 398 + "__id__": 406 } ], "_prefab": null, @@ -261,22 +261,22 @@ "__id__": 9 }, { - "__id__": 155 + "__id__": 163 }, { - "__id__": 176 + "__id__": 184 }, { - "__id__": 196 + "__id__": 204 }, { - "__id__": 68 + "__id__": 76 } ], "_active": true, "_components": [ { - "__id__": 341 + "__id__": 349 } ], "_prefab": null, @@ -466,19 +466,19 @@ "__id__": 13 }, { - "__id__": 130 + "__id__": 138 }, { "__id__": 20 }, { - "__id__": 151 + "__id__": 159 } ], "_active": true, "_components": [ { - "__id__": 154 + "__id__": 162 } ], "_prefab": null, @@ -963,10 +963,10 @@ "__id__": 36 }, "mask": { - "__id__": 66 + "__id__": 74 }, "iceLabel": { - "__id__": 62 + "__id__": 70 }, "hammerLabel": { "__id__": 25 @@ -984,7 +984,7 @@ "__id__": 49 }, "coinPop": { - "__id__": 68 + "__id__": 76 }, "_id": "1e+NpmfM1ClafoWSY4VNW+" }, @@ -1002,7 +1002,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 65 + "__id__": 73 } ], "_N$interactable": true, @@ -1071,22 +1071,22 @@ }, "_children": [ { - "__id__": 59 + "__id__": 67 }, { - "__id__": 61 + "__id__": 69 } ], "_active": true, "_components": [ { - "__id__": 63 + "__id__": 71 }, { "__id__": 18 }, { - "__id__": 64 + "__id__": 72 } ], "_prefab": null, @@ -1168,12 +1168,15 @@ }, { "__id__": 55 + }, + { + "__id__": 58 } ], "_active": true, "_components": [ { - "__id__": 58 + "__id__": 66 } ], "_prefab": null, @@ -2777,6 +2780,391 @@ "_enabled": true, "_id": "e8zuQH36BBZaL/1k13rbss" }, + { + "__type__": "cc.Node", + "_name": "shop", + "_objFlags": 0, + "_parent": { + "__id__": 20 + }, + "_children": [ + { + "__id__": 59 + } + ], + "_active": true, + "_components": [ + { + "__id__": 64 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -480, + 130, + 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": "07afITpORHfqPONAypAM0J" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 512, + "_parent": { + "__id__": 58 + }, + "_children": [ + { + "__id__": 60 + } + ], + "_active": true, + "_components": [ + { + "__id__": 62 + }, + { + "__id__": 63 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_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, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "d0UzByGLlHhZBro9lAsDtj" + }, + { + "__type__": "cc.Node", + "_name": "Label", + "_objFlags": 512, + "_parent": { + "__id__": 59 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 61 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_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": "44E7SWYWZAYKloRxH+TqQ2" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 60 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "shop", + "_N$string": "shop", + "_fontSize": 20, + "_lineHeight": 40, + "_enableWrapText": false, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 1, + "_N$cacheMode": 1, + "_id": "54N4oUcYBDMo13P1rEyD3d" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 59 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "63/cc4uTFGpo5Bmsy0O9gg" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 59 + }, + "_enabled": true, + "alignMode": 0, + "_target": null, + "_alignFlags": 45, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 100, + "_originalHeight": 40, + "_id": "c5a8DznRRM+4vL+BCxPXZZ" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 58 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 65 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 230, + "g": 230, + "b": 230, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "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": 120, + "g": 120, + "b": 120, + "a": 200 + }, + "_N$normalSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "_N$hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$disabledSprite": { + "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e" + }, + "_N$target": { + "__id__": 59 + }, + "_id": "111w+INMtEeL+/wHpeYLTf" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 2 + }, + "component": "", + "_componentId": "80998T1AYNNRZdRxsVvXR65", + "handler": "openShop", + "customEventData": "" + }, { "__type__": "cc.Widget", "_name": "", @@ -2815,7 +3203,7 @@ "_active": true, "_components": [ { - "__id__": 60 + "__id__": 68 } ], "_prefab": null, @@ -2871,7 +3259,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 59 + "__id__": 67 }, "_enabled": true, "_materials": [ @@ -2911,7 +3299,7 @@ "_active": true, "_components": [ { - "__id__": 62 + "__id__": 70 } ], "_prefab": null, @@ -2967,7 +3355,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 61 + "__id__": 69 }, "_enabled": true, "_materials": [ @@ -3060,7 +3448,7 @@ "_active": false, "_components": [ { - "__id__": 67 + "__id__": 75 } ], "_prefab": null, @@ -3116,7 +3504,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 66 + "__id__": 74 }, "_enabled": true, "_materials": [ @@ -3151,41 +3539,41 @@ "__id__": 5 }, "_children": [ - { - "__id__": 69 - }, - { - "__id__": 73 - }, - { - "__id__": 75 - }, { "__id__": 77 }, - { - "__id__": 79 - }, { "__id__": 81 }, { - "__id__": 90 + "__id__": 83 }, { - "__id__": 99 + "__id__": 85 }, { - "__id__": 108 + "__id__": 87 }, { - "__id__": 125 + "__id__": 89 + }, + { + "__id__": 98 + }, + { + "__id__": 107 + }, + { + "__id__": 116 + }, + { + "__id__": 133 } ], "_active": false, "_components": [ { - "__id__": 129 + "__id__": 137 } ], "_prefab": null, @@ -3241,19 +3629,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 70 + "__id__": 78 }, { - "__id__": 71 + "__id__": 79 }, { - "__id__": 72 + "__id__": 80 } ], "_prefab": null, @@ -3309,7 +3697,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 69 + "__id__": 77 }, "_enabled": true, "_materials": [ @@ -3341,7 +3729,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 69 + "__id__": 77 }, "_enabled": true, "alignMode": 1, @@ -3368,7 +3756,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 69 + "__id__": 77 }, "_enabled": true, "_id": "7ck1YZHrVNgK0sTsx/E/46" @@ -3378,13 +3766,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 74 + "__id__": 82 } ], "_prefab": null, @@ -3440,7 +3828,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 73 + "__id__": 81 }, "_enabled": true, "_materials": [ @@ -3472,13 +3860,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 76 + "__id__": 84 } ], "_prefab": null, @@ -3534,7 +3922,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 75 + "__id__": 83 }, "_enabled": true, "_materials": [ @@ -3568,13 +3956,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 78 + "__id__": 86 } ], "_prefab": null, @@ -3630,7 +4018,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 77 + "__id__": 85 }, "_enabled": true, "_materials": [ @@ -3664,13 +4052,13 @@ "_name": "light", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 80 + "__id__": 88 } ], "_prefab": null, @@ -3726,7 +4114,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 79 + "__id__": 87 }, "_enabled": true, "_materials": [ @@ -3758,20 +4146,20 @@ "_name": "freeze", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [ { - "__id__": 82 + "__id__": 90 }, { - "__id__": 84 + "__id__": 92 }, { - "__id__": 86 + "__id__": 94 }, { - "__id__": 88 + "__id__": 96 } ], "_active": false, @@ -3829,13 +4217,13 @@ "_name": "freeze_Label", "_objFlags": 0, "_parent": { - "__id__": 81 + "__id__": 89 }, "_children": [], "_active": true, "_components": [ { - "__id__": 83 + "__id__": 91 } ], "_prefab": null, @@ -3891,7 +4279,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 82 + "__id__": 90 }, "_enabled": true, "_materials": [ @@ -3925,13 +4313,13 @@ "_name": "freeze_Icon", "_objFlags": 0, "_parent": { - "__id__": 81 + "__id__": 89 }, "_children": [], "_active": true, "_components": [ { - "__id__": 85 + "__id__": 93 } ], "_prefab": null, @@ -3987,7 +4375,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 84 + "__id__": 92 }, "_enabled": true, "_materials": [ @@ -4021,13 +4409,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 81 + "__id__": 89 }, "_children": [], "_active": true, "_components": [ { - "__id__": 87 + "__id__": 95 } ], "_prefab": null, @@ -4083,7 +4471,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 86 + "__id__": 94 }, "_enabled": true, "_materials": [ @@ -4117,13 +4505,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 81 + "__id__": 89 }, "_children": [], "_active": true, "_components": [ { - "__id__": 89 + "__id__": 97 } ], "_prefab": null, @@ -4179,7 +4567,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 88 + "__id__": 96 }, "_enabled": true, "_materials": [ @@ -4213,20 +4601,20 @@ "_name": "hammer", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [ { - "__id__": 91 + "__id__": 99 }, { - "__id__": 93 + "__id__": 101 }, { - "__id__": 95 + "__id__": 103 }, { - "__id__": 97 + "__id__": 105 } ], "_active": false, @@ -4284,13 +4672,13 @@ "_name": "hammer_Label", "_objFlags": 0, "_parent": { - "__id__": 90 + "__id__": 98 }, "_children": [], "_active": true, "_components": [ { - "__id__": 92 + "__id__": 100 } ], "_prefab": null, @@ -4346,7 +4734,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 91 + "__id__": 99 }, "_enabled": true, "_materials": [ @@ -4380,13 +4768,13 @@ "_name": "hammer_Icon", "_objFlags": 0, "_parent": { - "__id__": 90 + "__id__": 98 }, "_children": [], "_active": true, "_components": [ { - "__id__": 94 + "__id__": 102 } ], "_prefab": null, @@ -4442,7 +4830,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 93 + "__id__": 101 }, "_enabled": true, "_materials": [ @@ -4476,13 +4864,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 90 + "__id__": 98 }, "_children": [], "_active": true, "_components": [ { - "__id__": 96 + "__id__": 104 } ], "_prefab": null, @@ -4538,7 +4926,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 95 + "__id__": 103 }, "_enabled": true, "_materials": [ @@ -4572,13 +4960,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 90 + "__id__": 98 }, "_children": [], "_active": true, "_components": [ { - "__id__": 98 + "__id__": 106 } ], "_prefab": null, @@ -4634,7 +5022,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 97 + "__id__": 105 }, "_enabled": true, "_materials": [ @@ -4668,20 +5056,20 @@ "_name": "magic", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [ { - "__id__": 100 + "__id__": 108 }, { - "__id__": 102 + "__id__": 110 }, { - "__id__": 104 + "__id__": 112 }, { - "__id__": 106 + "__id__": 114 } ], "_active": false, @@ -4739,13 +5127,13 @@ "_name": "magic_Label", "_objFlags": 0, "_parent": { - "__id__": 99 + "__id__": 107 }, "_children": [], "_active": true, "_components": [ { - "__id__": 101 + "__id__": 109 } ], "_prefab": null, @@ -4801,7 +5189,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 100 + "__id__": 108 }, "_enabled": true, "_materials": [ @@ -4835,13 +5223,13 @@ "_name": "magic_Icon", "_objFlags": 0, "_parent": { - "__id__": 99 + "__id__": 107 }, "_children": [], "_active": true, "_components": [ { - "__id__": 103 + "__id__": 111 } ], "_prefab": null, @@ -4897,7 +5285,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 110 }, "_enabled": true, "_materials": [ @@ -4931,13 +5319,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 99 + "__id__": 107 }, "_children": [], "_active": true, "_components": [ { - "__id__": 105 + "__id__": 113 } ], "_prefab": null, @@ -4993,7 +5381,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 104 + "__id__": 112 }, "_enabled": true, "_materials": [ @@ -5027,13 +5415,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 99 + "__id__": 107 }, "_children": [], "_active": true, "_components": [ { - "__id__": 107 + "__id__": 115 } ], "_prefab": null, @@ -5089,7 +5477,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 106 + "__id__": 114 }, "_enabled": true, "_materials": [ @@ -5123,38 +5511,38 @@ "_name": "buy_Btn", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [ - { - "__id__": 109 - }, - { - "__id__": 111 - }, - { - "__id__": 113 - }, - { - "__id__": 115 - }, { "__id__": 117 }, { "__id__": 119 + }, + { + "__id__": 121 + }, + { + "__id__": 123 + }, + { + "__id__": 125 + }, + { + "__id__": 127 } ], "_active": true, "_components": [ { - "__id__": 121 + "__id__": 129 }, { - "__id__": 122 + "__id__": 130 }, { - "__id__": 124 + "__id__": 132 } ], "_prefab": null, @@ -5210,13 +5598,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 110 + "__id__": 118 } ], "_prefab": null, @@ -5272,7 +5660,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 109 + "__id__": 117 }, "_enabled": true, "_materials": [ @@ -5306,13 +5694,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 112 + "__id__": 120 } ], "_prefab": null, @@ -5368,7 +5756,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 111 + "__id__": 119 }, "_enabled": true, "_materials": [ @@ -5402,13 +5790,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 114 + "__id__": 122 } ], "_prefab": null, @@ -5464,7 +5852,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 113 + "__id__": 121 }, "_enabled": true, "_materials": [ @@ -5498,13 +5886,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 116 + "__id__": 124 } ], "_prefab": null, @@ -5560,7 +5948,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 115 + "__id__": 123 }, "_enabled": true, "_materials": [ @@ -5594,13 +5982,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 118 + "__id__": 126 } ], "_prefab": null, @@ -5656,7 +6044,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 117 + "__id__": 125 }, "_enabled": true, "_materials": [ @@ -5690,13 +6078,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 120 + "__id__": 128 } ], "_prefab": null, @@ -5752,7 +6140,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 119 + "__id__": 127 }, "_enabled": true, "_materials": [ @@ -5786,7 +6174,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 108 + "__id__": 116 }, "_enabled": true, "_materials": [ @@ -5820,7 +6208,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 108 + "__id__": 116 }, "_enabled": true, "_normalMaterial": null, @@ -5829,7 +6217,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 123 + "__id__": 131 } ], "_N$interactable": true, @@ -5885,7 +6273,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 108 + "__id__": 116 }, "_id": "3dIBlmgnFLIKI+Rx3mWLiH" }, @@ -5904,7 +6292,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 108 + "__id__": 116 }, "_enabled": true, "_id": "f9YC9UOyxPc4DLFd+bNIec" @@ -5914,16 +6302,16 @@ "_name": "close", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 126 + "__id__": 134 }, { - "__id__": 127 + "__id__": 135 } ], "_prefab": null, @@ -5979,7 +6367,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 125 + "__id__": 133 }, "_enabled": true, "_materials": [ @@ -6013,7 +6401,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 125 + "__id__": 133 }, "_enabled": true, "_normalMaterial": null, @@ -6022,7 +6410,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 128 + "__id__": 136 } ], "_N$interactable": true, @@ -6078,7 +6466,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 125 + "__id__": 133 }, "_id": "e2r0BmMa5MrIsk8JJmyNf3" }, @@ -6097,7 +6485,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 68 + "__id__": 76 }, "_enabled": true, "alignMode": 1, @@ -6127,24 +6515,9 @@ "__id__": 9 }, "_children": [ - { - "__id__": 131 - }, - { - "__id__": 133 - }, - { - "__id__": 135 - }, - { - "__id__": 137 - }, { "__id__": 139 }, - { - "__id__": 140 - }, { "__id__": 141 }, @@ -6153,12 +6526,27 @@ }, { "__id__": 145 + }, + { + "__id__": 147 + }, + { + "__id__": 148 + }, + { + "__id__": 149 + }, + { + "__id__": 151 + }, + { + "__id__": 153 } ], "_active": true, "_components": [ { - "__id__": 150 + "__id__": 158 } ], "_prefab": null, @@ -6214,13 +6602,13 @@ "_name": "topBg", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, "_components": [ { - "__id__": 132 + "__id__": 140 } ], "_prefab": null, @@ -6276,7 +6664,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 131 + "__id__": 139 }, "_enabled": true, "_materials": [ @@ -6310,13 +6698,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, "_components": [ { - "__id__": 134 + "__id__": 142 } ], "_prefab": null, @@ -6372,7 +6760,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 133 + "__id__": 141 }, "_enabled": true, "_materials": [ @@ -6406,13 +6794,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, "_components": [ { - "__id__": 136 + "__id__": 144 } ], "_prefab": null, @@ -6468,7 +6856,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 135 + "__id__": 143 }, "_enabled": true, "_materials": [ @@ -6502,13 +6890,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, "_components": [ { - "__id__": 138 + "__id__": 146 } ], "_prefab": null, @@ -6564,7 +6952,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 137 + "__id__": 145 }, "_enabled": true, "_materials": [ @@ -6598,7 +6986,7 @@ "_name": "level", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, @@ -6656,7 +7044,7 @@ "_name": "time", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, @@ -6714,13 +7102,13 @@ "_name": "Ice", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": false, "_components": [ { - "__id__": 142 + "__id__": 150 } ], "_prefab": null, @@ -6776,7 +7164,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 141 + "__id__": 149 }, "_enabled": true, "_materials": [ @@ -6808,13 +7196,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": false, "_components": [ { - "__id__": 144 + "__id__": 152 } ], "_prefab": null, @@ -6870,7 +7258,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 143 + "__id__": 151 }, "_enabled": true, "_materials": [ @@ -6903,17 +7291,17 @@ "_name": "returnBtn", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [ { - "__id__": 146 + "__id__": 154 } ], "_active": false, "_components": [ { - "__id__": 148 + "__id__": 156 } ], "_prefab": null, @@ -6969,13 +7357,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 145 + "__id__": 153 }, "_children": [], "_active": true, "_components": [ { - "__id__": 147 + "__id__": 155 } ], "_prefab": null, @@ -7031,7 +7419,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 146 + "__id__": 154 }, "_enabled": true, "_materials": [ @@ -7065,7 +7453,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 145 + "__id__": 153 }, "_enabled": true, "_normalMaterial": null, @@ -7074,7 +7462,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 149 + "__id__": 157 } ], "_N$interactable": true, @@ -7130,7 +7518,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 145 + "__id__": 153 }, "_id": "34Z6b/IgpOtKrGQXG1ECg6" }, @@ -7149,7 +7537,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 130 + "__id__": 138 }, "_enabled": true, "alignMode": 1, @@ -7182,10 +7570,10 @@ "_active": false, "_components": [ { - "__id__": 152 + "__id__": 160 }, { - "__id__": 153 + "__id__": 161 } ], "_prefab": null, @@ -7241,7 +7629,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 151 + "__id__": 159 }, "_enabled": true, "_materials": [ @@ -7273,7 +7661,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 151 + "__id__": 159 }, "_enabled": true, "alignMode": 1, @@ -7330,32 +7718,32 @@ "__id__": 5 }, "_children": [ - { - "__id__": 156 - }, - { - "__id__": 160 - }, - { - "__id__": 162 - }, { "__id__": 164 }, { - "__id__": 166 + "__id__": 168 + }, + { + "__id__": 170 }, { "__id__": 172 + }, + { + "__id__": 174 + }, + { + "__id__": 180 } ], "_active": false, "_components": [ { - "__id__": 174 + "__id__": 182 }, { - "__id__": 175 + "__id__": 183 } ], "_prefab": null, @@ -7411,19 +7799,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [], "_active": true, "_components": [ { - "__id__": 157 + "__id__": 165 }, { - "__id__": 158 + "__id__": 166 }, { - "__id__": 159 + "__id__": 167 } ], "_prefab": null, @@ -7479,7 +7867,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 156 + "__id__": 164 }, "_enabled": true, "_materials": [ @@ -7511,7 +7899,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 156 + "__id__": 164 }, "_enabled": true, "alignMode": 1, @@ -7538,7 +7926,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 156 + "__id__": 164 }, "_enabled": true, "_id": "1e62ukhsJObKLFucCNzfwm" @@ -7548,13 +7936,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [], "_active": true, "_components": [ { - "__id__": 161 + "__id__": 169 } ], "_prefab": null, @@ -7610,7 +7998,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 160 + "__id__": 168 }, "_enabled": true, "_materials": [ @@ -7642,13 +8030,13 @@ "_name": "light", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [], "_active": true, "_components": [ { - "__id__": 163 + "__id__": 171 } ], "_prefab": null, @@ -7704,7 +8092,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 162 + "__id__": 170 }, "_enabled": true, "_materials": [ @@ -7736,13 +8124,13 @@ "_name": "icon", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [], "_active": true, "_components": [ { - "__id__": 165 + "__id__": 173 } ], "_prefab": null, @@ -7798,7 +8186,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 164 + "__id__": 172 }, "_enabled": true, "_materials": [ @@ -7828,20 +8216,20 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [ { - "__id__": 167 + "__id__": 175 } ], "_active": true, "_components": [ { - "__id__": 169 + "__id__": 177 }, { - "__id__": 170 + "__id__": 178 } ], "_prefab": null, @@ -7897,13 +8285,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 174 }, "_children": [], "_active": true, "_components": [ { - "__id__": 168 + "__id__": 176 } ], "_prefab": null, @@ -7959,7 +8347,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 167 + "__id__": 175 }, "_enabled": true, "_materials": [ @@ -7991,7 +8379,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 166 + "__id__": 174 }, "_enabled": true, "_materials": [ @@ -8023,7 +8411,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 166 + "__id__": 174 }, "_enabled": true, "_normalMaterial": null, @@ -8032,7 +8420,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 171 + "__id__": 179 } ], "_N$interactable": true, @@ -8088,14 +8476,14 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 166 + "__id__": 174 }, "_id": "2bhrCpcRxImqyWzBaIVVCd" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 155 + "__id__": 163 }, "component": "", "_componentId": "7fe14dRFQZKSKKAoEn4S7OU", @@ -8107,13 +8495,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [], "_active": true, "_components": [ { - "__id__": 173 + "__id__": 181 } ], "_prefab": null, @@ -8169,7 +8557,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 172 + "__id__": 180 }, "_enabled": true, "_materials": [ @@ -8201,7 +8589,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 155 + "__id__": 163 }, "_enabled": true, "alignMode": 1, @@ -8228,7 +8616,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 155 + "__id__": 163 }, "_enabled": true, "label": null, @@ -8244,22 +8632,22 @@ }, "_children": [ { - "__id__": 177 - }, - { - "__id__": 181 - }, - { - "__id__": 183 + "__id__": 185 }, { "__id__": 189 + }, + { + "__id__": 191 + }, + { + "__id__": 197 } ], "_active": false, "_components": [ { - "__id__": 195 + "__id__": 203 } ], "_prefab": null, @@ -8315,19 +8703,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 176 + "__id__": 184 }, "_children": [], "_active": true, "_components": [ { - "__id__": 178 + "__id__": 186 }, { - "__id__": 179 + "__id__": 187 }, { - "__id__": 180 + "__id__": 188 } ], "_prefab": null, @@ -8383,7 +8771,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 177 + "__id__": 185 }, "_enabled": true, "_materials": [ @@ -8415,7 +8803,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 177 + "__id__": 185 }, "_enabled": true, "alignMode": 1, @@ -8442,7 +8830,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 177 + "__id__": 185 }, "_enabled": true, "_id": "7aMdyhm41AyqFZMnIAtTUY" @@ -8452,13 +8840,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 176 + "__id__": 184 }, "_children": [], "_active": true, "_components": [ { - "__id__": 182 + "__id__": 190 } ], "_prefab": null, @@ -8514,7 +8902,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 181 + "__id__": 189 }, "_enabled": true, "_materials": [ @@ -8546,20 +8934,20 @@ "_name": "nextBtn", "_objFlags": 0, "_parent": { - "__id__": 176 + "__id__": 184 }, "_children": [ { - "__id__": 184 + "__id__": 192 } ], "_active": true, "_components": [ { - "__id__": 186 + "__id__": 194 }, { - "__id__": 187 + "__id__": 195 } ], "_prefab": null, @@ -8615,13 +9003,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 183 + "__id__": 191 }, "_children": [], "_active": true, "_components": [ { - "__id__": 185 + "__id__": 193 } ], "_prefab": null, @@ -8677,7 +9065,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 184 + "__id__": 192 }, "_enabled": true, "_materials": [ @@ -8711,7 +9099,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 183 + "__id__": 191 }, "_enabled": true, "_materials": [ @@ -8743,7 +9131,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 183 + "__id__": 191 }, "_enabled": true, "_normalMaterial": null, @@ -8752,7 +9140,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 188 + "__id__": 196 } ], "_N$interactable": true, @@ -8808,7 +9196,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 183 + "__id__": 191 }, "_id": "02dmnqIIhNA7gNoxAqWnCT" }, @@ -8827,20 +9215,20 @@ "_name": "homeBtn", "_objFlags": 0, "_parent": { - "__id__": 176 + "__id__": 184 }, "_children": [ { - "__id__": 190 + "__id__": 198 } ], "_active": true, "_components": [ { - "__id__": 192 + "__id__": 200 }, { - "__id__": 193 + "__id__": 201 } ], "_prefab": null, @@ -8896,13 +9284,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 189 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 191 + "__id__": 199 } ], "_prefab": null, @@ -8958,7 +9346,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 190 + "__id__": 198 }, "_enabled": true, "_materials": [ @@ -8992,7 +9380,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 189 + "__id__": 197 }, "_enabled": true, "_materials": [ @@ -9024,7 +9412,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 189 + "__id__": 197 }, "_enabled": true, "_normalMaterial": null, @@ -9033,7 +9421,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 194 + "__id__": 202 } ], "_N$interactable": true, @@ -9089,7 +9477,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 189 + "__id__": 197 }, "_id": "340osYA4tCpJlhedNAxg8f" }, @@ -9108,7 +9496,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 176 + "__id__": 184 }, "_enabled": true, "alignMode": 1, @@ -9139,28 +9527,28 @@ }, "_children": [ { - "__id__": 197 + "__id__": 205 }, { - "__id__": 201 + "__id__": 209 }, { - "__id__": 203 + "__id__": 211 }, { - "__id__": 275 + "__id__": 283 }, { - "__id__": 296 + "__id__": 304 }, { - "__id__": 319 + "__id__": 327 } ], "_active": false, "_components": [ { - "__id__": 340 + "__id__": 348 } ], "_prefab": null, @@ -9216,19 +9604,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [], "_active": true, "_components": [ { - "__id__": 198 + "__id__": 206 }, { - "__id__": 199 + "__id__": 207 }, { - "__id__": 200 + "__id__": 208 } ], "_prefab": null, @@ -9284,7 +9672,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 197 + "__id__": 205 }, "_enabled": true, "_materials": [ @@ -9316,7 +9704,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 197 + "__id__": 205 }, "_enabled": true, "alignMode": 1, @@ -9343,7 +9731,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 197 + "__id__": 205 }, "_enabled": true, "_id": "c22Pk+4yZHHaEcGiym9WxK" @@ -9353,13 +9741,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [], "_active": true, "_components": [ { - "__id__": 202 + "__id__": 210 } ], "_prefab": null, @@ -9415,7 +9803,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 201 + "__id__": 209 }, "_enabled": true, "_materials": [ @@ -9447,21 +9835,9 @@ "_name": "Time", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [ - { - "__id__": 204 - }, - { - "__id__": 206 - }, - { - "__id__": 208 - }, - { - "__id__": 210 - }, { "__id__": 212 }, @@ -9469,10 +9845,22 @@ "__id__": 214 }, { - "__id__": 230 + "__id__": 216 }, { - "__id__": 269 + "__id__": 218 + }, + { + "__id__": 220 + }, + { + "__id__": 222 + }, + { + "__id__": 238 + }, + { + "__id__": 277 } ], "_active": true, @@ -9530,13 +9918,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [], "_active": true, "_components": [ { - "__id__": 205 + "__id__": 213 } ], "_prefab": null, @@ -9592,7 +9980,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 204 + "__id__": 212 }, "_enabled": true, "_materials": [ @@ -9626,13 +10014,13 @@ "_name": "result_Label1", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [], "_active": true, "_components": [ { - "__id__": 207 + "__id__": 215 } ], "_prefab": null, @@ -9688,7 +10076,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 206 + "__id__": 214 }, "_enabled": true, "_materials": [ @@ -9722,13 +10110,13 @@ "_name": "time_show", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [], "_active": false, "_components": [ { - "__id__": 209 + "__id__": 217 } ], "_prefab": null, @@ -9784,7 +10172,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 208 + "__id__": 216 }, "_enabled": true, "_materials": [ @@ -9818,13 +10206,13 @@ "_name": "label", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [], "_active": false, "_components": [ { - "__id__": 211 + "__id__": 219 } ], "_prefab": null, @@ -9880,7 +10268,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 210 + "__id__": 218 }, "_enabled": true, "_materials": [ @@ -9913,13 +10301,13 @@ "_name": "time_hide", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [], "_active": true, "_components": [ { - "__id__": 213 + "__id__": 221 } ], "_prefab": null, @@ -9975,7 +10363,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 212 + "__id__": 220 }, "_enabled": true, "_materials": [ @@ -10009,35 +10397,35 @@ "_name": "timeBtn", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [ - { - "__id__": 215 - }, - { - "__id__": 217 - }, - { - "__id__": 219 - }, - { - "__id__": 221 - }, { "__id__": 223 }, { "__id__": 225 + }, + { + "__id__": 227 + }, + { + "__id__": 229 + }, + { + "__id__": 231 + }, + { + "__id__": 233 } ], "_active": false, "_components": [ { - "__id__": 227 + "__id__": 235 }, { - "__id__": 228 + "__id__": 236 } ], "_prefab": null, @@ -10093,13 +10481,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": true, "_components": [ { - "__id__": 216 + "__id__": 224 } ], "_prefab": null, @@ -10155,7 +10543,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 215 + "__id__": 223 }, "_enabled": true, "_materials": [ @@ -10189,13 +10577,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": true, "_components": [ { - "__id__": 218 + "__id__": 226 } ], "_prefab": null, @@ -10251,7 +10639,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 217 + "__id__": 225 }, "_enabled": true, "_materials": [ @@ -10285,13 +10673,13 @@ "_name": "number2", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": true, "_components": [ { - "__id__": 220 + "__id__": 228 } ], "_prefab": null, @@ -10347,7 +10735,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 219 + "__id__": 227 }, "_enabled": true, "_materials": [ @@ -10381,13 +10769,13 @@ "_name": "number1", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": false, "_components": [ { - "__id__": 222 + "__id__": 230 } ], "_prefab": null, @@ -10443,7 +10831,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 221 + "__id__": 229 }, "_enabled": true, "_materials": [ @@ -10477,13 +10865,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": true, "_components": [ { - "__id__": 224 + "__id__": 232 } ], "_prefab": null, @@ -10539,7 +10927,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 223 + "__id__": 231 }, "_enabled": true, "_materials": [ @@ -10573,13 +10961,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": true, "_components": [ { - "__id__": 226 + "__id__": 234 } ], "_prefab": null, @@ -10635,7 +11023,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 225 + "__id__": 233 }, "_enabled": true, "_materials": [ @@ -10669,7 +11057,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 214 + "__id__": 222 }, "_enabled": true, "_materials": [ @@ -10703,7 +11091,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 214 + "__id__": 222 }, "_enabled": true, "_normalMaterial": null, @@ -10712,7 +11100,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 229 + "__id__": 237 } ], "_N$interactable": true, @@ -10768,7 +11156,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 214 + "__id__": 222 }, "_id": "f26wyaXk1ODqKTicGneesK" }, @@ -10785,41 +11173,41 @@ "_name": "buyBtn", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [ - { - "__id__": 231 - }, - { - "__id__": 233 - }, - { - "__id__": 235 - }, - { - "__id__": 237 - }, { "__id__": 239 }, { - "__id__": 246 + "__id__": 241 }, { - "__id__": 255 + "__id__": 243 }, { - "__id__": 264 + "__id__": 245 + }, + { + "__id__": 247 + }, + { + "__id__": 254 + }, + { + "__id__": 263 + }, + { + "__id__": 272 } ], "_active": true, "_components": [ { - "__id__": 266 + "__id__": 274 }, { - "__id__": 267 + "__id__": 275 } ], "_prefab": null, @@ -10875,13 +11263,13 @@ "_name": "btn_zi_xhongshi", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [], "_active": true, "_components": [ { - "__id__": 232 + "__id__": 240 } ], "_prefab": null, @@ -10937,7 +11325,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 231 + "__id__": 239 }, "_enabled": true, "_materials": [ @@ -10971,13 +11359,13 @@ "_name": "coins_+", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [], "_active": true, "_components": [ { - "__id__": 234 + "__id__": 242 } ], "_prefab": null, @@ -11033,7 +11421,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 233 + "__id__": 241 }, "_enabled": true, "_materials": [ @@ -11067,13 +11455,13 @@ "_name": "coins2", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [], "_active": true, "_components": [ { - "__id__": 236 + "__id__": 244 } ], "_prefab": null, @@ -11129,7 +11517,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 235 + "__id__": 243 }, "_enabled": true, "_materials": [ @@ -11163,13 +11551,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [], "_active": true, "_components": [ { - "__id__": 238 + "__id__": 246 } ], "_prefab": null, @@ -11225,7 +11613,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 237 + "__id__": 245 }, "_enabled": true, "_materials": [ @@ -11259,17 +11647,17 @@ "_name": "coin1", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [ { - "__id__": 240 + "__id__": 248 }, { - "__id__": 242 + "__id__": 250 }, { - "__id__": 244 + "__id__": 252 } ], "_active": false, @@ -11327,13 +11715,13 @@ "_name": "coins5", "_objFlags": 0, "_parent": { - "__id__": 239 + "__id__": 247 }, "_children": [], "_active": true, "_components": [ { - "__id__": 241 + "__id__": 249 } ], "_prefab": null, @@ -11389,7 +11777,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 240 + "__id__": 248 }, "_enabled": true, "_materials": [ @@ -11423,13 +11811,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 239 + "__id__": 247 }, "_children": [], "_active": true, "_components": [ { - "__id__": 243 + "__id__": 251 } ], "_prefab": null, @@ -11485,7 +11873,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 242 + "__id__": 250 }, "_enabled": true, "_materials": [ @@ -11519,13 +11907,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 239 + "__id__": 247 }, "_children": [], "_active": true, "_components": [ { - "__id__": 245 + "__id__": 253 } ], "_prefab": null, @@ -11581,7 +11969,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 244 + "__id__": 252 }, "_enabled": true, "_materials": [ @@ -11615,20 +12003,20 @@ "_name": "coin2", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [ { - "__id__": 247 + "__id__": 255 }, { - "__id__": 249 + "__id__": 257 }, { - "__id__": 251 + "__id__": 259 }, { - "__id__": 253 + "__id__": 261 } ], "_active": false, @@ -11686,13 +12074,13 @@ "_name": "coins1", "_objFlags": 0, "_parent": { - "__id__": 246 + "__id__": 254 }, "_children": [], "_active": true, "_components": [ { - "__id__": 248 + "__id__": 256 } ], "_prefab": null, @@ -11748,7 +12136,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 247 + "__id__": 255 }, "_enabled": true, "_materials": [ @@ -11782,13 +12170,13 @@ "_name": "coins5", "_objFlags": 0, "_parent": { - "__id__": 246 + "__id__": 254 }, "_children": [], "_active": true, "_components": [ { - "__id__": 250 + "__id__": 258 } ], "_prefab": null, @@ -11844,7 +12232,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 249 + "__id__": 257 }, "_enabled": true, "_materials": [ @@ -11878,13 +12266,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 246 + "__id__": 254 }, "_children": [], "_active": true, "_components": [ { - "__id__": 252 + "__id__": 260 } ], "_prefab": null, @@ -11940,7 +12328,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 251 + "__id__": 259 }, "_enabled": true, "_materials": [ @@ -11974,13 +12362,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 246 + "__id__": 254 }, "_children": [], "_active": true, "_components": [ { - "__id__": 254 + "__id__": 262 } ], "_prefab": null, @@ -12036,7 +12424,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 253 + "__id__": 261 }, "_enabled": true, "_materials": [ @@ -12070,20 +12458,20 @@ "_name": "coin3", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [ { - "__id__": 256 + "__id__": 264 }, { - "__id__": 258 + "__id__": 266 }, { - "__id__": 260 + "__id__": 268 }, { - "__id__": 262 + "__id__": 270 } ], "_active": false, @@ -12141,13 +12529,13 @@ "_name": "coins1", "_objFlags": 0, "_parent": { - "__id__": 255 + "__id__": 263 }, "_children": [], "_active": true, "_components": [ { - "__id__": 257 + "__id__": 265 } ], "_prefab": null, @@ -12203,7 +12591,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 256 + "__id__": 264 }, "_enabled": true, "_materials": [ @@ -12237,13 +12625,13 @@ "_name": "coins5", "_objFlags": 0, "_parent": { - "__id__": 255 + "__id__": 263 }, "_children": [], "_active": true, "_components": [ { - "__id__": 259 + "__id__": 267 } ], "_prefab": null, @@ -12299,7 +12687,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 258 + "__id__": 266 }, "_enabled": true, "_materials": [ @@ -12333,13 +12721,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 255 + "__id__": 263 }, "_children": [], "_active": true, "_components": [ { - "__id__": 261 + "__id__": 269 } ], "_prefab": null, @@ -12395,7 +12783,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 260 + "__id__": 268 }, "_enabled": true, "_materials": [ @@ -12429,13 +12817,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 255 + "__id__": 263 }, "_children": [], "_active": true, "_components": [ { - "__id__": 263 + "__id__": 271 } ], "_prefab": null, @@ -12491,7 +12879,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 262 + "__id__": 270 }, "_enabled": true, "_materials": [ @@ -12525,13 +12913,13 @@ "_name": "coins", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [], "_active": true, "_components": [ { - "__id__": 265 + "__id__": 273 } ], "_prefab": null, @@ -12587,7 +12975,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 264 + "__id__": 272 }, "_enabled": true, "_materials": [ @@ -12621,7 +13009,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 230 + "__id__": 238 }, "_enabled": true, "_materials": [ @@ -12653,7 +13041,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 230 + "__id__": 238 }, "_enabled": true, "_normalMaterial": null, @@ -12662,7 +13050,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 268 + "__id__": 276 } ], "_N$interactable": true, @@ -12718,7 +13106,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 230 + "__id__": 238 }, "_id": "d9X6reFQ5ElIF/oEEoTwvB" }, @@ -12737,20 +13125,20 @@ "_name": "homeBtn", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [ { - "__id__": 270 + "__id__": 278 } ], "_active": true, "_components": [ { - "__id__": 272 + "__id__": 280 }, { - "__id__": 273 + "__id__": 281 } ], "_prefab": null, @@ -12806,13 +13194,13 @@ "_name": "btn_zi_xhongshi", "_objFlags": 0, "_parent": { - "__id__": 269 + "__id__": 277 }, "_children": [], "_active": true, "_components": [ { - "__id__": 271 + "__id__": 279 } ], "_prefab": null, @@ -12868,7 +13256,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 270 + "__id__": 278 }, "_enabled": true, "_materials": [ @@ -12902,7 +13290,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 269 + "__id__": 277 }, "_enabled": true, "_materials": [ @@ -12934,7 +13322,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 269 + "__id__": 277 }, "_enabled": true, "_normalMaterial": null, @@ -12943,7 +13331,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 274 + "__id__": 282 } ], "_N$interactable": true, @@ -12999,7 +13387,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 269 + "__id__": 277 }, "_id": "48mz2WOYxOmpmmNFGfPFpu" }, @@ -13018,23 +13406,23 @@ "_name": "Boom", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [ { - "__id__": 276 + "__id__": 284 }, { - "__id__": 278 - }, - { - "__id__": 280 + "__id__": 286 }, { "__id__": 288 }, { - "__id__": 294 + "__id__": 296 + }, + { + "__id__": 302 } ], "_active": false, @@ -13092,13 +13480,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 275 + "__id__": 283 }, "_children": [], "_active": true, "_components": [ { - "__id__": 277 + "__id__": 285 } ], "_prefab": null, @@ -13154,7 +13542,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 276 + "__id__": 284 }, "_enabled": true, "_materials": [ @@ -13188,13 +13576,13 @@ "_name": "boom_show", "_objFlags": 0, "_parent": { - "__id__": 275 + "__id__": 283 }, "_children": [], "_active": true, "_components": [ { - "__id__": 279 + "__id__": 287 } ], "_prefab": null, @@ -13250,7 +13638,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 278 + "__id__": 286 }, "_enabled": true, "_materials": [ @@ -13284,23 +13672,23 @@ "_name": "boomBtn", "_objFlags": 0, "_parent": { - "__id__": 275 + "__id__": 283 }, "_children": [ { - "__id__": 281 + "__id__": 289 }, { - "__id__": 283 + "__id__": 291 } ], "_active": false, "_components": [ { - "__id__": 285 + "__id__": 293 }, { - "__id__": 286 + "__id__": 294 } ], "_prefab": null, @@ -13356,13 +13744,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 280 + "__id__": 288 }, "_children": [], "_active": true, "_components": [ { - "__id__": 282 + "__id__": 290 } ], "_prefab": null, @@ -13418,7 +13806,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 281 + "__id__": 289 }, "_enabled": true, "_materials": [ @@ -13452,13 +13840,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 280 + "__id__": 288 }, "_children": [], "_active": true, "_components": [ { - "__id__": 284 + "__id__": 292 } ], "_prefab": null, @@ -13514,7 +13902,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 283 + "__id__": 291 }, "_enabled": true, "_materials": [ @@ -13548,7 +13936,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 280 + "__id__": 288 }, "_enabled": true, "_materials": [ @@ -13582,7 +13970,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 280 + "__id__": 288 }, "_enabled": true, "_normalMaterial": null, @@ -13591,7 +13979,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 287 + "__id__": 295 } ], "_N$interactable": true, @@ -13647,7 +14035,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 280 + "__id__": 288 }, "_id": "fdZzVHD4hNAIg80rQMiVrL" }, @@ -13664,20 +14052,20 @@ "_name": "timeBtn", "_objFlags": 0, "_parent": { - "__id__": 275 + "__id__": 283 }, "_children": [ { - "__id__": 289 + "__id__": 297 } ], "_active": true, "_components": [ { - "__id__": 291 + "__id__": 299 }, { - "__id__": 292 + "__id__": 300 } ], "_prefab": null, @@ -13733,13 +14121,13 @@ "_name": "btn_zi_xhongshi", "_objFlags": 0, "_parent": { - "__id__": 288 + "__id__": 296 }, "_children": [], "_active": true, "_components": [ { - "__id__": 290 + "__id__": 298 } ], "_prefab": null, @@ -13795,7 +14183,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 289 + "__id__": 297 }, "_enabled": true, "_materials": [ @@ -13829,7 +14217,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 288 + "__id__": 296 }, "_enabled": true, "_materials": [ @@ -13861,7 +14249,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 288 + "__id__": 296 }, "_enabled": true, "_normalMaterial": null, @@ -13870,7 +14258,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 293 + "__id__": 301 } ], "_N$interactable": true, @@ -13926,7 +14314,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 288 + "__id__": 296 }, "_id": "55yv+R8WZJC6lx8Nc3Ql1k" }, @@ -13945,13 +14333,13 @@ "_name": "result_title4", "_objFlags": 0, "_parent": { - "__id__": 275 + "__id__": 283 }, "_children": [], "_active": true, "_components": [ { - "__id__": 295 + "__id__": 303 } ], "_prefab": null, @@ -14007,7 +14395,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 294 + "__id__": 302 }, "_enabled": true, "_materials": [ @@ -14041,20 +14429,20 @@ "_name": "Lock", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [ { - "__id__": 297 + "__id__": 305 }, { - "__id__": 299 + "__id__": 307 }, { - "__id__": 301 + "__id__": 309 }, { - "__id__": 303 + "__id__": 311 } ], "_active": false, @@ -14112,13 +14500,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 296 + "__id__": 304 }, "_children": [], "_active": true, "_components": [ { - "__id__": 298 + "__id__": 306 } ], "_prefab": null, @@ -14174,7 +14562,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 297 + "__id__": 305 }, "_enabled": true, "_materials": [ @@ -14208,13 +14596,13 @@ "_name": "label", "_objFlags": 0, "_parent": { - "__id__": 296 + "__id__": 304 }, "_children": [], "_active": true, "_components": [ { - "__id__": 300 + "__id__": 308 } ], "_prefab": null, @@ -14270,7 +14658,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 299 + "__id__": 307 }, "_enabled": true, "_materials": [ @@ -14303,13 +14691,13 @@ "_name": "boom_show", "_objFlags": 0, "_parent": { - "__id__": 296 + "__id__": 304 }, "_children": [], "_active": true, "_components": [ { - "__id__": 302 + "__id__": 310 } ], "_prefab": null, @@ -14365,7 +14753,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 301 + "__id__": 309 }, "_enabled": false, "_materials": [ @@ -14399,35 +14787,35 @@ "_name": "lockBtn", "_objFlags": 0, "_parent": { - "__id__": 296 + "__id__": 304 }, "_children": [ - { - "__id__": 304 - }, - { - "__id__": 306 - }, - { - "__id__": 308 - }, - { - "__id__": 310 - }, { "__id__": 312 }, { "__id__": 314 + }, + { + "__id__": 316 + }, + { + "__id__": 318 + }, + { + "__id__": 320 + }, + { + "__id__": 322 } ], "_active": true, "_components": [ { - "__id__": 316 + "__id__": 324 }, { - "__id__": 317 + "__id__": 325 } ], "_prefab": null, @@ -14483,13 +14871,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": true, "_components": [ { - "__id__": 305 + "__id__": 313 } ], "_prefab": null, @@ -14545,7 +14933,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 304 + "__id__": 312 }, "_enabled": true, "_materials": [ @@ -14579,13 +14967,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": true, "_components": [ { - "__id__": 307 + "__id__": 315 } ], "_prefab": null, @@ -14641,7 +15029,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 306 + "__id__": 314 }, "_enabled": true, "_materials": [ @@ -14675,13 +15063,13 @@ "_name": "number2", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": true, "_components": [ { - "__id__": 309 + "__id__": 317 } ], "_prefab": null, @@ -14737,7 +15125,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 308 + "__id__": 316 }, "_enabled": true, "_materials": [ @@ -14771,13 +15159,13 @@ "_name": "number1", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": false, "_components": [ { - "__id__": 311 + "__id__": 319 } ], "_prefab": null, @@ -14833,7 +15221,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 310 + "__id__": 318 }, "_enabled": true, "_materials": [ @@ -14867,13 +15255,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": true, "_components": [ { - "__id__": 313 + "__id__": 321 } ], "_prefab": null, @@ -14929,7 +15317,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 312 + "__id__": 320 }, "_enabled": true, "_materials": [ @@ -14963,13 +15351,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": true, "_components": [ { - "__id__": 315 + "__id__": 323 } ], "_prefab": null, @@ -15025,7 +15413,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 314 + "__id__": 322 }, "_enabled": true, "_materials": [ @@ -15059,7 +15447,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 303 + "__id__": 311 }, "_enabled": true, "_materials": [ @@ -15093,7 +15481,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 303 + "__id__": 311 }, "_enabled": true, "_normalMaterial": null, @@ -15102,7 +15490,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 318 + "__id__": 326 } ], "_N$interactable": true, @@ -15158,7 +15546,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 303 + "__id__": 311 }, "_id": "655dVf4UVDOrfIwT5AEPmn" }, @@ -15175,23 +15563,23 @@ "_name": "Health", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [ - { - "__id__": 320 - }, - { - "__id__": 322 - }, { "__id__": 328 }, { - "__id__": 332 + "__id__": 330 }, { - "__id__": 338 + "__id__": 336 + }, + { + "__id__": 340 + }, + { + "__id__": 346 } ], "_active": false, @@ -15249,13 +15637,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 319 + "__id__": 327 }, "_children": [], "_active": true, "_components": [ { - "__id__": 321 + "__id__": 329 } ], "_prefab": null, @@ -15311,7 +15699,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 320 + "__id__": 328 }, "_enabled": true, "_materials": [ @@ -15345,20 +15733,20 @@ "_name": "boom_show", "_objFlags": 0, "_parent": { - "__id__": 319 + "__id__": 327 }, "_children": [ { - "__id__": 323 + "__id__": 331 }, { - "__id__": 325 + "__id__": 333 } ], "_active": true, "_components": [ { - "__id__": 327 + "__id__": 335 } ], "_prefab": null, @@ -15414,13 +15802,13 @@ "_name": "hp_-", "_objFlags": 0, "_parent": { - "__id__": 322 + "__id__": 330 }, "_children": [], "_active": true, "_components": [ { - "__id__": 324 + "__id__": 332 } ], "_prefab": null, @@ -15476,7 +15864,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 323 + "__id__": 331 }, "_enabled": true, "_materials": [ @@ -15510,13 +15898,13 @@ "_name": "hp_1", "_objFlags": 0, "_parent": { - "__id__": 322 + "__id__": 330 }, "_children": [], "_active": true, "_components": [ { - "__id__": 326 + "__id__": 334 } ], "_prefab": null, @@ -15572,7 +15960,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 325 + "__id__": 333 }, "_enabled": true, "_materials": [ @@ -15606,7 +15994,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 322 + "__id__": 330 }, "_enabled": true, "_materials": [ @@ -15640,16 +16028,16 @@ "_name": "homeBtn", "_objFlags": 0, "_parent": { - "__id__": 319 + "__id__": 327 }, "_children": [], "_active": true, "_components": [ { - "__id__": 329 + "__id__": 337 }, { - "__id__": 330 + "__id__": 338 } ], "_prefab": null, @@ -15705,7 +16093,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 328 + "__id__": 336 }, "_enabled": true, "_materials": [ @@ -15739,7 +16127,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 328 + "__id__": 336 }, "_enabled": true, "_normalMaterial": null, @@ -15748,7 +16136,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 331 + "__id__": 339 } ], "_N$interactable": true, @@ -15804,7 +16192,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 328 + "__id__": 336 }, "_id": "e6+nQbfBJDk5i7aunx3eFh" }, @@ -15823,20 +16211,20 @@ "_name": "timeBtn", "_objFlags": 0, "_parent": { - "__id__": 319 + "__id__": 327 }, "_children": [ { - "__id__": 333 + "__id__": 341 } ], "_active": true, "_components": [ { - "__id__": 335 + "__id__": 343 }, { - "__id__": 336 + "__id__": 344 } ], "_prefab": null, @@ -15892,13 +16280,13 @@ "_name": "btn_zi_xhongshi", "_objFlags": 0, "_parent": { - "__id__": 332 + "__id__": 340 }, "_children": [], "_active": true, "_components": [ { - "__id__": 334 + "__id__": 342 } ], "_prefab": null, @@ -15954,7 +16342,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 333 + "__id__": 341 }, "_enabled": true, "_materials": [ @@ -15988,7 +16376,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 332 + "__id__": 340 }, "_enabled": true, "_materials": [ @@ -16020,7 +16408,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 332 + "__id__": 340 }, "_enabled": true, "_normalMaterial": null, @@ -16029,7 +16417,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 337 + "__id__": 345 } ], "_N$interactable": true, @@ -16085,7 +16473,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 332 + "__id__": 340 }, "_id": "bbSZLwLOdIJJ624BuB24QD" }, @@ -16104,13 +16492,13 @@ "_name": "result_title4", "_objFlags": 0, "_parent": { - "__id__": 319 + "__id__": 327 }, "_children": [], "_active": true, "_components": [ { - "__id__": 339 + "__id__": 347 } ], "_prefab": null, @@ -16166,7 +16554,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 338 + "__id__": 346 }, "_enabled": true, "_materials": [ @@ -16200,7 +16588,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 196 + "__id__": 204 }, "_enabled": true, "alignMode": 1, @@ -16258,22 +16646,13 @@ }, "_children": [ { - "__id__": 343 + "__id__": 351 }, { - "__id__": 346 + "__id__": 354 }, { - "__id__": 348 - }, - { - "__id__": 355 - }, - { - "__id__": 357 - }, - { - "__id__": 361 + "__id__": 356 }, { "__id__": 363 @@ -16281,9 +16660,6 @@ { "__id__": 365 }, - { - "__id__": 367 - }, { "__id__": 369 }, @@ -16293,9 +16669,15 @@ { "__id__": 373 }, + { + "__id__": 375 + }, { "__id__": 377 }, + { + "__id__": 379 + }, { "__id__": 381 }, @@ -16303,16 +16685,22 @@ "__id__": 385 }, { - "__id__": 387 + "__id__": 389 }, { - "__id__": 389 + "__id__": 393 + }, + { + "__id__": 395 + }, + { + "__id__": 397 } ], "_active": false, "_components": [ { - "__id__": 391 + "__id__": 399 } ], "_prefab": null, @@ -16368,16 +16756,16 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 344 + "__id__": 352 }, { - "__id__": 345 + "__id__": 353 } ], "_prefab": null, @@ -16433,7 +16821,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 343 + "__id__": 351 }, "_enabled": true, "_materials": [ @@ -16465,7 +16853,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 343 + "__id__": 351 }, "_enabled": true, "_id": "081I6vq85Jwqkph7MYgiJK" @@ -16475,13 +16863,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 347 + "__id__": 355 } ], "_prefab": null, @@ -16537,7 +16925,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 346 + "__id__": 354 }, "_enabled": true, "_materials": [ @@ -16569,23 +16957,23 @@ "_name": "btn", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [ { - "__id__": 349 + "__id__": 357 } ], "_active": true, "_components": [ { - "__id__": 351 + "__id__": 359 }, { - "__id__": 352 + "__id__": 360 }, { - "__id__": 354 + "__id__": 362 } ], "_prefab": null, @@ -16641,13 +17029,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 348 + "__id__": 356 }, "_children": [], "_active": true, "_components": [ { - "__id__": 350 + "__id__": 358 } ], "_prefab": null, @@ -16703,7 +17091,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 349 + "__id__": 357 }, "_enabled": true, "_materials": [ @@ -16737,7 +17125,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 348 + "__id__": 356 }, "_enabled": true, "_materials": [ @@ -16771,7 +17159,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 348 + "__id__": 356 }, "_enabled": true, "_normalMaterial": null, @@ -16780,7 +17168,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 353 + "__id__": 361 } ], "_N$interactable": true, @@ -16836,7 +17224,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 348 + "__id__": 356 }, "_id": "10Gq5GdVNFoaGKYCbUkdh0" }, @@ -16855,7 +17243,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 348 + "__id__": 356 }, "_enabled": true, "_id": "48L+wrOmdFHpjlTvLGv0eT" @@ -16865,13 +17253,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 356 + "__id__": 364 } ], "_prefab": null, @@ -16927,7 +17315,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 355 + "__id__": 363 }, "_enabled": true, "_materials": [ @@ -16961,16 +17349,16 @@ "_name": "closeBtn", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 358 + "__id__": 366 }, { - "__id__": 359 + "__id__": 367 } ], "_prefab": null, @@ -17026,7 +17414,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 357 + "__id__": 365 }, "_enabled": true, "_materials": [ @@ -17060,7 +17448,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 357 + "__id__": 365 }, "_enabled": true, "_normalMaterial": null, @@ -17069,7 +17457,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 360 + "__id__": 368 } ], "_N$interactable": true, @@ -17125,7 +17513,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 357 + "__id__": 365 }, "_id": "9cyVET3cdKsYjhCs6UcCZp" }, @@ -17144,13 +17532,13 @@ "_name": "musicOpen", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 362 + "__id__": 370 } ], "_prefab": null, @@ -17206,7 +17594,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 361 + "__id__": 369 }, "_enabled": true, "_materials": [ @@ -17240,13 +17628,13 @@ "_name": "effectOpen", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 364 + "__id__": 372 } ], "_prefab": null, @@ -17302,7 +17690,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 363 + "__id__": 371 }, "_enabled": true, "_materials": [ @@ -17336,13 +17724,13 @@ "_name": "vibrateOpen", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 366 + "__id__": 374 } ], "_prefab": null, @@ -17398,7 +17786,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 365 + "__id__": 373 }, "_enabled": true, "_materials": [ @@ -17432,13 +17820,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 368 + "__id__": 376 } ], "_prefab": null, @@ -17494,7 +17882,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 367 + "__id__": 375 }, "_enabled": true, "_materials": [ @@ -17528,13 +17916,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 370 + "__id__": 378 } ], "_prefab": null, @@ -17590,7 +17978,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 369 + "__id__": 377 }, "_enabled": true, "_materials": [ @@ -17624,13 +18012,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 372 + "__id__": 380 } ], "_prefab": null, @@ -17686,7 +18074,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 371 + "__id__": 379 }, "_enabled": true, "_materials": [ @@ -17720,16 +18108,16 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 374 + "__id__": 382 }, { - "__id__": 375 + "__id__": 383 } ], "_prefab": null, @@ -17780,372 +18168,6 @@ "groupIndex": 0, "_id": "0emiMlo39FNJtEsFI9D5v4" }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 373 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "a688098b-eb7a-4f82-b737-8cd50c9f6d8c" - }, - "_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": "e8fZCwg3hM77wGmFJ8O1mI" - }, - { - "__type__": "cc.Button", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 373 - }, - "_enabled": true, - "_normalMaterial": null, - "_grayMaterial": null, - "duration": 0.1, - "zoomScale": 1.2, - "clickEvents": [ - { - "__id__": 376 - } - ], - "_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__": 373 - }, - "_id": "f5jlj3QZFNUoLmIDeOTDNk" - }, - { - "__type__": "cc.ClickEvent", - "target": { - "__id__": 342 - }, - "component": "", - "_componentId": "aca4aut33NCvIC0yg3JmY0h", - "handler": "clickMusic", - "customEventData": "" - }, - { - "__type__": "cc.Node", - "_name": "bg", - "_objFlags": 0, - "_parent": { - "__id__": 342 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 378 - }, - { - "__id__": 379 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 264, - "height": 104 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 219.146, - 56.233, - 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": "a3lzmxFAhJYLYWX/fLFCYt" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 377 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "a688098b-eb7a-4f82-b737-8cd50c9f6d8c" - }, - "_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": "a0FWgB1tRLz6tYFfnw1vHU" - }, - { - "__type__": "cc.Button", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 377 - }, - "_enabled": true, - "_normalMaterial": null, - "_grayMaterial": null, - "duration": 0.1, - "zoomScale": 1.2, - "clickEvents": [ - { - "__id__": 380 - } - ], - "_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__": 377 - }, - "_id": "f7PV5tqLpANY2mQ5mNiG8G" - }, - { - "__type__": "cc.ClickEvent", - "target": { - "__id__": 342 - }, - "component": "", - "_componentId": "aca4aut33NCvIC0yg3JmY0h", - "handler": "clickEffect", - "customEventData": "" - }, - { - "__type__": "cc.Node", - "_name": "bg", - "_objFlags": 0, - "_parent": { - "__id__": 342 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 382 - }, - { - "__id__": 383 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 264, - "height": 104 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 219.146, - -182.765, - 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": "7ckpG8hpBFkqVlDj/UQ7KM" - }, { "__type__": "cc.Sprite", "_name": "", @@ -18178,7 +18200,7 @@ "_atlas": { "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7" }, - "_id": "f4myl5ioJMyIZT8XzdxYOh" + "_id": "e8fZCwg3hM77wGmFJ8O1mI" }, { "__type__": "cc.Button", @@ -18252,12 +18274,378 @@ "_N$target": { "__id__": 381 }, + "_id": "f5jlj3QZFNUoLmIDeOTDNk" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 350 + }, + "component": "", + "_componentId": "aca4aut33NCvIC0yg3JmY0h", + "handler": "clickMusic", + "customEventData": "" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 350 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 386 + }, + { + "__id__": 387 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 264, + "height": 104 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 219.146, + 56.233, + 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": "a3lzmxFAhJYLYWX/fLFCYt" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 385 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a688098b-eb7a-4f82-b737-8cd50c9f6d8c" + }, + "_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": "a0FWgB1tRLz6tYFfnw1vHU" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 385 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 388 + } + ], + "_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__": 385 + }, + "_id": "f7PV5tqLpANY2mQ5mNiG8G" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 350 + }, + "component": "", + "_componentId": "aca4aut33NCvIC0yg3JmY0h", + "handler": "clickEffect", + "customEventData": "" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 350 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 390 + }, + { + "__id__": 391 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 264, + "height": 104 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 219.146, + -182.765, + 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": "7ckpG8hpBFkqVlDj/UQ7KM" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 389 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a688098b-eb7a-4f82-b737-8cd50c9f6d8c" + }, + "_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": "f4myl5ioJMyIZT8XzdxYOh" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 389 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 392 + } + ], + "_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__": 389 + }, "_id": "f9Y6q5sbpGXrDTpVBgbvWY" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 342 + "__id__": 350 }, "component": "", "_componentId": "aca4aut33NCvIC0yg3JmY0h", @@ -18269,13 +18657,13 @@ "_name": "music", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 386 + "__id__": 394 } ], "_prefab": null, @@ -18331,7 +18719,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 385 + "__id__": 393 }, "_enabled": true, "_materials": [ @@ -18365,13 +18753,13 @@ "_name": "effct", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 388 + "__id__": 396 } ], "_prefab": null, @@ -18427,7 +18815,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 387 + "__id__": 395 }, "_enabled": true, "_materials": [ @@ -18461,13 +18849,13 @@ "_name": "vibrate", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 390 + "__id__": 398 } ], "_prefab": null, @@ -18523,7 +18911,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 389 + "__id__": 397 }, "_enabled": true, "_materials": [ @@ -18557,17 +18945,17 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 342 + "__id__": 350 }, "_enabled": true, "music": { - "__id__": 385 + "__id__": 393 }, "effect": { - "__id__": 387 + "__id__": 395 }, "vibrate": { - "__id__": 389 + "__id__": 397 }, "open": { "__uuid__": "562063eb-13eb-498c-8e63-d24e8c32d078" @@ -18588,10 +18976,10 @@ "_active": false, "_components": [ { - "__id__": 393 + "__id__": 401 }, { - "__id__": 394 + "__id__": 402 } ], "_prefab": null, @@ -18647,7 +19035,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 392 + "__id__": 400 }, "_enabled": true, "_materials": [ @@ -18689,7 +19077,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 392 + "__id__": 400 }, "_enabled": false, "_id": "00qpMLeBFNhYRX9r3QZvyP" diff --git a/library/imports/4f/4fa6c3b4-e5a0-4a1a-833e-e445fdce1902.js b/library/imports/4f/4fa6c3b4-e5a0-4a1a-833e-e445fdce1902.js index 2ff8680..923bd0a 100644 --- a/library/imports/4f/4fa6c3b4-e5a0-4a1a-833e-e445fdce1902.js +++ b/library/imports/4f/4fa6c3b4-e5a0-4a1a-833e-e445fdce1902.js @@ -6,12 +6,9 @@ cc._RF.push(module, '4fa6cO05aBKGoM+5EX9zhkC', 'TmoSprite'); exports.__esModule = true; exports["default"] = void 0; - var _TmoAssembler = require("./TmoAssembler"); - var _default = cc.Class({ "extends": cc.Sprite, - /** * 设置TextureIndex */ @@ -26,28 +23,24 @@ var _default = cc.Class({ _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宏定义 + } + // 手动设置哈希值,避免无法合批 + 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() { @@ -57,7 +50,6 @@ var _default = cc.Class({ return this._getTiledMap().isNoColor(); } }); - exports["default"] = _default; module.exports = exports["default"]; diff --git a/library/imports/4f/4fa6c3b4-e5a0-4a1a-833e-e445fdce1902.js.map b/library/imports/4f/4fa6c3b4-e5a0-4a1a-833e-e445fdce1902.js.map index e05c761..65cb7cc 100644 --- a/library/imports/4f/4fa6c3b4-e5a0-4a1a-833e-e445fdce1902.js.map +++ b/library/imports/4f/4fa6c3b4-e5a0-4a1a-833e-e445fdce1902.js.map @@ -1 +1 @@ -{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoSprite.js"],"names":["cc","Class","Sprite","setTextureIdx","idx","_textureIdx","setVertsDirty","_getDefaultMaterial","_getTiledMap","getObjectMaterial","_updateMaterial","material","getMaterial","getDefine","undefined","define","updateHash","noColor","isNoColor","BlendFunc","prototype","call","_resetAssembler","assembler","_assembler","TmoAssembler","init","_updateColor","node","_tiledMap"],"mappings":";;;;;;;;;AAAA;;eAEeA,EAAE,CAACC,KAAH,CAAS;AACpB,aAASD,EAAE,CAACE,MADQ;;AAGpB;AACJ;AACA;AACIC,EAAAA,aANoB,yBAMNC,GANM,EAMD;AACf,SAAKC,WAAL,GAAmBD,GAAnB;AACA,SAAKE,aAAL;AACH,GATmB;AAWpBC,EAAAA,mBAXoB,iCAWE;AAClB;AACA,WAAO,KAAKC,YAAL,GAAoBC,iBAApB,EAAP;AACH,GAdmB;AAgBpBC,EAAAA,eAhBoB,6BAgBF;AACd;AACA,QAAIC,QAAQ,GAAG,KAAKC,WAAL,CAAiB,CAAjB,CAAf;;AACA,QAAID,QAAJ,EAAc;AACV,UAAIA,QAAQ,CAACE,SAAT,CAAmB,aAAnB,MAAsCC,SAA1C,EAAqD;AACjDH,QAAAA,QAAQ,CAACI,MAAT,CAAgB,aAAhB,EAA+B,IAA/B;AACH,OAHS,CAIV;;;AACAJ,MAAAA,QAAQ,CAACK,UAAT,CAAoB,MAApB,EALU,CAOV;;AACA,UAAIC,OAAO,GAAG,KAAKC,SAAL,EAAd;AACAP,MAAAA,QAAQ,CAACI,MAAT,CAAgB,YAAhB,EAA8B,CAACE,OAA/B;AACH;;AAEDjB,IAAAA,EAAE,CAACmB,SAAH,CAAaC,SAAb,CAAuBV,eAAvB,CAAuCW,IAAvC,CAA4C,IAA5C;AACH,GAhCmB;AAkCpBC,EAAAA,eAlCoB,6BAkCF;AACd;AACA,QAAIC,SAAS,GAAG,KAAKC,UAAL,GAAkB,IAAIC,0BAAJ,EAAlC;AACAF,IAAAA,SAAS,CAACG,IAAV,CAAe,IAAf;;AAEA,SAAKC,YAAL;;AACA,SAAKrB,aAAL;AACH,GAzCmB;AA2CpBE,EAAAA,YA3CoB,0BA2CL;AACX,WAAO,KAAKoB,IAAL,CAAUC,SAAjB;AACH,GA7CmB;AA+CpBX,EAAAA,SA/CoB,uBA+CR;AACR,WAAO,KAAKV,YAAL,GAAoBU,SAApB,EAAP;AACH;AAjDmB,CAAT","sourceRoot":"/","sourcesContent":["import { TmoAssembler } from \"./TmoAssembler\";\r\n\r\nexport default cc.Class({\r\n extends: cc.Sprite,\r\n\r\n /**\r\n * 设置TextureIndex\r\n */\r\n setTextureIdx(idx) {\r\n this._textureIdx = idx\r\n this.setVertsDirty();\r\n },\r\n\r\n _getDefaultMaterial() {\r\n // 从TiledMap取得默认的材质\r\n return this._getTiledMap().getObjectMaterial();\r\n },\r\n\r\n _updateMaterial() {\r\n // make sure material is belong to self.\r\n let material = this.getMaterial(0);\r\n if (material) {\r\n if (material.getDefine('USE_TEXTURE') !== undefined) {\r\n material.define('USE_TEXTURE', true);\r\n }\r\n // 手动设置哈希值,避免无法合批\r\n material.updateHash(999999);\r\n\r\n // 增加WITH_COLOR宏定义\r\n let noColor = this.isNoColor();\r\n material.define('WITH_COLOR', !noColor);\r\n }\r\n\r\n cc.BlendFunc.prototype._updateMaterial.call(this);\r\n },\r\n\r\n _resetAssembler() {\r\n // 修改默认Assembler\r\n let assembler = this._assembler = new TmoAssembler();\r\n assembler.init(this);\r\n\r\n this._updateColor();\r\n this.setVertsDirty();\r\n },\r\n\r\n _getTiledMap() {\r\n return this.node._tiledMap;\r\n },\r\n\r\n isNoColor() {\r\n return this._getTiledMap().isNoColor();\r\n }\r\n});\r\n"]} \ No newline at end of file +{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoSprite.js"],"names":["_TmoAssembler","require","_default","cc","Class","Sprite","setTextureIdx","idx","_textureIdx","setVertsDirty","_getDefaultMaterial","_getTiledMap","getObjectMaterial","_updateMaterial","material","getMaterial","getDefine","undefined","define","updateHash","noColor","isNoColor","BlendFunc","prototype","call","_resetAssembler","assembler","_assembler","TmoAssembler","init","_updateColor","node","_tiledMap","exports","module"],"mappings":";;;;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAA8C,IAAAC,QAAA,GAE/BC,EAAE,CAACC,KAAK,CAAC;EACpB,WAASD,EAAE,CAACE,MAAM;EAElB;AACJ;AACA;EACIC,aAAa,WAAAA,cAACC,GAAG,EAAE;IACf,IAAI,CAACC,WAAW,GAAGD,GAAG;IACtB,IAAI,CAACE,aAAa,EAAE;EACxB,CAAC;EAEDC,mBAAmB,WAAAA,oBAAA,EAAG;IAClB;IACA,OAAO,IAAI,CAACC,YAAY,EAAE,CAACC,iBAAiB,EAAE;EAClD,CAAC;EAEDC,eAAe,WAAAA,gBAAA,EAAG;IACd;IACA,IAAIC,QAAQ,GAAG,IAAI,CAACC,WAAW,CAAC,CAAC,CAAC;IAClC,IAAID,QAAQ,EAAE;MACV,IAAIA,QAAQ,CAACE,SAAS,CAAC,aAAa,CAAC,KAAKC,SAAS,EAAE;QACjDH,QAAQ,CAACI,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC;MACxC;MACA;MACAJ,QAAQ,CAACK,UAAU,CAAC,MAAM,CAAC;;MAE3B;MACA,IAAIC,OAAO,GAAG,IAAI,CAACC,SAAS,EAAE;MAC9BP,QAAQ,CAACI,MAAM,CAAC,YAAY,EAAE,CAACE,OAAO,CAAC;IAC3C;IAEAjB,EAAE,CAACmB,SAAS,CAACC,SAAS,CAACV,eAAe,CAACW,IAAI,CAAC,IAAI,CAAC;EACrD,CAAC;EAEDC,eAAe,WAAAA,gBAAA,EAAG;IACd;IACA,IAAIC,SAAS,GAAG,IAAI,CAACC,UAAU,GAAG,IAAIC,0BAAY,EAAE;IACpDF,SAAS,CAACG,IAAI,CAAC,IAAI,CAAC;IAEpB,IAAI,CAACC,YAAY,EAAE;IACnB,IAAI,CAACrB,aAAa,EAAE;EACxB,CAAC;EAEDE,YAAY,WAAAA,aAAA,EAAG;IACX,OAAO,IAAI,CAACoB,IAAI,CAACC,SAAS;EAC9B,CAAC;EAEDX,SAAS,WAAAA,UAAA,EAAG;IACR,OAAO,IAAI,CAACV,YAAY,EAAE,CAACU,SAAS,EAAE;EAC1C;AACJ,CAAC,CAAC;AAAAY,OAAA,cAAA/B,QAAA;AAAAgC,MAAA,CAAAD,OAAA,GAAAA,OAAA","sourceRoot":"/","sourcesContent":["import { TmoAssembler } from \"./TmoAssembler\";\r\n\r\nexport default cc.Class({\r\n extends: cc.Sprite,\r\n\r\n /**\r\n * 设置TextureIndex\r\n */\r\n setTextureIdx(idx) {\r\n this._textureIdx = idx\r\n this.setVertsDirty();\r\n },\r\n\r\n _getDefaultMaterial() {\r\n // 从TiledMap取得默认的材质\r\n return this._getTiledMap().getObjectMaterial();\r\n },\r\n\r\n _updateMaterial() {\r\n // make sure material is belong to self.\r\n let material = this.getMaterial(0);\r\n if (material) {\r\n if (material.getDefine('USE_TEXTURE') !== undefined) {\r\n material.define('USE_TEXTURE', true);\r\n }\r\n // 手动设置哈希值,避免无法合批\r\n material.updateHash(999999);\r\n\r\n // 增加WITH_COLOR宏定义\r\n let noColor = this.isNoColor();\r\n material.define('WITH_COLOR', !noColor);\r\n }\r\n\r\n cc.BlendFunc.prototype._updateMaterial.call(this);\r\n },\r\n\r\n _resetAssembler() {\r\n // 修改默认Assembler\r\n let assembler = this._assembler = new TmoAssembler();\r\n assembler.init(this);\r\n\r\n this._updateColor();\r\n this.setVertsDirty();\r\n },\r\n\r\n _getTiledMap() {\r\n return this.node._tiledMap;\r\n },\r\n\r\n isNoColor() {\r\n return this._getTiledMap().isNoColor();\r\n }\r\n});\r\n"]} \ No newline at end of file diff --git a/library/imports/50/50c01dd8-431f-43cc-820e-abb2a859d031.json b/library/imports/50/50c01dd8-431f-43cc-820e-abb2a859d031.json new file mode 100644 index 0000000..c9b23b0 --- /dev/null +++ b/library/imports/50/50c01dd8-431f-43cc-820e-abb2a859d031.json @@ -0,0 +1,69 @@ +{ + "__type__": "cc.AnimationClip", + "_name": "set", + "_objFlags": 0, + "_native": "", + "_duration": 0.45, + "sample": 60, + "speed": 1, + "wrapMode": 1, + "curveData": { + "paths": { + "shengyin": { + "props": { + "x": [ + { + "frame": 0.15, + "value": 210 + }, + { + "frame": 0.26666666666666666, + "value": 49.411764705882334 + }, + { + "frame": 0.45, + "value": 0 + } + ] + } + }, + "zhendong": { + "props": { + "x": [ + { + "frame": 0, + "value": 210 + }, + { + "frame": 0.11666666666666667, + "value": 23.333333333333336 + }, + { + "frame": 0.3333333333333333, + "value": 0 + } + ] + } + }, + "yinyue": { + "props": { + "x": [ + { + "frame": 0.06666666666666667, + "value": 210 + }, + { + "frame": 0.18333333333333332, + "value": 83.99999999999999 + }, + { + "frame": 0.38333333333333336, + "value": 0 + } + ] + } + } + } + }, + "events": [] +} \ No newline at end of file diff --git a/library/imports/55/55403563-1a5a-4f2f-9eb8-82c762641837.js.map b/library/imports/55/55403563-1a5a-4f2f-9eb8-82c762641837.js.map index cf8fb4a..5d61e00 100644 --- a/library/imports/55/55403563-1a5a-4f2f-9eb8-82c762641837.js.map +++ b/library/imports/55/55403563-1a5a-4f2f-9eb8-82c762641837.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\module\\Notification\\Notification.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAM;AACN,IAAI,aAAa,GAAG;IAChB,SAAS,EAAE,EAAE;IACb,EAAE,EAAE,UAAU,MAAM,EAAE,QAAQ,EAAE,MAAM;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,EAAE,UAAU,MAAM,EAAE,SAAS;QAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,OAAO;gBAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SACjE;IACL,CAAC;IAED,GAAG,EAAE,UAAU,MAAM,EAAE,QAAQ;QAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC1C,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBACrB,MAAM;aACT;SACJ;IACL,CAAC;IAED,SAAS,EAAE,UAAU,MAAM;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACvC,CAAC;IAED,YAAY,EAAE;QACV,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;YAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACrB;SACJ;IACL,CAAC;CACJ,CAAC;AACO,sCAAa","file":"","sourceRoot":"/","sourcesContent":["//全局通知\nvar Notifications = {\n _eventMap: [],\n on: function (masgId, callback, target) {\n if (this._eventMap[masgId] === undefined) {\n this._eventMap[masgId] = [];\n }\n this._eventMap[masgId].push({ callback: callback, target: target });\n },\n\n emit: function (masgId, parameter) {\n let array = this._eventMap[masgId];\n if (array === undefined) return;\n\n for (let i = 0; i < array.length; i++) {\n let element = array[i];\n if (element) element.callback.call(element.target, parameter);\n }\n },\n\n off: function (masgId, callback) {\n let array = this._eventMap[masgId];\n if (array === undefined) return;\n for (let i = 0; i < array.length; i++) {\n let element = array[i];\n if (element && element.callback === callback) {\n array[i] = undefined;\n break;\n }\n }\n },\n\n offMasgId: function (masgId) {\n this._eventMap[masgId] = undefined;\n },\n\n removeAllMsg: function () {\n for (let k in this._eventMap) {\n if (this._eventMap[k]) {\n this.offMasgId(k);\n }\n }\n }\n};\nexport { Notifications };"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\module\\Notification\\Notification.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAM;AACN,IAAI,aAAa,GAAG;IAChB,SAAS,EAAE,EAAE;IACb,EAAE,EAAE,UAAU,MAAM,EAAE,QAAQ,EAAE,MAAM;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,EAAE,UAAU,MAAM,EAAE,SAAS;QAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,OAAO;gBAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SACjE;IACL,CAAC;IAED,GAAG,EAAE,UAAU,MAAM,EAAE,QAAQ;QAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC1C,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBACrB,MAAM;aACT;SACJ;IACL,CAAC;IAED,SAAS,EAAE,UAAU,MAAM;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACvC,CAAC;IAED,YAAY,EAAE;QACV,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;YAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACrB;SACJ;IACL,CAAC;CACJ,CAAC;AACO,sCAAa","file":"","sourceRoot":"/","sourcesContent":["//全局通知\r\nvar Notifications = {\r\n _eventMap: [],\r\n on: function (masgId, callback, target) {\r\n if (this._eventMap[masgId] === undefined) {\r\n this._eventMap[masgId] = [];\r\n }\r\n this._eventMap[masgId].push({ callback: callback, target: target });\r\n },\r\n\r\n emit: function (masgId, parameter) {\r\n let array = this._eventMap[masgId];\r\n if (array === undefined) return;\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n let element = array[i];\r\n if (element) element.callback.call(element.target, parameter);\r\n }\r\n },\r\n\r\n off: function (masgId, callback) {\r\n let array = this._eventMap[masgId];\r\n if (array === undefined) return;\r\n for (let i = 0; i < array.length; i++) {\r\n let element = array[i];\r\n if (element && element.callback === callback) {\r\n array[i] = undefined;\r\n break;\r\n }\r\n }\r\n },\r\n\r\n offMasgId: function (masgId) {\r\n this._eventMap[masgId] = undefined;\r\n },\r\n\r\n removeAllMsg: function () {\r\n for (let k in this._eventMap) {\r\n if (this._eventMap[k]) {\r\n this.offMasgId(k);\r\n }\r\n }\r\n }\r\n};\r\nexport { Notifications };"]} \ No newline at end of file diff --git a/library/imports/55/556d8e60-f9a8-46a7-b79e-3993bcd65a45.json b/library/imports/55/556d8e60-f9a8-46a7-b79e-3993bcd65a45.json new file mode 100644 index 0000000..218caa9 --- /dev/null +++ b/library/imports/55/556d8e60-f9a8-46a7-b79e-3993bcd65a45.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "cost_1", + "texture": "b6cc00c9-4bc9-48a7-b075-af04e0f8cfe8", + "atlas": "", + "rect": [ + 0, + 0, + 16, + 36 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 16, + 36 + ], + "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 f5302a3..91c4590 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.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 }\n\n getAudioMusicSwitch()\n {\n return this.mMusicSwitch;\n\n }\n getAudioEffectSwitch()\n {\n return this.mEffectSwitch;\n }\n trunAudioSound(on)\n {\n this.switchMusic(on);\n this.switchEffect(on)\n }\n switchMusic (on) {\n if (this.mMusicSwitch != (on?1:0))\n {\n this.mMusicSwitch = 1-this.mMusicSwitch;\n // this.save();\n }\n if(on)\n {\n this.playMusicGame();\n }\n else\n {\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 */\n playGameOver()\n {\n\n }\n /*\n * 成功的游戏结束\n */\n playGameResultFailed()\n {\n\n }\n /*\n * 成功的游戏结束\n */\n playGameResultSuccess()\n {\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.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 diff --git a/library/imports/58/58481a2a-4229-43d2-bd30-69e4f09cfe4b.json b/library/imports/58/58481a2a-4229-43d2-bd30-69e4f09cfe4b.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/58/58481a2a-4229-43d2-bd30-69e4f09cfe4b.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/58/58481a2a-4229-43d2-bd30-69e4f09cfe4b.png b/library/imports/58/58481a2a-4229-43d2-bd30-69e4f09cfe4b.png new file mode 100644 index 0000000..ed5170f Binary files /dev/null and b/library/imports/58/58481a2a-4229-43d2-bd30-69e4f09cfe4b.png differ diff --git a/library/imports/59/59fd0e78-3b3c-4b59-b077-67aa8a039a7c.json b/library/imports/59/59fd0e78-3b3c-4b59-b077-67aa8a039a7c.json new file mode 100644 index 0000000..98cff30 --- /dev/null +++ b/library/imports/59/59fd0e78-3b3c-4b59-b077-67aa8a039a7c.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins_sz3", + "texture": "e9077dbb-d18e-45d5-aae4-9f46b103ed05", + "atlas": "", + "rect": [ + 0, + 0, + 44, + 61 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 44, + 61 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/5c/5c9b8159-89a3-4b32-b303-b3d4f7ac1c9f.js.map b/library/imports/5c/5c9b8159-89a3-4b32-b303-b3d4f7ac1c9f.js.map index 73cca2f..52cfcb9 100644 --- a/library/imports/5c/5c9b8159-89a3-4b32-b303-b3d4f7ac1c9f.js.map +++ b/library/imports/5c/5c9b8159-89a3-4b32-b303-b3d4f7ac1c9f.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\DynamicAtlasManager.js"],"names":["cc","Class","Component","properties","onLoad","dynamicAtlasManager","enabled"],"mappings":";;;;;;AAAAA,EAAE,CAACC,KAAH,CAAS;AACL,aAASD,EAAE,CAACE,SADP;AAGLC,EAAAA,UAAU,EAAE,EAHP;AAMLC,EAAAA,MANK,oBAMK;AACNJ,IAAAA,EAAE,CAACK,mBAAH,CAAuBC,OAAvB,GAAiC,KAAjC;AACH;AARI,CAAT","sourceRoot":"/","sourcesContent":["cc.Class({\r\n extends: cc.Component,\r\n\r\n properties: {\r\n },\r\n\r\n onLoad () {\r\n cc.dynamicAtlasManager.enabled = false;\r\n },\r\n});\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\DynamicAtlasManager.js"],"names":["cc","Class","Component","properties","onLoad","dynamicAtlasManager","enabled"],"mappings":";;;;;;AAAAA,EAAE,CAACC,KAAK,CAAC;EACL,WAASD,EAAE,CAACE,SAAS;EAErBC,UAAU,EAAE,CACZ,CAAC;EAEDC,MAAM,WAAAA,OAAA,EAAI;IACNJ,EAAE,CAACK,mBAAmB,CAACC,OAAO,GAAG,KAAK;EAC1C;AACJ,CAAC,CAAC","sourceRoot":"/","sourcesContent":["cc.Class({\r\n extends: cc.Component,\r\n\r\n properties: {\r\n },\r\n\r\n onLoad () {\r\n cc.dynamicAtlasManager.enabled = false;\r\n },\r\n});\r\n"]} \ 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 new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/61/6112faa1-3935-48de-a5a8-3369a63cead8.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/61/6112faa1-3935-48de-a5a8-3369a63cead8.png b/library/imports/61/6112faa1-3935-48de-a5a8-3369a63cead8.png new file mode 100644 index 0000000..afaf23f Binary files /dev/null and b/library/imports/61/6112faa1-3935-48de-a5a8-3369a63cead8.png differ diff --git a/library/imports/62/621ae85f-f4e4-48a1-9e97-1cdfd769677d.json b/library/imports/62/621ae85f-f4e4-48a1-9e97-1cdfd769677d.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/62/621ae85f-f4e4-48a1-9e97-1cdfd769677d.json @@ -0,0 +1,4 @@ +{ + "__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.png b/library/imports/62/621ae85f-f4e4-48a1-9e97-1cdfd769677d.png new file mode 100644 index 0000000..3d3e670 Binary files /dev/null and b/library/imports/62/621ae85f-f4e4-48a1-9e97-1cdfd769677d.png differ diff --git a/library/imports/66/66281f32-0047-4af8-8237-90c93fc4b0e8.json b/library/imports/66/66281f32-0047-4af8-8237-90c93fc4b0e8.json index e6e7e97..5ccef36 100644 --- a/library/imports/66/66281f32-0047-4af8-8237-90c93fc4b0e8.json +++ b/library/imports/66/66281f32-0047-4af8-8237-90c93fc4b0e8.json @@ -76,31 +76,31 @@ "__id__": 5 }, { - "__id__": 84 + "__id__": 115 }, { - "__id__": 128 + "__id__": 159 }, { - "__id__": 146 + "__id__": 177 }, { - "__id__": 166 + "__id__": 197 }, { - "__id__": 219 + "__id__": 250 } ], "_active": true, "_components": [ { - "__id__": 221 + "__id__": 252 }, { - "__id__": 222 + "__id__": 253 }, { - "__id__": 223 + "__id__": 254 } ], "_prefab": null, @@ -274,12 +274,18 @@ }, { "__id__": 78 + }, + { + "__id__": 101 + }, + { + "__id__": 106 } ], "_active": true, "_components": [ { - "__id__": 83 + "__id__": 114 } ], "_prefab": null, @@ -3734,7 +3740,7 @@ }, { "__type__": "cc.Node", - "_name": "shezhiBtn", + "_name": "tiaodik", "_objFlags": 0, "_parent": { "__id__": 5 @@ -3742,12 +3748,1232 @@ "_children": [ { "__id__": 79 + }, + { + "__id__": 81 + }, + { + "__id__": 87 + }, + { + "__id__": 93 + } + ], + "_active": false, + "_components": [ + { + "__id__": 99 + }, + { + "__id__": 100 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 154, + "height": 598 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 409.721, + -250.086, + 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": "6dqgv+aKdPoakjPzpvDNA5" + }, + { + "__type__": "cc.Node", + "_name": "tiaodik", + "_objFlags": 0, + "_parent": { + "__id__": 78 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 80 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 154, + "height": 598 + }, + "_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": "38J+7t9XZDb4WIhWVq750i" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 79 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "abe182b3-b936-4f20-ba7c-8d2456d35c89" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "86L4gO+JlM/bf6mEXs44/n" + }, + { + "__type__": "cc.Node", + "_name": "shengyin", + "_objFlags": 0, + "_parent": { + "__id__": 78 + }, + "_children": [ + { + "__id__": 82 + }, + { + "__id__": 84 } ], "_active": true, "_components": [ { - "__id__": 81 + "__id__": 86 + } + ], + "_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, + 213, + 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": "01N1oAxMtFlatBhgv2WzYs" + }, + { + "__type__": "cc.Node", + "_name": "闊充箰00", + "_objFlags": 0, + "_parent": { + "__id__": 81 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 83 + } + ], + "_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": "61RfAR37dGI5zVtfcXavG7" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 82 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "341042f4-0224-41f0-a6a3-91e723dbdce1" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "453TPzj9lFAJfI67H3x3FM" + }, + { + "__type__": "cc.Node", + "_name": "闊充箰01", + "_objFlags": 0, + "_parent": { + "__id__": 81 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 85 + } + ], + "_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": "53fDxKBwJMSbGuFjwFMZhh" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 84 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "e6f3c660-cfa7-4368-b36d-609458c5678b" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "a9hNzWp4xAqImydzVwg0GG" + }, + { + "__type__": "cc.Toggle", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 81 + }, + "_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__": 81 + }, + "_N$isChecked": false, + "toggleGroup": null, + "checkMark": { + "__id__": 85 + }, + "checkEvents": [], + "_id": "c09/yHVMJDoam/VbhBXxcH" + }, + { + "__type__": "cc.Node", + "_name": "yinyue", + "_objFlags": 0, + "_parent": { + "__id__": 78 + }, + "_children": [ + { + "__id__": 88 + }, + { + "__id__": 90 + } + ], + "_active": true, + "_components": [ + { + "__id__": 92 + } + ], + "_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, + 16, + 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": "71cNsfALdAbJ6TMbqIMEDs" + }, + { + "__type__": "cc.Node", + "_name": "闊虫晥00", + "_objFlags": 0, + "_parent": { + "__id__": 87 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 89 + } + ], + "_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__": 88 + }, + "_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__": 87 + }, + "_children": [], + "_active": false, + "_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": "2aCrXDpFlK1Y1LFC/H773f" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 90 + }, + "_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__": 87 + }, + "_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__": 87 + }, + "_N$isChecked": false, + "toggleGroup": null, + "checkMark": { + "__id__": 91 + }, + "checkEvents": [], + "_id": "b9cAW4AvdAXZdGsjzb8ZZf" + }, + { + "__type__": "cc.Node", + "_name": "zhendong", + "_objFlags": 0, + "_parent": { + "__id__": 78 + }, + "_children": [ + { + "__id__": 94 + }, + { + "__id__": 96 + } + ], + "_active": true, + "_components": [ + { + "__id__": 98 + } + ], + "_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__": 93 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 95 + } + ], + "_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__": 94 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "cadd896f-dd2c-43fa-8788-334576768186" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "fb9In1Ki5NRJoR+ASxwH6D" + }, + { + "__type__": "cc.Node", + "_name": "闇囧姩01", + "_objFlags": 0, + "_parent": { + "__id__": 93 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 97 + } + ], + "_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__": 96 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "6f871c8f-5b0f-4063-a6f6-290947cc7e44" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "b4FcAyEHpGjIYB1ndEaO5N" + }, + { + "__type__": "cc.Toggle", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 93 + }, + "_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__": 93 + }, + "_N$isChecked": false, + "toggleGroup": null, + "checkMark": { + "__id__": 97 + }, + "checkEvents": [], + "_id": "f9H3N/MqVI0ZJ6D1GMBA4u" + }, + { + "__type__": "cc.Layout", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 78 + }, + "_enabled": false, + "_layoutSize": { + "__type__": "cc.Size", + "width": 300, + "height": 200 + }, + "_resize": 0, + "_N$layoutType": 2, + "_N$cellSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_N$startAxis": 0, + "_N$paddingLeft": 0, + "_N$paddingRight": 0, + "_N$paddingTop": 25, + "_N$paddingBottom": 15, + "_N$spacingX": 0, + "_N$spacingY": 75, + "_N$verticalDirection": 1, + "_N$horizontalDirection": 0, + "_N$affectedByScale": false, + "_id": "d74wutOahLy60VTMTqn6zt" + }, + { + "__type__": "cc.Animation", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 78 + }, + "_enabled": true, + "_defaultClip": null, + "_clips": [ + { + "__uuid__": "50c01dd8-431f-43cc-820e-abb2a859d031" + } + ], + "playOnLoad": false, + "_id": "06zhlax2BIgq2BGFohNQeX" + }, + { + "__type__": "cc.Node", + "_name": "shezhiBtn", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [ + { + "__id__": 102 + } + ], + "_active": true, + "_components": [ + { + "__id__": 104 } ], "_prefab": null, @@ -3803,13 +5029,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 78 + "__id__": 101 }, "_children": [], "_active": true, "_components": [ { - "__id__": 80 + "__id__": 103 } ], "_prefab": null, @@ -3865,7 +5091,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 79 + "__id__": 102 }, "_enabled": true, "_materials": [ @@ -3899,7 +5125,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 78 + "__id__": 101 }, "_enabled": true, "_normalMaterial": null, @@ -3908,7 +5134,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 82 + "__id__": 105 } ], "_N$interactable": true, @@ -3964,7 +5190,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 78 + "__id__": 101 }, "_id": "02bgX7BW9KmbZ6ke3vsVWy" }, @@ -3978,6 +5204,391 @@ "handler": "openPause", "customEventData": "" }, + { + "__type__": "cc.Node", + "_name": "shop", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [ + { + "__id__": 107 + } + ], + "_active": true, + "_components": [ + { + "__id__": 112 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -400, + -650, + 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": "7fuhipepBHYpfdIqaFxgVg" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 512, + "_parent": { + "__id__": 106 + }, + "_children": [ + { + "__id__": 108 + } + ], + "_active": true, + "_components": [ + { + "__id__": 110 + }, + { + "__id__": 111 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_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, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "531BJn26hM+aG5nJ2Lj7hb" + }, + { + "__type__": "cc.Node", + "_name": "Label", + "_objFlags": 512, + "_parent": { + "__id__": 107 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 109 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_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": "a0MiAVCvxPD7RxY7rmqhdV" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 108 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "shop", + "_N$string": "shop", + "_fontSize": 20, + "_lineHeight": 40, + "_enableWrapText": false, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 1, + "_N$cacheMode": 1, + "_id": "73G/inpnlJNqatqG+8+q4q" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 107 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "a5vX0Ko7VLM4aBSZIAc+aU" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 107 + }, + "_enabled": true, + "alignMode": 0, + "_target": null, + "_alignFlags": 45, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 100, + "_originalHeight": 40, + "_id": "84zJXNFs5AU54kxE1JCeN3" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 106 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 113 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 230, + "g": 230, + "b": 230, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "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": 120, + "g": 120, + "b": 120, + "a": 200 + }, + "_N$normalSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "_N$hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$disabledSprite": { + "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e" + }, + "_N$target": { + "__id__": 107 + }, + "_id": "88UX+E3n9ImZvBg4tRwHFR" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 2 + }, + "component": "", + "_componentId": "1dc93b4fehOrpGgTkihBH4g", + "handler": "openShop", + "customEventData": "" + }, { "__type__": "cc.Widget", "_name": "", @@ -4014,25 +5625,25 @@ }, "_children": [ { - "__id__": 85 + "__id__": 116 }, { - "__id__": 89 + "__id__": 120 }, { - "__id__": 91 + "__id__": 122 }, { - "__id__": 119 + "__id__": 150 }, { - "__id__": 123 + "__id__": 154 } ], "_active": false, "_components": [ { - "__id__": 127 + "__id__": 158 } ], "_prefab": null, @@ -4088,19 +5699,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 84 + "__id__": 115 }, "_children": [], "_active": true, "_components": [ { - "__id__": 86 + "__id__": 117 }, { - "__id__": 87 + "__id__": 118 }, { - "__id__": 88 + "__id__": 119 } ], "_prefab": null, @@ -4156,7 +5767,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 85 + "__id__": 116 }, "_enabled": true, "_materials": [ @@ -4188,7 +5799,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 85 + "__id__": 116 }, "_enabled": true, "alignMode": 1, @@ -4215,7 +5826,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 85 + "__id__": 116 }, "_enabled": true, "_id": "dfDCcIpbVJQaLDWZH9iaPD" @@ -4225,13 +5836,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 84 + "__id__": 115 }, "_children": [], "_active": false, "_components": [ { - "__id__": 90 + "__id__": 121 } ], "_prefab": null, @@ -4287,7 +5898,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 89 + "__id__": 120 }, "_enabled": true, "_materials": [ @@ -4317,47 +5928,47 @@ "_name": "rank", "_objFlags": 0, "_parent": { - "__id__": 84 + "__id__": 115 }, "_children": [ { - "__id__": 92 + "__id__": 123 }, { - "__id__": 94 + "__id__": 125 }, { - "__id__": 96 + "__id__": 127 }, { - "__id__": 98 + "__id__": 129 }, { - "__id__": 100 + "__id__": 131 }, { - "__id__": 102 + "__id__": 133 }, { - "__id__": 104 + "__id__": 135 }, { - "__id__": 106 + "__id__": 137 }, { - "__id__": 108 + "__id__": 139 }, { - "__id__": 110 + "__id__": 141 }, { - "__id__": 112 + "__id__": 143 } ], "_active": true, "_components": [ { - "__id__": 118 + "__id__": 149 } ], "_prefab": null, @@ -4413,13 +6024,13 @@ "_name": "paihang1_1_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 93 + "__id__": 124 } ], "_prefab": null, @@ -4475,7 +6086,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 92 + "__id__": 123 }, "_enabled": true, "_materials": [ @@ -4505,13 +6116,13 @@ "_name": "paihang1_2_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 95 + "__id__": 126 } ], "_prefab": null, @@ -4567,7 +6178,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 94 + "__id__": 125 }, "_enabled": true, "_materials": [ @@ -4597,13 +6208,13 @@ "_name": "paihang1_3_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 97 + "__id__": 128 } ], "_prefab": null, @@ -4659,7 +6270,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 96 + "__id__": 127 }, "_enabled": true, "_materials": [ @@ -4689,13 +6300,13 @@ "_name": "paihang1_4_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 99 + "__id__": 130 } ], "_prefab": null, @@ -4751,7 +6362,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 98 + "__id__": 129 }, "_enabled": true, "_materials": [ @@ -4781,13 +6392,13 @@ "_name": "paihang1_4_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 101 + "__id__": 132 } ], "_prefab": null, @@ -4843,7 +6454,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 100 + "__id__": 131 }, "_enabled": true, "_materials": [ @@ -4873,13 +6484,13 @@ "_name": "paihang1_4_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 103 + "__id__": 134 } ], "_prefab": null, @@ -4935,7 +6546,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 133 }, "_enabled": true, "_materials": [ @@ -4965,13 +6576,13 @@ "_name": "icon", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 105 + "__id__": 136 } ], "_prefab": null, @@ -5027,7 +6638,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 104 + "__id__": 135 }, "_enabled": true, "_materials": [ @@ -5059,13 +6670,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 107 + "__id__": 138 } ], "_prefab": null, @@ -5121,7 +6732,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 106 + "__id__": 137 }, "_enabled": true, "_materials": [ @@ -5154,13 +6765,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 109 + "__id__": 140 } ], "_prefab": null, @@ -5216,7 +6827,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 108 + "__id__": 139 }, "_enabled": true, "_materials": [ @@ -5249,13 +6860,13 @@ "_name": "shuzi3_6", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 111 + "__id__": 142 } ], "_prefab": null, @@ -5311,7 +6922,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 110 + "__id__": 141 }, "_enabled": true, "_materials": [ @@ -5341,20 +6952,20 @@ "_name": "btn", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [ { - "__id__": 113 + "__id__": 144 } ], "_active": true, "_components": [ { - "__id__": 115 + "__id__": 146 }, { - "__id__": 116 + "__id__": 147 } ], "_prefab": null, @@ -5410,13 +7021,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 112 + "__id__": 143 }, "_children": [], "_active": true, "_components": [ { - "__id__": 114 + "__id__": 145 } ], "_prefab": null, @@ -5472,7 +7083,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 113 + "__id__": 144 }, "_enabled": true, "_materials": [ @@ -5506,7 +7117,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 112 + "__id__": 143 }, "_enabled": true, "_materials": [ @@ -5540,7 +7151,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 112 + "__id__": 143 }, "_enabled": true, "_normalMaterial": null, @@ -5549,7 +7160,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 117 + "__id__": 148 } ], "_N$interactable": true, @@ -5605,7 +7216,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 112 + "__id__": 143 }, "_id": "0b4hiJfolDCqERI+qJ8NNt" }, @@ -5622,7 +7233,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 91 + "__id__": 122 }, "_enabled": true, "_materials": [ @@ -5652,17 +7263,17 @@ "_name": "logo", "_objFlags": 0, "_parent": { - "__id__": 84 + "__id__": 115 }, "_children": [ { - "__id__": 120 + "__id__": 151 } ], "_active": false, "_components": [ { - "__id__": 122 + "__id__": 153 } ], "_prefab": null, @@ -5718,13 +7329,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 119 + "__id__": 150 }, "_children": [], "_active": true, "_components": [ { - "__id__": 121 + "__id__": 152 } ], "_prefab": null, @@ -5780,7 +7391,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 120 + "__id__": 151 }, "_enabled": true, "_materials": [ @@ -5813,7 +7424,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 119 + "__id__": 150 }, "_enabled": true, "_materials": [ @@ -5847,16 +7458,16 @@ "_name": "closeBtn", "_objFlags": 0, "_parent": { - "__id__": 84 + "__id__": 115 }, "_children": [], "_active": true, "_components": [ { - "__id__": 124 + "__id__": 155 }, { - "__id__": 125 + "__id__": 156 } ], "_prefab": null, @@ -5912,7 +7523,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 123 + "__id__": 154 }, "_enabled": true, "_materials": [ @@ -5946,7 +7557,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 123 + "__id__": 154 }, "_enabled": true, "_normalMaterial": null, @@ -5955,7 +7566,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 126 + "__id__": 157 } ], "_N$interactable": true, @@ -6011,7 +7622,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 123 + "__id__": 154 }, "_id": "aeOKxuEtVBQ76OAxASWQGP" }, @@ -6030,7 +7641,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 84 + "__id__": 115 }, "_enabled": true, "alignMode": 1, @@ -6061,13 +7672,13 @@ }, "_children": [ { - "__id__": 129 + "__id__": 160 }, { - "__id__": 132 + "__id__": 163 }, { - "__id__": 134 + "__id__": 165 } ], "_active": false, @@ -6125,16 +7736,16 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 128 + "__id__": 159 }, "_children": [], "_active": true, "_components": [ { - "__id__": 130 + "__id__": 161 }, { - "__id__": 131 + "__id__": 162 } ], "_prefab": null, @@ -6190,7 +7801,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 129 + "__id__": 160 }, "_enabled": true, "_materials": [ @@ -6222,7 +7833,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 129 + "__id__": 160 }, "_enabled": true, "_id": "6eAfAN7PxP8LBtlAPfR/Ia" @@ -6232,13 +7843,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 128 + "__id__": 159 }, "_children": [], "_active": false, "_components": [ { - "__id__": 133 + "__id__": 164 } ], "_prefab": null, @@ -6294,7 +7905,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 132 + "__id__": 163 }, "_enabled": true, "_materials": [ @@ -6324,20 +7935,20 @@ "_name": "reward", "_objFlags": 0, "_parent": { - "__id__": 128 + "__id__": 159 }, "_children": [ { - "__id__": 135 + "__id__": 166 }, { - "__id__": 139 + "__id__": 170 } ], "_active": true, "_components": [ { - "__id__": 145 + "__id__": 176 } ], "_prefab": null, @@ -6393,16 +8004,16 @@ "_name": "closeBtn", "_objFlags": 0, "_parent": { - "__id__": 134 + "__id__": 165 }, "_children": [], "_active": true, "_components": [ { - "__id__": 136 + "__id__": 167 }, { - "__id__": 137 + "__id__": 168 } ], "_prefab": null, @@ -6458,7 +8069,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 135 + "__id__": 166 }, "_enabled": true, "_materials": [ @@ -6492,7 +8103,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 135 + "__id__": 166 }, "_enabled": true, "_normalMaterial": null, @@ -6501,7 +8112,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 138 + "__id__": 169 } ], "_N$interactable": true, @@ -6557,7 +8168,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 135 + "__id__": 166 }, "_id": "8697ar7LREtafp+rIsxcSE" }, @@ -6576,20 +8187,20 @@ "_name": "btn", "_objFlags": 0, "_parent": { - "__id__": 134 + "__id__": 165 }, "_children": [ { - "__id__": 140 + "__id__": 171 } ], "_active": true, "_components": [ { - "__id__": 142 + "__id__": 173 }, { - "__id__": 143 + "__id__": 174 } ], "_prefab": null, @@ -6645,13 +8256,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 139 + "__id__": 170 }, "_children": [], "_active": true, "_components": [ { - "__id__": 141 + "__id__": 172 } ], "_prefab": null, @@ -6707,7 +8318,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 140 + "__id__": 171 }, "_enabled": true, "_materials": [ @@ -6741,7 +8352,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 139 + "__id__": 170 }, "_enabled": true, "_materials": [ @@ -6775,7 +8386,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 139 + "__id__": 170 }, "_enabled": true, "_normalMaterial": null, @@ -6784,7 +8395,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 144 + "__id__": 175 } ], "_N$interactable": true, @@ -6840,7 +8451,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 139 + "__id__": 170 }, "_id": "a99do5CqxGB7rnced8tB+I" }, @@ -6857,7 +8468,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 134 + "__id__": 165 }, "_enabled": true, "_materials": [ @@ -6891,25 +8502,25 @@ }, "_children": [ { - "__id__": 147 + "__id__": 178 }, { - "__id__": 151 + "__id__": 182 }, { - "__id__": 153 + "__id__": 184 }, { - "__id__": 155 + "__id__": 186 }, { - "__id__": 159 + "__id__": 190 } ], "_active": false, "_components": [ { - "__id__": 165 + "__id__": 196 } ], "_prefab": null, @@ -6965,19 +8576,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 146 + "__id__": 177 }, "_children": [], "_active": true, "_components": [ { - "__id__": 148 + "__id__": 179 }, { - "__id__": 149 + "__id__": 180 }, { - "__id__": 150 + "__id__": 181 } ], "_prefab": null, @@ -7033,7 +8644,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 147 + "__id__": 178 }, "_enabled": true, "_materials": [ @@ -7065,7 +8676,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 147 + "__id__": 178 }, "_enabled": true, "alignMode": 1, @@ -7092,7 +8703,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 147 + "__id__": 178 }, "_enabled": true, "_id": "d3WO2KgvBHxZSuuuiocs4j" @@ -7102,13 +8713,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 146 + "__id__": 177 }, "_children": [], "_active": true, "_components": [ { - "__id__": 152 + "__id__": 183 } ], "_prefab": null, @@ -7164,7 +8775,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 151 + "__id__": 182 }, "_enabled": true, "_materials": [ @@ -7194,13 +8805,13 @@ "_name": "Stamina", "_objFlags": 0, "_parent": { - "__id__": 146 + "__id__": 177 }, "_children": [], "_active": true, "_components": [ { - "__id__": 154 + "__id__": 185 } ], "_prefab": null, @@ -7256,7 +8867,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 153 + "__id__": 184 }, "_enabled": true, "_materials": [ @@ -7286,16 +8897,16 @@ "_name": "closeBtn", "_objFlags": 0, "_parent": { - "__id__": 146 + "__id__": 177 }, "_children": [], "_active": true, "_components": [ { - "__id__": 156 + "__id__": 187 }, { - "__id__": 157 + "__id__": 188 } ], "_prefab": null, @@ -7351,7 +8962,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 155 + "__id__": 186 }, "_enabled": true, "_materials": [ @@ -7385,7 +8996,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 155 + "__id__": 186 }, "_enabled": true, "_normalMaterial": null, @@ -7394,7 +9005,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 158 + "__id__": 189 } ], "_N$interactable": true, @@ -7450,7 +9061,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 155 + "__id__": 186 }, "_id": "4fx9FNHrVMm7QEtzYiJ4Ca" }, @@ -7469,20 +9080,20 @@ "_name": "btn", "_objFlags": 0, "_parent": { - "__id__": 146 + "__id__": 177 }, "_children": [ { - "__id__": 160 + "__id__": 191 } ], "_active": true, "_components": [ { - "__id__": 162 + "__id__": 193 }, { - "__id__": 163 + "__id__": 194 } ], "_prefab": null, @@ -7538,13 +9149,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 159 + "__id__": 190 }, "_children": [], "_active": true, "_components": [ { - "__id__": 161 + "__id__": 192 } ], "_prefab": null, @@ -7600,7 +9211,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 160 + "__id__": 191 }, "_enabled": true, "_materials": [ @@ -7634,7 +9245,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 159 + "__id__": 190 }, "_enabled": true, "_materials": [ @@ -7668,7 +9279,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 159 + "__id__": 190 }, "_enabled": true, "_normalMaterial": null, @@ -7677,7 +9288,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 164 + "__id__": 195 } ], "_N$interactable": true, @@ -7733,7 +9344,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 159 + "__id__": 190 }, "_id": "6f5W0gZq1NG4kBoigH1HP7" }, @@ -7750,7 +9361,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 146 + "__id__": 177 }, "_enabled": true, "alignMode": 1, @@ -7781,67 +9392,67 @@ }, "_children": [ { - "__id__": 167 + "__id__": 198 }, { - "__id__": 170 + "__id__": 201 }, { - "__id__": 172 + "__id__": 203 }, { - "__id__": 178 + "__id__": 209 }, { - "__id__": 180 + "__id__": 211 }, { - "__id__": 184 + "__id__": 215 }, { - "__id__": 186 + "__id__": 217 }, { - "__id__": 188 + "__id__": 219 }, { - "__id__": 190 + "__id__": 221 }, { - "__id__": 192 + "__id__": 223 }, { - "__id__": 194 + "__id__": 225 }, { - "__id__": 196 + "__id__": 227 }, { - "__id__": 200 + "__id__": 231 }, { - "__id__": 204 + "__id__": 235 }, { - "__id__": 208 + "__id__": 239 }, { - "__id__": 210 + "__id__": 241 }, { - "__id__": 212 + "__id__": 243 }, { - "__id__": 214 + "__id__": 245 }, { - "__id__": 216 + "__id__": 247 } ], "_active": false, "_components": [ { - "__id__": 218 + "__id__": 249 } ], "_prefab": null, @@ -7897,16 +9508,16 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 168 + "__id__": 199 }, { - "__id__": 169 + "__id__": 200 } ], "_prefab": null, @@ -7962,7 +9573,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 167 + "__id__": 198 }, "_enabled": true, "_materials": [ @@ -7994,7 +9605,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 167 + "__id__": 198 }, "_enabled": true, "_id": "22/vLI0+hBZrCrug3svOux" @@ -8004,13 +9615,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 171 + "__id__": 202 } ], "_prefab": null, @@ -8066,7 +9677,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 170 + "__id__": 201 }, "_enabled": true, "_materials": [ @@ -8098,20 +9709,20 @@ "_name": "btn", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [ { - "__id__": 173 + "__id__": 204 } ], "_active": true, "_components": [ { - "__id__": 175 + "__id__": 206 }, { - "__id__": 176 + "__id__": 207 } ], "_prefab": null, @@ -8167,13 +9778,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 172 + "__id__": 203 }, "_children": [], "_active": true, "_components": [ { - "__id__": 174 + "__id__": 205 } ], "_prefab": null, @@ -8229,7 +9840,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 173 + "__id__": 204 }, "_enabled": true, "_materials": [ @@ -8263,7 +9874,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 172 + "__id__": 203 }, "_enabled": true, "_materials": [ @@ -8297,7 +9908,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 172 + "__id__": 203 }, "_enabled": true, "_normalMaterial": null, @@ -8306,7 +9917,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 177 + "__id__": 208 } ], "_N$interactable": true, @@ -8362,7 +9973,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 172 + "__id__": 203 }, "_id": "b8Y9x+dpZGKKCgiAzSbF2w" }, @@ -8381,13 +9992,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 179 + "__id__": 210 } ], "_prefab": null, @@ -8443,7 +10054,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 178 + "__id__": 209 }, "_enabled": true, "_materials": [ @@ -8477,16 +10088,16 @@ "_name": "closeBtn", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 181 + "__id__": 212 }, { - "__id__": 182 + "__id__": 213 } ], "_prefab": null, @@ -8542,7 +10153,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 180 + "__id__": 211 }, "_enabled": true, "_materials": [ @@ -8576,7 +10187,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 180 + "__id__": 211 }, "_enabled": true, "_normalMaterial": null, @@ -8585,7 +10196,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 183 + "__id__": 214 } ], "_N$interactable": true, @@ -8641,7 +10252,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 180 + "__id__": 211 }, "_id": "3fEch1YYZH6oMgUJ5+mat/" }, @@ -8660,13 +10271,13 @@ "_name": "musicOpen", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 185 + "__id__": 216 } ], "_prefab": null, @@ -8722,7 +10333,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 184 + "__id__": 215 }, "_enabled": true, "_materials": [ @@ -8756,13 +10367,13 @@ "_name": "effectOpen", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 187 + "__id__": 218 } ], "_prefab": null, @@ -8818,7 +10429,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 186 + "__id__": 217 }, "_enabled": true, "_materials": [ @@ -8852,13 +10463,13 @@ "_name": "vibrateOpen", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 189 + "__id__": 220 } ], "_prefab": null, @@ -8914,7 +10525,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 188 + "__id__": 219 }, "_enabled": true, "_materials": [ @@ -8948,13 +10559,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 191 + "__id__": 222 } ], "_prefab": null, @@ -9010,7 +10621,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 190 + "__id__": 221 }, "_enabled": true, "_materials": [ @@ -9044,13 +10655,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 193 + "__id__": 224 } ], "_prefab": null, @@ -9106,7 +10717,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 192 + "__id__": 223 }, "_enabled": true, "_materials": [ @@ -9140,13 +10751,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 195 + "__id__": 226 } ], "_prefab": null, @@ -9202,7 +10813,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 194 + "__id__": 225 }, "_enabled": true, "_materials": [ @@ -9236,16 +10847,16 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 197 + "__id__": 228 }, { - "__id__": 198 + "__id__": 229 } ], "_prefab": null, @@ -9301,7 +10912,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 196 + "__id__": 227 }, "_enabled": true, "_materials": [ @@ -9335,7 +10946,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 196 + "__id__": 227 }, "_enabled": true, "_normalMaterial": null, @@ -9344,7 +10955,7 @@ "zoomScale": 1.2, "clickEvents": [ { - "__id__": 199 + "__id__": 230 } ], "_N$interactable": true, @@ -9400,14 +11011,14 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 196 + "__id__": 227 }, "_id": "625dakXShD7bgpaU3SIzV2" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 166 + "__id__": 197 }, "component": "", "_componentId": "aca4aut33NCvIC0yg3JmY0h", @@ -9419,16 +11030,16 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 201 + "__id__": 232 }, { - "__id__": 202 + "__id__": 233 } ], "_prefab": null, @@ -9484,7 +11095,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 200 + "__id__": 231 }, "_enabled": true, "_materials": [ @@ -9518,7 +11129,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 200 + "__id__": 231 }, "_enabled": true, "_normalMaterial": null, @@ -9527,7 +11138,7 @@ "zoomScale": 1.2, "clickEvents": [ { - "__id__": 203 + "__id__": 234 } ], "_N$interactable": true, @@ -9583,14 +11194,14 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 200 + "__id__": 231 }, "_id": "72VsvwUtxAD6Hj+ox2n5Ez" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 166 + "__id__": 197 }, "component": "", "_componentId": "aca4aut33NCvIC0yg3JmY0h", @@ -9602,16 +11213,16 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 205 + "__id__": 236 }, { - "__id__": 206 + "__id__": 237 } ], "_prefab": null, @@ -9667,7 +11278,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 204 + "__id__": 235 }, "_enabled": true, "_materials": [ @@ -9701,7 +11312,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 204 + "__id__": 235 }, "_enabled": true, "_normalMaterial": null, @@ -9710,7 +11321,7 @@ "zoomScale": 1.2, "clickEvents": [ { - "__id__": 207 + "__id__": 238 } ], "_N$interactable": true, @@ -9766,14 +11377,14 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 204 + "__id__": 235 }, "_id": "efSi0dlVNIXJRT6hEV1IpJ" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 166 + "__id__": 197 }, "component": "", "_componentId": "aca4aut33NCvIC0yg3JmY0h", @@ -9785,13 +11396,13 @@ "_name": "music", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 209 + "__id__": 240 } ], "_prefab": null, @@ -9847,7 +11458,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 208 + "__id__": 239 }, "_enabled": true, "_materials": [ @@ -9881,13 +11492,13 @@ "_name": "effct", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 211 + "__id__": 242 } ], "_prefab": null, @@ -9943,7 +11554,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 210 + "__id__": 241 }, "_enabled": true, "_materials": [ @@ -9977,13 +11588,13 @@ "_name": "vibrate", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 213 + "__id__": 244 } ], "_prefab": null, @@ -10039,7 +11650,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 212 + "__id__": 243 }, "_enabled": true, "_materials": [ @@ -10073,13 +11684,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 215 + "__id__": 246 } ], "_prefab": null, @@ -10135,7 +11746,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 214 + "__id__": 245 }, "_enabled": true, "_materials": [ @@ -10168,13 +11779,13 @@ "_name": "openID", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 217 + "__id__": 248 } ], "_prefab": null, @@ -10230,7 +11841,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 216 + "__id__": 247 }, "_enabled": true, "_materials": [ @@ -10263,17 +11874,17 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 166 + "__id__": 197 }, "_enabled": true, "music": { - "__id__": 208 + "__id__": 239 }, "effect": { - "__id__": 210 + "__id__": 241 }, "vibrate": { - "__id__": 212 + "__id__": 243 }, "open": { "__uuid__": "562063eb-13eb-498c-8e63-d24e8c32d078" @@ -10294,7 +11905,7 @@ "_active": false, "_components": [ { - "__id__": 220 + "__id__": 251 } ], "_prefab": null, @@ -10350,7 +11961,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 219 + "__id__": 250 }, "_enabled": true, "_materials": [ diff --git a/library/imports/67/67ab3632-96c7-4db0-b1d9-1dcf80e62ce4.json b/library/imports/67/67ab3632-96c7-4db0-b1d9-1dcf80e62ce4.json new file mode 100644 index 0000000..e2c193e --- /dev/null +++ b/library/imports/67/67ab3632-96c7-4db0-b1d9-1dcf80e62ce4.json @@ -0,0 +1,29 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins8", + "texture": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "atlas": "7aef6fef-1f14-4aeb-ba2e-3738a437eb63", + "rect": [ + 241, + 0, + 213, + 195 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 213, + 195 + ], + "rotated": 1, + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/6a/6a23b7d1-bd37-43ad-8142-cf277520ea21.json b/library/imports/6a/6a23b7d1-bd37-43ad-8142-cf277520ea21.json new file mode 100644 index 0000000..2d92008 --- /dev/null +++ b/library/imports/6a/6a23b7d1-bd37-43ad-8142-cf277520ea21.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "cost_11", + "texture": "1019c0e2-cc2c-4dde-93e4-86b676bc69cd", + "atlas": "", + "rect": [ + 0, + 0, + 33, + 33 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 33, + 33 + ], + "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 new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/6b/6b7f9211-7903-45b4-b2e2-d388ba17e935.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/6b/6b7f9211-7903-45b4-b2e2-d388ba17e935.png b/library/imports/6b/6b7f9211-7903-45b4-b2e2-d388ba17e935.png new file mode 100644 index 0000000..2ac1814 Binary files /dev/null and b/library/imports/6b/6b7f9211-7903-45b4-b2e2-d388ba17e935.png differ diff --git a/library/imports/6c/6c076da3-bb21-4e43-9e7e-d88b44bd01f4.json b/library/imports/6c/6c076da3-bb21-4e43-9e7e-d88b44bd01f4.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/6c/6c076da3-bb21-4e43-9e7e-d88b44bd01f4.json @@ -0,0 +1,4 @@ +{ + "__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.png b/library/imports/6c/6c076da3-bb21-4e43-9e7e-d88b44bd01f4.png new file mode 100644 index 0000000..4f86ef7 Binary files /dev/null and b/library/imports/6c/6c076da3-bb21-4e43-9e7e-d88b44bd01f4.png differ diff --git a/library/imports/6e/6ede9adc-b6cd-470c-84d8-ce11efce7ff5.json b/library/imports/6e/6ede9adc-b6cd-470c-84d8-ce11efce7ff5.json new file mode 100644 index 0000000..9c55105 --- /dev/null +++ b/library/imports/6e/6ede9adc-b6cd-470c-84d8-ce11efce7ff5.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins_sz11", + "texture": "852ff94f-f07c-447b-93fa-a9adcb1a069b", + "atlas": "", + "rect": [ + 0, + 0, + 39, + 47 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 39, + 47 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/6e/6ee6ccc9-e1e5-4d6f-815e-8aaa6ce5221a.js b/library/imports/6e/6ee6ccc9-e1e5-4d6f-815e-8aaa6ce5221a.js index acd9840..5a033ca 100644 --- a/library/imports/6e/6ee6ccc9-e1e5-4d6f-815e-8aaa6ce5221a.js +++ b/library/imports/6e/6ee6ccc9-e1e5-4d6f-815e-8aaa6ce5221a.js @@ -3,12 +3,6 @@ cc._RF.push(module, '6ee6czJ4eVNb4Feiqps5SIa', 'btnControl'); // Script/btnControl.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 || diff --git a/library/imports/6e/6ee6ccc9-e1e5-4d6f-815e-8aaa6ce5221a.js.map b/library/imports/6e/6ee6ccc9-e1e5-4d6f-815e-8aaa6ce5221a.js.map index 138c700..fbd599f 100644 --- a/library/imports/6e/6ee6ccc9-e1e5-4d6f-815e-8aaa6ce5221a.js.map +++ b/library/imports/6e/6ee6ccc9-e1e5-4d6f-815e-8aaa6ce5221a.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\btnControl.ts"],"names":[],"mappings":";;;;;AAAA,oBAAoB;AACpB,wEAAwE;AACxE,mBAAmB;AACnB,kFAAkF;AAClF,8BAA8B;AAC9B,kFAAkF;;;;;;;;;;;;;;;;;;;;;AAG5E,IAAA,KAAsB,EAAE,CAAC,UAAU,EAAlC,OAAO,aAAA,EAAE,QAAQ,cAAiB,CAAC;AAI1C;IAAwC,8BAAY;IAApD;;IAkBA,CAAC;IAbG,2BAAM,GAAN;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,0BAAK,GAAL;IACA,CAAC;IAED,6BAAQ,GAAR,UAAS,IAAI;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,2BAAM,GAAN,UAAQ,EAAE;IACV,CAAC;IAjBgB,UAAU;QAD9B,OAAO;OACa,UAAU,CAkB9B;IAAD,iBAAC;CAlBD,AAkBC,CAlBuC,EAAE,CAAC,SAAS,GAkBnD;kBAlBoB,UAAU","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\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n\r\n@ccclass\r\nexport default class btnControl extends cc.Component {\r\n static _instance: any;\r\n _touch: boolean;\r\n\r\n\r\n onLoad () { \r\n this._touch = true;\r\n } \r\n\r\n start () {\r\n }\r\n\r\n setTouch(type){\r\n this._touch = type;\r\n }\r\n\r\n update (dt) {\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\btnControl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAGM,IAAA,KAAsB,EAAE,CAAC,UAAU,EAAlC,OAAO,aAAA,EAAE,QAAQ,cAAiB,CAAC;AAI1C;IAAwC,8BAAY;IAApD;;IAkBA,CAAC;IAbG,2BAAM,GAAN;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,0BAAK,GAAL;IACA,CAAC;IAED,6BAAQ,GAAR,UAAS,IAAI;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,2BAAM,GAAN,UAAQ,EAAE;IACV,CAAC;IAjBgB,UAAU;QAD9B,OAAO;OACa,UAAU,CAkB9B;IAAD,iBAAC;CAlBD,AAkBC,CAlBuC,EAAE,CAAC,SAAS,GAkBnD;kBAlBoB,UAAU","file":"","sourceRoot":"/","sourcesContent":["\r\n\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n\r\n@ccclass\r\nexport default class btnControl extends cc.Component {\r\n static _instance: any;\r\n _touch: boolean;\r\n\r\n\r\n onLoad () { \r\n this._touch = true;\r\n } \r\n\r\n start () {\r\n }\r\n\r\n setTouch(type){\r\n this._touch = type;\r\n }\r\n\r\n update (dt) {\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/6f/6f5e14e5-bcc4-4db3-8072-b6fe96d91c87.json b/library/imports/6f/6f5e14e5-bcc4-4db3-8072-b6fe96d91c87.json new file mode 100644 index 0000000..e2843eb --- /dev/null +++ b/library/imports/6f/6f5e14e5-bcc4-4db3-8072-b6fe96d91c87.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "cost_4", + "texture": "f1cd9c7b-a0b7-41fc-94c2-db60d6a51281", + "atlas": "", + "rect": [ + 0, + 0, + 28, + 37 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 28, + 37 + ], + "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/6f/6f871c8f-5b0f-4063-a6f6-290947cc7e44.json new file mode 100644 index 0000000..aff1ff1 --- /dev/null +++ b/library/imports/6f/6f871c8f-5b0f-4063-a6f6-290947cc7e44.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "闇囧姩01", + "texture": "f8ebdf98-79f3-41fd-8663-8abd3225fa66", + "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/74/74db3129-e7a8-4b0b-baf9-e271bdfab9ba.json b/library/imports/74/74db3129-e7a8-4b0b-baf9-e271bdfab9ba.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/74/74db3129-e7a8-4b0b-baf9-e271bdfab9ba.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/74/74db3129-e7a8-4b0b-baf9-e271bdfab9ba.png b/library/imports/74/74db3129-e7a8-4b0b-baf9-e271bdfab9ba.png new file mode 100644 index 0000000..451bab2 Binary files /dev/null and b/library/imports/74/74db3129-e7a8-4b0b-baf9-e271bdfab9ba.png differ diff --git a/library/imports/76/760f4de0-8da0-4f0a-b3cb-5b6fe8b0b611.json b/library/imports/76/760f4de0-8da0-4f0a-b3cb-5b6fe8b0b611.json new file mode 100644 index 0000000..b27cdbd --- /dev/null +++ b/library/imports/76/760f4de0-8da0-4f0a-b3cb-5b6fe8b0b611.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "txt1", + "texture": "779cfcd5-4697-4641-83eb-340dd9bc5986", + "atlas": "47589a11-b9e5-45cb-b50d-398e1e8b3843", + "rect": [ + 0, + 437, + 907, + 62 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 907, + 62 + ], + "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 new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/76/76467e5a-9a87-4d17-afae-777d7ff638a1.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/76/76467e5a-9a87-4d17-afae-777d7ff638a1.png b/library/imports/76/76467e5a-9a87-4d17-afae-777d7ff638a1.png new file mode 100644 index 0000000..813ab17 Binary files /dev/null and b/library/imports/76/76467e5a-9a87-4d17-afae-777d7ff638a1.png differ diff --git a/library/imports/76/76a01e2d-248a-494c-a56c-c14e4f26a3b0.json b/library/imports/76/76a01e2d-248a-494c-a56c-c14e4f26a3b0.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/76/76a01e2d-248a-494c-a56c-c14e4f26a3b0.json @@ -0,0 +1,4 @@ +{ + "__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.png b/library/imports/76/76a01e2d-248a-494c-a56c-c14e4f26a3b0.png new file mode 100644 index 0000000..996c752 Binary files /dev/null and b/library/imports/76/76a01e2d-248a-494c-a56c-c14e4f26a3b0.png differ diff --git a/library/imports/77/774d1aad-d081-44e1-9d68-9a3fd767aba3.json b/library/imports/77/774d1aad-d081-44e1-9d68-9a3fd767aba3.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/77/774d1aad-d081-44e1-9d68-9a3fd767aba3.json @@ -0,0 +1,4 @@ +{ + "__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.png b/library/imports/77/774d1aad-d081-44e1-9d68-9a3fd767aba3.png new file mode 100644 index 0000000..9267310 Binary files /dev/null and b/library/imports/77/774d1aad-d081-44e1-9d68-9a3fd767aba3.png differ diff --git a/library/imports/77/779cfcd5-4697-4641-83eb-340dd9bc5986.json b/library/imports/77/779cfcd5-4697-4641-83eb-340dd9bc5986.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/77/779cfcd5-4697-4641-83eb-340dd9bc5986.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/77/779cfcd5-4697-4641-83eb-340dd9bc5986.png b/library/imports/77/779cfcd5-4697-4641-83eb-340dd9bc5986.png new file mode 100644 index 0000000..5094c04 Binary files /dev/null and b/library/imports/77/779cfcd5-4697-4641-83eb-340dd9bc5986.png differ diff --git a/library/imports/7a/7a231473-d1df-4b05-8620-6376c36252c1.js b/library/imports/7a/7a231473-d1df-4b05-8620-6376c36252c1.js index d3b7414..44ab5a0 100644 --- a/library/imports/7a/7a231473-d1df-4b05-8620-6376c36252c1.js +++ b/library/imports/7a/7a231473-d1df-4b05-8620-6376c36252c1.js @@ -15,6 +15,7 @@ cc._RF.push(module, '7a231Rz0d9LBYYgY3bDYlLB', 'use_v2.1-2.2.1_cc.Toggle_event') * 如果你的项目中没用到 Toggle,可直接删除该脚本。 * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。 */ + if (cc.Toggle) { // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件 diff --git a/library/imports/7a/7a231473-d1df-4b05-8620-6376c36252c1.js.map b/library/imports/7a/7a231473-d1df-4b05-8620-6376c36252c1.js.map index 8cab03c..76750f7 100644 --- a/library/imports/7a/7a231473-d1df-4b05-8620-6376c36252c1.js.map +++ b/library/imports/7a/7a231473-d1df-4b05-8620-6376c36252c1.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\migration\\use_v2.1-2.2.1_cc.Toggle_event.js"],"names":["cc","Toggle","_triggerEventInScript_isChecked"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAIA,EAAE,CAACC,MAAP,EAAe;AACX;AACA;AACAD,EAAAA,EAAE,CAACC,MAAH,CAAUC,+BAAV,GAA4C,IAA5C;AACH","sourceRoot":"/","sourcesContent":["/*\r\n * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version.\r\n * You do not need to manually add this script in any other project.\r\n * If you don't use cc.Toggle in your project, you can delete this script directly.\r\n * If your project is hosted in VCS such as git, submit this script together.\r\n *\r\n * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程,\r\n * 你无需在任何其它项目中手动添加此脚本。\r\n * 如果你的项目中没用到 Toggle,可直接删除该脚本。\r\n * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。\r\n */\r\n\r\nif (cc.Toggle) {\r\n // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code\r\n // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件\r\n cc.Toggle._triggerEventInScript_isChecked = true;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\migration\\use_v2.1-2.2.1_cc.Toggle_event.js"],"names":["cc","Toggle","_triggerEventInScript_isChecked"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAIA,EAAE,CAACC,MAAM,EAAE;EACX;EACA;EACAD,EAAE,CAACC,MAAM,CAACC,+BAA+B,GAAG,IAAI;AACpD","sourceRoot":"/","sourcesContent":["/*\r\n * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version.\r\n * You do not need to manually add this script in any other project.\r\n * If you don't use cc.Toggle in your project, you can delete this script directly.\r\n * If your project is hosted in VCS such as git, submit this script together.\r\n *\r\n * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程,\r\n * 你无需在任何其它项目中手动添加此脚本。\r\n * 如果你的项目中没用到 Toggle,可直接删除该脚本。\r\n * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。\r\n */\r\n\r\nif (cc.Toggle) {\r\n // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code\r\n // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件\r\n cc.Toggle._triggerEventInScript_isChecked = true;\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/7a/7aef6fef-1f14-4aeb-ba2e-3738a437eb63.json b/library/imports/7a/7aef6fef-1f14-4aeb-ba2e-3738a437eb63.json new file mode 100644 index 0000000..9ed9f8e --- /dev/null +++ b/library/imports/7a/7aef6fef-1f14-4aeb-ba2e-3738a437eb63.json @@ -0,0 +1,32 @@ +{ + "__type__": "cc.SpriteAtlas", + "_name": "coin-0.plist", + "_objFlags": 0, + "_native": "", + "_spriteFrames": { + "coins6": { + "__uuid__": "be3accec-ceea-4b09-af1d-982fcd3879e8" + }, + "coins5": { + "__uuid__": "319350a2-b9b5-4967-aab8-0e192088a665" + }, + "coins8": { + "__uuid__": "67ab3632-96c7-4db0-b1d9-1dcf80e62ce4" + }, + "coins1": { + "__uuid__": "c725d7a9-6d3f-481d-8dbc-dcd5fa68db99" + }, + "coins7": { + "__uuid__": "25612630-24db-43ef-a7a9-0a56c98dc21e" + }, + "coins4": { + "__uuid__": "927ccbda-a1dc-4ee0-a38a-a3ab66e81d9f" + }, + "coins3": { + "__uuid__": "cfa73259-f87a-4e91-b391-96f0f0872993" + }, + "coins2": { + "__uuid__": "d5b945ef-6a0b-46b0-8a2a-51581517d407" + } + } +} \ No newline at end of file diff --git a/library/imports/7e/7ef619f2-0732-42d5-b6ff-0811a5ef6779.json b/library/imports/7e/7ef619f2-0732-42d5-b6ff-0811a5ef6779.json new file mode 100644 index 0000000..e7e1bfa --- /dev/null +++ b/library/imports/7e/7ef619f2-0732-42d5-b6ff-0811a5ef6779.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins_sz2", + "texture": "1217c0be-cc7e-41be-b105-7c26baf444ff", + "atlas": "", + "rect": [ + 0, + 0, + 44, + 50 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 44, + 50 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/80/809984f5-0183-4d45-9751-c6c56f5d1eb9.js b/library/imports/80/809984f5-0183-4d45-9751-c6c56f5d1eb9.js index 0c9f0ff..a08b95a 100644 --- a/library/imports/80/809984f5-0183-4d45-9751-c6c56f5d1eb9.js +++ b/library/imports/80/809984f5-0183-4d45-9751-c6c56f5d1eb9.js @@ -237,6 +237,24 @@ var SceneManager = /** @class */ (function (_super) { 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"); diff --git a/library/imports/80/809984f5-0183-4d45-9751-c6c56f5d1eb9.js.map b/library/imports/80/809984f5-0183-4d45-9751-c6c56f5d1eb9.js.map index d4c3876..63d071b 100644 --- a/library/imports/80/809984f5-0183-4d45-9751-c6c56f5d1eb9.js.map +++ b/library/imports/80/809984f5-0183-4d45-9751-c6c56f5d1eb9.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 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 }\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\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 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 }\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/library/imports/83/83fdf834-580f-49fa-ab44-3f234c89d1c2.json b/library/imports/83/83fdf834-580f-49fa-ab44-3f234c89d1c2.json index a036240..de0a179 100644 --- a/library/imports/83/83fdf834-580f-49fa-ab44-3f234c89d1c2.json +++ b/library/imports/83/83fdf834-580f-49fa-ab44-3f234c89d1c2.json @@ -3335,7 +3335,7 @@ } } }, - "_atlasText": "\nskeleton.png\nsize: 3260,3260\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\n转场/aa\n rotate: false\n xy: 0, 611\n size: 304, 304\n orig: 304, 304\n offset: 0, 0\n index: -1\n转场/bg2\n rotate: false\n xy: 0, 917\n size: 1080, 2340\n orig: 1080, 2340\n offset: 0, 0\n index: -1\n转场/fk1\n rotate: false\n xy: 306, 0\n size: 303, 303\n orig: 304, 304\n offset: 0, 1\n index: -1\n转场/fk10\n rotate: true\n xy: 0, 0\n size: 303, 304\n orig: 304, 304\n offset: 0, 0\n index: -1\n转场/fk2\n rotate: false\n xy: 306, 611\n size: 304, 304\n orig: 304, 304\n offset: 0, 0\n index: -1\n转场/fk3\n rotate: false\n xy: 612, 611\n size: 304, 304\n orig: 304, 304\n offset: 0, 0\n index: -1\n转场/fk4\n rotate: false\n xy: 0, 305\n size: 304, 304\n orig: 304, 304\n offset: 0, 0\n index: -1\n转场/fk6\n rotate: false\n xy: 306, 305\n size: 304, 304\n orig: 304, 304\n offset: 0, 0\n index: -1\n转场/fk7\n rotate: false\n xy: 612, 305\n size: 304, 304\n orig: 304, 304\n offset: 0, 0\n index: -1\n", + "_atlasText": "\r\nskeleton.png\r\nsize: 3260,3260\r\nformat: RGBA8888\r\nfilter: Linear,Linear\r\nrepeat: none\r\n转场/aa\r\n rotate: false\r\n xy: 0, 611\r\n size: 304, 304\r\n orig: 304, 304\r\n offset: 0, 0\r\n index: -1\r\n转场/bg2\r\n rotate: false\r\n xy: 0, 917\r\n size: 1080, 2340\r\n orig: 1080, 2340\r\n offset: 0, 0\r\n index: -1\r\n转场/fk1\r\n rotate: false\r\n xy: 306, 0\r\n size: 303, 303\r\n orig: 304, 304\r\n offset: 0, 1\r\n index: -1\r\n转场/fk10\r\n rotate: true\r\n xy: 0, 0\r\n size: 303, 304\r\n orig: 304, 304\r\n offset: 0, 0\r\n index: -1\r\n转场/fk2\r\n rotate: false\r\n xy: 306, 611\r\n size: 304, 304\r\n orig: 304, 304\r\n offset: 0, 0\r\n index: -1\r\n转场/fk3\r\n rotate: false\r\n xy: 612, 611\r\n size: 304, 304\r\n orig: 304, 304\r\n offset: 0, 0\r\n index: -1\r\n转场/fk4\r\n rotate: false\r\n xy: 0, 305\r\n size: 304, 304\r\n orig: 304, 304\r\n offset: 0, 0\r\n index: -1\r\n转场/fk6\r\n rotate: false\r\n xy: 306, 305\r\n size: 304, 304\r\n orig: 304, 304\r\n offset: 0, 0\r\n index: -1\r\n转场/fk7\r\n rotate: false\r\n xy: 612, 305\r\n size: 304, 304\r\n orig: 304, 304\r\n offset: 0, 0\r\n index: -1\r\n", "textures": [ { "__uuid__": "904053d8-a235-4912-a613-9c55b49a1fcf" diff --git a/library/imports/85/85261a34-8be8-435c-8c78-9207d5e6322e.json b/library/imports/85/85261a34-8be8-435c-8c78-9207d5e6322e.json new file mode 100644 index 0000000..2d29397 --- /dev/null +++ b/library/imports/85/85261a34-8be8-435c-8c78-9207d5e6322e.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "cost_3", + "texture": "db683201-2fb0-4753-bf65-3ae7ef314627", + "atlas": "", + "rect": [ + 0, + 0, + 23, + 37 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 23, + 37 + ], + "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 new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/85/852ff94f-f07c-447b-93fa-a9adcb1a069b.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/85/852ff94f-f07c-447b-93fa-a9adcb1a069b.png b/library/imports/85/852ff94f-f07c-447b-93fa-a9adcb1a069b.png new file mode 100644 index 0000000..9e64d57 Binary files /dev/null and b/library/imports/85/852ff94f-f07c-447b-93fa-a9adcb1a069b.png differ diff --git a/library/imports/86/86f338ab-4874-40d7-ac5e-06e2bf339c6c.json b/library/imports/86/86f338ab-4874-40d7-ac5e-06e2bf339c6c.json index 7620cce..836c90a 100644 --- a/library/imports/86/86f338ab-4874-40d7-ac5e-06e2bf339c6c.json +++ b/library/imports/86/86f338ab-4874-40d7-ac5e-06e2bf339c6c.json @@ -759,7 +759,7 @@ } } }, - "_atlasText": "\nmofabang_texiao.png\nsize: 1000,1000\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\nimages/effects/chixu/chixu_00\n rotate: false\n xy: 2, 334\n size: 151, 124\n orig: 200, 200\n offset: 12, 44\n index: -1\nimages/effects/chixu/chixu_01\n rotate: true\n xy: 159, 567\n size: 148, 132\n orig: 200, 200\n offset: 12, 37\n index: -1\nimages/effects/chixu/chixu_02\n rotate: false\n xy: 2, 460\n size: 153, 125\n orig: 200, 200\n offset: 15, 37\n index: -1\nimages/effects/chixu/chixu_03\n rotate: false\n xy: 2, 587\n size: 155, 128\n orig: 200, 200\n offset: 15, 36\n index: -1\nimages/effects/chixu/chixu_04\n rotate: true\n xy: 157, 416\n size: 149, 126\n orig: 200, 200\n offset: 21, 36\n index: -1\nimages/effects/chixu/chixu_05\n rotate: true\n xy: 155, 265\n size: 149, 123\n orig: 200, 200\n offset: 21, 36\n index: -1\nimages/effects/chixu/chixu_06\n rotate: false\n xy: 148, 143\n size: 147, 120\n orig: 200, 200\n offset: 23, 38\n index: -1\nimages/effects/chixu/chixu_07\n rotate: true\n xy: 2, 61\n size: 145, 119\n orig: 200, 200\n offset: 24, 39\n index: -1\nimages/effects/chixu/chixu_08\n rotate: false\n xy: 2, 208\n size: 144, 124\n orig: 200, 200\n offset: 23, 41\n index: -1\nimages/effects/chixu/chixu_09\n rotate: false\n xy: 123, 23\n size: 140, 118\n orig: 200, 200\n offset: 23, 43\n index: -1\nimages/effects/chixu/chixu_10\n rotate: true\n xy: 265, 2\n size: 139, 117\n orig: 200, 200\n offset: 23, 43\n index: -1\nimages/effects/guangdian\n rotate: false\n xy: 2, 54\n size: 5, 5\n orig: 5, 5\n offset: 0, 0\n index: -1\nimages/effects/huiguang\n rotate: false\n xy: 2, 717\n size: 278, 278\n orig: 311, 310\n offset: 17, 16\n index: -1\nimages/effects/微信图片_20250515181822\n rotate: false\n xy: 280, 305\n size: 93, 109\n orig: 93, 109\n offset: 0, 0\n index: -1\n", + "_atlasText": "\r\nmofabang_texiao.png\r\nsize: 1000,1000\r\nformat: RGBA8888\r\nfilter: Linear,Linear\r\nrepeat: none\r\nimages/effects/chixu/chixu_00\r\n rotate: false\r\n xy: 2, 334\r\n size: 151, 124\r\n orig: 200, 200\r\n offset: 12, 44\r\n index: -1\r\nimages/effects/chixu/chixu_01\r\n rotate: true\r\n xy: 159, 567\r\n size: 148, 132\r\n orig: 200, 200\r\n offset: 12, 37\r\n index: -1\r\nimages/effects/chixu/chixu_02\r\n rotate: false\r\n xy: 2, 460\r\n size: 153, 125\r\n orig: 200, 200\r\n offset: 15, 37\r\n index: -1\r\nimages/effects/chixu/chixu_03\r\n rotate: false\r\n xy: 2, 587\r\n size: 155, 128\r\n orig: 200, 200\r\n offset: 15, 36\r\n index: -1\r\nimages/effects/chixu/chixu_04\r\n rotate: true\r\n xy: 157, 416\r\n size: 149, 126\r\n orig: 200, 200\r\n offset: 21, 36\r\n index: -1\r\nimages/effects/chixu/chixu_05\r\n rotate: true\r\n xy: 155, 265\r\n size: 149, 123\r\n orig: 200, 200\r\n offset: 21, 36\r\n index: -1\r\nimages/effects/chixu/chixu_06\r\n rotate: false\r\n xy: 148, 143\r\n size: 147, 120\r\n orig: 200, 200\r\n offset: 23, 38\r\n index: -1\r\nimages/effects/chixu/chixu_07\r\n rotate: true\r\n xy: 2, 61\r\n size: 145, 119\r\n orig: 200, 200\r\n offset: 24, 39\r\n index: -1\r\nimages/effects/chixu/chixu_08\r\n rotate: false\r\n xy: 2, 208\r\n size: 144, 124\r\n orig: 200, 200\r\n offset: 23, 41\r\n index: -1\r\nimages/effects/chixu/chixu_09\r\n rotate: false\r\n xy: 123, 23\r\n size: 140, 118\r\n orig: 200, 200\r\n offset: 23, 43\r\n index: -1\r\nimages/effects/chixu/chixu_10\r\n rotate: true\r\n xy: 265, 2\r\n size: 139, 117\r\n orig: 200, 200\r\n offset: 23, 43\r\n index: -1\r\nimages/effects/guangdian\r\n rotate: false\r\n xy: 2, 54\r\n size: 5, 5\r\n orig: 5, 5\r\n offset: 0, 0\r\n index: -1\r\nimages/effects/huiguang\r\n rotate: false\r\n xy: 2, 717\r\n size: 278, 278\r\n orig: 311, 310\r\n offset: 17, 16\r\n index: -1\r\nimages/effects/微信图片_20250515181822\r\n rotate: false\r\n xy: 280, 305\r\n size: 93, 109\r\n orig: 93, 109\r\n offset: 0, 0\r\n index: -1\r\n", "textures": [ { "__uuid__": "363ef00a-0ca9-4ccd-b4bc-62a7dec9b6de" diff --git a/library/imports/88/88cf729e-5501-40cb-9039-36e92ee9c49b.json b/library/imports/88/88cf729e-5501-40cb-9039-36e92ee9c49b.json index 66aebf2..da7d70f 100644 --- a/library/imports/88/88cf729e-5501-40cb-9039-36e92ee9c49b.json +++ b/library/imports/88/88cf729e-5501-40cb-9039-36e92ee9c49b.json @@ -487,7 +487,7 @@ } } }, - "_atlasText": "\nmofabang_baozha.png\nsize: 2040,2040\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\nimages/effects/Glow1\n rotate: false\n xy: 862, 1516\n size: 216, 216\n orig: 256, 256\n offset: 20, 19\n index: -1\nimages/effects/hit/hit_00\n rotate: true\n xy: 1379, 1762\n size: 276, 272\n orig: 400, 400\n offset: 61, 64\n index: -1\nimages/effects/hit/hit_01\n rotate: false\n xy: 1395, 1520\n size: 248, 240\n orig: 400, 400\n offset: 76, 80\n index: -1\nimages/effects/hit/hit_02\n rotate: false\n xy: 2, 1734\n size: 332, 304\n orig: 400, 400\n offset: 39, 51\n index: -1\nimages/effects/hit/hit_03\n rotate: true\n xy: 604, 1726\n size: 312, 252\n orig: 400, 400\n offset: 50, 83\n index: -1\nimages/effects/hit/hit_04\n rotate: false\n xy: 270, 1524\n size: 272, 208\n orig: 400, 400\n offset: 78, 108\n index: -1\nimages/effects/hit/hit_05\n rotate: false\n xy: 2, 1512\n size: 266, 220\n orig: 400, 400\n offset: 79, 103\n index: -1\nimages/effects/hit/hit_06\n rotate: false\n xy: 1117, 1496\n size: 276, 240\n orig: 400, 400\n offset: 73, 94\n index: -1\nimages/effects/hit/hit_07\n rotate: true\n xy: 1117, 1738\n size: 300, 260\n orig: 400, 400\n offset: 67, 85\n index: -1\nimages/effects/hit/hit_08\n rotate: true\n xy: 858, 1734\n size: 304, 257\n orig: 400, 400\n offset: 69, 82\n index: -1\nimages/effects/hit/hit_09\n rotate: true\n xy: 336, 1738\n size: 300, 266\n orig: 400, 400\n offset: 70, 74\n index: -1\nimages/effects/hit/hit_10\n rotate: true\n xy: 1645, 1380\n size: 162, 230\n orig: 400, 400\n offset: 95, 114\n index: -1\nimages/effects/hit/hit_11\n rotate: false\n xy: 1148, 1399\n size: 101, 95\n orig: 400, 400\n offset: 99, 119\n index: -1\nimages/effects/hit/hit_12\n rotate: false\n xy: 2037, 2037\n size: 1, 1\n orig: 400, 400\n offset: 198, 213\n index: -1\nimages/lizi/shoujibaodian_34\n rotate: false\n xy: 1653, 1719\n size: 211, 319\n orig: 1136, 640\n offset: 696, 201\n index: -1\nimages/lizi/shoujibaodian_35\n rotate: true\n xy: 544, 1546\n size: 178, 316\n orig: 1136, 640\n offset: 694, 201\n index: -1\nimages/lizi/shoujibaodian_36\n rotate: true\n xy: 1645, 1544\n size: 173, 313\n orig: 1136, 640\n offset: 696, 200\n index: -1\nimages/lizi/shoujibaodian_37\n rotate: false\n xy: 1866, 1810\n size: 169, 228\n orig: 1136, 640\n offset: 698, 233\n index: -1\nimages/lizi/shoujibaodian_38\n rotate: true\n xy: 544, 1378\n size: 166, 228\n orig: 1136, 640\n offset: 702, 235\n index: -1\nimages/lizi/shoujibaodian_39\n rotate: true\n xy: 270, 1358\n size: 164, 219\n orig: 1136, 640\n offset: 703, 241\n index: -1\nimages/lizi/shoujibaodian_40\n rotate: true\n xy: 1395, 1361\n size: 157, 208\n orig: 1136, 640\n offset: 710, 249\n index: -1\nimages/lizi/shoujibaodian_41\n rotate: true\n xy: 774, 1396\n size: 118, 189\n orig: 1136, 640\n offset: 749, 266\n index: -1\nimages/lizi/shoujibaodian_42\n rotate: true\n xy: 2, 1430\n size: 80, 187\n orig: 1136, 640\n offset: 751, 268\n index: -1\nimages/lizi/shoujibaodian_43\n rotate: true\n xy: 965, 1418\n size: 76, 181\n orig: 1136, 640\n offset: 752, 269\n index: -1\nimages/lizi/shoujibaodian_44\n rotate: false\n xy: 1960, 1665\n size: 72, 143\n orig: 1136, 640\n offset: 753, 305\n index: -1\nimages/lizi/shoujibaodian_45\n rotate: false\n xy: 1960, 1520\n size: 69, 143\n orig: 1136, 640\n offset: 754, 304\n index: -1\nimages/lizi/shoujibaodian_46\n rotate: false\n xy: 1947, 1376\n size: 67, 142\n orig: 1136, 640\n offset: 755, 304\n index: -1\nimages/lizi/shoujibaodian_47\n rotate: false\n xy: 191, 1369\n size: 67, 141\n orig: 1136, 640\n offset: 755, 304\n index: -1\nimages/lizi/shoujibaodian_48\n rotate: false\n xy: 1877, 1400\n size: 68, 142\n orig: 1136, 640\n offset: 754, 303\n index: -1\n", + "_atlasText": "\r\nmofabang_baozha.png\r\nsize: 2040,2040\r\nformat: RGBA8888\r\nfilter: Linear,Linear\r\nrepeat: none\r\nimages/effects/Glow1\r\n rotate: false\r\n xy: 862, 1516\r\n size: 216, 216\r\n orig: 256, 256\r\n offset: 20, 19\r\n index: -1\r\nimages/effects/hit/hit_00\r\n rotate: true\r\n xy: 1379, 1762\r\n size: 276, 272\r\n orig: 400, 400\r\n offset: 61, 64\r\n index: -1\r\nimages/effects/hit/hit_01\r\n rotate: false\r\n xy: 1395, 1520\r\n size: 248, 240\r\n orig: 400, 400\r\n offset: 76, 80\r\n index: -1\r\nimages/effects/hit/hit_02\r\n rotate: false\r\n xy: 2, 1734\r\n size: 332, 304\r\n orig: 400, 400\r\n offset: 39, 51\r\n index: -1\r\nimages/effects/hit/hit_03\r\n rotate: true\r\n xy: 604, 1726\r\n size: 312, 252\r\n orig: 400, 400\r\n offset: 50, 83\r\n index: -1\r\nimages/effects/hit/hit_04\r\n rotate: false\r\n xy: 270, 1524\r\n size: 272, 208\r\n orig: 400, 400\r\n offset: 78, 108\r\n index: -1\r\nimages/effects/hit/hit_05\r\n rotate: false\r\n xy: 2, 1512\r\n size: 266, 220\r\n orig: 400, 400\r\n offset: 79, 103\r\n index: -1\r\nimages/effects/hit/hit_06\r\n rotate: false\r\n xy: 1117, 1496\r\n size: 276, 240\r\n orig: 400, 400\r\n offset: 73, 94\r\n index: -1\r\nimages/effects/hit/hit_07\r\n rotate: true\r\n xy: 1117, 1738\r\n size: 300, 260\r\n orig: 400, 400\r\n offset: 67, 85\r\n index: -1\r\nimages/effects/hit/hit_08\r\n rotate: true\r\n xy: 858, 1734\r\n size: 304, 257\r\n orig: 400, 400\r\n offset: 69, 82\r\n index: -1\r\nimages/effects/hit/hit_09\r\n rotate: true\r\n xy: 336, 1738\r\n size: 300, 266\r\n orig: 400, 400\r\n offset: 70, 74\r\n index: -1\r\nimages/effects/hit/hit_10\r\n rotate: true\r\n xy: 1645, 1380\r\n size: 162, 230\r\n orig: 400, 400\r\n offset: 95, 114\r\n index: -1\r\nimages/effects/hit/hit_11\r\n rotate: false\r\n xy: 1148, 1399\r\n size: 101, 95\r\n orig: 400, 400\r\n offset: 99, 119\r\n index: -1\r\nimages/effects/hit/hit_12\r\n rotate: false\r\n xy: 2037, 2037\r\n size: 1, 1\r\n orig: 400, 400\r\n offset: 198, 213\r\n index: -1\r\nimages/lizi/shoujibaodian_34\r\n rotate: false\r\n xy: 1653, 1719\r\n size: 211, 319\r\n orig: 1136, 640\r\n offset: 696, 201\r\n index: -1\r\nimages/lizi/shoujibaodian_35\r\n rotate: true\r\n xy: 544, 1546\r\n size: 178, 316\r\n orig: 1136, 640\r\n offset: 694, 201\r\n index: -1\r\nimages/lizi/shoujibaodian_36\r\n rotate: true\r\n xy: 1645, 1544\r\n size: 173, 313\r\n orig: 1136, 640\r\n offset: 696, 200\r\n index: -1\r\nimages/lizi/shoujibaodian_37\r\n rotate: false\r\n xy: 1866, 1810\r\n size: 169, 228\r\n orig: 1136, 640\r\n offset: 698, 233\r\n index: -1\r\nimages/lizi/shoujibaodian_38\r\n rotate: true\r\n xy: 544, 1378\r\n size: 166, 228\r\n orig: 1136, 640\r\n offset: 702, 235\r\n index: -1\r\nimages/lizi/shoujibaodian_39\r\n rotate: true\r\n xy: 270, 1358\r\n size: 164, 219\r\n orig: 1136, 640\r\n offset: 703, 241\r\n index: -1\r\nimages/lizi/shoujibaodian_40\r\n rotate: true\r\n xy: 1395, 1361\r\n size: 157, 208\r\n orig: 1136, 640\r\n offset: 710, 249\r\n index: -1\r\nimages/lizi/shoujibaodian_41\r\n rotate: true\r\n xy: 774, 1396\r\n size: 118, 189\r\n orig: 1136, 640\r\n offset: 749, 266\r\n index: -1\r\nimages/lizi/shoujibaodian_42\r\n rotate: true\r\n xy: 2, 1430\r\n size: 80, 187\r\n orig: 1136, 640\r\n offset: 751, 268\r\n index: -1\r\nimages/lizi/shoujibaodian_43\r\n rotate: true\r\n xy: 965, 1418\r\n size: 76, 181\r\n orig: 1136, 640\r\n offset: 752, 269\r\n index: -1\r\nimages/lizi/shoujibaodian_44\r\n rotate: false\r\n xy: 1960, 1665\r\n size: 72, 143\r\n orig: 1136, 640\r\n offset: 753, 305\r\n index: -1\r\nimages/lizi/shoujibaodian_45\r\n rotate: false\r\n xy: 1960, 1520\r\n size: 69, 143\r\n orig: 1136, 640\r\n offset: 754, 304\r\n index: -1\r\nimages/lizi/shoujibaodian_46\r\n rotate: false\r\n xy: 1947, 1376\r\n size: 67, 142\r\n orig: 1136, 640\r\n offset: 755, 304\r\n index: -1\r\nimages/lizi/shoujibaodian_47\r\n rotate: false\r\n xy: 191, 1369\r\n size: 67, 141\r\n orig: 1136, 640\r\n offset: 755, 304\r\n index: -1\r\nimages/lizi/shoujibaodian_48\r\n rotate: false\r\n xy: 1877, 1400\r\n size: 68, 142\r\n orig: 1136, 640\r\n offset: 754, 303\r\n index: -1\r\n", "textures": [ { "__uuid__": "ff0d5773-ca66-4087-b1b7-4777121d85be" diff --git a/library/imports/8b/8b100987-aed3-4feb-ba02-557888c6784e.json b/library/imports/8b/8b100987-aed3-4feb-ba02-557888c6784e.json index 457d421..eea8bfe 100644 --- a/library/imports/8b/8b100987-aed3-4feb-ba02-557888c6784e.json +++ b/library/imports/8b/8b100987-aed3-4feb-ba02-557888c6784e.json @@ -657,7 +657,7 @@ } } }, - "_atlasText": "\njiekou_heng.png\nsize: 144,144\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\n连接块/kou1\n rotate: false\n xy: 0, 119\n size: 52, 24\n orig: 52, 24\n offset: 0, 0\n index: -1\n连接块/kou2\n rotate: false\n xy: 54, 119\n size: 52, 24\n orig: 52, 24\n offset: 0, 0\n index: -1\n连接块/luosi\n rotate: true\n xy: 108, 120\n size: 23, 21\n orig: 23, 21\n offset: 0, 0\n index: -1\n连接块/luosi2\n rotate: false\n xy: 131, 131\n size: 12, 12\n orig: 12, 12\n offset: 0, 0\n index: -1\n", + "_atlasText": "\r\njiekou_heng.png\r\nsize: 144,144\r\nformat: RGBA8888\r\nfilter: Linear,Linear\r\nrepeat: none\r\n连接块/kou1\r\n rotate: false\r\n xy: 0, 119\r\n size: 52, 24\r\n orig: 52, 24\r\n offset: 0, 0\r\n index: -1\r\n连接块/kou2\r\n rotate: false\r\n xy: 54, 119\r\n size: 52, 24\r\n orig: 52, 24\r\n offset: 0, 0\r\n index: -1\r\n连接块/luosi\r\n rotate: true\r\n xy: 108, 120\r\n size: 23, 21\r\n orig: 23, 21\r\n offset: 0, 0\r\n index: -1\r\n连接块/luosi2\r\n rotate: false\r\n xy: 131, 131\r\n size: 12, 12\r\n orig: 12, 12\r\n offset: 0, 0\r\n index: -1\r\n", "textures": [ { "__uuid__": "4811f779-3bd2-4074-b313-6b217df626ad" diff --git a/library/imports/8d/8dff3740-d0f0-4fb7-8b47-61acb1349b7a.json b/library/imports/8d/8dff3740-d0f0-4fb7-8b47-61acb1349b7a.json new file mode 100644 index 0000000..a0535f4 --- /dev/null +++ b/library/imports/8d/8dff3740-d0f0-4fb7-8b47-61acb1349b7a.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "闊虫晥01", + "texture": "dfa1190c-5129-4775-b495-d2aca6a3a5bf", + "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/90/90c37607-5145-4fb1-8d26-94d9a89baeee.js b/library/imports/90/90c37607-5145-4fb1-8d26-94d9a89baeee.js index 3f7c7c8..099ff53 100644 --- a/library/imports/90/90c37607-5145-4fb1-8d26-94d9a89baeee.js +++ b/library/imports/90/90c37607-5145-4fb1-8d26-94d9a89baeee.js @@ -79,6 +79,7 @@ var Block = /** @class */ (function (_super) { 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 方法判断点是否在矩形范围内 diff --git a/library/imports/90/90c37607-5145-4fb1-8d26-94d9a89baeee.js.map b/library/imports/90/90c37607-5145-4fb1-8d26-94d9a89baeee.js.map index 47e637c..5e81e94 100644 --- a/library/imports/90/90c37607-5145-4fb1-8d26-94d9a89baeee.js.map +++ b/library/imports/90/90c37607-5145-4fb1-8d26-94d9a89baeee.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\Barrier.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import CollisionDetection from \"./CollisionDetection\";\r\nimport MapConroler from \"./Map\";\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class Block extends cc.Component {\r\n\r\n // 新增缓存变量\r\n private selfBoxColliders: cc.BoxCollider[] = [];\r\n private allBoxColliders: cc.BoxCollider[] = [];\r\n // @property({\r\n // tooltip: '碰撞形状,None就是无敌,不参与碰撞',\r\n // type: cc.Enum(BlockType),\r\n // // default: BlockType.Nomal,\r\n // displayName: '碰撞形状'\r\n // })\r\n\r\n\r\n\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n // @property(cc.SpriteAtlas)\r\n // UI: cc.SpriteAtlas = null;\r\n private initialTouchOffset: cc.Vec2 = null;\r\n private offsetTolerance = 100; // 偏移容忍度; \r\n\r\n allBlocks:any; //所有的方块,用于计算posX,posY消除\r\n touchPoint: cc.Vec2 = null; //触摸点\r\n isTouch: boolean = false; //是否触摸\r\n posX: number = 0; //地图块的X坐标\r\n posY: number = 0; //地图块的Y坐标\r\n moveLeft: boolean = true; //是否可以左移;\r\n moveRight: boolean = true; //是否可以右移;\r\n moveUp: boolean = true; //是否可以上移;\r\n moveDown: boolean = true; //是否可以下移;\r\n moveCorner: number = 0; //是否碰撞角落\r\n moveY:number = 0; //是否可以上下移动;\r\n moveX:number = 0; //是否可以左右移动;\r\n touchPointX: number = 0; //触摸点X坐标;\r\n touchPointY: number = 0; //触摸点Y坐标;\r\n blockId: number = 0; //方块ID;\r\n stacking: cc.Vec2; //叠加方块\r\n level: number = 0; //叠加方块层数;\r\n pz: boolean = false;\r\n collider: any;\r\n block_Info:any;\r\n _touchListener: any;\r\n relative_Position:cc.Vec2; //点击和方块相对位置\r\n private _eventManager: any;\r\n hit: cc.Node;\r\n\r\n\r\n\r\n onLoad () {\r\n // this.node.on(cc.Node.EventType.TOUCH_START, this.touchStart, this);\r\n // this.node.on(cc.Node.EventType.TOUCH_MOVE, this.touchMove, this); \r\n // this.node.on(cc.Node.EventType.TOUCH_CANCEL, this.touchEnd, this); \r\n // this.node.on(cc.Node.EventType.TOUCH_END, this.touchEnd, this); \r\n this.pz = false;\r\n this.stacking = cc.v2(0,0);\r\n // this.selfBoxColliders = this.node.getComponentsInChildren(cc.BoxCollider)\r\n // .filter(collider => collider.tag < 4);\r\n }\r\n\r\n\r\n start () {\r\n\r\n }\r\n\r\n jsonDeepClone(obj: T): T {\r\n return JSON.parse(JSON.stringify(obj));\r\n }\r\n\r\n init(block_Info,posX,posY,node){\r\n this.block_Info = this.jsonDeepClone(block_Info);\r\n let mapInfo = MapConroler._instance.mapInfo;\r\n for(let i=0; i collider.tag < 4);\r\n }\r\n\r\n\r\n start() {\r\n\r\n }\r\n\r\n jsonDeepClone(obj: T): T {\r\n return JSON.parse(JSON.stringify(obj));\r\n }\r\n\r\n init(block_Info, posX, posY, node) {\r\n this.block_Info = this.jsonDeepClone(block_Info);\r\n let mapInfo = MapConroler._instance.mapInfo;\r\n console.log(\"block_Info\", this.block_Info);\r\n for (let i = 0; i < mapInfo.length; i++) {\r\n let blockRect = mapInfo[i].getBoundingBox();\r\n // 使用 cc.Intersection.pointInRect 方法判断点是否在矩形范围内\r\n let point = cc.v2(this.node.position.x - 5, this.node.position.y + 10)\r\n if (blockRect.contains(point)) {\r\n this.posX = mapInfo[i].getComponent(\"MapBlock\").posX;\r\n this.posY = mapInfo[i].getComponent(\"MapBlock\").posY;\r\n this.level = 50 + this.posX - this.posY * 3;\r\n this.node.zIndex = this.level;\r\n this.node.x = mapInfo[i].x + 65;\r\n this.node.y = mapInfo[i].y - 60;\r\n i = 10000;\r\n break;\r\n }\r\n }\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/90/90e4657e-f478-47b1-91df-c5ac8b836069.json b/library/imports/90/90e4657e-f478-47b1-91df-c5ac8b836069.json index d24c37f..d6c1b0a 100644 --- a/library/imports/90/90e4657e-f478-47b1-91df-c5ac8b836069.json +++ b/library/imports/90/90e4657e-f478-47b1-91df-c5ac8b836069.json @@ -603,7 +603,7 @@ } } }, - "_atlasText": "\ntaopao.png\nsize: 992,992\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\nwujiaoxing\n rotate: false\n xy: 879, 927\n size: 58, 62\n orig: 58, 62\n offset: 0, 0\n index: -1\nxu_lv/t_2_0015\n rotate: false\n xy: 976, 975\n size: 13, 14\n orig: 720, 1280\n offset: 347, 634\n index: -1\nxu_lv/t_3\n rotate: true\n xy: 819, 467\n size: 227, 170\n orig: 720, 1280\n offset: 248, 557\n index: -1\nxu_lv/t_4_0024\n rotate: false\n xy: 0, 642\n size: 448, 347\n orig: 720, 1280\n offset: 123, 450\n index: -1\nxu_lv/t_4_0025\n rotate: false\n xy: 0, 642\n size: 448, 347\n orig: 720, 1280\n offset: 123, 450\n index: -1\nxu_lv/t_4_0026\n rotate: false\n xy: 450, 368\n size: 367, 326\n orig: 720, 1280\n offset: 162, 472\n index: -1\nxu_lv/t_4_0027\n rotate: false\n xy: 0, 346\n size: 398, 294\n orig: 720, 1280\n offset: 144, 466\n index: -1\nxu_lv/t_4_0028\n rotate: false\n xy: 450, 696\n size: 427, 293\n orig: 720, 1280\n offset: 128, 462\n index: -1\nxu_lv/t_4_0029\n rotate: false\n xy: 939, 954\n size: 35, 35\n orig: 720, 1280\n offset: 381, 453\n index: -1\n", + "_atlasText": "\r\ntaopao.png\r\nsize: 992,992\r\nformat: RGBA8888\r\nfilter: Linear,Linear\r\nrepeat: none\r\nwujiaoxing\r\n rotate: false\r\n xy: 879, 927\r\n size: 58, 62\r\n orig: 58, 62\r\n offset: 0, 0\r\n index: -1\r\nxu_lv/t_2_0015\r\n rotate: false\r\n xy: 976, 975\r\n size: 13, 14\r\n orig: 720, 1280\r\n offset: 347, 634\r\n index: -1\r\nxu_lv/t_3\r\n rotate: true\r\n xy: 819, 467\r\n size: 227, 170\r\n orig: 720, 1280\r\n offset: 248, 557\r\n index: -1\r\nxu_lv/t_4_0024\r\n rotate: false\r\n xy: 0, 642\r\n size: 448, 347\r\n orig: 720, 1280\r\n offset: 123, 450\r\n index: -1\r\nxu_lv/t_4_0025\r\n rotate: false\r\n xy: 0, 642\r\n size: 448, 347\r\n orig: 720, 1280\r\n offset: 123, 450\r\n index: -1\r\nxu_lv/t_4_0026\r\n rotate: false\r\n xy: 450, 368\r\n size: 367, 326\r\n orig: 720, 1280\r\n offset: 162, 472\r\n index: -1\r\nxu_lv/t_4_0027\r\n rotate: false\r\n xy: 0, 346\r\n size: 398, 294\r\n orig: 720, 1280\r\n offset: 144, 466\r\n index: -1\r\nxu_lv/t_4_0028\r\n rotate: false\r\n xy: 450, 696\r\n size: 427, 293\r\n orig: 720, 1280\r\n offset: 128, 462\r\n index: -1\r\nxu_lv/t_4_0029\r\n rotate: false\r\n xy: 939, 954\r\n size: 35, 35\r\n orig: 720, 1280\r\n offset: 381, 453\r\n index: -1\r\n", "textures": [ { "__uuid__": "d853d588-0e29-4488-a9f9-8be43e2a8bd6" diff --git a/library/imports/92/927ccbda-a1dc-4ee0-a38a-a3ab66e81d9f.json b/library/imports/92/927ccbda-a1dc-4ee0-a38a-a3ab66e81d9f.json new file mode 100644 index 0000000..73d5f43 --- /dev/null +++ b/library/imports/92/927ccbda-a1dc-4ee0-a38a-a3ab66e81d9f.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins4", + "texture": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "atlas": "7aef6fef-1f14-4aeb-ba2e-3738a437eb63", + "rect": [ + 437, + 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/96/964de756-e8ea-44b4-9371-ea2af234714a.json b/library/imports/96/964de756-e8ea-44b4-9371-ea2af234714a.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/96/964de756-e8ea-44b4-9371-ea2af234714a.json @@ -0,0 +1,4 @@ +{ + "__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 new file mode 100644 index 0000000..2151d5e Binary files /dev/null and b/library/imports/96/964de756-e8ea-44b4-9371-ea2af234714a.png differ diff --git a/library/imports/97/9745d59d-e668-40ca-a540-c4ee007a9b8b.json b/library/imports/97/9745d59d-e668-40ca-a540-c4ee007a9b8b.json new file mode 100644 index 0000000..6ee2ace --- /dev/null +++ b/library/imports/97/9745d59d-e668-40ca-a540-c4ee007a9b8b.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "shop_1", + "texture": "779cfcd5-4697-4641-83eb-340dd9bc5986", + "atlas": "47589a11-b9e5-45cb-b50d-398e1e8b3843", + "rect": [ + 0, + 0, + 1080, + 436 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 1080, + 436 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/99/99e903c5-6d68-487a-86cd-c37e798c7550.json b/library/imports/99/99e903c5-6d68-487a-86cd-c37e798c7550.json new file mode 100644 index 0000000..9fb4560 --- /dev/null +++ b/library/imports/99/99e903c5-6d68-487a-86cd-c37e798c7550.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins_sz4", + "texture": "76467e5a-9a87-4d17-afae-777d7ff638a1", + "atlas": "", + "rect": [ + 0, + 0, + 44, + 63 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 44, + 63 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/9c/9c283cba-2471-4e6d-923d-b74575b68dbc.json b/library/imports/9c/9c283cba-2471-4e6d-923d-b74575b68dbc.json new file mode 100644 index 0000000..6dda194 --- /dev/null +++ b/library/imports/9c/9c283cba-2471-4e6d-923d-b74575b68dbc.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins_sz8", + "texture": "74db3129-e7a8-4b0b-baf9-e271bdfab9ba", + "atlas": "", + "rect": [ + 0, + 0, + 44, + 63 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 44, + 63 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/9d/9df3aaf8-59bc-4eff-aa56-554ab3d4d2cb.json b/library/imports/9d/9df3aaf8-59bc-4eff-aa56-554ab3d4d2cb.json new file mode 100644 index 0000000..69cd67f --- /dev/null +++ b/library/imports/9d/9df3aaf8-59bc-4eff-aa56-554ab3d4d2cb.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.SpriteAtlas", + "_name": "AutoAtlas" +} \ No newline at end of file diff --git a/library/imports/9f/9ffc3971-f097-4de5-b88a-2e5e6d78104a.json b/library/imports/9f/9ffc3971-f097-4de5-b88a-2e5e6d78104a.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/9f/9ffc3971-f097-4de5-b88a-2e5e6d78104a.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/9f/9ffc3971-f097-4de5-b88a-2e5e6d78104a.png b/library/imports/9f/9ffc3971-f097-4de5-b88a-2e5e6d78104a.png new file mode 100644 index 0000000..f17b20c Binary files /dev/null and b/library/imports/9f/9ffc3971-f097-4de5-b88a-2e5e6d78104a.png differ diff --git a/library/imports/a2/a278a94d-ca26-4f4b-83fb-5d1058d39304.json b/library/imports/a2/a278a94d-ca26-4f4b-83fb-5d1058d39304.json new file mode 100644 index 0000000..b63001b --- /dev/null +++ b/library/imports/a2/a278a94d-ca26-4f4b-83fb-5d1058d39304.json @@ -0,0 +1,29 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "btn1", + "texture": "779cfcd5-4697-4641-83eb-340dd9bc5986", + "atlas": "47589a11-b9e5-45cb-b50d-398e1e8b3843", + "rect": [ + 0, + 500, + 99, + 531 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 99, + 531 + ], + "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 new file mode 100644 index 0000000..bb4961f --- /dev/null +++ b/library/imports/a8/a81d74d9-943b-4d0e-aad5-2999276d3447.json @@ -0,0 +1,658 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "item", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + }, + { + "__id__": 8 + } + ], + "_active": true, + "_components": [ + { + "__id__": 12 + }, + { + "__id__": 13 + }, + { + "__id__": 15 + }, + { + "__id__": 16 + } + ], + "_prefab": { + "__id__": 18 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8cdb44ac-a3f6-449f-b354-7cd48cf84061" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 6 + } + ], + "_prefab": { + "__id__": 7 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 106.74, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "100元", + "_N$string": "100元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 9 + }, + { + "__id__": 10 + } + ], + "_prefab": { + "__id__": 11 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 110.74, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "450万", + "_N$string": "450万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 14 + } + ], + "_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__": 1 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 1 + }, + "component": "", + "_componentId": "de906iE/HVHpI6VO7IMvKaI", + "handler": "buyProp", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 17 + } + ], + "_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": "" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 1 + }, + "component": "", + "_componentId": "de906iE/HVHpI6VO7IMvKaI", + "handler": "", + "customEventData": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/ab/abe182b3-b936-4f20-ba7c-8d2456d35c89.json b/library/imports/ab/abe182b3-b936-4f20-ba7c-8d2456d35c89.json new file mode 100644 index 0000000..538f2d7 --- /dev/null +++ b/library/imports/ab/abe182b3-b936-4f20-ba7c-8d2456d35c89.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "tiaodik", + "texture": "fcaa412a-64a2-4cdc-937f-1f4fbc527dfc", + "atlas": "", + "rect": [ + 0, + 0, + 154, + 598 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 154, + 598 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/ad/ad450c22-24c1-4352-a09f-151cb9f3ab8a.json b/library/imports/ad/ad450c22-24c1-4352-a09f-151cb9f3ab8a.json new file mode 100644 index 0000000..dee1a24 --- /dev/null +++ b/library/imports/ad/ad450c22-24c1-4352-a09f-151cb9f3ab8a.json @@ -0,0 +1,11 @@ +{ + "__type__": "cc.SpriteAtlas", + "_name": "texture_atlas-0.plist", + "_objFlags": 0, + "_native": "", + "_spriteFrames": { + "shop_2": { + "__uuid__": "24a3a948-d370-492b-a604-772db3e9092d" + } + } +} \ No newline at end of file diff --git a/library/imports/ad/adf8c904-5cf8-473c-bb84-fc8d34231c5e.json b/library/imports/ad/adf8c904-5cf8-473c-bb84-fc8d34231c5e.json new file mode 100644 index 0000000..9902d80 --- /dev/null +++ b/library/imports/ad/adf8c904-5cf8-473c-bb84-fc8d34231c5e.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins_sz1", + "texture": "58481a2a-4229-43d2-bd30-69e4f09cfe4b", + "atlas": "", + "rect": [ + 0, + 0, + 23, + 51 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 23, + 51 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/af/afcb3489-a773-4e2a-94ee-8ddfb7b82621.json b/library/imports/af/afcb3489-a773-4e2a-94ee-8ddfb7b82621.json new file mode 100644 index 0000000..20370b4 --- /dev/null +++ b/library/imports/af/afcb3489-a773-4e2a-94ee-8ddfb7b82621.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins_sz13", + "texture": "efc62fa5-f8bc-4661-8eb9-f6e2cb5b4ad7", + "atlas": "", + "rect": [ + 0, + 0, + 67, + 69 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 67, + 69 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/b0/b01ef5c5-2755-455d-acb4-ba3818f5e331.json b/library/imports/b0/b01ef5c5-2755-455d-acb4-ba3818f5e331.json new file mode 100644 index 0000000..7afb000 --- /dev/null +++ b/library/imports/b0/b01ef5c5-2755-455d-acb4-ba3818f5e331.json @@ -0,0 +1,7763 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "shop", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "shop", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 6 + }, + { + "__id__": 10 + }, + { + "__id__": 14 + }, + { + "__id__": 20 + }, + { + "__id__": 27 + }, + { + "__id__": 48 + }, + { + "__id__": 62 + }, + { + "__id__": 208 + }, + { + "__id__": 212 + } + ], + "_active": true, + "_components": [ + { + "__id__": 216 + } + ], + "_prefab": { + "__id__": 217 + }, + "_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": "" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + }, + { + "__id__": 4 + } + ], + "_prefab": { + "__id__": 5 + }, + "_opacity": 150, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 2340 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.BlockInputEvents", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "37yYMxbm9Ch6mSwwX/Tozs", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "shop_2", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 7 + }, + { + "__id__": 8 + } + ], + "_prefab": { + "__id__": 9 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 2340 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "24a3a948-d370-492b-a604-772db3e9092d" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "ad450c22-24c1-4352-a09f-151cb9f3ab8a" + }, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "alignMode": 1, + "_target": { + "__id__": 1 + }, + "_alignFlags": 45, + "_left": 0, + "_right": 0, + "_top": -210, + "_bottom": -210, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 1080, + "_originalHeight": 2340, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d7kf1rnZdB6KTrT4E+bvIo", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "shop_1", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 11 + }, + { + "__id__": 12 + } + ], + "_prefab": { + "__id__": 13 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 436 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 949.9650000000001, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "9745d59d-e668-40ca-a540-c4ee007a9b8b" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "alignMode": 1, + "_target": { + "__id__": 1 + }, + "_alignFlags": 41, + "_left": 0, + "_right": 0, + "_top": -207.96500000000003, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 1080, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "90DrGs6xtHo4tHMIZiqLcb", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "btn1", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 15 + }, + { + "__id__": 16 + }, + { + "__id__": 17 + } + ], + "_prefab": { + "__id__": 19 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 99, + "height": 531 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 466.1360000000001, + 909.3890000000001, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a278a94d-ca26-4f4b-83fb-5d1058d39304" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "alignMode": 1, + "_target": { + "__id__": 1 + }, + "_alignFlags": 33, + "_left": 0, + "_right": 24.36399999999992, + "_top": -214.889, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 18 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 14 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 1 + }, + "component": "", + "_componentId": "48bfeZuYFZE2qmgxbW2IigB", + "handler": "closeShop", + "customEventData": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "a2ox7Ov9ZOB6iBpRQMSCCo", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "tx", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 21 + } + ], + "_active": true, + "_components": [ + { + "__id__": 24 + }, + { + "__id__": 25 + } + ], + "_prefab": { + "__id__": 26 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 188, + "height": 207 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -396.283, + 792.312, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 20 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 22 + } + ], + "_prefab": { + "__id__": 23 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 731, + "height": 946 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 7.769, + 0, + 0, + 0, + 0, + 1, + 0.15, + 0.15, + 0.15 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 21 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "46896dd3-d3de-4947-b2dd-eb2b1b69bef1" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d0cu9Nk4dKAZm9+TEr1h++", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b2bc9ecc-be9e-42f3-abe3-8d684cdc362a" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "alignMode": 1, + "_target": { + "__id__": 1 + }, + "_alignFlags": 9, + "_left": 49.716999999999985, + "_right": 327.573, + "_top": 64.18799999999999, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 188, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "3ckQl/Tq5GbrsTP7UO38K3", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Stamina", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 28 + }, + { + "__id__": 31 + }, + { + "__id__": 34 + }, + { + "__id__": 37 + }, + { + "__id__": 40 + }, + { + "__id__": 42 + } + ], + "_active": true, + "_components": [ + { + "__id__": 45 + } + ], + "_prefab": { + "__id__": 47 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 350, + "height": 150 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -81.953, + 843.354, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 29 + } + ], + "_prefab": { + "__id__": 30 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 382, + "height": 85 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 28 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c3063f58-52e1-4552-8660-fe0b4fbc6036" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "6aVfqR99lM8b6s1IfFRYgi", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 32 + } + ], + "_prefab": { + "__id__": 33 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 63, + "height": 56 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -120.21, + -1.322, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 31 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c00afd58-6ef6-4674-a68a-373015c8d376" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "acxWLwLgNPM5VDtDzhPjtp", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 35 + } + ], + "_prefab": { + "__id__": 36 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 70, + "height": 69 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 147.114, + 0.31, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 34 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d13e982d-fed1-454a-b4c4-c92e5bbdfd2d" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d0UvPpwplBxaQVyjLRxNG1", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "man", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 38 + } + ], + "_prefab": { + "__id__": 39 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 94, + "height": 47 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -1.951, + 0.13, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 37 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "24643945-c61a-4dce-b2c0-6de0c11ae435" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "2dvYFmzLRBJaIsm94hfDMQ", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "health", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": false, + "_components": [], + "_prefab": { + "__id__": 41 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -61.628, + 1.821, + 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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "88IgQBjH1Jo6ZZInXvN0ae", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "time", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 43 + } + ], + "_prefab": { + "__id__": 44 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 109, + "g": 70, + "b": 70, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100.1, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 72.788, + -4.433, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 42 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "00:00", + "_N$string": "00:00", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 0, + "_N$verticalAlign": 0, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "5eVwMMS0VEuK9KkGYaVfU8", + "sync": false + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 27 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + { + "__id__": 46 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 27 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "1dc93b4fehOrpGgTkihBH4g", + "handler": "openStamina", + "customEventData": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "cfwKYUzqBBtYvOE6xeCswl", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Coin", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 49 + }, + { + "__id__": 52 + }, + { + "__id__": 55 + }, + { + "__id__": 58 + } + ], + "_active": true, + "_components": [ + { + "__id__": 60 + } + ], + "_prefab": { + "__id__": 61 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 350, + "height": 150 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 335.588, + 843.354, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 48 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 50 + } + ], + "_prefab": { + "__id__": 51 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 382, + "height": 85 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 49 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c3063f58-52e1-4552-8660-fe0b4fbc6036" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "ecYhqIPwNJX5efs88/AoQx", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 48 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 53 + } + ], + "_prefab": { + "__id__": 54 + }, + "_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": [ + -120.21, + -1.322, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 52 + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "57LSY16pBJD6eBAcvkUnBv", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 48 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 56 + } + ], + "_prefab": { + "__id__": 57 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 70, + "height": 69 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 147.114, + 0.31, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 55 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d13e982d-fed1-454a-b4c4-c92e5bbdfd2d" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "efsl7ltxZA56KA2MUqzwPk", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Coin", + "_objFlags": 0, + "_parent": { + "__id__": 48 + }, + "_children": [], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 59 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 200, + "height": 200 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -0.255, + 1.584, + 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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "6bzgOXQXtJzr+SvxqA0HSq", + "sync": false + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 48 + }, + "_enabled": false, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + null + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 48 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "dbTBrfJ3pF26e9bPbIoOkH", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "itemcontent", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 63 + }, + { + "__id__": 70 + } + ], + "_active": true, + "_components": [ + { + "__id__": 68 + } + ], + "_prefab": { + "__id__": 207 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 1500 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -103.383, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "scrollBar", + "_objFlags": 0, + "_parent": { + "__id__": 62 + }, + "_children": [ + { + "__id__": 64 + } + ], + "_active": false, + "_components": [ + { + "__id__": 67 + }, + { + "__id__": 205 + } + ], + "_prefab": { + "__id__": 206 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 12, + "height": 1500 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 540, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "bar", + "_objFlags": 0, + "_parent": { + "__id__": 63 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 65 + } + ], + "_prefab": { + "__id__": 66 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 10, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -1, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 64 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "5c3bb932-6c3c-468f-88a9-c8c61d458641" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d14edZvsdIGLew5wSDs6B8", + "sync": false + }, + { + "__type__": "cc.Scrollbar", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 63 + }, + "_enabled": true, + "_scrollView": { + "__id__": 68 + }, + "_touching": false, + "_opacity": 255, + "enableAutoHide": true, + "autoHideTime": 1, + "_N$handle": { + "__id__": 65 + }, + "_N$direction": 1, + "_id": "" + }, + { + "__type__": "cc.ScrollView", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 62 + }, + "_enabled": true, + "horizontal": false, + "vertical": true, + "inertia": true, + "brake": 0.75, + "elastic": true, + "bounceDuration": 0.23, + "scrollEvents": [], + "cancelInnerEvents": true, + "_N$content": { + "__id__": 69 + }, + "content": { + "__id__": 69 + }, + "_N$horizontalScrollBar": null, + "_N$verticalScrollBar": { + "__id__": 67 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "content", + "_objFlags": 0, + "_parent": { + "__id__": 70 + }, + "_children": [ + { + "__id__": 73 + }, + { + "__id__": 76 + }, + { + "__id__": 92 + }, + { + "__id__": 108 + }, + { + "__id__": 124 + }, + { + "__id__": 140 + }, + { + "__id__": 156 + }, + { + "__id__": 172 + }, + { + "__id__": 188 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 204 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 2340 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 1 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 750.47, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "view", + "_objFlags": 0, + "_parent": { + "__id__": 62 + }, + "_children": [ + { + "__id__": 69 + } + ], + "_active": true, + "_components": [ + { + "__id__": 71 + } + ], + "_prefab": { + "__id__": 72 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 1500 + }, + "_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": "" + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 70 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 0, + "_segments": 64, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "7eaCjkUUtJholSqbUUNrQb", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "txt1", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 74 + } + ], + "_prefab": { + "__id__": 75 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 907, + "height": 62 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 8.5, + -27, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 73 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "760f4de0-8da0-4f0a-b3cb-5b6fe8b0b611" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "99poj1KG1LJ6aqPTcYloJk", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 77 + }, + { + "__id__": 80 + }, + { + "__id__": 83 + } + ], + "_active": true, + "_components": [ + { + "__id__": 87 + }, + { + "__id__": 88 + }, + { + "__id__": 90 + } + ], + "_prefab": { + "__id__": 91 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -346.5, + -319, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 78 + } + ], + "_prefab": { + "__id__": 79 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 77 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c725d7a9-6d3f-481d-8dbc-dcd5fa68db99" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 76 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 81 + } + ], + "_prefab": { + "__id__": 82 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 106.74, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 80 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "100元", + "_N$string": "100元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 76 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 84 + }, + { + "__id__": 85 + } + ], + "_prefab": { + "__id__": 86 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 110.74, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 83 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "450万", + "_N$string": "450万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 83 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 76 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 76 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 76 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 89 + } + ], + "_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__": 76 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 76 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 76 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "afI23KGK1LbZzVXNadOcOh", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 93 + }, + { + "__id__": 96 + }, + { + "__id__": 99 + } + ], + "_active": true, + "_components": [ + { + "__id__": 103 + }, + { + "__id__": 104 + }, + { + "__id__": 106 + } + ], + "_prefab": { + "__id__": 107 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -4.5, + -319, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 92 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 94 + } + ], + "_prefab": { + "__id__": 95 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 93 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d5b945ef-6a0b-46b0-8a2a-51581517d407" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 92 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 92 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 97 + } + ], + "_prefab": { + "__id__": 98 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 106.74, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 96 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "200元", + "_N$string": "200元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 92 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 92 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 100 + }, + { + "__id__": 101 + } + ], + "_prefab": { + "__id__": 102 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 110.74, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 99 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "550万", + "_N$string": "550万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 99 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 92 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 92 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 92 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 105 + } + ], + "_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__": 92 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 92 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 92 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "d729gzZw1CebBIrDC0zVvp", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 109 + }, + { + "__id__": 112 + }, + { + "__id__": 115 + } + ], + "_active": true, + "_components": [ + { + "__id__": 119 + }, + { + "__id__": 120 + }, + { + "__id__": 122 + } + ], + "_prefab": { + "__id__": 123 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 337.5, + -319, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 108 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 110 + } + ], + "_prefab": { + "__id__": 111 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 109 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "cfa73259-f87a-4e91-b391-96f0f0872993" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 108 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 108 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 113 + } + ], + "_prefab": { + "__id__": 114 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 106.74, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 112 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "300元", + "_N$string": "300元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 108 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 108 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 116 + }, + { + "__id__": 117 + } + ], + "_prefab": { + "__id__": 118 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 110.74, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 115 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "700万", + "_N$string": "700万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 115 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 108 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 108 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 108 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 121 + } + ], + "_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__": 108 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 108 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 108 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "f5iPfzyF1LDLpvRXmkUoer", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 125 + }, + { + "__id__": 128 + }, + { + "__id__": 131 + } + ], + "_active": true, + "_components": [ + { + "__id__": 135 + }, + { + "__id__": 136 + }, + { + "__id__": 138 + } + ], + "_prefab": { + "__id__": 139 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -346.5, + -803, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 124 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 126 + } + ], + "_prefab": { + "__id__": 127 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 125 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "927ccbda-a1dc-4ee0-a38a-a3ab66e81d9f" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 124 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 124 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 129 + } + ], + "_prefab": { + "__id__": 130 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 106.74, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 128 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "500元", + "_N$string": "500元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 124 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 124 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 132 + }, + { + "__id__": 133 + } + ], + "_prefab": { + "__id__": 134 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 110.74, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 131 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "800万", + "_N$string": "800万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 131 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 124 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 124 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 124 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 137 + } + ], + "_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__": 124 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 124 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 124 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "66+qsnLwJF0LkQjTqG9Xpt", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 141 + }, + { + "__id__": 144 + }, + { + "__id__": 147 + } + ], + "_active": true, + "_components": [ + { + "__id__": 151 + }, + { + "__id__": 152 + }, + { + "__id__": 154 + } + ], + "_prefab": { + "__id__": 155 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -4.5, + -803, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 140 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 142 + } + ], + "_prefab": { + "__id__": 143 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 141 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "319350a2-b9b5-4967-aab8-0e192088a665" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 140 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 140 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 145 + } + ], + "_prefab": { + "__id__": 146 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 128.98, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 144 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "1000元", + "_N$string": "1000元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 140 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 140 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 148 + }, + { + "__id__": 149 + } + ], + "_prefab": { + "__id__": 150 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 132.98, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 147 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "1000万", + "_N$string": "1000万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 147 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 140 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 140 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 140 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 153 + } + ], + "_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__": 140 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 140 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 140 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "48YmE9K01FpaVYgaSxME1L", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 157 + }, + { + "__id__": 160 + }, + { + "__id__": 163 + } + ], + "_active": true, + "_components": [ + { + "__id__": 167 + }, + { + "__id__": 168 + }, + { + "__id__": 170 + } + ], + "_prefab": { + "__id__": 171 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 337.5, + -803, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 156 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 158 + } + ], + "_prefab": { + "__id__": 159 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 157 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "be3accec-ceea-4b09-af1d-982fcd3879e8" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 156 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 156 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 161 + } + ], + "_prefab": { + "__id__": 162 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 128.98, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 160 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "1500元", + "_N$string": "1500元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 156 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 156 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 164 + }, + { + "__id__": 165 + } + ], + "_prefab": { + "__id__": 166 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 132.98, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 163 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "1500万", + "_N$string": "1500万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 163 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 156 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 156 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 156 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 169 + } + ], + "_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__": 156 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 156 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 156 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "f6mohWehlEx5/9GXtk15qJ", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 173 + }, + { + "__id__": 176 + }, + { + "__id__": 179 + } + ], + "_active": true, + "_components": [ + { + "__id__": 183 + }, + { + "__id__": 184 + }, + { + "__id__": 186 + } + ], + "_prefab": { + "__id__": 187 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -346.5, + -1287, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 172 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 174 + } + ], + "_prefab": { + "__id__": 175 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 173 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "25612630-24db-43ef-a7a9-0a56c98dc21e" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 172 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 172 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 177 + } + ], + "_prefab": { + "__id__": 178 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 128.98, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 176 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "2000元", + "_N$string": "2000元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 172 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 172 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 180 + }, + { + "__id__": 181 + } + ], + "_prefab": { + "__id__": 182 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 132.98, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 179 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "2000万", + "_N$string": "2000万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 179 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 172 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 172 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 172 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 185 + } + ], + "_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__": 172 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 172 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 172 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "d5kpPO81xADLw8urE8HYwZ", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 189 + }, + { + "__id__": 192 + }, + { + "__id__": 195 + } + ], + "_active": true, + "_components": [ + { + "__id__": 199 + }, + { + "__id__": 200 + }, + { + "__id__": 202 + } + ], + "_prefab": { + "__id__": 203 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -4.5, + -1287, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 188 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 190 + } + ], + "_prefab": { + "__id__": 191 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 189 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "67ab3632-96c7-4db0-b1d9-1dcf80e62ce4" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 188 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 188 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 193 + } + ], + "_prefab": { + "__id__": 194 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 128.98, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 192 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "6000元", + "_N$string": "6000元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 188 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 188 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 196 + }, + { + "__id__": 197 + } + ], + "_prefab": { + "__id__": 198 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 132.98, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 195 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "5000万", + "_N$string": "5000万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 195 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 188 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 188 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 188 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 201 + } + ], + "_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__": 188 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 188 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 188 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "f6NMyq3+ZJfrCbT4XAJ1Mh", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "7bpN5qjjpDYqndxZBdfWFN", + "sync": false + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 63 + }, + "_enabled": true, + "alignMode": 0, + "_target": null, + "_alignFlags": 37, + "_left": 1068, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 12, + "_originalHeight": 237, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "9aNMp065ZLTryhmf8DtMA1", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "3aLsaRTllN04hhnLouRCo2", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 209 + }, + { + "__id__": 210 + } + ], + "_prefab": { + "__id__": 211 + }, + "_opacity": 150, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 200 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 1062.507, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 208 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.BlockInputEvents", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 208 + }, + "_enabled": true, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "9dgIB3VNlAC4rOLKR63X1h", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 213 + }, + { + "__id__": 214 + } + ], + "_prefab": { + "__id__": 215 + }, + "_opacity": 150, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 200 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -1059.951, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 212 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.BlockInputEvents", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 212 + }, + "_enabled": true, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "c5IbgSqWhDerwgA0hdz30t", + "sync": false + }, + { + "__type__": "48bfeZuYFZE2qmgxbW2IigB", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "shop": { + "__id__": 1 + }, + "itemList": { + "__id__": 69 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/b0/b07b3564-ce23-49f8-9891-2001cb80a72a.json b/library/imports/b0/b07b3564-ce23-49f8-9891-2001cb80a72a.json new file mode 100644 index 0000000..a35979a --- /dev/null +++ b/library/imports/b0/b07b3564-ce23-49f8-9891-2001cb80a72a.json @@ -0,0 +1,29 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins_di", + "texture": "779cfcd5-4697-4641-83eb-340dd9bc5986", + "atlas": "47589a11-b9e5-45cb-b50d-398e1e8b3843", + "rect": [ + 0, + 600, + 327, + 454 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 327, + 454 + ], + "rotated": 1, + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/b1/b1b9c0be-4f7a-4c8f-99cb-99aa2a5fad7a.json b/library/imports/b1/b1b9c0be-4f7a-4c8f-99cb-99aa2a5fad7a.json new file mode 100644 index 0000000..ecf9a24 --- /dev/null +++ b/library/imports/b1/b1b9c0be-4f7a-4c8f-99cb-99aa2a5fad7a.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "cost_0", + "texture": "12c63ed2-bf61-4b5b-8d37-781d02f4386c", + "atlas": "", + "rect": [ + 0, + 0, + 30, + 38 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 30, + 38 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/b2/b2bc9ecc-be9e-42f3-abe3-8d684cdc362a.json b/library/imports/b2/b2bc9ecc-be9e-42f3-abe3-8d684cdc362a.json new file mode 100644 index 0000000..a468c79 --- /dev/null +++ b/library/imports/b2/b2bc9ecc-be9e-42f3-abe3-8d684cdc362a.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "tx", + "texture": "779cfcd5-4697-4641-83eb-340dd9bc5986", + "atlas": "47589a11-b9e5-45cb-b50d-398e1e8b3843", + "rect": [ + 455, + 600, + 188, + 207 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 188, + 207 + ], + "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 new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/b6/b6cc00c9-4bc9-48a7-b075-af04e0f8cfe8.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/b6/b6cc00c9-4bc9-48a7-b075-af04e0f8cfe8.png b/library/imports/b6/b6cc00c9-4bc9-48a7-b075-af04e0f8cfe8.png new file mode 100644 index 0000000..888697a Binary files /dev/null and b/library/imports/b6/b6cc00c9-4bc9-48a7-b075-af04e0f8cfe8.png differ diff --git a/library/imports/b9/b98ab73e-af9c-47fa-862c-144da3071249.json b/library/imports/b9/b98ab73e-af9c-47fa-862c-144da3071249.json index 5591666..31495d3 100644 --- a/library/imports/b9/b98ab73e-af9c-47fa-862c-144da3071249.json +++ b/library/imports/b9/b98ab73e-af9c-47fa-862c-144da3071249.json @@ -125,7 +125,7 @@ } } }, - "_atlasText": "\nbingkuai.png\nsize: 1020,1020\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\n3_0000\n rotate: true\n xy: 333, 279\n size: 246, 250\n orig: 684, 1216\n offset: 254, 504\n index: -1\n3_0001\n rotate: false\n xy: 0, 329\n size: 245, 193\n orig: 684, 1216\n offset: 295, 550\n index: -1\n3_0002\n rotate: true\n xy: 750, 359\n size: 305, 216\n orig: 684, 1216\n offset: 268, 545\n index: -1\n3_0003\n rotate: false\n xy: 0, 524\n size: 331, 231\n orig: 684, 1216\n offset: 243, 541\n index: -1\n3_0004\n rotate: false\n xy: 392, 527\n size: 356, 243\n orig: 684, 1216\n offset: 224, 536\n index: -1\n3_0005\n rotate: false\n xy: 392, 772\n size: 371, 248\n orig: 684, 1216\n offset: 213, 535\n index: -1\n3_0006\n rotate: true\n xy: 765, 666\n size: 354, 255\n orig: 684, 1216\n offset: 205, 530\n index: -1\n3_0007\n rotate: false\n xy: 0, 757\n size: 390, 263\n orig: 684, 1216\n offset: 201, 523\n index: -1\n", + "_atlasText": "\r\nbingkuai.png\r\nsize: 1020,1020\r\nformat: RGBA8888\r\nfilter: Linear,Linear\r\nrepeat: none\r\n3_0000\r\n rotate: true\r\n xy: 333, 279\r\n size: 246, 250\r\n orig: 684, 1216\r\n offset: 254, 504\r\n index: -1\r\n3_0001\r\n rotate: false\r\n xy: 0, 329\r\n size: 245, 193\r\n orig: 684, 1216\r\n offset: 295, 550\r\n index: -1\r\n3_0002\r\n rotate: true\r\n xy: 750, 359\r\n size: 305, 216\r\n orig: 684, 1216\r\n offset: 268, 545\r\n index: -1\r\n3_0003\r\n rotate: false\r\n xy: 0, 524\r\n size: 331, 231\r\n orig: 684, 1216\r\n offset: 243, 541\r\n index: -1\r\n3_0004\r\n rotate: false\r\n xy: 392, 527\r\n size: 356, 243\r\n orig: 684, 1216\r\n offset: 224, 536\r\n index: -1\r\n3_0005\r\n rotate: false\r\n xy: 392, 772\r\n size: 371, 248\r\n orig: 684, 1216\r\n offset: 213, 535\r\n index: -1\r\n3_0006\r\n rotate: true\r\n xy: 765, 666\r\n size: 354, 255\r\n orig: 684, 1216\r\n offset: 205, 530\r\n index: -1\r\n3_0007\r\n rotate: false\r\n xy: 0, 757\r\n size: 390, 263\r\n orig: 684, 1216\r\n offset: 201, 523\r\n index: -1\r\n", "textures": [ { "__uuid__": "fe2e1147-b4a4-4f5d-885b-e2bac6b7b42e" diff --git a/library/imports/be/be3accec-ceea-4b09-af1d-982fcd3879e8.json b/library/imports/be/be3accec-ceea-4b09-af1d-982fcd3879e8.json new file mode 100644 index 0000000..aeee396 --- /dev/null +++ b/library/imports/be/be3accec-ceea-4b09-af1d-982fcd3879e8.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins6", + "texture": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "atlas": "7aef6fef-1f14-4aeb-ba2e-3738a437eb63", + "rect": [ + 0, + 0, + 240, + 182 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 240, + 182 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/c3/c3253224-ec4b-44d2-9def-74df957c47b4.json b/library/imports/c3/c3253224-ec4b-44d2-9def-74df957c47b4.json new file mode 100644 index 0000000..2d16ee7 --- /dev/null +++ b/library/imports/c3/c3253224-ec4b-44d2-9def-74df957c47b4.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins_sz5", + "texture": "774d1aad-d081-44e1-9d68-9a3fd767aba3", + "atlas": "", + "rect": [ + 0, + 0, + 42, + 60 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 42, + 60 + ], + "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 new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/c6/c6022e1d-b8c5-498b-a3c1-740387f6d647.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/c6/c6022e1d-b8c5-498b-a3c1-740387f6d647.png b/library/imports/c6/c6022e1d-b8c5-498b-a3c1-740387f6d647.png new file mode 100644 index 0000000..2ac6b72 Binary files /dev/null and b/library/imports/c6/c6022e1d-b8c5-498b-a3c1-740387f6d647.png differ diff --git a/library/imports/c7/c725d7a9-6d3f-481d-8dbc-dcd5fa68db99.json b/library/imports/c7/c725d7a9-6d3f-481d-8dbc-dcd5fa68db99.json new file mode 100644 index 0000000..6c2a146 --- /dev/null +++ b/library/imports/c7/c725d7a9-6d3f-481d-8dbc-dcd5fa68db99.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins1", + "texture": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "atlas": "7aef6fef-1f14-4aeb-ba2e-3738a437eb63", + "rect": [ + 0, + 353, + 206, + 141 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 206, + 141 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/c8/c811b5c4-066b-4453-b11a-03486ab423fc.json b/library/imports/c8/c811b5c4-066b-4453-b11a-03486ab423fc.json new file mode 100644 index 0000000..175b13f --- /dev/null +++ b/library/imports/c8/c811b5c4-066b-4453-b11a-03486ab423fc.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins_sz7", + "texture": "47d4dd52-9152-4724-ab77-4e9d15e14c2e", + "atlas": "", + "rect": [ + 0, + 0, + 42, + 59 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 42, + 59 + ], + "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 new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/c8/c8b66182-996c-4377-8d0a-024d8b17e581.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/c8/c8b66182-996c-4377-8d0a-024d8b17e581.png b/library/imports/c8/c8b66182-996c-4377-8d0a-024d8b17e581.png new file mode 100644 index 0000000..36fb196 Binary files /dev/null and b/library/imports/c8/c8b66182-996c-4377-8d0a-024d8b17e581.png differ diff --git a/library/imports/c9/c9ad1894-4c1d-4fca-a277-726b4c189df5.js b/library/imports/c9/c9ad1894-4c1d-4fca-a277-726b4c189df5.js index 9243b02..a317ee0 100644 --- a/library/imports/c9/c9ad1894-4c1d-4fca-a277-726b4c189df5.js +++ b/library/imports/c9/c9ad1894-4c1d-4fca-a277-726b4c189df5.js @@ -15,6 +15,7 @@ cc._RF.push(module, 'c9ad1iUTB1PyqJ3cmtMGJ31', 'use_v2.1-2.2.1_cc.Toggle_event_1 * 如果你的项目中没用到 Toggle,可直接删除该脚本。 * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。 */ + if (cc.Toggle) { // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件 diff --git a/library/imports/c9/c9ad1894-4c1d-4fca-a277-726b4c189df5.js.map b/library/imports/c9/c9ad1894-4c1d-4fca-a277-726b4c189df5.js.map index 1e7468c..d4f9d82 100644 --- a/library/imports/c9/c9ad1894-4c1d-4fca-a277-726b4c189df5.js.map +++ b/library/imports/c9/c9ad1894-4c1d-4fca-a277-726b4c189df5.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\migration\\use_v2.1-2.2.1_cc.Toggle_event_1.js"],"names":["cc","Toggle","_triggerEventInScript_isChecked"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAIA,EAAE,CAACC,MAAP,EAAe;AACX;AACA;AACAD,EAAAA,EAAE,CAACC,MAAH,CAAUC,+BAAV,GAA4C,IAA5C;AACH","sourceRoot":"/","sourcesContent":["/*\r\n * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version.\r\n * You do not need to manually add this script in any other project.\r\n * If you don't use cc.Toggle in your project, you can delete this script directly.\r\n * If your project is hosted in VCS such as git, submit this script together.\r\n *\r\n * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程,\r\n * 你无需在任何其它项目中手动添加此脚本。\r\n * 如果你的项目中没用到 Toggle,可直接删除该脚本。\r\n * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。\r\n */\r\n\r\nif (cc.Toggle) {\r\n // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code\r\n // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件\r\n cc.Toggle._triggerEventInScript_isChecked = true;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\migration\\use_v2.1-2.2.1_cc.Toggle_event_1.js"],"names":["cc","Toggle","_triggerEventInScript_isChecked"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAIA,EAAE,CAACC,MAAM,EAAE;EACX;EACA;EACAD,EAAE,CAACC,MAAM,CAACC,+BAA+B,GAAG,IAAI;AACpD","sourceRoot":"/","sourcesContent":["/*\r\n * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version.\r\n * You do not need to manually add this script in any other project.\r\n * If you don't use cc.Toggle in your project, you can delete this script directly.\r\n * If your project is hosted in VCS such as git, submit this script together.\r\n *\r\n * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程,\r\n * 你无需在任何其它项目中手动添加此脚本。\r\n * 如果你的项目中没用到 Toggle,可直接删除该脚本。\r\n * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。\r\n */\r\n\r\nif (cc.Toggle) {\r\n // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code\r\n // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件\r\n cc.Toggle._triggerEventInScript_isChecked = true;\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/ca/ca1fbdcb-5180-4815-8751-4b66146e74de.json b/library/imports/ca/ca1fbdcb-5180-4815-8751-4b66146e74de.json index 41e0a2b..e3b3c3b 100644 --- a/library/imports/ca/ca1fbdcb-5180-4815-8751-4b66146e74de.json +++ b/library/imports/ca/ca1fbdcb-5180-4815-8751-4b66146e74de.json @@ -657,7 +657,7 @@ } } }, - "_atlasText": "\njiekou_heng.png\nsize: 148,148\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\n连接块/kou1\n rotate: false\n xy: 2, 121\n size: 52, 24\n orig: 52, 24\n offset: 0, 0\n index: -1\n连接块/kou2\n rotate: false\n xy: 56, 121\n size: 52, 24\n orig: 52, 24\n offset: 0, 0\n index: -1\n连接块/luosi\n rotate: true\n xy: 110, 122\n size: 23, 21\n orig: 23, 21\n offset: 0, 0\n index: -1\n连接块/luosi2\n rotate: false\n xy: 133, 133\n size: 12, 12\n orig: 12, 12\n offset: 0, 0\n index: -1\n", + "_atlasText": "\r\njiekou_heng.png\r\nsize: 148,148\r\nformat: RGBA8888\r\nfilter: Linear,Linear\r\nrepeat: none\r\n连接块/kou1\r\n rotate: false\r\n xy: 2, 121\r\n size: 52, 24\r\n orig: 52, 24\r\n offset: 0, 0\r\n index: -1\r\n连接块/kou2\r\n rotate: false\r\n xy: 56, 121\r\n size: 52, 24\r\n orig: 52, 24\r\n offset: 0, 0\r\n index: -1\r\n连接块/luosi\r\n rotate: true\r\n xy: 110, 122\r\n size: 23, 21\r\n orig: 23, 21\r\n offset: 0, 0\r\n index: -1\r\n连接块/luosi2\r\n rotate: false\r\n xy: 133, 133\r\n size: 12, 12\r\n orig: 12, 12\r\n offset: 0, 0\r\n index: -1\r\n", "textures": [ { "__uuid__": "b422f3cf-81f1-4bda-9b15-c5ef7a9687b8" diff --git a/library/imports/ca/cadd896f-dd2c-43fa-8788-334576768186.json b/library/imports/ca/cadd896f-dd2c-43fa-8788-334576768186.json new file mode 100644 index 0000000..3732a72 --- /dev/null +++ b/library/imports/ca/cadd896f-dd2c-43fa-8788-334576768186.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "闇囧姩00", + "texture": "306b721d-bd6d-4dc2-9c7e-0d42021be3b3", + "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/cd/cd39387b-1159-4712-8c61-f004be89fb80.json b/library/imports/cd/cd39387b-1159-4712-8c61-f004be89fb80.json new file mode 100644 index 0000000..a3e9ba4 --- /dev/null +++ b/library/imports/cd/cd39387b-1159-4712-8c61-f004be89fb80.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "cost_8", + "texture": "c6022e1d-b8c5-498b-a3c1-740387f6d647", + "atlas": "", + "rect": [ + 0, + 0, + 26, + 38 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 26, + 38 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/cf/cfa73259-f87a-4e91-b391-96f0f0872993.json b/library/imports/cf/cfa73259-f87a-4e91-b391-96f0f0872993.json new file mode 100644 index 0000000..aae2683 --- /dev/null +++ b/library/imports/cf/cfa73259-f87a-4e91-b391-96f0f0872993.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins3", + "texture": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "atlas": "7aef6fef-1f14-4aeb-ba2e-3738a437eb63", + "rect": [ + 418, + 214, + 189, + 165 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 189, + 165 + ], + "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 new file mode 100644 index 0000000..c49a14e --- /dev/null +++ b/library/imports/d5/d56be779-2bae-49dd-ade4-41a2154e4f83.json @@ -0,0 +1,28 @@ +{ + "__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/d5/d5b945ef-6a0b-46b0-8a2a-51581517d407.json b/library/imports/d5/d5b945ef-6a0b-46b0-8a2a-51581517d407.json new file mode 100644 index 0000000..beab218 --- /dev/null +++ b/library/imports/d5/d5b945ef-6a0b-46b0-8a2a-51581517d407.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins2", + "texture": "e1cda82d-d022-47f6-9a4f-a7d1989ef7de", + "atlas": "7aef6fef-1f14-4aeb-ba2e-3738a437eb63", + "rect": [ + 0, + 495, + 163, + 151 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 163, + 151 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/d6/d60cfac6-6d70-4b05-ba65-2e84fb4c19fb.js b/library/imports/d6/d60cfac6-6d70-4b05-ba65-2e84fb4c19fb.js index 1bf6803..cabb155 100644 --- a/library/imports/d6/d60cfac6-6d70-4b05-ba65-2e84fb4c19fb.js +++ b/library/imports/d6/d60cfac6-6d70-4b05-ba65-2e84fb4c19fb.js @@ -6,19 +6,16 @@ cc._RF.push(module, 'd60cfrGbXBLBbplLoT7TBn7', 'TmoTiledLayer'); 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 _mat4_temp = cc.mat4(); - var _vec2_temp = cc.v2(); - var _vec2_temp2 = cc.v2(); - var _default = cc.Class({ "extends": cc.TiledLayer, // 此处修改 增加firstTmxLayer参数 @@ -26,13 +23,15 @@ var _default = cc.Class({ // 修改结束 this._cullingDirty = true; this._layerInfo = layerInfo; - this._mapInfo = mapInfo; // 此处修改 保存firstTmxLayer参数 - + this._mapInfo = mapInfo; + // 此处修改 保存firstTmxLayer参数 this._firstTmxLayer = firstTmxLayer; - this._tiledMap = tiledMap; // 修改结束 + this._tiledMap = tiledMap; + // 修改结束 - var size = layerInfo._layerSize; // layerInfo + var size = layerInfo._layerSize; + // layerInfo this._layerName = layerInfo.name; this._tiles = layerInfo._tiles; this._properties = layerInfo.properties; @@ -44,30 +43,30 @@ var _default = cc.Class({ this._staggerAxis = mapInfo.getStaggerAxis(); this._staggerIndex = mapInfo.getStaggerIndex(); this._hexSideLength = mapInfo.getHexSideLength(); - this._animations = mapInfo.getTileAnimations(); // tilesets + this._animations = mapInfo.getTileAnimations(); - this._tilesets = tilesets; // textures - - this._textures = textures; // grid texture - - this._texGrids = texGrids; // mapInfo + // 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; + 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; @@ -79,22 +78,19 @@ var _default = cc.Class({ 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); - + } + // 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() { @@ -104,20 +100,17 @@ var _default = cc.Class({ // 此处修改 若不为首个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; @@ -127,15 +120,13 @@ var _default = cc.Class({ 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。 + 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; - } // 修改结束 - + } + // 修改结束 } } }, @@ -147,35 +138,30 @@ var _default = cc.Class({ 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); // 此处修改 当只有一个图集时 可以直接停止遍历 + tilesetIndexArr.push(tilesetIdx); + // 此处修改 当只有一个图集时 可以直接停止遍历 if (singleTexture) { break; - } // 修改结束 - + } + // 修改结束 } } }); - exports["default"] = _default; module.exports = exports["default"]; diff --git a/library/imports/d6/d60cfac6-6d70-4b05-ba65-2e84fb4c19fb.js.map b/library/imports/d6/d60cfac6-6d70-4b05-ba65-2e84fb4c19fb.js.map index de22bcc..02213c8 100644 --- a/library/imports/d6/d60cfac6-6d70-4b05-ba65-2e84fb4c19fb.js.map +++ b/library/imports/d6/d60cfac6-6d70-4b05-ba65-2e84fb4c19fb.js.map @@ -1 +1 @@ -{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoTiledLayer.js"],"names":["_mat4_temp","cc","mat4","_vec2_temp","v2","_vec2_temp2","Class","TiledLayer","_init","layerInfo","mapInfo","tilesets","textures","texGrids","tiledMap","firstTmxLayer","_cullingDirty","_layerInfo","_mapInfo","_firstTmxLayer","_tiledMap","size","_layerSize","_layerName","name","_tiles","_properties","properties","_minGID","_maxGID","_opacity","_renderOrder","renderOrder","_staggerAxis","getStaggerAxis","_staggerIndex","getStaggerIndex","_hexSideLength","getHexSideLength","_animations","getTileAnimations","_tilesets","_textures","_texGrids","_layerOrientation","orientation","_mapTileSize","getTileSize","maptw","width","mapth","height","layerW","layerH","TiledMap","Orientation","HEX","StaggerAxis","StaggerIndex","_odd_even","STAGGERINDEX_ODD","STAGGERAXIS_X","_diffX1","_diffY1","Math","floor","node","setContentSize","ISO","wh","_offset","offset","x","y","_useAutomaticVertexZ","_vertexZvalue","_syncAnchorPoint","_prepareToRender","_updateCulling","CC_EDITOR","enableCulling","_enableCulling","_cullingRect","_cacheCullingDirty","_updateWorldMatrix","Mat4","invert","_worldMatrix","rect","visibleRect","camera","Camera","findCamera","getScreenToWorldPoint","Vec2","transformMat4","_updateViewPort","_traverseAllGrid","tiles","tilesetIndexArr","_tilesetIndexArr","tilesetIndexToArrIndex","_tilesetIndexToArrIndex","TileFlag","FLIPPED_MASK","singleTexture","isSingleTexture","length","i","gid","grid","error","tilesetIdx","texId","undefined","push"],"mappings":"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","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/class.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\nlet _mat4_temp = cc.mat4();\r\nlet _vec2_temp = cc.v2();\r\nlet _vec2_temp2 = cc.v2();\r\n\r\nexport default cc.Class({\r\n extends: cc.TiledLayer,\r\n\r\n // 此处修改 增加firstTmxLayer参数\r\n _init(layerInfo, mapInfo, tilesets, textures, texGrids, tiledMap, firstTmxLayer) {\r\n // 修改结束\r\n this._cullingDirty = true;\r\n this._layerInfo = layerInfo;\r\n this._mapInfo = mapInfo;\r\n // 此处修改 保存firstTmxLayer参数\r\n this._firstTmxLayer = firstTmxLayer;\r\n this._tiledMap = tiledMap;\r\n // 修改结束\r\n\r\n let size = layerInfo._layerSize;\r\n\r\n // layerInfo\r\n this._layerName = layerInfo.name;\r\n this._tiles = layerInfo._tiles;\r\n this._properties = layerInfo.properties;\r\n this._layerSize = size;\r\n this._minGID = layerInfo._minGID;\r\n this._maxGID = layerInfo._maxGID;\r\n this._opacity = layerInfo._opacity;\r\n this._renderOrder = mapInfo.renderOrder;\r\n this._staggerAxis = mapInfo.getStaggerAxis();\r\n this._staggerIndex = mapInfo.getStaggerIndex();\r\n this._hexSideLength = mapInfo.getHexSideLength();\r\n this._animations = mapInfo.getTileAnimations();\r\n\r\n // tilesets\r\n this._tilesets = tilesets;\r\n // textures\r\n this._textures = textures;\r\n // grid texture\r\n this._texGrids = texGrids;\r\n\r\n // mapInfo\r\n this._layerOrientation = mapInfo.orientation;\r\n this._mapTileSize = mapInfo.getTileSize();\r\n\r\n let maptw = this._mapTileSize.width;\r\n let mapth = this._mapTileSize.height;\r\n let layerW = this._layerSize.width;\r\n let layerH = this._layerSize.height;\r\n\r\n if (this._layerOrientation === cc.TiledMap.Orientation.HEX) {\r\n // handle hex map\r\n const TiledMap = cc.TiledMap;\r\n const StaggerAxis = TiledMap.StaggerAxis;\r\n const StaggerIndex = TiledMap.StaggerIndex;\r\n let width = 0, height = 0;\r\n\r\n this._odd_even = (this._staggerIndex === StaggerIndex.STAGGERINDEX_ODD) ? 1 : -1;\r\n if (this._staggerAxis === StaggerAxis.STAGGERAXIS_X) {\r\n this._diffX1 = (maptw - this._hexSideLength) / 2;\r\n this._diffY1 = 0;\r\n height = mapth * (layerH + 0.5);\r\n width = (maptw + this._hexSideLength) * Math.floor(layerW / 2) + maptw * (layerW % 2);\r\n } else {\r\n this._diffX1 = 0;\r\n this._diffY1 = (mapth - this._hexSideLength) / 2;\r\n width = maptw * (layerW + 0.5);\r\n height = (mapth + this._hexSideLength) * Math.floor(layerH / 2) + mapth * (layerH % 2);\r\n }\r\n this.node.setContentSize(width, height);\r\n } else if (this._layerOrientation === cc.TiledMap.Orientation.ISO) {\r\n let wh = layerW + layerH;\r\n this.node.setContentSize(maptw * 0.5 * wh, mapth * 0.5 * wh);\r\n } else {\r\n this.node.setContentSize(layerW * maptw, layerH * mapth);\r\n }\r\n\r\n // offset (after layer orientation is set);\r\n this._offset = cc.v2(layerInfo.offset.x, -layerInfo.offset.y);\r\n this._useAutomaticVertexZ = false;\r\n this._vertexZvalue = 0;\r\n this._syncAnchorPoint();\r\n this._prepareToRender();\r\n },\r\n _updateCulling() {\r\n if (CC_EDITOR) {\r\n this.enableCulling(false);\r\n } else if (this._enableCulling) {\r\n // 此处修改 若不为首个layer 直接复用firstLayer的结果\r\n // this._firstTmxLayer不为空时 表示当前layer不是首个layer\r\n let firstTmxLayer = this._firstTmxLayer;\r\n if (!!firstTmxLayer) {\r\n this._cullingRect = firstTmxLayer._cullingRect;\r\n this._cullingDirty = firstTmxLayer._cacheCullingDirty;\r\n return;\r\n }\r\n // 修改结束\r\n\r\n this.node._updateWorldMatrix();\r\n cc.Mat4.invert(_mat4_temp, this.node._worldMatrix);\r\n let rect = cc.visibleRect;\r\n let camera = cc.Camera.findCamera(this.node);\r\n if (camera) {\r\n _vec2_temp.x = 0;\r\n _vec2_temp.y = 0;\r\n _vec2_temp2.x = _vec2_temp.x + rect.width;\r\n _vec2_temp2.y = _vec2_temp.y + rect.height;\r\n camera.getScreenToWorldPoint(_vec2_temp, _vec2_temp);\r\n camera.getScreenToWorldPoint(_vec2_temp2, _vec2_temp2);\r\n cc.Vec2.transformMat4(_vec2_temp, _vec2_temp, _mat4_temp);\r\n cc.Vec2.transformMat4(_vec2_temp2, _vec2_temp2, _mat4_temp);\r\n\r\n this._updateViewPort(_vec2_temp.x, _vec2_temp.y, _vec2_temp2.x - _vec2_temp.x, _vec2_temp2.y - _vec2_temp.y);\r\n // 此处修改 若为首个layer 缓存_cullingDirty。\r\n // _cullingDirty会在填充渲染数据后被改为false 所以需要缓存这里的结果\r\n if (!firstTmxLayer) {\r\n this._cacheCullingDirty = this._cullingDirty;\r\n }\r\n // 修改结束\r\n }\r\n }\r\n },\r\n _traverseAllGrid () {\r\n let tiles = this._tiles;\r\n let texGrids = this._texGrids;\r\n let tilesetIndexArr = this._tilesetIndexArr;\r\n let tilesetIndexToArrIndex = this._tilesetIndexToArrIndex = {};\r\n\r\n const TiledMap = cc.TiledMap;\r\n const TileFlag = TiledMap.TileFlag;\r\n const FLIPPED_MASK = TileFlag.FLIPPED_MASK;\r\n\r\n let singleTexture = this._tiledMap.isSingleTexture();\r\n\r\n tilesetIndexArr.length = 0;\r\n for (let i = 0; i < tiles.length; i++) {\r\n let gid = tiles[i];\r\n if (gid === 0) continue;\r\n gid = ((gid & FLIPPED_MASK) >>> 0);\r\n let grid = texGrids[gid];\r\n if (!grid) {\r\n cc.error(\"CCTiledLayer:_traverseAllGrid grid is null, gid is:\", gid);\r\n continue;\r\n }\r\n let tilesetIdx = grid.texId;\r\n if (tilesetIndexToArrIndex[tilesetIdx] !== undefined) continue;\r\n tilesetIndexToArrIndex[tilesetIdx] = tilesetIndexArr.length;\r\n tilesetIndexArr.push(tilesetIdx);\r\n \r\n // 此处修改 当只有一个图集时 可以直接停止遍历\r\n if (singleTexture) {\r\n break;\r\n }\r\n // 修改结束\r\n }\r\n },\r\n});\r\n"]} \ No newline at end of file +{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoTiledLayer.js"],"names":["_mat4_temp","cc","mat4","_vec2_temp","v2","_vec2_temp2","_default","Class","TiledLayer","_init","layerInfo","mapInfo","tilesets","textures","texGrids","tiledMap","firstTmxLayer","_cullingDirty","_layerInfo","_mapInfo","_firstTmxLayer","_tiledMap","size","_layerSize","_layerName","name","_tiles","_properties","properties","_minGID","_maxGID","_opacity","_renderOrder","renderOrder","_staggerAxis","getStaggerAxis","_staggerIndex","getStaggerIndex","_hexSideLength","getHexSideLength","_animations","getTileAnimations","_tilesets","_textures","_texGrids","_layerOrientation","orientation","_mapTileSize","getTileSize","maptw","width","mapth","height","layerW","layerH","TiledMap","Orientation","HEX","StaggerAxis","StaggerIndex","_odd_even","STAGGERINDEX_ODD","STAGGERAXIS_X","_diffX1","_diffY1","Math","floor","node","setContentSize","ISO","wh","_offset","offset","x","y","_useAutomaticVertexZ","_vertexZvalue","_syncAnchorPoint","_prepareToRender","_updateCulling","CC_EDITOR","enableCulling","_enableCulling","_cullingRect","_cacheCullingDirty","_updateWorldMatrix","Mat4","invert","_worldMatrix","rect","visibleRect","camera","Camera","findCamera","getScreenToWorldPoint","Vec2","transformMat4","_updateViewPort","_traverseAllGrid","tiles","tilesetIndexArr","_tilesetIndexArr","tilesetIndexToArrIndex","_tilesetIndexToArrIndex","TileFlag","FLIPPED_MASK","singleTexture","isSingleTexture","length","i","gid","grid","error","tilesetIdx","texId","undefined","push","exports","module"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAIA,UAAU,GAAGC,EAAE,CAACC,IAAI,EAAE;AAC1B,IAAIC,UAAU,GAAGF,EAAE,CAACG,EAAE,EAAE;AACxB,IAAIC,WAAW,GAAGJ,EAAE,CAACG,EAAE,EAAE;AAAC,IAAAE,QAAA,GAEXL,EAAE,CAACM,KAAK,CAAC;EACpB,WAASN,EAAE,CAACO,UAAU;EAEtB;EACAC,KAAK,WAAAA,MAACC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,aAAa,EAAE;IAC7E;IACA,IAAI,CAACC,aAAa,GAAG,IAAI;IACzB,IAAI,CAACC,UAAU,GAAGR,SAAS;IAC3B,IAAI,CAACS,QAAQ,GAAGR,OAAO;IACvB;IACA,IAAI,CAACS,cAAc,GAAGJ,aAAa;IACnC,IAAI,CAACK,SAAS,GAAGN,QAAQ;IACzB;;IAEA,IAAIO,IAAI,GAAGZ,SAAS,CAACa,UAAU;;IAE/B;IACA,IAAI,CAACC,UAAU,GAAGd,SAAS,CAACe,IAAI;IAChC,IAAI,CAACC,MAAM,GAAGhB,SAAS,CAACgB,MAAM;IAC9B,IAAI,CAACC,WAAW,GAAGjB,SAAS,CAACkB,UAAU;IACvC,IAAI,CAACL,UAAU,GAAGD,IAAI;IACtB,IAAI,CAACO,OAAO,GAAGnB,SAAS,CAACmB,OAAO;IAChC,IAAI,CAACC,OAAO,GAAGpB,SAAS,CAACoB,OAAO;IAChC,IAAI,CAACC,QAAQ,GAAGrB,SAAS,CAACqB,QAAQ;IAClC,IAAI,CAACC,YAAY,GAAGrB,OAAO,CAACsB,WAAW;IACvC,IAAI,CAACC,YAAY,GAAGvB,OAAO,CAACwB,cAAc,EAAE;IAC5C,IAAI,CAACC,aAAa,GAAGzB,OAAO,CAAC0B,eAAe,EAAE;IAC9C,IAAI,CAACC,cAAc,GAAG3B,OAAO,CAAC4B,gBAAgB,EAAE;IAChD,IAAI,CAACC,WAAW,GAAG7B,OAAO,CAAC8B,iBAAiB,EAAE;;IAE9C;IACA,IAAI,CAACC,SAAS,GAAG9B,QAAQ;IACzB;IACA,IAAI,CAAC+B,SAAS,GAAG9B,QAAQ;IACzB;IACA,IAAI,CAAC+B,SAAS,GAAG9B,QAAQ;;IAEzB;IACA,IAAI,CAAC+B,iBAAiB,GAAGlC,OAAO,CAACmC,WAAW;IAC5C,IAAI,CAACC,YAAY,GAAGpC,OAAO,CAACqC,WAAW,EAAE;IAEzC,IAAIC,KAAK,GAAG,IAAI,CAACF,YAAY,CAACG,KAAK;IACnC,IAAIC,KAAK,GAAG,IAAI,CAACJ,YAAY,CAACK,MAAM;IACpC,IAAIC,MAAM,GAAG,IAAI,CAAC9B,UAAU,CAAC2B,KAAK;IAClC,IAAII,MAAM,GAAG,IAAI,CAAC/B,UAAU,CAAC6B,MAAM;IAEnC,IAAI,IAAI,CAACP,iBAAiB,KAAK5C,EAAE,CAACsD,QAAQ,CAACC,WAAW,CAACC,GAAG,EAAE;MACxD;MACA,IAAMF,QAAQ,GAAGtD,EAAE,CAACsD,QAAQ;MAC5B,IAAMG,WAAW,GAAGH,QAAQ,CAACG,WAAW;MACxC,IAAMC,YAAY,GAAGJ,QAAQ,CAACI,YAAY;MAC1C,IAAIT,KAAK,GAAG,CAAC;QAAEE,MAAM,GAAG,CAAC;MAEzB,IAAI,CAACQ,SAAS,GAAI,IAAI,CAACxB,aAAa,KAAKuB,YAAY,CAACE,gBAAgB,GAAI,CAAC,GAAG,CAAC,CAAC;MAChF,IAAI,IAAI,CAAC3B,YAAY,KAAKwB,WAAW,CAACI,aAAa,EAAE;QACjD,IAAI,CAACC,OAAO,GAAG,CAACd,KAAK,GAAG,IAAI,CAACX,cAAc,IAAI,CAAC;QAChD,IAAI,CAAC0B,OAAO,GAAG,CAAC;QAChBZ,MAAM,GAAGD,KAAK,IAAIG,MAAM,GAAG,GAAG,CAAC;QAC/BJ,KAAK,GAAG,CAACD,KAAK,GAAG,IAAI,CAACX,cAAc,IAAI2B,IAAI,CAACC,KAAK,CAACb,MAAM,GAAG,CAAC,CAAC,GAAGJ,KAAK,IAAII,MAAM,GAAG,CAAC,CAAC;MACzF,CAAC,MAAM;QACH,IAAI,CAACU,OAAO,GAAG,CAAC;QAChB,IAAI,CAACC,OAAO,GAAG,CAACb,KAAK,GAAG,IAAI,CAACb,cAAc,IAAI,CAAC;QAChDY,KAAK,GAAGD,KAAK,IAAII,MAAM,GAAG,GAAG,CAAC;QAC9BD,MAAM,GAAG,CAACD,KAAK,GAAG,IAAI,CAACb,cAAc,IAAI2B,IAAI,CAACC,KAAK,CAACZ,MAAM,GAAG,CAAC,CAAC,GAAGH,KAAK,IAAIG,MAAM,GAAG,CAAC,CAAC;MAC1F;MACA,IAAI,CAACa,IAAI,CAACC,cAAc,CAAClB,KAAK,EAAEE,MAAM,CAAC;IAC3C,CAAC,MAAM,IAAI,IAAI,CAACP,iBAAiB,KAAK5C,EAAE,CAACsD,QAAQ,CAACC,WAAW,CAACa,GAAG,EAAE;MAC/D,IAAIC,EAAE,GAAGjB,MAAM,GAAGC,MAAM;MACxB,IAAI,CAACa,IAAI,CAACC,cAAc,CAACnB,KAAK,GAAG,GAAG,GAAGqB,EAAE,EAAEnB,KAAK,GAAG,GAAG,GAAGmB,EAAE,CAAC;IAChE,CAAC,MAAM;MACH,IAAI,CAACH,IAAI,CAACC,cAAc,CAACf,MAAM,GAAGJ,KAAK,EAAEK,MAAM,GAAGH,KAAK,CAAC;IAC5D;;IAEA;IACA,IAAI,CAACoB,OAAO,GAAGtE,EAAE,CAACG,EAAE,CAACM,SAAS,CAAC8D,MAAM,CAACC,CAAC,EAAE,CAAC/D,SAAS,CAAC8D,MAAM,CAACE,CAAC,CAAC;IAC7D,IAAI,CAACC,oBAAoB,GAAG,KAAK;IACjC,IAAI,CAACC,aAAa,GAAG,CAAC;IACtB,IAAI,CAACC,gBAAgB,EAAE;IACvB,IAAI,CAACC,gBAAgB,EAAE;EAC3B,CAAC;EACDC,cAAc,WAAAA,eAAA,EAAG;IACb,IAAIC,SAAS,EAAE;MACX,IAAI,CAACC,aAAa,CAAC,KAAK,CAAC;IAC7B,CAAC,MAAM,IAAI,IAAI,CAACC,cAAc,EAAE;MAC5B;MACA;MACA,IAAIlE,aAAa,GAAG,IAAI,CAACI,cAAc;MACvC,IAAI,CAAC,CAACJ,aAAa,EAAE;QACjB,IAAI,CAACmE,YAAY,GAAGnE,aAAa,CAACmE,YAAY;QAC9C,IAAI,CAAClE,aAAa,GAAGD,aAAa,CAACoE,kBAAkB;QACrD;MACJ;MACA;;MAEA,IAAI,CAACjB,IAAI,CAACkB,kBAAkB,EAAE;MAC9BpF,EAAE,CAACqF,IAAI,CAACC,MAAM,CAACvF,UAAU,EAAE,IAAI,CAACmE,IAAI,CAACqB,YAAY,CAAC;MAClD,IAAIC,IAAI,GAAGxF,EAAE,CAACyF,WAAW;MACzB,IAAIC,MAAM,GAAG1F,EAAE,CAAC2F,MAAM,CAACC,UAAU,CAAC,IAAI,CAAC1B,IAAI,CAAC;MAC5C,IAAIwB,MAAM,EAAE;QACRxF,UAAU,CAACsE,CAAC,GAAG,CAAC;QAChBtE,UAAU,CAACuE,CAAC,GAAG,CAAC;QAChBrE,WAAW,CAACoE,CAAC,GAAGtE,UAAU,CAACsE,CAAC,GAAGgB,IAAI,CAACvC,KAAK;QACzC7C,WAAW,CAACqE,CAAC,GAAGvE,UAAU,CAACuE,CAAC,GAAGe,IAAI,CAACrC,MAAM;QAC1CuC,MAAM,CAACG,qBAAqB,CAAC3F,UAAU,EAAEA,UAAU,CAAC;QACpDwF,MAAM,CAACG,qBAAqB,CAACzF,WAAW,EAAEA,WAAW,CAAC;QACtDJ,EAAE,CAAC8F,IAAI,CAACC,aAAa,CAAC7F,UAAU,EAAEA,UAAU,EAAEH,UAAU,CAAC;QACzDC,EAAE,CAAC8F,IAAI,CAACC,aAAa,CAAC3F,WAAW,EAAEA,WAAW,EAAEL,UAAU,CAAC;QAE3D,IAAI,CAACiG,eAAe,CAAC9F,UAAU,CAACsE,CAAC,EAAEtE,UAAU,CAACuE,CAAC,EAAErE,WAAW,CAACoE,CAAC,GAAGtE,UAAU,CAACsE,CAAC,EAAEpE,WAAW,CAACqE,CAAC,GAAGvE,UAAU,CAACuE,CAAC,CAAC;QAC5G;QACA;QACA,IAAI,CAAC1D,aAAa,EAAE;UAChB,IAAI,CAACoE,kBAAkB,GAAG,IAAI,CAACnE,aAAa;QAChD;QACA;MACJ;IACJ;EACJ,CAAC;EACDiF,gBAAgB,WAAAA,iBAAA,EAAI;IAChB,IAAIC,KAAK,GAAG,IAAI,CAACzE,MAAM;IACvB,IAAIZ,QAAQ,GAAG,IAAI,CAAC8B,SAAS;IAC7B,IAAIwD,eAAe,GAAG,IAAI,CAACC,gBAAgB;IAC3C,IAAIC,sBAAsB,GAAG,IAAI,CAACC,uBAAuB,GAAG,CAAC,CAAC;IAE9D,IAAMhD,QAAQ,GAAGtD,EAAE,CAACsD,QAAQ;IAC5B,IAAMiD,QAAQ,GAAGjD,QAAQ,CAACiD,QAAQ;IAClC,IAAMC,YAAY,GAAGD,QAAQ,CAACC,YAAY;IAE1C,IAAIC,aAAa,GAAG,IAAI,CAACrF,SAAS,CAACsF,eAAe,EAAE;IAEpDP,eAAe,CAACQ,MAAM,GAAG,CAAC;IAC1B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGV,KAAK,CAACS,MAAM,EAAEC,CAAC,EAAE,EAAE;MACnC,IAAIC,GAAG,GAAGX,KAAK,CAACU,CAAC,CAAC;MAClB,IAAIC,GAAG,KAAK,CAAC,EAAE;MACfA,GAAG,GAAI,CAACA,GAAG,GAAGL,YAAY,MAAM,CAAE;MAClC,IAAIM,IAAI,GAAGjG,QAAQ,CAACgG,GAAG,CAAC;MACxB,IAAI,CAACC,IAAI,EAAE;QACP9G,EAAE,CAAC+G,KAAK,CAAC,qDAAqD,EAAEF,GAAG,CAAC;QACpE;MACJ;MACA,IAAIG,UAAU,GAAGF,IAAI,CAACG,KAAK;MAC3B,IAAIZ,sBAAsB,CAACW,UAAU,CAAC,KAAKE,SAAS,EAAE;MACtDb,sBAAsB,CAACW,UAAU,CAAC,GAAGb,eAAe,CAACQ,MAAM;MAC3DR,eAAe,CAACgB,IAAI,CAACH,UAAU,CAAC;;MAEhC;MACA,IAAIP,aAAa,EAAE;QACf;MACJ;MACA;IACJ;EACJ;AACJ,CAAC,CAAC;AAAAW,OAAA,cAAA/G,QAAA;AAAAgH,MAAA,CAAAD,OAAA,GAAAA,OAAA","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/class.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\nlet _mat4_temp = cc.mat4();\r\nlet _vec2_temp = cc.v2();\r\nlet _vec2_temp2 = cc.v2();\r\n\r\nexport default cc.Class({\r\n extends: cc.TiledLayer,\r\n\r\n // 此处修改 增加firstTmxLayer参数\r\n _init(layerInfo, mapInfo, tilesets, textures, texGrids, tiledMap, firstTmxLayer) {\r\n // 修改结束\r\n this._cullingDirty = true;\r\n this._layerInfo = layerInfo;\r\n this._mapInfo = mapInfo;\r\n // 此处修改 保存firstTmxLayer参数\r\n this._firstTmxLayer = firstTmxLayer;\r\n this._tiledMap = tiledMap;\r\n // 修改结束\r\n\r\n let size = layerInfo._layerSize;\r\n\r\n // layerInfo\r\n this._layerName = layerInfo.name;\r\n this._tiles = layerInfo._tiles;\r\n this._properties = layerInfo.properties;\r\n this._layerSize = size;\r\n this._minGID = layerInfo._minGID;\r\n this._maxGID = layerInfo._maxGID;\r\n this._opacity = layerInfo._opacity;\r\n this._renderOrder = mapInfo.renderOrder;\r\n this._staggerAxis = mapInfo.getStaggerAxis();\r\n this._staggerIndex = mapInfo.getStaggerIndex();\r\n this._hexSideLength = mapInfo.getHexSideLength();\r\n this._animations = mapInfo.getTileAnimations();\r\n\r\n // tilesets\r\n this._tilesets = tilesets;\r\n // textures\r\n this._textures = textures;\r\n // grid texture\r\n this._texGrids = texGrids;\r\n\r\n // mapInfo\r\n this._layerOrientation = mapInfo.orientation;\r\n this._mapTileSize = mapInfo.getTileSize();\r\n\r\n let maptw = this._mapTileSize.width;\r\n let mapth = this._mapTileSize.height;\r\n let layerW = this._layerSize.width;\r\n let layerH = this._layerSize.height;\r\n\r\n if (this._layerOrientation === cc.TiledMap.Orientation.HEX) {\r\n // handle hex map\r\n const TiledMap = cc.TiledMap;\r\n const StaggerAxis = TiledMap.StaggerAxis;\r\n const StaggerIndex = TiledMap.StaggerIndex;\r\n let width = 0, height = 0;\r\n\r\n this._odd_even = (this._staggerIndex === StaggerIndex.STAGGERINDEX_ODD) ? 1 : -1;\r\n if (this._staggerAxis === StaggerAxis.STAGGERAXIS_X) {\r\n this._diffX1 = (maptw - this._hexSideLength) / 2;\r\n this._diffY1 = 0;\r\n height = mapth * (layerH + 0.5);\r\n width = (maptw + this._hexSideLength) * Math.floor(layerW / 2) + maptw * (layerW % 2);\r\n } else {\r\n this._diffX1 = 0;\r\n this._diffY1 = (mapth - this._hexSideLength) / 2;\r\n width = maptw * (layerW + 0.5);\r\n height = (mapth + this._hexSideLength) * Math.floor(layerH / 2) + mapth * (layerH % 2);\r\n }\r\n this.node.setContentSize(width, height);\r\n } else if (this._layerOrientation === cc.TiledMap.Orientation.ISO) {\r\n let wh = layerW + layerH;\r\n this.node.setContentSize(maptw * 0.5 * wh, mapth * 0.5 * wh);\r\n } else {\r\n this.node.setContentSize(layerW * maptw, layerH * mapth);\r\n }\r\n\r\n // offset (after layer orientation is set);\r\n this._offset = cc.v2(layerInfo.offset.x, -layerInfo.offset.y);\r\n this._useAutomaticVertexZ = false;\r\n this._vertexZvalue = 0;\r\n this._syncAnchorPoint();\r\n this._prepareToRender();\r\n },\r\n _updateCulling() {\r\n if (CC_EDITOR) {\r\n this.enableCulling(false);\r\n } else if (this._enableCulling) {\r\n // 此处修改 若不为首个layer 直接复用firstLayer的结果\r\n // this._firstTmxLayer不为空时 表示当前layer不是首个layer\r\n let firstTmxLayer = this._firstTmxLayer;\r\n if (!!firstTmxLayer) {\r\n this._cullingRect = firstTmxLayer._cullingRect;\r\n this._cullingDirty = firstTmxLayer._cacheCullingDirty;\r\n return;\r\n }\r\n // 修改结束\r\n\r\n this.node._updateWorldMatrix();\r\n cc.Mat4.invert(_mat4_temp, this.node._worldMatrix);\r\n let rect = cc.visibleRect;\r\n let camera = cc.Camera.findCamera(this.node);\r\n if (camera) {\r\n _vec2_temp.x = 0;\r\n _vec2_temp.y = 0;\r\n _vec2_temp2.x = _vec2_temp.x + rect.width;\r\n _vec2_temp2.y = _vec2_temp.y + rect.height;\r\n camera.getScreenToWorldPoint(_vec2_temp, _vec2_temp);\r\n camera.getScreenToWorldPoint(_vec2_temp2, _vec2_temp2);\r\n cc.Vec2.transformMat4(_vec2_temp, _vec2_temp, _mat4_temp);\r\n cc.Vec2.transformMat4(_vec2_temp2, _vec2_temp2, _mat4_temp);\r\n\r\n this._updateViewPort(_vec2_temp.x, _vec2_temp.y, _vec2_temp2.x - _vec2_temp.x, _vec2_temp2.y - _vec2_temp.y);\r\n // 此处修改 若为首个layer 缓存_cullingDirty。\r\n // _cullingDirty会在填充渲染数据后被改为false 所以需要缓存这里的结果\r\n if (!firstTmxLayer) {\r\n this._cacheCullingDirty = this._cullingDirty;\r\n }\r\n // 修改结束\r\n }\r\n }\r\n },\r\n _traverseAllGrid () {\r\n let tiles = this._tiles;\r\n let texGrids = this._texGrids;\r\n let tilesetIndexArr = this._tilesetIndexArr;\r\n let tilesetIndexToArrIndex = this._tilesetIndexToArrIndex = {};\r\n\r\n const TiledMap = cc.TiledMap;\r\n const TileFlag = TiledMap.TileFlag;\r\n const FLIPPED_MASK = TileFlag.FLIPPED_MASK;\r\n\r\n let singleTexture = this._tiledMap.isSingleTexture();\r\n\r\n tilesetIndexArr.length = 0;\r\n for (let i = 0; i < tiles.length; i++) {\r\n let gid = tiles[i];\r\n if (gid === 0) continue;\r\n gid = ((gid & FLIPPED_MASK) >>> 0);\r\n let grid = texGrids[gid];\r\n if (!grid) {\r\n cc.error(\"CCTiledLayer:_traverseAllGrid grid is null, gid is:\", gid);\r\n continue;\r\n }\r\n let tilesetIdx = grid.texId;\r\n if (tilesetIndexToArrIndex[tilesetIdx] !== undefined) continue;\r\n tilesetIndexToArrIndex[tilesetIdx] = tilesetIndexArr.length;\r\n tilesetIndexArr.push(tilesetIdx);\r\n \r\n // 此处修改 当只有一个图集时 可以直接停止遍历\r\n if (singleTexture) {\r\n break;\r\n }\r\n // 修改结束\r\n }\r\n },\r\n});\r\n"]} \ No newline at end of file diff --git a/library/imports/d8/d8bf615a-752c-47ba-84e3-8ef47d9c4de1.jpg b/library/imports/d8/d8bf615a-752c-47ba-84e3-8ef47d9c4de1.jpg new file mode 100644 index 0000000..c48cb2c Binary files /dev/null and b/library/imports/d8/d8bf615a-752c-47ba-84e3-8ef47d9c4de1.jpg differ diff --git a/library/imports/d8/d8bf615a-752c-47ba-84e3-8ef47d9c4de1.json b/library/imports/d8/d8bf615a-752c-47ba-84e3-8ef47d9c4de1.json new file mode 100644 index 0000000..9ddba82 --- /dev/null +++ b/library/imports/d8/d8bf615a-752c-47ba-84e3-8ef47d9c4de1.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/db/db683201-2fb0-4753-bf65-3ae7ef314627.json b/library/imports/db/db683201-2fb0-4753-bf65-3ae7ef314627.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/db/db683201-2fb0-4753-bf65-3ae7ef314627.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/db/db683201-2fb0-4753-bf65-3ae7ef314627.png b/library/imports/db/db683201-2fb0-4753-bf65-3ae7ef314627.png new file mode 100644 index 0000000..43e732d Binary files /dev/null and b/library/imports/db/db683201-2fb0-4753-bf65-3ae7ef314627.png differ diff --git a/library/imports/dd/ddc9da1a-c580-42d3-9b11-cb8e4356e9ea.json b/library/imports/dd/ddc9da1a-c580-42d3-9b11-cb8e4356e9ea.json new file mode 100644 index 0000000..810bc23 --- /dev/null +++ b/library/imports/dd/ddc9da1a-c580-42d3-9b11-cb8e4356e9ea.json @@ -0,0 +1,28 @@ +{ + "__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/de/de906884-fc75-47a4-8e95-3bb20cbca688.js b/library/imports/de/de906884-fc75-47a4-8e95-3bb20cbca688.js new file mode 100644 index 0000000..ee52025 --- /dev/null +++ b/library/imports/de/de906884-fc75-47a4-8e95-3bb20cbca688.js @@ -0,0 +1,63 @@ +"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(); \ No newline at end of file diff --git a/library/imports/de/de906884-fc75-47a4-8e95-3bb20cbca688.js.map b/library/imports/de/de906884-fc75-47a4-8e95-3bb20cbca688.js.map new file mode 100644 index 0000000..42d5b3f --- /dev/null +++ b/library/imports/de/de906884-fc75-47a4-8e95-3bb20cbca688.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\shop\\script\\item.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEM,IAAA,KAAwB,EAAE,CAAC,UAAU,EAAnC,OAAO,aAAA,EAAE,QAAQ,cAAkB,CAAC;AAG5C;IAAsC,4BAAY;IAAlD;QAAA,qEA2BC;QAxBG,WAAK,GAAa,IAAI,CAAC;QAGvB,UAAI,GAAW,OAAO,CAAC;;QAoBvB,iBAAiB;IACrB,CAAC;IApBG,wBAAwB;IAExB,eAAe;IAEf,wBAAK,GAAL;IAEA,CAAC;IAED,QAAQ;IACR,0BAAO,GAAP,UAAQ,QAAQ;QACZ,4CAA4C;QAC5C,gDAAgD;QAChD,cAAc;QACd,IAAI;QACJ,yEAAyE;QACzE,6BAA6B;QAC7B,yCAAyC;IAC7C,CAAC;IArBD;QADC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;2CACI;IAGvB;QADC,QAAQ;0CACc;IANN,QAAQ;QAD5B,OAAO;OACa,QAAQ,CA2B5B;IAAD,eAAC;CA3BD,AA2BC,CA3BqC,EAAE,CAAC,SAAS,GA2BjD;kBA3BoB,QAAQ","file":"","sourceRoot":"/","sourcesContent":["\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class NewClass extends cc.Component {\n\n @property(cc.Label)\n label: cc.Label = null;\n\n @property\n text: string = 'hello';\n // LIFE-CYCLE CALLBACKS:\n\n // onLoad () {}\n\n start() {\n\n }\n\n //购买商品道具\n buyProp(propName) {\n // if(cc.fx.GameConfig.GM_INFO.coin < 1500){\n // MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\n // return;\n // }\n // let propWindow = this.node.parent.parent.getChildByName(\"propWindow\");\n // propWindow.active = false;\n // cc.fx.GameConfig.GM_INFO.coin -= 1500;\n }\n\n // update (dt) {}\n}\n"]} \ No newline at end of file diff --git a/library/imports/de/de943f06-3742-460c-8d8f-0b03bd071100.json b/library/imports/de/de943f06-3742-460c-8d8f-0b03bd071100.json new file mode 100644 index 0000000..b48493d --- /dev/null +++ b/library/imports/de/de943f06-3742-460c-8d8f-0b03bd071100.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "cost_2", + "texture": "227db116-a70e-4157-b553-bfe8d6d18a6a", + "atlas": "", + "rect": [ + 0, + 0, + 25, + 37 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 25, + 37 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/df/df248952-2e59-4e66-9087-c06a90e587b7.js b/library/imports/df/df248952-2e59-4e66-9087-c06a90e587b7.js index fb71e2f..07c6b41 100644 --- a/library/imports/df/df248952-2e59-4e66-9087-c06a90e587b7.js +++ b/library/imports/df/df248952-2e59-4e66-9087-c06a90e587b7.js @@ -82,6 +82,7 @@ var GameManager = /** @class */ (function (_super) { } // 将加载的 Prefab 赋值给 Block_Array _this.Block_Array = assets; + console.log('方块加载成功,共加载了', _this.Block_Array.length, '个方块'); _this.setSort(); _this.load1 = true; }); @@ -94,6 +95,7 @@ var GameManager = /** @class */ (function (_super) { // 将加载的 Prefab 赋值给 Block_Array _this.Wall_Prefab = assets; _this.load2 = true; + console.log('墙加载成功,共加载了', _this.Wall_Prefab.length, '个墙'); _this.setWallPrefabSort(); }); // debugger; diff --git a/library/imports/df/df248952-2e59-4e66-9087-c06a90e587b7.js.map b/library/imports/df/df248952-2e59-4e66-9087-c06a90e587b7.js.map index c28c802..eedca5c 100644 --- a/library/imports/df/df248952-2e59-4e66-9087-c06a90e587b7.js.map +++ b/library/imports/df/df248952-2e59-4e66-9087-c06a90e587b7.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 \r\n console.error('动态加载 Prefab 失败:', 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 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.error('动态加载 Prefab 失败:', 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 this.setWallPrefabSort();\r\n });\r\n\r\n // debugger;\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 // });\r\n // }, 1000);\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 }\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 = 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 \r\n console.error('动态加载 Prefab 失败:', 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.error('动态加载 Prefab 失败:', 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 // debugger;\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 // });\r\n // }, 1000);\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 }\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 diff --git a/library/imports/df/dfa1190c-5129-4775-b495-d2aca6a3a5bf.json b/library/imports/df/dfa1190c-5129-4775-b495-d2aca6a3a5bf.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/df/dfa1190c-5129-4775-b495-d2aca6a3a5bf.json @@ -0,0 +1,4 @@ +{ + "__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 new file mode 100644 index 0000000..6b42937 Binary files /dev/null and b/library/imports/df/dfa1190c-5129-4775-b495-d2aca6a3a5bf.png differ diff --git a/library/imports/e1/e1cda82d-d022-47f6-9a4f-a7d1989ef7de.json b/library/imports/e1/e1cda82d-d022-47f6-9a4f-a7d1989ef7de.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/e1/e1cda82d-d022-47f6-9a4f-a7d1989ef7de.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/e1/e1cda82d-d022-47f6-9a4f-a7d1989ef7de.png b/library/imports/e1/e1cda82d-d022-47f6-9a4f-a7d1989ef7de.png new file mode 100644 index 0000000..4aaa0a0 Binary files /dev/null and b/library/imports/e1/e1cda82d-d022-47f6-9a4f-a7d1989ef7de.png differ diff --git a/library/imports/e3/e338b14d-e1c9-4505-82fd-13cc88d15f9e.json b/library/imports/e3/e338b14d-e1c9-4505-82fd-13cc88d15f9e.json new file mode 100644 index 0000000..d34bef8 --- /dev/null +++ b/library/imports/e3/e338b14d-e1c9-4505-82fd-13cc88d15f9e.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins_sz9", + "texture": "3b8e0a01-7634-402d-a8d2-349fbbc809f6", + "atlas": "", + "rect": [ + 0, + 0, + 43, + 61 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 43, + 61 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/e4/e47e7785-a214-441f-8ecb-dfbec124ab29.json b/library/imports/e4/e47e7785-a214-441f-8ecb-dfbec124ab29.json index bcf6803..5cd4fc8 100644 --- a/library/imports/e4/e47e7785-a214-441f-8ecb-dfbec124ab29.json +++ b/library/imports/e4/e47e7785-a214-441f-8ecb-dfbec124ab29.json @@ -647,7 +647,7 @@ } } }, - "_atlasText": "\nskeleton.png\nsize: 96,96\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\n连接块/kou2shu\n rotate: false\n xy: 2, 39\n size: 24, 52\n orig: 24, 52\n offset: 0, 0\n index: -1\n连接块/luosi\n rotate: false\n xy: 2, 16\n size: 23, 21\n orig: 23, 21\n offset: 0, 0\n index: -1\n连接块/luosi2\n rotate: false\n xy: 2, 2\n size: 12, 12\n orig: 12, 12\n offset: 0, 0\n index: -1\n", + "_atlasText": "\r\nskeleton.png\r\nsize: 96,96\r\nformat: RGBA8888\r\nfilter: Linear,Linear\r\nrepeat: none\r\n连接块/kou2shu\r\n rotate: false\r\n xy: 2, 39\r\n size: 24, 52\r\n orig: 24, 52\r\n offset: 0, 0\r\n index: -1\r\n连接块/luosi\r\n rotate: false\r\n xy: 2, 16\r\n size: 23, 21\r\n orig: 23, 21\r\n offset: 0, 0\r\n index: -1\r\n连接块/luosi2\r\n rotate: false\r\n xy: 2, 2\r\n size: 12, 12\r\n orig: 12, 12\r\n offset: 0, 0\r\n index: -1\r\n", "textures": [ { "__uuid__": "27f94295-c1af-4dae-a599-ec9e97060967" diff --git a/library/imports/e4/e4e164e2-1df8-4177-983b-46399fca88ec.json b/library/imports/e4/e4e164e2-1df8-4177-983b-46399fca88ec.json new file mode 100644 index 0000000..adff274 --- /dev/null +++ b/library/imports/e4/e4e164e2-1df8-4177-983b-46399fca88ec.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins_sz6", + "texture": "08a0b3cf-1219-46ba-8171-206dfe24151b", + "atlas": "", + "rect": [ + 0, + 0, + 44, + 60 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 44, + 60 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/e5/e5988eaf-bd0d-45a7-811e-6a186c615794.json b/library/imports/e5/e5988eaf-bd0d-45a7-811e-6a186c615794.json new file mode 100644 index 0000000..6678b21 --- /dev/null +++ b/library/imports/e5/e5988eaf-bd0d-45a7-811e-6a186c615794.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "鍟嗗煄", + "texture": "d8bf615a-752c-47ba-84e3-8ef47d9c4de1", + "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/e6/e64e1a97-c93f-4257-ab34-80341d8ff79d.js b/library/imports/e6/e64e1a97-c93f-4257-ab34-80341d8ff79d.js index 39fbf83..262af2e 100644 --- a/library/imports/e6/e64e1a97-c93f-4257-ab34-80341d8ff79d.js +++ b/library/imports/e6/e64e1a97-c93f-4257-ab34-80341d8ff79d.js @@ -9,259 +9,216 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }(void 0, function () { var t = t || function (t, r) { var e = Object.create || function () { - function t() {} - - return function (r) { - var e; - return t.prototype = r, e = new t(), t.prototype = null, e; - }; - }(), - i = {}, - n = i.lib = {}, - o = n.Base = function () { - return { - extend: function extend(t) { - var r = e(this); - return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { - r.$super.init.apply(this, arguments); - }), r.init.prototype = r, r.$super = this, r; - }, - create: function create() { - var t = this.extend(); - return t.init.apply(t, arguments), t; - }, - init: function init() {}, - mixIn: function mixIn(t) { - for (var r in t) { - t.hasOwnProperty(r) && (this[r] = t[r]); + function t() {} + return function (r) { + var e; + return t.prototype = r, e = new t(), t.prototype = null, e; + }; + }(), + i = {}, + n = i.lib = {}, + o = n.Base = function () { + return { + extend: function extend(t) { + var r = e(this); + return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { + r.$super.init.apply(this, arguments); + }), r.init.prototype = r, r.$super = this, r; + }, + create: function create() { + var t = this.extend(); + return t.init.apply(t, arguments), t; + }, + init: function init() {}, + mixIn: function mixIn(t) { + for (var r in t) t.hasOwnProperty(r) && (this[r] = t[r]); + t.hasOwnProperty("toString") && (this.toString = t.toString); + }, + clone: function clone() { + return this.init.prototype.extend(this); } - - t.hasOwnProperty("toString") && (this.toString = t.toString); + }; + }(), + s = n.WordArray = o.extend({ + init: function init(t, e) { + t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length; }, - clone: function clone() { - return this.init.prototype.extend(this); - } - }; - }(), - s = n.WordArray = o.extend({ - init: function init(t, e) { - t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length; - }, - toString: function toString(t) { - return (t || c).stringify(this); - }, - concat: function concat(t) { - var r = this.words, + toString: function toString(t) { + return (t || c).stringify(this); + }, + concat: function concat(t) { + var r = this.words, e = t.words, i = this.sigBytes, n = t.sigBytes; - if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { - var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; - r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8; - } else for (var o = 0; o < n; o += 4) { - r[i + o >>> 2] = e[o >>> 2]; - } - return this.sigBytes += n, this; - }, - clamp: function clamp() { - var r = this.words, + if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { + var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; + r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8; + } else for (var o = 0; o < n; o += 4) r[i + o >>> 2] = e[o >>> 2]; + return this.sigBytes += n, this; + }, + clamp: function clamp() { + var r = this.words, e = this.sigBytes; - r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4); - }, - clone: function clone() { - var t = o.clone.call(this); - return t.words = this.words.slice(0), t; - }, - random: function random(r) { - for (var e, i = [], n = function n(r) { - var r = r, - e = 987654321, - i = 4294967295; - return function () { - e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; - var n = (e << 16) + r & i; - return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1); - }; - }, o = 0; o < r; o += 4) { - var a = n(4294967296 * (e || t.random())); - e = 987654071 * a(), i.push(4294967296 * a() | 0); + r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4); + }, + clone: function clone() { + var t = o.clone.call(this); + return t.words = this.words.slice(0), t; + }, + random: function random(r) { + for (var e, i = [], n = function n(r) { + var r = r, + e = 987654321, + i = 4294967295; + return function () { + e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; + var n = (e << 16) + r & i; + return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1); + }; + }, o = 0; o < r; o += 4) { + var a = n(4294967296 * (e || t.random())); + e = 987654071 * a(), i.push(4294967296 * a() | 0); + } + return new s.init(i, r); } - - return new s.init(i, r); - } - }), - a = i.enc = {}, - c = a.Hex = { - stringify: function stringify(t) { - for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { - var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; - i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)); - } - - return i.join(""); - }, - parse: function parse(t) { - for (var r = t.length, e = [], i = 0; i < r; i += 2) { - e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; - } - - return new s.init(e, r / 2); - } - }, - h = a.Latin1 = { - stringify: function stringify(t) { - for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { - var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; - i.push(String.fromCharCode(o)); - } - - return i.join(""); - }, - parse: function parse(t) { - for (var r = t.length, e = [], i = 0; i < r; i++) { - e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; - } - - return new s.init(e, r); - } - }, - l = a.Utf8 = { - stringify: function stringify(t) { - try { - return decodeURIComponent(escape(h.stringify(t))); - } catch (t) { - throw new Error("Malformed UTF-8 data"); + }), + a = i.enc = {}, + c = a.Hex = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { + var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; + i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)); + } + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i += 2) e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; + return new s.init(e, r / 2); } }, - parse: function parse(t) { - return h.parse(unescape(encodeURIComponent(t))); - } - }, - f = n.BufferedBlockAlgorithm = o.extend({ - reset: function reset() { - this._data = new s.init(), this._nDataBytes = 0; + h = a.Latin1 = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { + var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; + i.push(String.fromCharCode(o)); + } + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i++) e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; + return new s.init(e, r); + } }, - _append: function _append(t) { - "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes; + l = a.Utf8 = { + stringify: function stringify(t) { + try { + return decodeURIComponent(escape(h.stringify(t))); + } catch (t) { + throw new Error("Malformed UTF-8 data"); + } + }, + parse: function parse(t) { + return h.parse(unescape(encodeURIComponent(t))); + } }, - _process: function _process(r) { - var e = this._data, + f = n.BufferedBlockAlgorithm = o.extend({ + reset: function reset() { + this._data = new s.init(), this._nDataBytes = 0; + }, + _append: function _append(t) { + "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes; + }, + _process: function _process(r) { + var e = this._data, i = e.words, n = e.sigBytes, o = this.blockSize, a = 4 * o, c = n / a; - c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); - var h = c * o, + c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); + var h = c * o, l = t.min(4 * h, n); - - if (h) { - for (var f = 0; f < h; f += o) { - this._doProcessBlock(i, f); + if (h) { + for (var f = 0; f < h; f += o) this._doProcessBlock(i, f); + var u = i.splice(0, h); + e.sigBytes -= l; } - - var u = i.splice(0, h); - e.sigBytes -= l; + return new s.init(u, l); + }, + clone: function clone() { + var t = o.clone.call(this); + return t._data = this._data.clone(), t; + }, + _minBufferSize: 0 + }), + u = (n.Hasher = f.extend({ + cfg: o.extend(), + init: function init(t) { + this.cfg = this.cfg.extend(t), this.reset(); + }, + reset: function reset() { + f.reset.call(this), this._doReset(); + }, + update: function update(t) { + return this._append(t), this._process(), this; + }, + finalize: function finalize(t) { + t && this._append(t); + var r = this._doFinalize(); + return r; + }, + blockSize: 16, + _createHelper: function _createHelper(t) { + return function (r, e) { + return new t.init(e).finalize(r); + }; + }, + _createHmacHelper: function _createHmacHelper(t) { + return function (r, e) { + return new u.HMAC.init(t, e).finalize(r); + }; } - - return new s.init(u, l); - }, - clone: function clone() { - var t = o.clone.call(this); - return t._data = this._data.clone(), t; - }, - _minBufferSize: 0 - }), - u = (n.Hasher = f.extend({ - cfg: o.extend(), - init: function init(t) { - this.cfg = this.cfg.extend(t), this.reset(); - }, - reset: function reset() { - f.reset.call(this), this._doReset(); - }, - update: function update(t) { - return this._append(t), this._process(), this; - }, - finalize: function finalize(t) { - t && this._append(t); - - var r = this._doFinalize(); - - return r; - }, - blockSize: 16, - _createHelper: function _createHelper(t) { - return function (r, e) { - return new t.init(e).finalize(r); - }; - }, - _createHmacHelper: function _createHmacHelper(t) { - return function (r, e) { - return new u.HMAC.init(t, e).finalize(r); - }; - } - }), i.algo = {}); - + }), i.algo = {}); return i; }(Math); - return function () { function r(t, r, e) { - for (var i = [], o = 0, s = 0; s < r; s++) { - if (s % 4) { - var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, - c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; - i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++; - } + for (var i = [], o = 0, s = 0; s < r; s++) if (s % 4) { + var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, + c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; + i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++; } - return n.create(i, o); } - var e = t, - i = e.lib, - n = i.WordArray, - o = e.enc; + i = e.lib, + n = i.WordArray, + o = e.enc; o.Base64 = { stringify: function stringify(t) { var r = t.words, - e = t.sigBytes, - i = this._map; + e = t.sigBytes, + i = this._map; t.clamp(); - - for (var n = [], o = 0; o < e; o += 3) { - for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++) { - n.push(i.charAt(h >>> 6 * (3 - l) & 63)); - } - } - + for (var n = [], o = 0; o < e; o += 3) for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++) n.push(i.charAt(h >>> 6 * (3 - l) & 63)); var f = i.charAt(64); - if (f) for (; n.length % 4;) { - n.push(f); - } + if (f) for (; n.length % 4;) n.push(f); return n.join(""); }, parse: function parse(t) { var e = t.length, - i = this._map, - n = this._reverseMap; - + i = this._map, + n = this._reverseMap; if (!n) { n = this._reverseMap = []; - - for (var o = 0; o < i.length; o++) { - n[i.charCodeAt(o)] = o; - } + for (var o = 0; o < i.length; o++) n[i.charCodeAt(o)] = o; } - var s = i.charAt(64); - if (s) { var a = t.indexOf(s); a !== -1 && (e = a); } - return r(t, e, n); }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" @@ -271,32 +228,26 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); var a = t + (r & e | ~r & i) + n + s; return (a << o | a >>> 32 - o) + r; } - function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; return (a << o | a >>> 32 - o) + r; } - function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; return (a << o | a >>> 32 - o) + r; } - function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; return (a << o | a >>> 32 - o) + r; } - var s = t, - a = s.lib, - c = a.WordArray, - h = a.Hasher, - l = s.algo, - f = []; + a = s.lib, + c = a.WordArray, + h = a.Hasher, + l = s.algo, + f = []; !function () { - for (var t = 0; t < 64; t++) { - f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0; - } + for (var t = 0; t < 64; t++) f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0; }(); var u = l.MD5 = h.extend({ _doReset: function _doReset() { @@ -305,48 +256,45 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); _doProcessBlock: function _doProcessBlock(t, r) { for (var s = 0; s < 16; s++) { var a = r + s, - c = t[a]; + c = t[a]; t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8); } - var h = this._hash.words, - l = t[r + 0], - u = t[r + 1], - d = t[r + 2], - v = t[r + 3], - p = t[r + 4], - _ = t[r + 5], - y = t[r + 6], - g = t[r + 7], - B = t[r + 8], - w = t[r + 9], - k = t[r + 10], - S = t[r + 11], - m = t[r + 12], - x = t[r + 13], - b = t[r + 14], - H = t[r + 15], - z = h[0], - A = h[1], - C = h[2], - D = h[3]; + l = t[r + 0], + u = t[r + 1], + d = t[r + 2], + v = t[r + 3], + p = t[r + 4], + _ = t[r + 5], + y = t[r + 6], + g = t[r + 7], + B = t[r + 8], + w = t[r + 9], + k = t[r + 10], + S = t[r + 11], + m = t[r + 12], + x = t[r + 13], + b = t[r + 14], + H = t[r + 15], + z = h[0], + A = h[1], + C = h[2], + D = h[3]; z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0; }, _doFinalize: function _doFinalize() { var t = this._data, - e = t.words, - i = 8 * this._nDataBytes, - n = 8 * t.sigBytes; + e = t.words, + i = 8 * this._nDataBytes, + n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32; var o = r.floor(i / 4294967296), - s = i; + s = i; e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); - for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { var l = c[h]; c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); } - return a; }, clone: function clone() { @@ -357,126 +305,112 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u); }(Math), function () { var r = t, - e = r.lib, - i = e.WordArray, - n = e.Hasher, - o = r.algo, - s = [], - a = o.SHA1 = n.extend({ - _doReset: function _doReset() { - this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { - if (h < 16) s[h] = 0 | t[r + h];else { - var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; - s[h] = l << 1 | l >>> 31; + e = r.lib, + i = e.WordArray, + n = e.Hasher, + o = r.algo, + s = [], + a = o.SHA1 = n.extend({ + _doReset: function _doReset() { + this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { + if (h < 16) s[h] = 0 | t[r + h];else { + var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; + s[h] = l << 1 | l >>> 31; + } + var f = (i << 5 | i >>> 27) + c + s[h]; + f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f; } - var f = (i << 5 | i >>> 27) + c + s[h]; - f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f; - } - - e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0; - }, - _doFinalize: function _doFinalize() { - var t = this._data, + e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; - return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash; - }, - clone: function clone() { - var t = n.clone.call(this); - return t._hash = this._hash.clone(), t; - } - }); + return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash; + }, + clone: function clone() { + var t = n.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a); }(), function (r) { var e = t, - i = e.lib, - n = i.WordArray, - o = i.Hasher, - s = e.algo, - a = [], - c = []; + i = e.lib, + n = i.WordArray, + o = i.Hasher, + s = e.algo, + a = [], + c = []; !function () { function t(t) { - for (var e = r.sqrt(t), i = 2; i <= e; i++) { - if (!(t % i)) return !1; - } - + for (var e = r.sqrt(t), i = 2; i <= e; i++) if (!(t % i)) return !1; return !0; } - function e(t) { return 4294967296 * (t - (0 | t)) | 0; } - - for (var i = 2, n = 0; n < 64;) { - t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++; - } + for (var i = 2, n = 0; n < 64;) t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++; }(); var h = [], - l = s.SHA256 = o.extend({ - _doReset: function _doReset() { - this._hash = new n.init(a.slice(0)); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { - if (d < 16) h[d] = 0 | t[r + d];else { - var v = h[d - 15], + l = s.SHA256 = o.extend({ + _doReset: function _doReset() { + this._hash = new n.init(a.slice(0)); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { + if (d < 16) h[d] = 0 | t[r + d];else { + var v = h[d - 15], p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, _ = h[d - 2], y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; - h[d] = p + h[d - 7] + y + h[d - 16]; - } - var g = a & l ^ ~a & f, + h[d] = p + h[d - 7] + y + h[d - 16]; + } + var g = a & l ^ ~a & f, B = i & n ^ i & o ^ n & o, w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), S = u + k + g + c[d] + h[d], m = w + B; - u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0; - } - - e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0; - }, - _doFinalize: function _doFinalize() { - var t = this._data, + u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0; + } + e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; - return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash; - }, - clone: function clone() { - var t = o.clone.call(this); - return t._hash = this._hash.clone(), t; - } - }); + return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash; + }, + clone: function clone() { + var t = o.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l); }(Math), function () { function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935; } - var e = t, - i = e.lib, - n = i.WordArray, - o = e.enc; + i = e.lib, + n = i.WordArray, + o = e.enc; o.Utf16 = o.Utf16BE = { stringify: function stringify(t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; i.push(String.fromCharCode(o)); } - return i.join(""); }, parse: function parse(t) { - for (var r = t.length, e = [], i = 0; i < r; i++) { - e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; - } - + for (var r = t.length, e = [], i = 0; i < r; i++) e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; return n.create(e, 2 * r); } }; @@ -486,83 +420,68 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); n.push(String.fromCharCode(s)); } - return n.join(""); }, parse: function parse(t) { - for (var e = t.length, i = [], o = 0; o < e; o++) { - i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); - } - + for (var e = t.length, i = [], o = 0; o < e; o++) i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); return n.create(i, 2 * e); } }; }(), function () { if ("function" == typeof ArrayBuffer) { var r = t, - e = r.lib, - i = e.WordArray, - n = i.init, - o = i.init = function (t) { - if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { - for (var r = t.byteLength, e = [], i = 0; i < r; i++) { - e[i >>> 2] |= t[i] << 24 - i % 4 * 8; - } - - n.call(this, e, r); - } else n.apply(this, arguments); - }; - + e = r.lib, + i = e.WordArray, + n = i.init, + o = i.init = function (t) { + if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { + for (var r = t.byteLength, e = [], i = 0; i < r; i++) e[i >>> 2] |= t[i] << 24 - i % 4 * 8; + n.call(this, e, r); + } else n.apply(this, arguments); + }; o.prototype = i; } }(), function (r) { function e(t, r, e) { return t ^ r ^ e; } - function i(t, r, e) { return t & r | ~t & e; } - function n(t, r, e) { return (t | ~r) ^ e; } - function o(t, r, e) { return t & e | r & ~e; } - function s(t, r, e) { return t ^ (r | ~e); } - function a(t, r) { return t << r | t >>> 32 - r; } - var c = t, - h = c.lib, - l = h.WordArray, - f = h.Hasher, - u = c.algo, - d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), - v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), - p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), - _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), - y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), - g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), - B = u.RIPEMD160 = f.extend({ - _doReset: function _doReset() { - this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - for (var c = 0; c < 16; c++) { - var h = r + c, + h = c.lib, + l = h.WordArray, + f = h.Hasher, + u = c.algo, + d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), + v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), + p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), + _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), + y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), + g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), + B = u.RIPEMD160 = f.extend({ + _doReset: function _doReset() { + this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var c = 0; c < 16; c++) { + var h = r + c, l = t[h]; - t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); - } - - var f, + t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); + } + var f, u, B, w, @@ -579,53 +498,42 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); R = v.words, E = p.words, M = _.words; - S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; - - for (var F, c = 0; c < 80; c += 1) { - F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; - } - - F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F; - }, - _doFinalize: function _doFinalize() { - var t = this._data, + S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; + for (var F, c = 0; c < 80; c += 1) F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; + F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F; + }, + _doFinalize: function _doFinalize() { + var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; - r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); - - for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { - var a = o[s]; - o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8); + r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); + for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { + var a = o[s]; + o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8); + } + return n; + }, + clone: function clone() { + var t = f.clone.call(this); + return t._hash = this._hash.clone(), t; } - - return n; - }, - clone: function clone() { - var t = f.clone.call(this); - return t._hash = this._hash.clone(), t; - } - }); - + }); c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B); }(Math), function () { var r = t, - e = r.lib, - i = e.Base, - n = r.enc, - o = n.Utf8, - s = r.algo; + e = r.lib, + i = e.Base, + n = r.enc, + o = n.Utf8, + s = r.algo; s.HMAC = i.extend({ init: function init(t, r) { t = this._hasher = new t.init(), "string" == typeof r && (r = o.parse(r)); var e = t.blockSize, - i = 4 * e; + i = 4 * e; r.sigBytes > i && (r = t.finalize(r)), r.clamp(); - - for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++) { - a[h] ^= 1549556828, c[h] ^= 909522486; - } - + for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++) a[h] ^= 1549556828, c[h] ^= 909522486; n.sigBytes = s.sigBytes = i, this.reset(); }, reset: function reset() { @@ -637,7 +545,7 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }, finalize: function finalize(t) { var r = this._hasher, - e = r.finalize(t); + e = r.finalize(t); r.reset(); var i = r.finalize(this._oKey.clone().concat(e)); return i; @@ -645,103 +553,89 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }); }(), function () { var r = t, - e = r.lib, - i = e.Base, - n = e.WordArray, - o = r.algo, - s = o.SHA1, - a = o.HMAC, - c = o.PBKDF2 = i.extend({ - cfg: i.extend({ - keySize: 4, - hasher: s, - iterations: 1 - }), - init: function init(t) { - this.cfg = this.cfg.extend(t); - }, - compute: function compute(t, r) { - for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { - var u = i.update(r).finalize(s); - i.reset(); - - for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { - p = i.finalize(p), i.reset(); - - for (var y = p.words, g = 0; g < v; g++) { - d[g] ^= y[g]; + e = r.lib, + i = e.Base, + n = e.WordArray, + o = r.algo, + s = o.SHA1, + a = o.HMAC, + c = o.PBKDF2 = i.extend({ + cfg: i.extend({ + keySize: 4, + hasher: s, + iterations: 1 + }), + init: function init(t) { + this.cfg = this.cfg.extend(t); + }, + compute: function compute(t, r) { + for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { + var u = i.update(r).finalize(s); + i.reset(); + for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { + p = i.finalize(p), i.reset(); + for (var y = p.words, g = 0; g < v; g++) d[g] ^= y[g]; } + o.concat(u), h[0]++; } - - o.concat(u), h[0]++; + return o.sigBytes = 4 * l, o; } - - return o.sigBytes = 4 * l, o; - } - }); - + }); r.PBKDF2 = function (t, r, e) { return c.create(e).compute(t, r); }; }(), function () { var r = t, - e = r.lib, - i = e.Base, - n = e.WordArray, - o = r.algo, - s = o.MD5, - a = o.EvpKDF = i.extend({ - cfg: i.extend({ - keySize: 4, - hasher: s, - iterations: 1 - }), - init: function init(t) { - this.cfg = this.cfg.extend(t); - }, - compute: function compute(t, r) { - for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { - h && i.update(h); - var h = i.update(t).finalize(r); - i.reset(); - - for (var l = 1; l < c; l++) { - h = i.finalize(h), i.reset(); + e = r.lib, + i = e.Base, + n = e.WordArray, + o = r.algo, + s = o.MD5, + a = o.EvpKDF = i.extend({ + cfg: i.extend({ + keySize: 4, + hasher: s, + iterations: 1 + }), + init: function init(t) { + this.cfg = this.cfg.extend(t); + }, + compute: function compute(t, r) { + for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { + h && i.update(h); + var h = i.update(t).finalize(r); + i.reset(); + for (var l = 1; l < c; l++) h = i.finalize(h), i.reset(); + o.concat(h); } - - o.concat(h); + return o.sigBytes = 4 * a, o; } - - return o.sigBytes = 4 * a, o; - } - }); - + }); r.EvpKDF = function (t, r, e) { return a.create(e).compute(t, r); }; }(), function () { var r = t, - e = r.lib, - i = e.WordArray, - n = r.algo, - o = n.SHA256, - s = n.SHA224 = o.extend({ - _doReset: function _doReset() { - this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]); - }, - _doFinalize: function _doFinalize() { - var t = o._doFinalize.call(this); - - return t.sigBytes -= 4, t; - } - }); + e = r.lib, + i = e.WordArray, + n = r.algo, + o = n.SHA256, + s = n.SHA224 = o.extend({ + _doReset: function _doReset() { + this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]); + }, + _doFinalize: function _doFinalize() { + var t = o._doFinalize.call(this); + return t.sigBytes -= 4, t; + } + }); r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s); }(), function (r) { var e = t, - i = e.lib, - n = i.Base, - o = i.WordArray, - s = e.x64 = {}; + i = e.lib, + n = i.Base, + o = i.WordArray, + s = e.x64 = {}; s.Word = n.extend({ init: function init(t, r) { this.high = t, this.low = r; @@ -755,152 +649,119 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); var n = t[i]; e.push(n.high), e.push(n.low); } - return o.create(e, this.sigBytes); }, clone: function clone() { - for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++) { - r[i] = r[i].clone(); - } - + for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++) r[i] = r[i].clone(); return t; } }); }(), function (r) { var e = t, - i = e.lib, - n = i.WordArray, - o = i.Hasher, - s = e.x64, - a = s.Word, - c = e.algo, - h = [], - l = [], - f = []; + i = e.lib, + n = i.WordArray, + o = i.Hasher, + s = e.x64, + a = s.Word, + c = e.algo, + h = [], + l = [], + f = []; !function () { for (var t = 1, r = 0, e = 0; e < 24; e++) { h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; var i = r % 5, - n = (2 * t + 3 * r) % 5; + n = (2 * t + 3 * r) % 5; t = i, r = n; } - - for (var t = 0; t < 5; t++) { - for (var r = 0; r < 5; r++) { - l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; - } - } - + for (var t = 0; t < 5; t++) for (var r = 0; r < 5; r++) l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; for (var o = 1, s = 0; s < 24; s++) { for (var c = 0, u = 0, d = 0; d < 7; d++) { if (1 & o) { var v = (1 << d) - 1; v < 32 ? u ^= 1 << v : c ^= 1 << v - 32; } - 128 & o ? o = o << 1 ^ 113 : o <<= 1; } - f[s] = a.create(c, u); } }(); var u = []; !function () { - for (var t = 0; t < 25; t++) { - u[t] = a.create(); - } + for (var t = 0; t < 25; t++) u[t] = a.create(); }(); var d = c.SHA3 = o.extend({ cfg: o.cfg.extend({ outputLength: 512 }), _doReset: function _doReset() { - for (var t = this._state = [], r = 0; r < 25; r++) { - t[r] = new a.init(); - } - + for (var t = this._state = [], r = 0; r < 25; r++) t[r] = new a.init(); this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; }, _doProcessBlock: function _doProcessBlock(t, r) { for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { var o = t[r + 2 * n], - s = t[r + 2 * n + 1]; + s = t[r + 2 * n + 1]; o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); var a = e[n]; a.high ^= s, a.low ^= o; } - for (var c = 0; c < 24; c++) { for (var d = 0; d < 5; d++) { for (var v = 0, p = 0, _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; v ^= a.high, p ^= a.low; } - var y = u[d]; y.high = v, y.low = p; } - - for (var d = 0; d < 5; d++) { - for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { - var a = e[d + 5 * _]; - a.high ^= v, a.low ^= p; - } + for (var d = 0; d < 5; d++) for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { + var a = e[d + 5 * _]; + a.high ^= v, a.low ^= p; } - for (var S = 1; S < 25; S++) { var a = e[S], - m = a.high, - x = a.low, - b = h[S]; + m = a.high, + x = a.low, + b = h[S]; if (b < 32) var v = m << b | x >>> 32 - b, - p = x << b | m >>> 32 - b;else var v = x << b - 32 | m >>> 64 - b, - p = m << b - 32 | x >>> 64 - b; + p = x << b | m >>> 32 - b;else var v = x << b - 32 | m >>> 64 - b, + p = m << b - 32 | x >>> 64 - b; var H = u[l[S]]; H.high = v, H.low = p; } - var z = u[0], - A = e[0]; + A = e[0]; z.high = A.high, z.low = A.low; - - for (var d = 0; d < 5; d++) { - for (var _ = 0; _ < 5; _++) { - var S = d + 5 * _, - a = e[S], - C = u[S], - D = u[(d + 1) % 5 + 5 * _], - R = u[(d + 2) % 5 + 5 * _]; - a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low; - } + for (var d = 0; d < 5; d++) for (var _ = 0; _ < 5; _++) { + var S = d + 5 * _, + a = e[S], + C = u[S], + D = u[(d + 1) % 5 + 5 * _], + R = u[(d + 2) % 5 + 5 * _]; + a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low; } - var a = e[0], - E = f[c]; + E = f[c]; a.high ^= E.high, a.low ^= E.low; } }, _doFinalize: function _doFinalize() { var t = this._data, - e = t.words, - i = (8 * this._nDataBytes, 8 * t.sigBytes), - o = 32 * this.blockSize; + e = t.words, + i = (8 * this._nDataBytes, 8 * t.sigBytes), + o = 32 * this.blockSize; e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); - for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { var f = s[l], - u = f.high, - d = f.low; + u = f.high, + d = f.low; u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u); } - return new n.init(h, a); }, clone: function clone() { - for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++) { - r[e] = r[e].clone(); - } - + for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++) r[e] = r[e].clone(); return t; } }); @@ -909,20 +770,17 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); function r() { return s.create.apply(s, arguments); } - var e = t, - i = e.lib, - n = i.Hasher, - o = e.x64, - s = o.Word, - a = o.WordArray, - c = e.algo, - h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], - l = []; + i = e.lib, + n = i.Hasher, + o = e.x64, + s = o.Word, + a = o.WordArray, + c = e.algo, + h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], + l = []; !function () { - for (var t = 0; t < 80; t++) { - l[t] = r(); - } + for (var t = 0; t < 80; t++) l[t] = r(); }(); var f = c.SHA512 = n.extend({ _doReset: function _doReset() { @@ -932,68 +790,63 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { var Z = l[T]; if (T < 16) var q = Z.high = 0 | t[r + 2 * T], - G = Z.low = 0 | t[r + 2 * T + 1];else { + G = Z.low = 0 | t[r + 2 * T + 1];else { var J = l[T - 15], - $ = J.high, - Q = J.low, - V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, - Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), - tt = l[T - 2], - rt = tt.high, - et = tt.low, - it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, - nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), - ot = l[T - 7], - st = ot.high, - at = ot.low, - ct = l[T - 16], - ht = ct.high, - lt = ct.low, - G = Y + at, - q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), - G = G + nt, - q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), - G = G + lt, - q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); + $ = J.high, + Q = J.low, + V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, + Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), + tt = l[T - 2], + rt = tt.high, + et = tt.low, + it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, + nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), + ot = l[T - 7], + st = ot.high, + at = ot.low, + ct = l[T - 16], + ht = ct.high, + lt = ct.low, + G = Y + at, + q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), + G = G + nt, + q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), + G = G + lt, + q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); Z.high = q, Z.low = G; } - var ft = O & I ^ ~O & X, - ut = U & K ^ ~U & L, - dt = C & R ^ C & M ^ R & M, - vt = D & E ^ D & F ^ E & F, - pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), - _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), - yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), - gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), - Bt = h[T], - wt = Bt.high, - kt = Bt.low, - St = N + gt, - mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), - St = St + ut, - mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), - St = St + kt, - mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), - St = St + G, - mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), - xt = _t + vt, - bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); - + ut = U & K ^ ~U & L, + dt = C & R ^ C & M ^ R & M, + vt = D & E ^ D & F ^ E & F, + pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), + _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), + yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), + gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), + Bt = h[T], + wt = Bt.high, + kt = Bt.low, + St = N + gt, + mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), + St = St + ut, + mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), + St = St + kt, + mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), + St = St + G, + mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), + xt = _t + vt, + bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0; } - v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0); }, _doFinalize: function _doFinalize() { var t = this._data, - r = t.words, - e = 8 * this._nDataBytes, - i = 8 * t.sigBytes; + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); - var n = this._hash.toX32(); - return n; }, clone: function clone() { @@ -1005,298 +858,273 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f); }(), function () { var r = t, - e = r.x64, - i = e.Word, - n = e.WordArray, - o = r.algo, - s = o.SHA512, - a = o.SHA384 = s.extend({ - _doReset: function _doReset() { - this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]); - }, - _doFinalize: function _doFinalize() { - var t = s._doFinalize.call(this); - - return t.sigBytes -= 16, t; - } - }); + e = r.x64, + i = e.Word, + n = e.WordArray, + o = r.algo, + s = o.SHA512, + a = o.SHA384 = s.extend({ + _doReset: function _doReset() { + this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]); + }, + _doFinalize: function _doFinalize() { + var t = s._doFinalize.call(this); + return t.sigBytes -= 16, t; + } + }); r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a); }(), t.lib.Cipher || function (r) { var e = t, - i = e.lib, - n = i.Base, - o = i.WordArray, - s = i.BufferedBlockAlgorithm, - a = e.enc, - c = (a.Utf8, a.Base64), - h = e.algo, - l = h.EvpKDF, - f = i.Cipher = s.extend({ - cfg: n.extend(), - createEncryptor: function createEncryptor(t, r) { - return this.create(this._ENC_XFORM_MODE, t, r); - }, - createDecryptor: function createDecryptor(t, r) { - return this.create(this._DEC_XFORM_MODE, t, r); - }, - init: function init(t, r, e) { - this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset(); - }, - reset: function reset() { - s.reset.call(this), this._doReset(); - }, - process: function process(t) { - return this._append(t), this._process(); - }, - finalize: function finalize(t) { - t && this._append(t); - - var r = this._doFinalize(); - - return r; - }, - keySize: 4, - ivSize: 4, - _ENC_XFORM_MODE: 1, - _DEC_XFORM_MODE: 2, - _createHelper: function () { - function t(t) { - return "string" == typeof t ? m : w; - } - - return function (r) { - return { - encrypt: function encrypt(e, i, n) { - return t(i).encrypt(r, e, i, n); - }, - decrypt: function decrypt(e, i, n) { - return t(i).decrypt(r, e, i, n); - } + i = e.lib, + n = i.Base, + o = i.WordArray, + s = i.BufferedBlockAlgorithm, + a = e.enc, + c = (a.Utf8, a.Base64), + h = e.algo, + l = h.EvpKDF, + f = i.Cipher = s.extend({ + cfg: n.extend(), + createEncryptor: function createEncryptor(t, r) { + return this.create(this._ENC_XFORM_MODE, t, r); + }, + createDecryptor: function createDecryptor(t, r) { + return this.create(this._DEC_XFORM_MODE, t, r); + }, + init: function init(t, r, e) { + this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset(); + }, + reset: function reset() { + s.reset.call(this), this._doReset(); + }, + process: function process(t) { + return this._append(t), this._process(); + }, + finalize: function finalize(t) { + t && this._append(t); + var r = this._doFinalize(); + return r; + }, + keySize: 4, + ivSize: 4, + _ENC_XFORM_MODE: 1, + _DEC_XFORM_MODE: 2, + _createHelper: function () { + function t(t) { + return "string" == typeof t ? m : w; + } + return function (r) { + return { + encrypt: function encrypt(e, i, n) { + return t(i).encrypt(r, e, i, n); + }, + decrypt: function decrypt(e, i, n) { + return t(i).decrypt(r, e, i, n); + } + }; }; - }; - }() - }), - u = (i.StreamCipher = f.extend({ - _doFinalize: function _doFinalize() { - var t = this._process(!0); - - return t; - }, - blockSize: 1 - }), e.mode = {}), - d = i.BlockCipherMode = n.extend({ - createEncryptor: function createEncryptor(t, r) { - return this.Encryptor.create(t, r); - }, - createDecryptor: function createDecryptor(t, r) { - return this.Decryptor.create(t, r); - }, - init: function init(t, r) { - this._cipher = t, this._iv = r; - } - }), - v = u.CBC = function () { - function t(t, e, i) { - var n = this._iv; - - if (n) { - var o = n; - this._iv = r; - } else var o = this._prevBlock; - - for (var s = 0; s < i; s++) { - t[e + s] ^= o[s]; + }() + }), + u = (i.StreamCipher = f.extend({ + _doFinalize: function _doFinalize() { + var t = this._process(!0); + return t; + }, + blockSize: 1 + }), e.mode = {}), + d = i.BlockCipherMode = n.extend({ + createEncryptor: function createEncryptor(t, r) { + return this.Encryptor.create(t, r); + }, + createDecryptor: function createDecryptor(t, r) { + return this.Decryptor.create(t, r); + }, + init: function init(t, r) { + this._cipher = t, this._iv = r; } - } - - var e = d.extend(); - return e.Encryptor = e.extend({ - processBlock: function processBlock(r, e) { - var i = this._cipher, + }), + v = u.CBC = function () { + function t(t, e, i) { + var n = this._iv; + if (n) { + var o = n; + this._iv = r; + } else var o = this._prevBlock; + for (var s = 0; s < i; s++) t[e + s] ^= o[s]; + } + var e = d.extend(); + return e.Encryptor = e.extend({ + processBlock: function processBlock(r, e) { + var i = this._cipher, n = i.blockSize; - t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n); - } - }), e.Decryptor = e.extend({ - processBlock: function processBlock(r, e) { - var i = this._cipher, + t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n); + } + }), e.Decryptor = e.extend({ + processBlock: function processBlock(r, e) { + var i = this._cipher, n = i.blockSize, o = r.slice(e, e + n); - i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o; + i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o; + } + }), e; + }(), + p = e.pad = {}, + _ = p.Pkcs7 = { + pad: function pad(t, r) { + for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4) s.push(n); + var c = o.create(s, i); + t.concat(c); + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; } - }), e; - }(), - p = e.pad = {}, - _ = p.Pkcs7 = { - pad: function pad(t, r) { - for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4) { - s.push(n); - } - - var c = o.create(s, i); - t.concat(c); }, - unpad: function unpad(t) { - var r = 255 & t.words[t.sigBytes - 1 >>> 2]; - t.sigBytes -= r; - } - }, - y = (i.BlockCipher = f.extend({ - cfg: f.cfg.extend({ - mode: v, - padding: _ - }), - reset: function reset() { - f.reset.call(this); - var t = this.cfg, + y = (i.BlockCipher = f.extend({ + cfg: f.cfg.extend({ + mode: v, + padding: _ + }), + reset: function reset() { + f.reset.call(this); + var t = this.cfg, r = t.iv, e = t.mode; - if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor;else { - var i = e.createDecryptor; - this._minBufferSize = 1; + if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor;else { + var i = e.createDecryptor; + this._minBufferSize = 1; + } + this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + this._mode.processBlock(t, r); + }, + _doFinalize: function _doFinalize() { + var t = this.cfg.padding; + if (this._xformMode == this._ENC_XFORM_MODE) { + t.pad(this._data, this.blockSize); + var r = this._process(!0); + } else { + var r = this._process(!0); + t.unpad(r); + } + return r; + }, + blockSize: 4 + }), i.CipherParams = n.extend({ + init: function init(t) { + this.mixIn(t); + }, + toString: function toString(t) { + return (t || this.formatter).stringify(this); } - this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - this._mode.processBlock(t, r); - }, - _doFinalize: function _doFinalize() { - var t = this.cfg.padding; - - if (this._xformMode == this._ENC_XFORM_MODE) { - t.pad(this._data, this.blockSize); - - var r = this._process(!0); - } else { - var r = this._process(!0); - - t.unpad(r); - } - - return r; - }, - blockSize: 4 - }), i.CipherParams = n.extend({ - init: function init(t) { - this.mixIn(t); - }, - toString: function toString(t) { - return (t || this.formatter).stringify(this); - } - })), - g = e.format = {}, - B = g.OpenSSL = { - stringify: function stringify(t) { - var r = t.ciphertext, + })), + g = e.format = {}, + B = g.OpenSSL = { + stringify: function stringify(t) { + var r = t.ciphertext, e = t.salt; - if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r);else var i = r; - return i.toString(c); - }, - parse: function parse(t) { - var r = c.parse(t), + if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r);else var i = r; + return i.toString(c); + }, + parse: function parse(t) { + var r = c.parse(t), e = r.words; - - if (1398893684 == e[0] && 1701076831 == e[1]) { - var i = o.create(e.slice(2, 4)); - e.splice(0, 4), r.sigBytes -= 16; + if (1398893684 == e[0] && 1701076831 == e[1]) { + var i = o.create(e.slice(2, 4)); + e.splice(0, 4), r.sigBytes -= 16; + } + return y.create({ + ciphertext: r, + salt: i + }); } - - return y.create({ - ciphertext: r, - salt: i - }); - } - }, - w = i.SerializableCipher = n.extend({ - cfg: n.extend({ - format: B - }), - encrypt: function encrypt(t, r, e, i) { - i = this.cfg.extend(i); - var n = t.createEncryptor(e, i), + }, + w = i.SerializableCipher = n.extend({ + cfg: n.extend({ + format: B + }), + encrypt: function encrypt(t, r, e, i) { + i = this.cfg.extend(i); + var n = t.createEncryptor(e, i), o = n.finalize(r), s = n.cfg; - return y.create({ - ciphertext: o, - key: e, - iv: s.iv, - algorithm: t, - mode: s.mode, - padding: s.padding, - blockSize: t.blockSize, - formatter: i.format - }); - }, - decrypt: function decrypt(t, r, e, i) { - i = this.cfg.extend(i), r = this._parse(r, i.format); - var n = t.createDecryptor(e, i).finalize(r.ciphertext); - return n; - }, - _parse: function _parse(t, r) { - return "string" == typeof t ? r.parse(t, this) : t; - } - }), - k = e.kdf = {}, - S = k.OpenSSL = { - execute: function execute(t, r, e, i) { - i || (i = o.random(8)); - var n = l.create({ - keySize: r + e - }).compute(t, i), - s = o.create(n.words.slice(r), 4 * e); - return n.sigBytes = 4 * r, y.create({ - key: n, - iv: s, - salt: i - }); - } - }, - m = i.PasswordBasedCipher = w.extend({ - cfg: w.cfg.extend({ - kdf: S + return y.create({ + ciphertext: o, + key: e, + iv: s.iv, + algorithm: t, + mode: s.mode, + padding: s.padding, + blockSize: t.blockSize, + formatter: i.format + }); + }, + decrypt: function decrypt(t, r, e, i) { + i = this.cfg.extend(i), r = this._parse(r, i.format); + var n = t.createDecryptor(e, i).finalize(r.ciphertext); + return n; + }, + _parse: function _parse(t, r) { + return "string" == typeof t ? r.parse(t, this) : t; + } }), - encrypt: function encrypt(t, r, e, i) { - i = this.cfg.extend(i); - var n = i.kdf.execute(e, t.keySize, t.ivSize); - i.iv = n.iv; - var o = w.encrypt.call(this, t, r, n.key, i); - return o.mixIn(n), o; + k = e.kdf = {}, + S = k.OpenSSL = { + execute: function execute(t, r, e, i) { + i || (i = o.random(8)); + var n = l.create({ + keySize: r + e + }).compute(t, i), + s = o.create(n.words.slice(r), 4 * e); + return n.sigBytes = 4 * r, y.create({ + key: n, + iv: s, + salt: i + }); + } }, - decrypt: function decrypt(t, r, e, i) { - i = this.cfg.extend(i), r = this._parse(r, i.format); - var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); - i.iv = n.iv; - var o = w.decrypt.call(this, t, r, n.key, i); - return o; - } - }); + m = i.PasswordBasedCipher = w.extend({ + cfg: w.cfg.extend({ + kdf: S + }), + encrypt: function encrypt(t, r, e, i) { + i = this.cfg.extend(i); + var n = i.kdf.execute(e, t.keySize, t.ivSize); + i.iv = n.iv; + var o = w.encrypt.call(this, t, r, n.key, i); + return o.mixIn(n), o; + }, + decrypt: function decrypt(t, r, e, i) { + i = this.cfg.extend(i), r = this._parse(r, i.format); + var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); + i.iv = n.iv; + var o = w.decrypt.call(this, t, r, n.key, i); + return o; + } + }); }(), t.mode.CFB = function () { function r(t, r, e, i) { var n = this._iv; - if (n) { var o = n.slice(0); this._iv = void 0; } else var o = this._prevBlock; - i.encryptBlock(o, 0); - - for (var s = 0; s < e; s++) { - t[r + s] ^= o[s]; - } + for (var s = 0; s < e; s++) t[r + s] ^= o[s]; } - var e = t.lib.BlockCipherMode.extend(); return e.Encryptor = e.extend({ processBlock: function processBlock(t, e) { var i = this._cipher, - n = i.blockSize; + n = i.blockSize; r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n); } }), e.Decryptor = e.extend({ processBlock: function processBlock(t, e) { var i = this._cipher, - n = i.blockSize, - o = t.slice(e, e + n); + n = i.blockSize, + o = t.slice(e, e + n); r.call(this, t, e, n, i), this._prevBlock = o; } }), e; @@ -1314,9 +1142,9 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }(), t.pad.AnsiX923 = { pad: function pad(t, r) { var e = t.sigBytes, - i = 4 * r, - n = i - e % i, - o = e + n - 1; + i = 4 * r, + n = i - e % i, + o = e + n - 1; t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n; }, unpad: function unpad(t) { @@ -1326,7 +1154,7 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }, t.pad.Iso10126 = { pad: function pad(r, e) { var i = 4 * e, - n = i - r.sigBytes % i; + n = i - r.sigBytes % i; r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)); }, unpad: function unpad(t) { @@ -1342,30 +1170,27 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); } }, t.mode.OFB = function () { var r = t.lib.BlockCipherMode.extend(), - e = r.Encryptor = r.extend({ - processBlock: function processBlock(t, r) { - var e = this._cipher, + e = r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + var e = this._cipher, i = e.blockSize, n = this._iv, o = this._keystream; - n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); - - for (var s = 0; s < i; s++) { - t[r + s] ^= o[s]; + n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); + for (var s = 0; s < i; s++) t[r + s] ^= o[s]; } - } - }); + }); return r.Decryptor = e, r; }(), t.pad.NoPadding = { pad: function pad() {}, unpad: function unpad() {} }, function (r) { var e = t, - i = e.lib, - n = i.CipherParams, - o = e.enc, - s = o.Hex, - a = e.format; + i = e.lib, + n = i.CipherParams, + o = e.enc, + s = o.Hex, + a = e.format; a.Hex = { stringify: function stringify(t) { return t.ciphertext.toString(s); @@ -1379,680 +1204,651 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }; }(), function () { var r = t, - e = r.lib, - i = e.BlockCipher, - n = r.algo, - o = [], - s = [], - a = [], - c = [], - h = [], - l = [], - f = [], - u = [], - d = [], - v = []; + e = r.lib, + i = e.BlockCipher, + n = r.algo, + o = [], + s = [], + a = [], + c = [], + h = [], + l = [], + f = [], + u = [], + d = [], + v = []; !function () { - for (var t = [], r = 0; r < 256; r++) { - r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; - } - + for (var t = [], r = 0; r < 256; r++) r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; for (var e = 0, i = 0, r = 0; r < 256; r++) { var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; var p = t[e], - _ = t[p], - y = t[_], - g = 257 * t[n] ^ 16843008 * n; + _ = t[p], + y = t[_], + g = 257 * t[n] ^ 16843008 * n; a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1; } }(); - var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], - _ = n.AES = i.extend({ - _doReset: function _doReset() { - if (!this._nRounds || this._keyPriorReset !== this._key) { - for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++) { - if (a < e) s[a] = r[a];else { + _ = n.AES = i.extend({ + _doReset: function _doReset() { + if (!this._nRounds || this._keyPriorReset !== this._key) { + for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++) if (a < e) s[a] = r[a];else { var c = s[a - 1]; a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c; } + for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { + var a = n - l; + if (l % 4) var c = s[a];else var c = s[a - 4]; + l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]]; + } } - - for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { - var a = n - l; - if (l % 4) var c = s[a];else var c = s[a - 4]; - l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]]; - } - } - }, - encryptBlock: function encryptBlock(t, r) { - this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o); - }, - decryptBlock: function decryptBlock(t, r) { - var e = t[r + 1]; - t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); - var e = t[r + 1]; - t[r + 1] = t[r + 3], t[r + 3] = e; - }, - _doCryptBlock: function _doCryptBlock(t, r, e, i, n, o, s, a) { - for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { - var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], + }, + encryptBlock: function encryptBlock(t, r) { + this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o); + }, + decryptBlock: function decryptBlock(t, r) { + var e = t[r + 1]; + t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); + var e = t[r + 1]; + t[r + 1] = t[r + 3], t[r + 3] = e; + }, + _doCryptBlock: function _doCryptBlock(t, r, e, i, n, o, s, a) { + for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { + var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; - - h = p, l = _, f = y, u = g; - } - - var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], + h = p, l = _, f = y, u = g; + } + var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; - - t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g; - }, - keySize: 8 - }); - + t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g; + }, + keySize: 8 + }); r.AES = i._createHelper(_); }(), function () { function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this._rBlock ^= e, this._lBlock ^= e << t; } - function e(t, r) { var e = (this._rBlock >>> t ^ this._lBlock) & r; this._lBlock ^= e, this._rBlock ^= e << t; } - var i = t, - n = i.lib, - o = n.WordArray, - s = n.BlockCipher, - a = i.algo, - c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], - h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], - l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], - f = [{ - 0: 8421888, - 268435456: 32768, - 536870912: 8421378, - 805306368: 2, - 1073741824: 512, - 1342177280: 8421890, - 1610612736: 8389122, - 1879048192: 8388608, - 2147483648: 514, - 2415919104: 8389120, - 2684354560: 33280, - 2952790016: 8421376, - 3221225472: 32770, - 3489660928: 8388610, - 3758096384: 0, - 4026531840: 33282, - 134217728: 0, - 402653184: 8421890, - 671088640: 33282, - 939524096: 32768, - 1207959552: 8421888, - 1476395008: 512, - 1744830464: 8421378, - 2013265920: 2, - 2281701376: 8389120, - 2550136832: 33280, - 2818572288: 8421376, - 3087007744: 8389122, - 3355443200: 8388610, - 3623878656: 32770, - 3892314112: 514, - 4160749568: 8388608, - 1: 32768, - 268435457: 2, - 536870913: 8421888, - 805306369: 8388608, - 1073741825: 8421378, - 1342177281: 33280, - 1610612737: 512, - 1879048193: 8389122, - 2147483649: 8421890, - 2415919105: 8421376, - 2684354561: 8388610, - 2952790017: 33282, - 3221225473: 514, - 3489660929: 8389120, - 3758096385: 32770, - 4026531841: 0, - 134217729: 8421890, - 402653185: 8421376, - 671088641: 8388608, - 939524097: 512, - 1207959553: 32768, - 1476395009: 8388610, - 1744830465: 2, - 2013265921: 33282, - 2281701377: 32770, - 2550136833: 8389122, - 2818572289: 514, - 3087007745: 8421888, - 3355443201: 8389120, - 3623878657: 0, - 3892314113: 33280, - 4160749569: 8421378 - }, { - 0: 1074282512, - 16777216: 16384, - 33554432: 524288, - 50331648: 1074266128, - 67108864: 1073741840, - 83886080: 1074282496, - 100663296: 1073758208, - 117440512: 16, - 134217728: 540672, - 150994944: 1073758224, - 167772160: 1073741824, - 184549376: 540688, - 201326592: 524304, - 218103808: 0, - 234881024: 16400, - 251658240: 1074266112, - 8388608: 1073758208, - 25165824: 540688, - 41943040: 16, - 58720256: 1073758224, - 75497472: 1074282512, - 92274688: 1073741824, - 109051904: 524288, - 125829120: 1074266128, - 142606336: 524304, - 159383552: 0, - 176160768: 16384, - 192937984: 1074266112, - 209715200: 1073741840, - 226492416: 540672, - 243269632: 1074282496, - 260046848: 16400, - 268435456: 0, - 285212672: 1074266128, - 301989888: 1073758224, - 318767104: 1074282496, - 335544320: 1074266112, - 352321536: 16, - 369098752: 540688, - 385875968: 16384, - 402653184: 16400, - 419430400: 524288, - 436207616: 524304, - 452984832: 1073741840, - 469762048: 540672, - 486539264: 1073758208, - 503316480: 1073741824, - 520093696: 1074282512, - 276824064: 540688, - 293601280: 524288, - 310378496: 1074266112, - 327155712: 16384, - 343932928: 1073758208, - 360710144: 1074282512, - 377487360: 16, - 394264576: 1073741824, - 411041792: 1074282496, - 427819008: 1073741840, - 444596224: 1073758224, - 461373440: 524304, - 478150656: 0, - 494927872: 16400, - 511705088: 1074266128, - 528482304: 540672 - }, { - 0: 260, - 1048576: 0, - 2097152: 67109120, - 3145728: 65796, - 4194304: 65540, - 5242880: 67108868, - 6291456: 67174660, - 7340032: 67174400, - 8388608: 67108864, - 9437184: 67174656, - 10485760: 65792, - 11534336: 67174404, - 12582912: 67109124, - 13631488: 65536, - 14680064: 4, - 15728640: 256, - 524288: 67174656, - 1572864: 67174404, - 2621440: 0, - 3670016: 67109120, - 4718592: 67108868, - 5767168: 65536, - 6815744: 65540, - 7864320: 260, - 8912896: 4, - 9961472: 256, - 11010048: 67174400, - 12058624: 65796, - 13107200: 65792, - 14155776: 67109124, - 15204352: 67174660, - 16252928: 67108864, - 16777216: 67174656, - 17825792: 65540, - 18874368: 65536, - 19922944: 67109120, - 20971520: 256, - 22020096: 67174660, - 23068672: 67108868, - 24117248: 0, - 25165824: 67109124, - 26214400: 67108864, - 27262976: 4, - 28311552: 65792, - 29360128: 67174400, - 30408704: 260, - 31457280: 65796, - 32505856: 67174404, - 17301504: 67108864, - 18350080: 260, - 19398656: 67174656, - 20447232: 0, - 21495808: 65540, - 22544384: 67109120, - 23592960: 256, - 24641536: 67174404, - 25690112: 65536, - 26738688: 67174660, - 27787264: 65796, - 28835840: 67108868, - 29884416: 67109124, - 30932992: 67174400, - 31981568: 4, - 33030144: 65792 - }, { - 0: 2151682048, - 65536: 2147487808, - 131072: 4198464, - 196608: 2151677952, - 262144: 0, - 327680: 4198400, - 393216: 2147483712, - 458752: 4194368, - 524288: 2147483648, - 589824: 4194304, - 655360: 64, - 720896: 2147487744, - 786432: 2151678016, - 851968: 4160, - 917504: 4096, - 983040: 2151682112, - 32768: 2147487808, - 98304: 64, - 163840: 2151678016, - 229376: 2147487744, - 294912: 4198400, - 360448: 2151682112, - 425984: 0, - 491520: 2151677952, - 557056: 4096, - 622592: 2151682048, - 688128: 4194304, - 753664: 4160, - 819200: 2147483648, - 884736: 4194368, - 950272: 4198464, - 1015808: 2147483712, - 1048576: 4194368, - 1114112: 4198400, - 1179648: 2147483712, - 1245184: 0, - 1310720: 4160, - 1376256: 2151678016, - 1441792: 2151682048, - 1507328: 2147487808, - 1572864: 2151682112, - 1638400: 2147483648, - 1703936: 2151677952, - 1769472: 4198464, - 1835008: 2147487744, - 1900544: 4194304, - 1966080: 64, - 2031616: 4096, - 1081344: 2151677952, - 1146880: 2151682112, - 1212416: 0, - 1277952: 4198400, - 1343488: 4194368, - 1409024: 2147483648, - 1474560: 2147487808, - 1540096: 64, - 1605632: 2147483712, - 1671168: 4096, - 1736704: 2147487744, - 1802240: 2151678016, - 1867776: 4160, - 1933312: 2151682048, - 1998848: 4194304, - 2064384: 4198464 - }, { - 0: 128, - 4096: 17039360, - 8192: 262144, - 12288: 536870912, - 16384: 537133184, - 20480: 16777344, - 24576: 553648256, - 28672: 262272, - 32768: 16777216, - 36864: 537133056, - 40960: 536871040, - 45056: 553910400, - 49152: 553910272, - 53248: 0, - 57344: 17039488, - 61440: 553648128, - 2048: 17039488, - 6144: 553648256, - 10240: 128, - 14336: 17039360, - 18432: 262144, - 22528: 537133184, - 26624: 553910272, - 30720: 536870912, - 34816: 537133056, - 38912: 0, - 43008: 553910400, - 47104: 16777344, - 51200: 536871040, - 55296: 553648128, - 59392: 16777216, - 63488: 262272, - 65536: 262144, - 69632: 128, - 73728: 536870912, - 77824: 553648256, - 81920: 16777344, - 86016: 553910272, - 90112: 537133184, - 94208: 16777216, - 98304: 553910400, - 102400: 553648128, - 106496: 17039360, - 110592: 537133056, - 114688: 262272, - 118784: 536871040, - 122880: 0, - 126976: 17039488, - 67584: 553648256, - 71680: 16777216, - 75776: 17039360, - 79872: 537133184, - 83968: 536870912, - 88064: 17039488, - 92160: 128, - 96256: 553910272, - 100352: 262272, - 104448: 553910400, - 108544: 0, - 112640: 553648128, - 116736: 16777344, - 120832: 262144, - 124928: 537133056, - 129024: 536871040 - }, { - 0: 268435464, - 256: 8192, - 512: 270532608, - 768: 270540808, - 1024: 268443648, - 1280: 2097152, - 1536: 2097160, - 1792: 268435456, - 2048: 0, - 2304: 268443656, - 2560: 2105344, - 2816: 8, - 3072: 270532616, - 3328: 2105352, - 3584: 8200, - 3840: 270540800, - 128: 270532608, - 384: 270540808, - 640: 8, - 896: 2097152, - 1152: 2105352, - 1408: 268435464, - 1664: 268443648, - 1920: 8200, - 2176: 2097160, - 2432: 8192, - 2688: 268443656, - 2944: 270532616, - 3200: 0, - 3456: 270540800, - 3712: 2105344, - 3968: 268435456, - 4096: 268443648, - 4352: 270532616, - 4608: 270540808, - 4864: 8200, - 5120: 2097152, - 5376: 268435456, - 5632: 268435464, - 5888: 2105344, - 6144: 2105352, - 6400: 0, - 6656: 8, - 6912: 270532608, - 7168: 8192, - 7424: 268443656, - 7680: 270540800, - 7936: 2097160, - 4224: 8, - 4480: 2105344, - 4736: 2097152, - 4992: 268435464, - 5248: 268443648, - 5504: 8200, - 5760: 270540808, - 6016: 270532608, - 6272: 270540800, - 6528: 270532616, - 6784: 8192, - 7040: 2105352, - 7296: 2097160, - 7552: 0, - 7808: 268435456, - 8064: 268443656 - }, { - 0: 1048576, - 16: 33555457, - 32: 1024, - 48: 1049601, - 64: 34604033, - 80: 0, - 96: 1, - 112: 34603009, - 128: 33555456, - 144: 1048577, - 160: 33554433, - 176: 34604032, - 192: 34603008, - 208: 1025, - 224: 1049600, - 240: 33554432, - 8: 34603009, - 24: 0, - 40: 33555457, - 56: 34604032, - 72: 1048576, - 88: 33554433, - 104: 33554432, - 120: 1025, - 136: 1049601, - 152: 33555456, - 168: 34603008, - 184: 1048577, - 200: 1024, - 216: 34604033, - 232: 1, - 248: 1049600, - 256: 33554432, - 272: 1048576, - 288: 33555457, - 304: 34603009, - 320: 1048577, - 336: 33555456, - 352: 34604032, - 368: 1049601, - 384: 1025, - 400: 34604033, - 416: 1049600, - 432: 1, - 448: 0, - 464: 34603008, - 480: 33554433, - 496: 1024, - 264: 1049600, - 280: 33555457, - 296: 34603009, - 312: 1, - 328: 33554432, - 344: 1048576, - 360: 1025, - 376: 34604032, - 392: 33554433, - 408: 34603008, - 424: 0, - 440: 34604033, - 456: 1049601, - 472: 1024, - 488: 33555456, - 504: 1048577 - }, { - 0: 134219808, - 1: 131072, - 2: 134217728, - 3: 32, - 4: 131104, - 5: 134350880, - 6: 134350848, - 7: 2048, - 8: 134348800, - 9: 134219776, - 10: 133120, - 11: 134348832, - 12: 2080, - 13: 0, - 14: 134217760, - 15: 133152, - 2147483648: 2048, - 2147483649: 134350880, - 2147483650: 134219808, - 2147483651: 134217728, - 2147483652: 134348800, - 2147483653: 133120, - 2147483654: 133152, - 2147483655: 32, - 2147483656: 134217760, - 2147483657: 2080, - 2147483658: 131104, - 2147483659: 134350848, - 2147483660: 0, - 2147483661: 134348832, - 2147483662: 134219776, - 2147483663: 131072, - 16: 133152, - 17: 134350848, - 18: 32, - 19: 2048, - 20: 134219776, - 21: 134217760, - 22: 134348832, - 23: 131072, - 24: 0, - 25: 131104, - 26: 134348800, - 27: 134219808, - 28: 134350880, - 29: 133120, - 30: 2080, - 31: 134217728, - 2147483664: 131072, - 2147483665: 2048, - 2147483666: 134348832, - 2147483667: 133152, - 2147483668: 32, - 2147483669: 134348800, - 2147483670: 134217728, - 2147483671: 134219808, - 2147483672: 134350880, - 2147483673: 134217760, - 2147483674: 134219776, - 2147483675: 0, - 2147483676: 133120, - 2147483677: 2080, - 2147483678: 131104, - 2147483679: 134350848 - }], - u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], - d = a.DES = s.extend({ - _doReset: function _doReset() { - for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { - var n = c[i] - 1; - e[i] = r[n >>> 5] >>> 31 - n % 32 & 1; - } - - for (var o = this._subKeys = [], s = 0; s < 16; s++) { - for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++) { - a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; + n = i.lib, + o = n.WordArray, + s = n.BlockCipher, + a = i.algo, + c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], + h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], + l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], + f = [{ + 0: 8421888, + 268435456: 32768, + 536870912: 8421378, + 805306368: 2, + 1073741824: 512, + 1342177280: 8421890, + 1610612736: 8389122, + 1879048192: 8388608, + 2147483648: 514, + 2415919104: 8389120, + 2684354560: 33280, + 2952790016: 8421376, + 3221225472: 32770, + 3489660928: 8388610, + 3758096384: 0, + 4026531840: 33282, + 134217728: 0, + 402653184: 8421890, + 671088640: 33282, + 939524096: 32768, + 1207959552: 8421888, + 1476395008: 512, + 1744830464: 8421378, + 2013265920: 2, + 2281701376: 8389120, + 2550136832: 33280, + 2818572288: 8421376, + 3087007744: 8389122, + 3355443200: 8388610, + 3623878656: 32770, + 3892314112: 514, + 4160749568: 8388608, + 1: 32768, + 268435457: 2, + 536870913: 8421888, + 805306369: 8388608, + 1073741825: 8421378, + 1342177281: 33280, + 1610612737: 512, + 1879048193: 8389122, + 2147483649: 8421890, + 2415919105: 8421376, + 2684354561: 8388610, + 2952790017: 33282, + 3221225473: 514, + 3489660929: 8389120, + 3758096385: 32770, + 4026531841: 0, + 134217729: 8421890, + 402653185: 8421376, + 671088641: 8388608, + 939524097: 512, + 1207959553: 32768, + 1476395009: 8388610, + 1744830465: 2, + 2013265921: 33282, + 2281701377: 32770, + 2550136833: 8389122, + 2818572289: 514, + 3087007745: 8421888, + 3355443201: 8389120, + 3623878657: 0, + 3892314113: 33280, + 4160749569: 8421378 + }, { + 0: 1074282512, + 16777216: 16384, + 33554432: 524288, + 50331648: 1074266128, + 67108864: 1073741840, + 83886080: 1074282496, + 100663296: 1073758208, + 117440512: 16, + 134217728: 540672, + 150994944: 1073758224, + 167772160: 1073741824, + 184549376: 540688, + 201326592: 524304, + 218103808: 0, + 234881024: 16400, + 251658240: 1074266112, + 8388608: 1073758208, + 25165824: 540688, + 41943040: 16, + 58720256: 1073758224, + 75497472: 1074282512, + 92274688: 1073741824, + 109051904: 524288, + 125829120: 1074266128, + 142606336: 524304, + 159383552: 0, + 176160768: 16384, + 192937984: 1074266112, + 209715200: 1073741840, + 226492416: 540672, + 243269632: 1074282496, + 260046848: 16400, + 268435456: 0, + 285212672: 1074266128, + 301989888: 1073758224, + 318767104: 1074282496, + 335544320: 1074266112, + 352321536: 16, + 369098752: 540688, + 385875968: 16384, + 402653184: 16400, + 419430400: 524288, + 436207616: 524304, + 452984832: 1073741840, + 469762048: 540672, + 486539264: 1073758208, + 503316480: 1073741824, + 520093696: 1074282512, + 276824064: 540688, + 293601280: 524288, + 310378496: 1074266112, + 327155712: 16384, + 343932928: 1073758208, + 360710144: 1074282512, + 377487360: 16, + 394264576: 1073741824, + 411041792: 1074282496, + 427819008: 1073741840, + 444596224: 1073758224, + 461373440: 524304, + 478150656: 0, + 494927872: 16400, + 511705088: 1074266128, + 528482304: 540672 + }, { + 0: 260, + 1048576: 0, + 2097152: 67109120, + 3145728: 65796, + 4194304: 65540, + 5242880: 67108868, + 6291456: 67174660, + 7340032: 67174400, + 8388608: 67108864, + 9437184: 67174656, + 10485760: 65792, + 11534336: 67174404, + 12582912: 67109124, + 13631488: 65536, + 14680064: 4, + 15728640: 256, + 524288: 67174656, + 1572864: 67174404, + 2621440: 0, + 3670016: 67109120, + 4718592: 67108868, + 5767168: 65536, + 6815744: 65540, + 7864320: 260, + 8912896: 4, + 9961472: 256, + 11010048: 67174400, + 12058624: 65796, + 13107200: 65792, + 14155776: 67109124, + 15204352: 67174660, + 16252928: 67108864, + 16777216: 67174656, + 17825792: 65540, + 18874368: 65536, + 19922944: 67109120, + 20971520: 256, + 22020096: 67174660, + 23068672: 67108868, + 24117248: 0, + 25165824: 67109124, + 26214400: 67108864, + 27262976: 4, + 28311552: 65792, + 29360128: 67174400, + 30408704: 260, + 31457280: 65796, + 32505856: 67174404, + 17301504: 67108864, + 18350080: 260, + 19398656: 67174656, + 20447232: 0, + 21495808: 65540, + 22544384: 67109120, + 23592960: 256, + 24641536: 67174404, + 25690112: 65536, + 26738688: 67174660, + 27787264: 65796, + 28835840: 67108868, + 29884416: 67109124, + 30932992: 67174400, + 31981568: 4, + 33030144: 65792 + }, { + 0: 2151682048, + 65536: 2147487808, + 131072: 4198464, + 196608: 2151677952, + 262144: 0, + 327680: 4198400, + 393216: 2147483712, + 458752: 4194368, + 524288: 2147483648, + 589824: 4194304, + 655360: 64, + 720896: 2147487744, + 786432: 2151678016, + 851968: 4160, + 917504: 4096, + 983040: 2151682112, + 32768: 2147487808, + 98304: 64, + 163840: 2151678016, + 229376: 2147487744, + 294912: 4198400, + 360448: 2151682112, + 425984: 0, + 491520: 2151677952, + 557056: 4096, + 622592: 2151682048, + 688128: 4194304, + 753664: 4160, + 819200: 2147483648, + 884736: 4194368, + 950272: 4198464, + 1015808: 2147483712, + 1048576: 4194368, + 1114112: 4198400, + 1179648: 2147483712, + 1245184: 0, + 1310720: 4160, + 1376256: 2151678016, + 1441792: 2151682048, + 1507328: 2147487808, + 1572864: 2151682112, + 1638400: 2147483648, + 1703936: 2151677952, + 1769472: 4198464, + 1835008: 2147487744, + 1900544: 4194304, + 1966080: 64, + 2031616: 4096, + 1081344: 2151677952, + 1146880: 2151682112, + 1212416: 0, + 1277952: 4198400, + 1343488: 4194368, + 1409024: 2147483648, + 1474560: 2147487808, + 1540096: 64, + 1605632: 2147483712, + 1671168: 4096, + 1736704: 2147487744, + 1802240: 2151678016, + 1867776: 4160, + 1933312: 2151682048, + 1998848: 4194304, + 2064384: 4198464 + }, { + 0: 128, + 4096: 17039360, + 8192: 262144, + 12288: 536870912, + 16384: 537133184, + 20480: 16777344, + 24576: 553648256, + 28672: 262272, + 32768: 16777216, + 36864: 537133056, + 40960: 536871040, + 45056: 553910400, + 49152: 553910272, + 53248: 0, + 57344: 17039488, + 61440: 553648128, + 2048: 17039488, + 6144: 553648256, + 10240: 128, + 14336: 17039360, + 18432: 262144, + 22528: 537133184, + 26624: 553910272, + 30720: 536870912, + 34816: 537133056, + 38912: 0, + 43008: 553910400, + 47104: 16777344, + 51200: 536871040, + 55296: 553648128, + 59392: 16777216, + 63488: 262272, + 65536: 262144, + 69632: 128, + 73728: 536870912, + 77824: 553648256, + 81920: 16777344, + 86016: 553910272, + 90112: 537133184, + 94208: 16777216, + 98304: 553910400, + 102400: 553648128, + 106496: 17039360, + 110592: 537133056, + 114688: 262272, + 118784: 536871040, + 122880: 0, + 126976: 17039488, + 67584: 553648256, + 71680: 16777216, + 75776: 17039360, + 79872: 537133184, + 83968: 536870912, + 88064: 17039488, + 92160: 128, + 96256: 553910272, + 100352: 262272, + 104448: 553910400, + 108544: 0, + 112640: 553648128, + 116736: 16777344, + 120832: 262144, + 124928: 537133056, + 129024: 536871040 + }, { + 0: 268435464, + 256: 8192, + 512: 270532608, + 768: 270540808, + 1024: 268443648, + 1280: 2097152, + 1536: 2097160, + 1792: 268435456, + 2048: 0, + 2304: 268443656, + 2560: 2105344, + 2816: 8, + 3072: 270532616, + 3328: 2105352, + 3584: 8200, + 3840: 270540800, + 128: 270532608, + 384: 270540808, + 640: 8, + 896: 2097152, + 1152: 2105352, + 1408: 268435464, + 1664: 268443648, + 1920: 8200, + 2176: 2097160, + 2432: 8192, + 2688: 268443656, + 2944: 270532616, + 3200: 0, + 3456: 270540800, + 3712: 2105344, + 3968: 268435456, + 4096: 268443648, + 4352: 270532616, + 4608: 270540808, + 4864: 8200, + 5120: 2097152, + 5376: 268435456, + 5632: 268435464, + 5888: 2105344, + 6144: 2105352, + 6400: 0, + 6656: 8, + 6912: 270532608, + 7168: 8192, + 7424: 268443656, + 7680: 270540800, + 7936: 2097160, + 4224: 8, + 4480: 2105344, + 4736: 2097152, + 4992: 268435464, + 5248: 268443648, + 5504: 8200, + 5760: 270540808, + 6016: 270532608, + 6272: 270540800, + 6528: 270532616, + 6784: 8192, + 7040: 2105352, + 7296: 2097160, + 7552: 0, + 7808: 268435456, + 8064: 268443656 + }, { + 0: 1048576, + 16: 33555457, + 32: 1024, + 48: 1049601, + 64: 34604033, + 80: 0, + 96: 1, + 112: 34603009, + 128: 33555456, + 144: 1048577, + 160: 33554433, + 176: 34604032, + 192: 34603008, + 208: 1025, + 224: 1049600, + 240: 33554432, + 8: 34603009, + 24: 0, + 40: 33555457, + 56: 34604032, + 72: 1048576, + 88: 33554433, + 104: 33554432, + 120: 1025, + 136: 1049601, + 152: 33555456, + 168: 34603008, + 184: 1048577, + 200: 1024, + 216: 34604033, + 232: 1, + 248: 1049600, + 256: 33554432, + 272: 1048576, + 288: 33555457, + 304: 34603009, + 320: 1048577, + 336: 33555456, + 352: 34604032, + 368: 1049601, + 384: 1025, + 400: 34604033, + 416: 1049600, + 432: 1, + 448: 0, + 464: 34603008, + 480: 33554433, + 496: 1024, + 264: 1049600, + 280: 33555457, + 296: 34603009, + 312: 1, + 328: 33554432, + 344: 1048576, + 360: 1025, + 376: 34604032, + 392: 33554433, + 408: 34603008, + 424: 0, + 440: 34604033, + 456: 1049601, + 472: 1024, + 488: 33555456, + 504: 1048577 + }, { + 0: 134219808, + 1: 131072, + 2: 134217728, + 3: 32, + 4: 131104, + 5: 134350880, + 6: 134350848, + 7: 2048, + 8: 134348800, + 9: 134219776, + 10: 133120, + 11: 134348832, + 12: 2080, + 13: 0, + 14: 134217760, + 15: 133152, + 2147483648: 2048, + 2147483649: 134350880, + 2147483650: 134219808, + 2147483651: 134217728, + 2147483652: 134348800, + 2147483653: 133120, + 2147483654: 133152, + 2147483655: 32, + 2147483656: 134217760, + 2147483657: 2080, + 2147483658: 131104, + 2147483659: 134350848, + 2147483660: 0, + 2147483661: 134348832, + 2147483662: 134219776, + 2147483663: 131072, + 16: 133152, + 17: 134350848, + 18: 32, + 19: 2048, + 20: 134219776, + 21: 134217760, + 22: 134348832, + 23: 131072, + 24: 0, + 25: 131104, + 26: 134348800, + 27: 134219808, + 28: 134350880, + 29: 133120, + 30: 2080, + 31: 134217728, + 2147483664: 131072, + 2147483665: 2048, + 2147483666: 134348832, + 2147483667: 133152, + 2147483668: 32, + 2147483669: 134348800, + 2147483670: 134217728, + 2147483671: 134219808, + 2147483672: 134350880, + 2147483673: 134217760, + 2147483674: 134219776, + 2147483675: 0, + 2147483676: 133120, + 2147483677: 2080, + 2147483678: 131104, + 2147483679: 134350848 + }], + u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], + d = a.DES = s.extend({ + _doReset: function _doReset() { + for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { + var n = c[i] - 1; + e[i] = r[n >>> 5] >>> 31 - n % 32 & 1; } - - a[0] = a[0] << 1 | a[0] >>> 31; - - for (var i = 1; i < 7; i++) { - a[i] = a[i] >>> 4 * (i - 1) + 3; + for (var o = this._subKeys = [], s = 0; s < 16; s++) { + for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++) a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; + a[0] = a[0] << 1 | a[0] >>> 31; + for (var i = 1; i < 7; i++) a[i] = a[i] >>> 4 * (i - 1) + 3; + a[7] = a[7] << 5 | a[7] >>> 27; } - - a[7] = a[7] << 5 | a[7] >>> 27; - } - - for (var u = this._invSubKeys = [], i = 0; i < 16; i++) { - u[i] = o[15 - i]; - } - }, - encryptBlock: function encryptBlock(t, r) { - this._doCryptBlock(t, r, this._subKeys); - }, - decryptBlock: function decryptBlock(t, r) { - this._doCryptBlock(t, r, this._invSubKeys); - }, - _doCryptBlock: function _doCryptBlock(t, i, n) { - this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); - - for (var o = 0; o < 16; o++) { - for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++) { - h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; + for (var u = this._invSubKeys = [], i = 0; i < 16; i++) u[i] = o[15 - i]; + }, + encryptBlock: function encryptBlock(t, r) { + this._doCryptBlock(t, r, this._subKeys); + }, + decryptBlock: function decryptBlock(t, r) { + this._doCryptBlock(t, r, this._invSubKeys); + }, + _doCryptBlock: function _doCryptBlock(t, i, n) { + this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); + for (var o = 0; o < 16; o++) { + for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++) h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; + this._lBlock = c, this._rBlock = a ^ h; } - - this._lBlock = c, this._rBlock = a ^ h; - } - - var d = this._lBlock; - this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock; - }, - keySize: 2, - ivSize: 2, - blockSize: 2 - }); + var d = this._lBlock; + this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock; + }, + keySize: 2, + ivSize: 2, + blockSize: 2 + }); i.DES = s._createHelper(d); var v = a.TripleDES = s.extend({ _doReset: function _doReset() { var t = this._key, - r = t.words; + r = t.words; this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))); }, encryptBlock: function encryptBlock(t, r) { @@ -2073,36 +1869,30 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); var o = t[r]; t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n; } - return this._i = r, this._j = e, i; } - var e = t, - i = e.lib, - n = i.StreamCipher, - o = e.algo, - s = o.RC4 = n.extend({ - _doReset: function _doReset() { - for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++) { - i[n] = n; - } - - for (var n = 0, o = 0; n < 256; n++) { - var s = n % e, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = o.RC4 = n.extend({ + _doReset: function _doReset() { + for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++) i[n] = n; + for (var n = 0, o = 0; n < 256; n++) { + var s = n % e, a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; - o = (o + i[n] + a) % 256; - var c = i[n]; - i[n] = i[o], i[o] = c; - } - - this._i = this._j = 0; - }, - _doProcessBlock: function _doProcessBlock(t, e) { - t[e] ^= r.call(this); - }, - keySize: 8, - ivSize: 0 - }); + o = (o + i[n] + a) % 256; + var c = i[n]; + i[n] = i[o], i[o] = c; + } + this._i = this._j = 0; + }, + _doProcessBlock: function _doProcessBlock(t, e) { + t[e] ^= r.call(this); + }, + keySize: 8, + ivSize: 0 + }); e.RC4 = n._createHelper(s); var a = o.RC4Drop = s.extend({ cfg: s.cfg.extend({ @@ -2110,10 +1900,7 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }), _doReset: function _doReset() { s._doReset.call(this); - - for (var t = this.cfg.drop; t > 0; t--) { - r.call(this); - } + for (var t = this.cfg.drop; t > 0; t--) r.call(this); } }); e.RC4Drop = n._createHelper(a); @@ -2121,194 +1908,144 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, - e = t >> 8 & 255, - i = 255 & t; + e = t >> 8 & 255, + i = 255 & t; 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i; } else t += 1 << 24; - return t; } - function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t; } - var i = t.lib.BlockCipherMode.extend(), - n = i.Encryptor = i.extend({ - processBlock: function processBlock(t, r) { - var i = this._cipher, + n = i.Encryptor = i.extend({ + processBlock: function processBlock(t, r) { + var i = this._cipher, n = i.blockSize, o = this._iv, s = this._counter; - o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); - var a = s.slice(0); - i.encryptBlock(a, 0); - - for (var c = 0; c < n; c++) { - t[r + c] ^= a[c]; + o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); + var a = s.slice(0); + i.encryptBlock(a, 0); + for (var c = 0; c < n; c++) t[r + c] ^= a[c]; } - } - }); + }); return i.Decryptor = n, i; }(), function () { function r() { - for (var t = this._X, r = this._C, e = 0; e < 8; e++) { - a[e] = r[e]; - } - + for (var t = this._X, r = this._C, e = 0; e < 8; e++) a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; - for (var e = 0; e < 8; e++) { var i = t[e] + r[e], - n = 65535 & i, - o = i >>> 16, - s = ((n * n >>> 17) + n * o >>> 15) + o * o, - h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); + n = 65535 & i, + o = i >>> 16, + s = ((n * n >>> 17) + n * o >>> 15) + o * o, + h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h; } - t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; } - var e = t, - i = e.lib, - n = i.StreamCipher, - o = e.algo, - s = [], - a = [], - c = [], - h = o.Rabbit = n.extend({ - _doReset: function _doReset() { - for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++) { - t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); - } - - var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = [], + a = [], + c = [], + h = o.Rabbit = n.extend({ + _doReset: function _doReset() { + for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++) t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); + var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; - this._b = 0; - - for (var i = 0; i < 4; i++) { - r.call(this); - } - - for (var i = 0; i < 8; i++) { - o[i] ^= n[i + 4 & 7]; - } - - if (e) { - var s = e.words, + this._b = 0; + for (var i = 0; i < 4; i++) r.call(this); + for (var i = 0; i < 8; i++) o[i] ^= n[i + 4 & 7]; + if (e) { + var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; - o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; - - for (var i = 0; i < 4; i++) { - r.call(this); + o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; + for (var i = 0; i < 4; i++) r.call(this); } - } - }, - _doProcessBlock: function _doProcessBlock(t, e) { - var i = this._X; - r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; - - for (var n = 0; n < 4; n++) { - s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; - } - }, - blockSize: 4, - ivSize: 2 - }); + }, + _doProcessBlock: function _doProcessBlock(t, e) { + var i = this._X; + r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; + for (var n = 0; n < 4; n++) s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; + }, + blockSize: 4, + ivSize: 2 + }); e.Rabbit = n._createHelper(h); }(), t.mode.CTR = function () { var r = t.lib.BlockCipherMode.extend(), - e = r.Encryptor = r.extend({ - processBlock: function processBlock(t, r) { - var e = this._cipher, + e = r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + var e = this._cipher, i = e.blockSize, n = this._iv, o = this._counter; - n && (o = this._counter = n.slice(0), this._iv = void 0); - var s = o.slice(0); - e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; - - for (var a = 0; a < i; a++) { - t[r + a] ^= s[a]; + n && (o = this._counter = n.slice(0), this._iv = void 0); + var s = o.slice(0); + e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; + for (var a = 0; a < i; a++) t[r + a] ^= s[a]; } - } - }); + }); return r.Decryptor = e, r; }(), function () { function r() { - for (var t = this._X, r = this._C, e = 0; e < 8; e++) { - a[e] = r[e]; - } - + for (var t = this._X, r = this._C, e = 0; e < 8; e++) a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; - for (var e = 0; e < 8; e++) { var i = t[e] + r[e], - n = 65535 & i, - o = i >>> 16, - s = ((n * n >>> 17) + n * o >>> 15) + o * o, - h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); + n = 65535 & i, + o = i >>> 16, + s = ((n * n >>> 17) + n * o >>> 15) + o * o, + h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h; } - t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; } - var e = t, - i = e.lib, - n = i.StreamCipher, - o = e.algo, - s = [], - a = [], - c = [], - h = o.RabbitLegacy = n.extend({ - _doReset: function _doReset() { - var t = this._key.words, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = [], + a = [], + c = [], + h = o.RabbitLegacy = n.extend({ + _doReset: function _doReset() { + var t = this._key.words, e = this.cfg.iv, i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; - this._b = 0; - - for (var o = 0; o < 4; o++) { - r.call(this); - } - - for (var o = 0; o < 8; o++) { - n[o] ^= i[o + 4 & 7]; - } - - if (e) { - var s = e.words, + this._b = 0; + for (var o = 0; o < 4; o++) r.call(this); + for (var o = 0; o < 8; o++) n[o] ^= i[o + 4 & 7]; + if (e) { + var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; - n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; - - for (var o = 0; o < 4; o++) { - r.call(this); + n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; + for (var o = 0; o < 4; o++) r.call(this); } - } - }, - _doProcessBlock: function _doProcessBlock(t, e) { - var i = this._X; - r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; - - for (var n = 0; n < 4; n++) { - s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; - } - }, - blockSize: 4, - ivSize: 2 - }); + }, + _doProcessBlock: function _doProcessBlock(t, e) { + var i = this._X; + r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; + for (var n = 0; n < 4; n++) s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; + }, + blockSize: 4, + ivSize: 2 + }); e.RabbitLegacy = n._createHelper(h); }(), t.pad.ZeroPadding = { pad: function pad(t, r) { @@ -2316,13 +2053,11 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); t.clamp(), t.sigBytes += e - (t.sigBytes % e || e); }, unpad: function unpad(t) { - for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);) { - e--; - } - + for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);) e--; t.sigBytes = e + 1; } }, t; -}); //# sourceMappingURL=crypto-js.min.js.map +}); +//# sourceMappingURL=crypto-js.min.js.map cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/e6/e64e1a97-c93f-4257-ab34-80341d8ff79d.js.map b/library/imports/e6/e64e1a97-c93f-4257-ab34-80341d8ff79d.js.map index baf63da..ede8743 100644 --- a/library/imports/e6/e64e1a97-c93f-4257-ab34-80341d8ff79d.js.map +++ b/library/imports/e6/e64e1a97-c93f-4257-ab34-80341d8ff79d.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\module\\Crypto\\crypto-js.min.js"],"names":["t","r","exports","module","define","amd","CryptoJS","e","Object","create","prototype","i","n","lib","o","Base","extend","mixIn","hasOwnProperty","init","$super","apply","arguments","toString","clone","s","WordArray","words","sigBytes","length","c","stringify","concat","clamp","ceil","call","slice","random","a","push","enc","Hex","join","parse","parseInt","substr","h","Latin1","String","fromCharCode","charCodeAt","l","Utf8","decodeURIComponent","escape","Error","unescape","encodeURIComponent","f","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","_process","blockSize","max","_minBufferSize","min","_doProcessBlock","u","splice","Hasher","cfg","_doReset","update","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","Math","Base64","_map","charAt","_reverseMap","indexOf","abs","sin","MD5","_hash","d","v","p","_","y","g","B","w","k","S","m","x","b","H","z","A","C","D","floor","HmacMD5","SHA1","HmacSHA1","sqrt","pow","SHA256","HmacSHA256","Utf16","Utf16BE","Utf16LE","ArrayBuffer","Uint8Array","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","buffer","byteOffset","byteLength","RIPEMD160","R","E","M","F","HmacRIPEMD160","_hasher","_oKey","_iKey","PBKDF2","keySize","hasher","iterations","compute","EvpKDF","SHA224","HmacSHA224","x64","Word","high","low","toX32","SHA3","outputLength","_state","HmacSHA3","SHA512","P","W","O","U","I","K","X","L","j","N","T","Z","q","G","J","$","Q","V","Y","tt","rt","et","it","nt","ot","st","at","ct","ht","lt","ft","ut","dt","vt","pt","_t","yt","gt","Bt","wt","kt","St","mt","xt","bt","HmacSHA512","SHA384","HmacSHA384","Cipher","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","_xformMode","_key","process","ivSize","encrypt","decrypt","StreamCipher","mode","BlockCipherMode","Encryptor","Decryptor","_cipher","_iv","CBC","_prevBlock","processBlock","encryptBlock","decryptBlock","pad","Pkcs7","unpad","BlockCipher","padding","iv","_mode","__creator","CipherParams","formatter","format","OpenSSL","ciphertext","salt","SerializableCipher","key","algorithm","_parse","kdf","execute","PasswordBasedCipher","CFB","ECB","AnsiX923","Iso10126","Iso97971","ZeroPadding","OFB","_keystream","NoPadding","AES","_nRounds","_keyPriorReset","_keySchedule","_invKeySchedule","_doCryptBlock","_lBlock","_rBlock","DES","_subKeys","_invSubKeys","TripleDES","_des1","_des2","_des3","_S","_i","_j","RC4","RC4Drop","drop","CTRGladman","_counter","_X","_C","_b","Rabbit","CTR","RabbitLegacy"],"mappings":";;;;;;AAAA,CAAC,UAASA,CAAT,EAAWC,CAAX,EAAa;AAAC,cAAU,OAAOC,OAAjB,GAAyBC,MAAM,CAACD,OAAP,GAAeA,OAAO,GAACD,CAAC,EAAjD,GAAoD,cAAY,OAAOG,MAAnB,IAA2BA,MAAM,CAACC,GAAlC,GAAsCD,MAAM,CAAC,EAAD,EAAIH,CAAJ,CAA5C,GAAmDD,CAAC,CAACM,QAAF,GAAWL,CAAC,EAAnH;AAAsH,CAApI,SAA0I,YAAU;AAAC,MAAID,CAAC,GAACA,CAAC,IAAE,UAASA,CAAT,EAAWC,CAAX,EAAa;AAAC,QAAIM,CAAC,GAACC,MAAM,CAACC,MAAP,IAAe,YAAU;AAAC,eAAST,CAAT,GAAY,CAAE;;AAAA,aAAO,UAASC,CAAT,EAAW;AAAC,YAAIM,CAAJ;AAAM,eAAOP,CAAC,CAACU,SAAF,GAAYT,CAAZ,EAAcM,CAAC,GAAC,IAAIP,CAAJ,EAAhB,EAAsBA,CAAC,CAACU,SAAF,GAAY,IAAlC,EAAuCH,CAA9C;AAAgD,OAAzE;AAA0E,KAAnG,EAArB;AAAA,QAA2HI,CAAC,GAAC,EAA7H;AAAA,QAAgIC,CAAC,GAACD,CAAC,CAACE,GAAF,GAAM,EAAxI;AAAA,QAA2IC,CAAC,GAACF,CAAC,CAACG,IAAF,GAAO,YAAU;AAAC,aAAM;AAACC,QAAAA,MAAM,EAAC,gBAAShB,CAAT,EAAW;AAAC,cAAIC,CAAC,GAACM,CAAC,CAAC,IAAD,CAAP;AAAc,iBAAOP,CAAC,IAAEC,CAAC,CAACgB,KAAF,CAAQjB,CAAR,CAAH,EAAcC,CAAC,CAACiB,cAAF,CAAiB,MAAjB,KAA0B,KAAKC,IAAL,KAAYlB,CAAC,CAACkB,IAAxC,KAA+ClB,CAAC,CAACkB,IAAF,GAAO,YAAU;AAAClB,YAAAA,CAAC,CAACmB,MAAF,CAASD,IAAT,CAAcE,KAAd,CAAoB,IAApB,EAAyBC,SAAzB;AAAoC,WAArG,CAAd,EAAqHrB,CAAC,CAACkB,IAAF,CAAOT,SAAP,GAAiBT,CAAtI,EAAwIA,CAAC,CAACmB,MAAF,GAAS,IAAjJ,EAAsJnB,CAA7J;AAA+J,SAAjM;AAAkMQ,QAAAA,MAAM,EAAC,kBAAU;AAAC,cAAIT,CAAC,GAAC,KAAKgB,MAAL,EAAN;AAAoB,iBAAOhB,CAAC,CAACmB,IAAF,CAAOE,KAAP,CAAarB,CAAb,EAAesB,SAAf,GAA0BtB,CAAjC;AAAmC,SAA3Q;AAA4QmB,QAAAA,IAAI,EAAC,gBAAU,CAAE,CAA7R;AAA8RF,QAAAA,KAAK,EAAC,eAASjB,CAAT,EAAW;AAAC,eAAI,IAAIC,CAAR,IAAaD,CAAb;AAAeA,YAAAA,CAAC,CAACkB,cAAF,CAAiBjB,CAAjB,MAAsB,KAAKA,CAAL,IAAQD,CAAC,CAACC,CAAD,CAA/B;AAAf;;AAAmDD,UAAAA,CAAC,CAACkB,cAAF,CAAiB,UAAjB,MAA+B,KAAKK,QAAL,GAAcvB,CAAC,CAACuB,QAA/C;AAAyD,SAA5Z;AAA6ZC,QAAAA,KAAK,EAAC,iBAAU;AAAC,iBAAO,KAAKL,IAAL,CAAUT,SAAV,CAAoBM,MAApB,CAA2B,IAA3B,CAAP;AAAwC;AAAtd,OAAN;AAA8d,KAAze,EAApJ;AAAA,QAAgoBS,CAAC,GAACb,CAAC,CAACc,SAAF,GAAYZ,CAAC,CAACE,MAAF,CAAS;AAACG,MAAAA,IAAI,EAAC,cAASnB,CAAT,EAAWO,CAAX,EAAa;AAACP,QAAAA,CAAC,GAAC,KAAK2B,KAAL,GAAW3B,CAAC,IAAE,EAAhB,EAAmBO,CAAC,IAAEN,CAAH,GAAK,KAAK2B,QAAL,GAAcrB,CAAnB,GAAqB,KAAKqB,QAAL,GAAc,IAAE5B,CAAC,CAAC6B,MAA1D;AAAiE,OAArF;AAAsFN,MAAAA,QAAQ,EAAC,kBAASvB,CAAT,EAAW;AAAC,eAAM,CAACA,CAAC,IAAE8B,CAAJ,EAAOC,SAAP,CAAiB,IAAjB,CAAN;AAA6B,OAAxI;AAAyIC,MAAAA,MAAM,EAAC,gBAAShC,CAAT,EAAW;AAAC,YAAIC,CAAC,GAAC,KAAK0B,KAAX;AAAA,YAAiBpB,CAAC,GAACP,CAAC,CAAC2B,KAArB;AAAA,YAA2BhB,CAAC,GAAC,KAAKiB,QAAlC;AAAA,YAA2ChB,CAAC,GAACZ,CAAC,CAAC4B,QAA/C;AAAwD,YAAG,KAAKK,KAAL,IAAatB,CAAC,GAAC,CAAlB,EAAoB,KAAI,IAAIG,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACF,CAAd,EAAgBE,CAAC,EAAjB,EAAoB;AAAC,cAAIW,CAAC,GAAClB,CAAC,CAACO,CAAC,KAAG,CAAL,CAAD,KAAW,KAAGA,CAAC,GAAC,CAAF,GAAI,CAAlB,GAAoB,GAA1B;AAA8Bb,UAAAA,CAAC,CAACU,CAAC,GAACG,CAAF,KAAM,CAAP,CAAD,IAAYW,CAAC,IAAE,KAAG,CAACd,CAAC,GAACG,CAAH,IAAM,CAAN,GAAQ,CAA1B;AAA4B,SAAnG,MAAwG,KAAI,IAAIA,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACF,CAAd,EAAgBE,CAAC,IAAE,CAAnB;AAAqBb,UAAAA,CAAC,CAACU,CAAC,GAACG,CAAF,KAAM,CAAP,CAAD,GAAWP,CAAC,CAACO,CAAC,KAAG,CAAL,CAAZ;AAArB;AAAyC,eAAO,KAAKc,QAAL,IAAehB,CAAf,EAAiB,IAAxB;AAA6B,OAAlY;AAAmYqB,MAAAA,KAAK,EAAC,iBAAU;AAAC,YAAIhC,CAAC,GAAC,KAAK0B,KAAX;AAAA,YAAiBpB,CAAC,GAAC,KAAKqB,QAAxB;AAAiC3B,QAAAA,CAAC,CAACM,CAAC,KAAG,CAAL,CAAD,IAAU,cAAY,KAAGA,CAAC,GAAC,CAAF,GAAI,CAA7B,EAA+BN,CAAC,CAAC4B,MAAF,GAAS7B,CAAC,CAACkC,IAAF,CAAO3B,CAAC,GAAC,CAAT,CAAxC;AAAoD,OAAze;AAA0eiB,MAAAA,KAAK,EAAC,iBAAU;AAAC,YAAIxB,CAAC,GAACc,CAAC,CAACU,KAAF,CAAQW,IAAR,CAAa,IAAb,CAAN;AAAyB,eAAOnC,CAAC,CAAC2B,KAAF,GAAQ,KAAKA,KAAL,CAAWS,KAAX,CAAiB,CAAjB,CAAR,EAA4BpC,CAAnC;AAAqC,OAAzjB;AAA0jBqC,MAAAA,MAAM,EAAC,gBAASpC,CAAT,EAAW;AAAC,aAAI,IAAIM,CAAJ,EAAMI,CAAC,GAAC,EAAR,EAAWC,CAAC,GAAC,SAAFA,CAAE,CAASX,CAAT,EAAW;AAAC,cAAIA,CAAC,GAACA,CAAN;AAAA,cAAQM,CAAC,GAAC,SAAV;AAAA,cAAoBI,CAAC,GAAC,UAAtB;AAAiC,iBAAO,YAAU;AAACJ,YAAAA,CAAC,GAAC,SAAO,QAAMA,CAAb,KAAiBA,CAAC,IAAE,EAApB,IAAwBI,CAA1B,EAA4BV,CAAC,GAAC,QAAM,QAAMA,CAAZ,KAAgBA,CAAC,IAAE,EAAnB,IAAuBU,CAArD;AAAuD,gBAAIC,CAAC,GAAC,CAACL,CAAC,IAAE,EAAJ,IAAQN,CAAR,GAAUU,CAAhB;AAAkB,mBAAOC,CAAC,IAAE,UAAH,EAAcA,CAAC,IAAE,EAAjB,EAAoBA,CAAC,IAAEZ,CAAC,CAACqC,MAAF,KAAW,EAAX,GAAc,CAAd,GAAgB,CAAC,CAAnB,CAA5B;AAAkD,WAA7I;AAA8I,SAAxM,EAAyMvB,CAAC,GAAC,CAA/M,EAAiNA,CAAC,GAACb,CAAnN,EAAqNa,CAAC,IAAE,CAAxN,EAA0N;AAAC,cAAIwB,CAAC,GAAC1B,CAAC,CAAC,cAAYL,CAAC,IAAEP,CAAC,CAACqC,MAAF,EAAf,CAAD,CAAP;AAAoC9B,UAAAA,CAAC,GAAC,YAAU+B,CAAC,EAAb,EAAgB3B,CAAC,CAAC4B,IAAF,CAAO,aAAWD,CAAC,EAAZ,GAAe,CAAtB,CAAhB;AAAyC;;AAAA,eAAO,IAAIb,CAAC,CAACN,IAAN,CAAWR,CAAX,EAAaV,CAAb,CAAP;AAAuB;AAA54B,KAAT,CAA9oB;AAAA,QAAsiDqC,CAAC,GAAC3B,CAAC,CAAC6B,GAAF,GAAM,EAA9iD;AAAA,QAAijDV,CAAC,GAACQ,CAAC,CAACG,GAAF,GAAM;AAACV,MAAAA,SAAS,EAAC,mBAAS/B,CAAT,EAAW;AAAC,aAAI,IAAIC,CAAC,GAACD,CAAC,CAAC2B,KAAR,EAAcpB,CAAC,GAACP,CAAC,CAAC4B,QAAlB,EAA2BjB,CAAC,GAAC,EAA7B,EAAgCC,CAAC,GAAC,CAAtC,EAAwCA,CAAC,GAACL,CAA1C,EAA4CK,CAAC,EAA7C,EAAgD;AAAC,cAAIE,CAAC,GAACb,CAAC,CAACW,CAAC,KAAG,CAAL,CAAD,KAAW,KAAGA,CAAC,GAAC,CAAF,GAAI,CAAlB,GAAoB,GAA1B;AAA8BD,UAAAA,CAAC,CAAC4B,IAAF,CAAO,CAACzB,CAAC,KAAG,CAAL,EAAQS,QAAR,CAAiB,EAAjB,CAAP,GAA6BZ,CAAC,CAAC4B,IAAF,CAAO,CAAC,KAAGzB,CAAJ,EAAOS,QAAP,CAAgB,EAAhB,CAAP,CAA7B;AAAyD;;AAAA,eAAOZ,CAAC,CAAC+B,IAAF,CAAO,EAAP,CAAP;AAAkB,OAAjL;AAAkLC,MAAAA,KAAK,EAAC,eAAS3C,CAAT,EAAW;AAAC,aAAI,IAAIC,CAAC,GAACD,CAAC,CAAC6B,MAAR,EAAetB,CAAC,GAAC,EAAjB,EAAoBI,CAAC,GAAC,CAA1B,EAA4BA,CAAC,GAACV,CAA9B,EAAgCU,CAAC,IAAE,CAAnC;AAAqCJ,UAAAA,CAAC,CAACI,CAAC,KAAG,CAAL,CAAD,IAAUiC,QAAQ,CAAC5C,CAAC,CAAC6C,MAAF,CAASlC,CAAT,EAAW,CAAX,CAAD,EAAe,EAAf,CAAR,IAA4B,KAAGA,CAAC,GAAC,CAAF,GAAI,CAA7C;AAArC;;AAAoF,eAAO,IAAIc,CAAC,CAACN,IAAN,CAAWZ,CAAX,EAAaN,CAAC,GAAC,CAAf,CAAP;AAAyB;AAAjT,KAAzjD;AAAA,QAA42D6C,CAAC,GAACR,CAAC,CAACS,MAAF,GAAS;AAAChB,MAAAA,SAAS,EAAC,mBAAS/B,CAAT,EAAW;AAAC,aAAI,IAAIC,CAAC,GAACD,CAAC,CAAC2B,KAAR,EAAcpB,CAAC,GAACP,CAAC,CAAC4B,QAAlB,EAA2BjB,CAAC,GAAC,EAA7B,EAAgCC,CAAC,GAAC,CAAtC,EAAwCA,CAAC,GAACL,CAA1C,EAA4CK,CAAC,EAA7C,EAAgD;AAAC,cAAIE,CAAC,GAACb,CAAC,CAACW,CAAC,KAAG,CAAL,CAAD,KAAW,KAAGA,CAAC,GAAC,CAAF,GAAI,CAAlB,GAAoB,GAA1B;AAA8BD,UAAAA,CAAC,CAAC4B,IAAF,CAAOS,MAAM,CAACC,YAAP,CAAoBnC,CAApB,CAAP;AAA+B;;AAAA,eAAOH,CAAC,CAAC+B,IAAF,CAAO,EAAP,CAAP;AAAkB,OAAvJ;AAAwJC,MAAAA,KAAK,EAAC,eAAS3C,CAAT,EAAW;AAAC,aAAI,IAAIC,CAAC,GAACD,CAAC,CAAC6B,MAAR,EAAetB,CAAC,GAAC,EAAjB,EAAoBI,CAAC,GAAC,CAA1B,EAA4BA,CAAC,GAACV,CAA9B,EAAgCU,CAAC,EAAjC;AAAoCJ,UAAAA,CAAC,CAACI,CAAC,KAAG,CAAL,CAAD,IAAU,CAAC,MAAIX,CAAC,CAACkD,UAAF,CAAavC,CAAb,CAAL,KAAuB,KAAGA,CAAC,GAAC,CAAF,GAAI,CAAxC;AAApC;;AAA8E,eAAO,IAAIc,CAAC,CAACN,IAAN,CAAWZ,CAAX,EAAaN,CAAb,CAAP;AAAuB;AAA/Q,KAAv3D;AAAA,QAAwoEkD,CAAC,GAACb,CAAC,CAACc,IAAF,GAAO;AAACrB,MAAAA,SAAS,EAAC,mBAAS/B,CAAT,EAAW;AAAC,YAAG;AAAC,iBAAOqD,kBAAkB,CAACC,MAAM,CAACR,CAAC,CAACf,SAAF,CAAY/B,CAAZ,CAAD,CAAP,CAAzB;AAAkD,SAAtD,CAAsD,OAAMA,CAAN,EAAQ;AAAC,gBAAM,IAAIuD,KAAJ,CAAU,sBAAV,CAAN;AAAwC;AAAC,OAA/H;AAAgIZ,MAAAA,KAAK,EAAC,eAAS3C,CAAT,EAAW;AAAC,eAAO8C,CAAC,CAACH,KAAF,CAAQa,QAAQ,CAACC,kBAAkB,CAACzD,CAAD,CAAnB,CAAhB,CAAP;AAAgD;AAAlM,KAAjpE;AAAA,QAAq1E0D,CAAC,GAAC9C,CAAC,CAAC+C,sBAAF,GAAyB7C,CAAC,CAACE,MAAF,CAAS;AAAC4C,MAAAA,KAAK,EAAC,iBAAU;AAAC,aAAKC,KAAL,GAAW,IAAIpC,CAAC,CAACN,IAAN,EAAX,EAAsB,KAAK2C,WAAL,GAAiB,CAAvC;AAAyC,OAA3D;AAA4DC,MAAAA,OAAO,EAAC,iBAAS/D,CAAT,EAAW;AAAC,oBAAU,OAAOA,CAAjB,KAAqBA,CAAC,GAACmD,CAAC,CAACR,KAAF,CAAQ3C,CAAR,CAAvB,GAAmC,KAAK6D,KAAL,CAAW7B,MAAX,CAAkBhC,CAAlB,CAAnC,EAAwD,KAAK8D,WAAL,IAAkB9D,CAAC,CAAC4B,QAA5E;AAAqF,OAArK;AAAsKoC,MAAAA,QAAQ,EAAC,kBAAS/D,CAAT,EAAW;AAAC,YAAIM,CAAC,GAAC,KAAKsD,KAAX;AAAA,YAAiBlD,CAAC,GAACJ,CAAC,CAACoB,KAArB;AAAA,YAA2Bf,CAAC,GAACL,CAAC,CAACqB,QAA/B;AAAA,YAAwCd,CAAC,GAAC,KAAKmD,SAA/C;AAAA,YAAyD3B,CAAC,GAAC,IAAExB,CAA7D;AAAA,YAA+DgB,CAAC,GAAClB,CAAC,GAAC0B,CAAnE;AAAqER,QAAAA,CAAC,GAAC7B,CAAC,GAACD,CAAC,CAACkC,IAAF,CAAOJ,CAAP,CAAD,GAAW9B,CAAC,CAACkE,GAAF,CAAM,CAAC,IAAEpC,CAAH,IAAM,KAAKqC,cAAjB,EAAgC,CAAhC,CAAd;AAAiD,YAAIrB,CAAC,GAAChB,CAAC,GAAChB,CAAR;AAAA,YAAUqC,CAAC,GAACnD,CAAC,CAACoE,GAAF,CAAM,IAAEtB,CAAR,EAAUlC,CAAV,CAAZ;;AAAyB,YAAGkC,CAAH,EAAK;AAAC,eAAI,IAAIY,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACZ,CAAd,EAAgBY,CAAC,IAAE5C,CAAnB;AAAqB,iBAAKuD,eAAL,CAAqB1D,CAArB,EAAuB+C,CAAvB;AAArB;;AAA+C,cAAIY,CAAC,GAAC3D,CAAC,CAAC4D,MAAF,CAAS,CAAT,EAAWzB,CAAX,CAAN;AAAoBvC,UAAAA,CAAC,CAACqB,QAAF,IAAYuB,CAAZ;AAAc;;AAAA,eAAO,IAAI1B,CAAC,CAACN,IAAN,CAAWmD,CAAX,EAAanB,CAAb,CAAP;AAAuB,OAAxb;AAAyb3B,MAAAA,KAAK,EAAC,iBAAU;AAAC,YAAIxB,CAAC,GAACc,CAAC,CAACU,KAAF,CAAQW,IAAR,CAAa,IAAb,CAAN;AAAyB,eAAOnC,CAAC,CAAC6D,KAAF,GAAQ,KAAKA,KAAL,CAAWrC,KAAX,EAAR,EAA2BxB,CAAlC;AAAoC,OAAvgB;AAAwgBmE,MAAAA,cAAc,EAAC;AAAvhB,KAAT,CAAh3E;AAAA,QAAo5FG,CAAC,IAAE1D,CAAC,CAAC4D,MAAF,GAASd,CAAC,CAAC1C,MAAF,CAAS;AAACyD,MAAAA,GAAG,EAAC3D,CAAC,CAACE,MAAF,EAAL;AAAgBG,MAAAA,IAAI,EAAC,cAASnB,CAAT,EAAW;AAAC,aAAKyE,GAAL,GAAS,KAAKA,GAAL,CAASzD,MAAT,CAAgBhB,CAAhB,CAAT,EAA4B,KAAK4D,KAAL,EAA5B;AAAyC,OAA1E;AAA2EA,MAAAA,KAAK,EAAC,iBAAU;AAACF,QAAAA,CAAC,CAACE,KAAF,CAAQzB,IAAR,CAAa,IAAb,GAAmB,KAAKuC,QAAL,EAAnB;AAAmC,OAA/H;AAAgIC,MAAAA,MAAM,EAAC,gBAAS3E,CAAT,EAAW;AAAC,eAAO,KAAK+D,OAAL,CAAa/D,CAAb,GAAgB,KAAKgE,QAAL,EAAhB,EAAgC,IAAvC;AAA4C,OAA/L;AAAgMY,MAAAA,QAAQ,EAAC,kBAAS5E,CAAT,EAAW;AAACA,QAAAA,CAAC,IAAE,KAAK+D,OAAL,CAAa/D,CAAb,CAAH;;AAAmB,YAAIC,CAAC,GAAC,KAAK4E,WAAL,EAAN;;AAAyB,eAAO5E,CAAP;AAAS,OAA1Q;AAA2QgE,MAAAA,SAAS,EAAC,EAArR;AAAwRa,MAAAA,aAAa,EAAC,uBAAS9E,CAAT,EAAW;AAAC,eAAO,UAASC,CAAT,EAAWM,CAAX,EAAa;AAAC,iBAAO,IAAIP,CAAC,CAACmB,IAAN,CAAWZ,CAAX,EAAcqE,QAAd,CAAuB3E,CAAvB,CAAP;AAAiC,SAAtD;AAAuD,OAAzW;AAA0W8E,MAAAA,iBAAiB,EAAC,2BAAS/E,CAAT,EAAW;AAAC,eAAO,UAASC,CAAT,EAAWM,CAAX,EAAa;AAAC,iBAAO,IAAI+D,CAAC,CAACU,IAAF,CAAO7D,IAAX,CAAgBnB,CAAhB,EAAkBO,CAAlB,EAAqBqE,QAArB,CAA8B3E,CAA9B,CAAP;AAAwC,SAA7D;AAA8D;AAAtc,KAAT,CAAT,EAA2dU,CAAC,CAACsE,IAAF,GAAO,EAApe,CAAr5F;;AAA63G,WAAOtE,CAAP;AAAS,GAAp5G,CAAq5GuE,IAAr5G,CAAT;;AAAo6G,SAAO,YAAU;AAAC,aAASjF,CAAT,CAAWD,CAAX,EAAaC,CAAb,EAAeM,CAAf,EAAiB;AAAC,WAAI,IAAII,CAAC,GAAC,EAAN,EAASG,CAAC,GAAC,CAAX,EAAaW,CAAC,GAAC,CAAnB,EAAqBA,CAAC,GAACxB,CAAvB,EAAyBwB,CAAC,EAA1B;AAA6B,YAAGA,CAAC,GAAC,CAAL,EAAO;AAAC,cAAIa,CAAC,GAAC/B,CAAC,CAACP,CAAC,CAACkD,UAAF,CAAazB,CAAC,GAAC,CAAf,CAAD,CAAD,IAAsBA,CAAC,GAAC,CAAF,GAAI,CAAhC;AAAA,cAAkCK,CAAC,GAACvB,CAAC,CAACP,CAAC,CAACkD,UAAF,CAAazB,CAAb,CAAD,CAAD,KAAqB,IAAEA,CAAC,GAAC,CAAF,GAAI,CAA/D;AAAiEd,UAAAA,CAAC,CAACG,CAAC,KAAG,CAAL,CAAD,IAAU,CAACwB,CAAC,GAACR,CAAH,KAAO,KAAGhB,CAAC,GAAC,CAAF,GAAI,CAAxB,EAA0BA,CAAC,EAA3B;AAA8B;AAApI;;AAAoI,aAAOF,CAAC,CAACH,MAAF,CAASE,CAAT,EAAWG,CAAX,CAAP;AAAqB;;AAAA,QAAIP,CAAC,GAACP,CAAN;AAAA,QAAQW,CAAC,GAACJ,CAAC,CAACM,GAAZ;AAAA,QAAgBD,CAAC,GAACD,CAAC,CAACe,SAApB;AAAA,QAA8BZ,CAAC,GAACP,CAAC,CAACiC,GAAlC;AAAsC1B,IAAAA,CAAC,CAACqE,MAAF,GAAS;AAACpD,MAAAA,SAAS,EAAC,mBAAS/B,CAAT,EAAW;AAAC,YAAIC,CAAC,GAACD,CAAC,CAAC2B,KAAR;AAAA,YAAcpB,CAAC,GAACP,CAAC,CAAC4B,QAAlB;AAAA,YAA2BjB,CAAC,GAAC,KAAKyE,IAAlC;AAAuCpF,QAAAA,CAAC,CAACiC,KAAF;;AAAU,aAAI,IAAIrB,CAAC,GAAC,EAAN,EAASE,CAAC,GAAC,CAAf,EAAiBA,CAAC,GAACP,CAAnB,EAAqBO,CAAC,IAAE,CAAxB;AAA0B,eAAI,IAAIW,CAAC,GAACxB,CAAC,CAACa,CAAC,KAAG,CAAL,CAAD,KAAW,KAAGA,CAAC,GAAC,CAAF,GAAI,CAAlB,GAAoB,GAA1B,EAA8BwB,CAAC,GAACrC,CAAC,CAACa,CAAC,GAAC,CAAF,KAAM,CAAP,CAAD,KAAa,KAAG,CAACA,CAAC,GAAC,CAAH,IAAM,CAAN,GAAQ,CAAxB,GAA0B,GAA1D,EAA8DgB,CAAC,GAAC7B,CAAC,CAACa,CAAC,GAAC,CAAF,KAAM,CAAP,CAAD,KAAa,KAAG,CAACA,CAAC,GAAC,CAAH,IAAM,CAAN,GAAQ,CAAxB,GAA0B,GAA1F,EAA8FgC,CAAC,GAACrB,CAAC,IAAE,EAAH,GAAMa,CAAC,IAAE,CAAT,GAAWR,CAA3G,EAA6GqB,CAAC,GAAC,CAAnH,EAAqHA,CAAC,GAAC,CAAF,IAAKrC,CAAC,GAAC,MAAIqC,CAAN,GAAQ5C,CAAlI,EAAoI4C,CAAC,EAArI;AAAwIvC,YAAAA,CAAC,CAAC2B,IAAF,CAAO5B,CAAC,CAAC0E,MAAF,CAASvC,CAAC,KAAG,KAAG,IAAEK,CAAL,CAAJ,GAAY,EAArB,CAAP;AAAxI;AAA1B;;AAAmM,YAAIO,CAAC,GAAC/C,CAAC,CAAC0E,MAAF,CAAS,EAAT,CAAN;AAAmB,YAAG3B,CAAH,EAAK,OAAK9C,CAAC,CAACiB,MAAF,GAAS,CAAd;AAAiBjB,UAAAA,CAAC,CAAC2B,IAAF,CAAOmB,CAAP;AAAjB;AAA2B,eAAO9C,CAAC,CAAC8B,IAAF,CAAO,EAAP,CAAP;AAAkB,OAAhV;AAAiVC,MAAAA,KAAK,EAAC,eAAS3C,CAAT,EAAW;AAAC,YAAIO,CAAC,GAACP,CAAC,CAAC6B,MAAR;AAAA,YAAelB,CAAC,GAAC,KAAKyE,IAAtB;AAAA,YAA2BxE,CAAC,GAAC,KAAK0E,WAAlC;;AAA8C,YAAG,CAAC1E,CAAJ,EAAM;AAACA,UAAAA,CAAC,GAAC,KAAK0E,WAAL,GAAiB,EAAnB;;AAAsB,eAAI,IAAIxE,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACH,CAAC,CAACkB,MAAhB,EAAuBf,CAAC,EAAxB;AAA2BF,YAAAA,CAAC,CAACD,CAAC,CAACuC,UAAF,CAAapC,CAAb,CAAD,CAAD,GAAmBA,CAAnB;AAA3B;AAAgD;;AAAA,YAAIW,CAAC,GAACd,CAAC,CAAC0E,MAAF,CAAS,EAAT,CAAN;;AAAmB,YAAG5D,CAAH,EAAK;AAAC,cAAIa,CAAC,GAACtC,CAAC,CAACuF,OAAF,CAAU9D,CAAV,CAAN;AAAmBa,UAAAA,CAAC,KAAG,CAAC,CAAL,KAAS/B,CAAC,GAAC+B,CAAX;AAAc;;AAAA,eAAOrC,CAAC,CAACD,CAAD,EAAGO,CAAH,EAAKK,CAAL,CAAR;AAAgB,OAAxiB;AAAyiBwE,MAAAA,IAAI,EAAC;AAA9iB,KAAT;AAA4nB,GAAx1B,IAA21B,UAASnF,CAAT,EAAW;AAAC,aAASM,CAAT,CAAWP,CAAX,EAAaC,CAAb,EAAeM,CAAf,EAAiBI,CAAjB,EAAmBC,CAAnB,EAAqBE,CAArB,EAAuBW,CAAvB,EAAyB;AAAC,UAAIa,CAAC,GAACtC,CAAC,IAAEC,CAAC,GAACM,CAAF,GAAI,CAACN,CAAD,GAAGU,CAAT,CAAD,GAAaC,CAAb,GAAea,CAArB;AAAuB,aAAM,CAACa,CAAC,IAAExB,CAAH,GAAKwB,CAAC,KAAG,KAAGxB,CAAb,IAAgBb,CAAtB;AAAwB;;AAAA,aAASU,CAAT,CAAWX,CAAX,EAAaC,CAAb,EAAeM,CAAf,EAAiBI,CAAjB,EAAmBC,CAAnB,EAAqBE,CAArB,EAAuBW,CAAvB,EAAyB;AAAC,UAAIa,CAAC,GAACtC,CAAC,IAAEC,CAAC,GAACU,CAAF,GAAIJ,CAAC,GAAC,CAACI,CAAT,CAAD,GAAaC,CAAb,GAAea,CAArB;AAAuB,aAAM,CAACa,CAAC,IAAExB,CAAH,GAAKwB,CAAC,KAAG,KAAGxB,CAAb,IAAgBb,CAAtB;AAAwB;;AAAA,aAASW,CAAT,CAAWZ,CAAX,EAAaC,CAAb,EAAeM,CAAf,EAAiBI,CAAjB,EAAmBC,CAAnB,EAAqBE,CAArB,EAAuBW,CAAvB,EAAyB;AAAC,UAAIa,CAAC,GAACtC,CAAC,IAAEC,CAAC,GAACM,CAAF,GAAII,CAAN,CAAD,GAAUC,CAAV,GAAYa,CAAlB;AAAoB,aAAM,CAACa,CAAC,IAAExB,CAAH,GAAKwB,CAAC,KAAG,KAAGxB,CAAb,IAAgBb,CAAtB;AAAwB;;AAAA,aAASa,CAAT,CAAWd,CAAX,EAAaC,CAAb,EAAeM,CAAf,EAAiBI,CAAjB,EAAmBC,CAAnB,EAAqBE,CAArB,EAAuBW,CAAvB,EAAyB;AAAC,UAAIa,CAAC,GAACtC,CAAC,IAAEO,CAAC,IAAEN,CAAC,GAAC,CAACU,CAAL,CAAH,CAAD,GAAaC,CAAb,GAAea,CAArB;AAAuB,aAAM,CAACa,CAAC,IAAExB,CAAH,GAAKwB,CAAC,KAAG,KAAGxB,CAAb,IAAgBb,CAAtB;AAAwB;;AAAA,QAAIwB,CAAC,GAACzB,CAAN;AAAA,QAAQsC,CAAC,GAACb,CAAC,CAACZ,GAAZ;AAAA,QAAgBiB,CAAC,GAACQ,CAAC,CAACZ,SAApB;AAAA,QAA8BoB,CAAC,GAACR,CAAC,CAACkC,MAAlC;AAAA,QAAyCrB,CAAC,GAAC1B,CAAC,CAACwD,IAA7C;AAAA,QAAkDvB,CAAC,GAAC,EAApD;AAAuD,KAAC,YAAU;AAAC,WAAI,IAAI1D,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,EAAd,EAAiBA,CAAC,EAAlB;AAAqB0D,QAAAA,CAAC,CAAC1D,CAAD,CAAD,GAAK,aAAWC,CAAC,CAACuF,GAAF,CAAMvF,CAAC,CAACwF,GAAF,CAAMzF,CAAC,GAAC,CAAR,CAAN,CAAX,GAA6B,CAAlC;AAArB;AAAyD,KAApE,EAAD;AAAwE,QAAIsE,CAAC,GAACnB,CAAC,CAACuC,GAAF,GAAM5C,CAAC,CAAC9B,MAAF,CAAS;AAAC0D,MAAAA,QAAQ,EAAC,oBAAU;AAAC,aAAKiB,KAAL,GAAW,IAAI7D,CAAC,CAACX,IAAN,CAAW,CAAC,UAAD,EAAY,UAAZ,EAAuB,UAAvB,EAAkC,SAAlC,CAAX,CAAX;AAAoE,OAAzF;AAA0FkD,MAAAA,eAAe,EAAC,yBAASrE,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAI,IAAIwB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,EAAd,EAAiBA,CAAC,EAAlB,EAAqB;AAAC,cAAIa,CAAC,GAACrC,CAAC,GAACwB,CAAR;AAAA,cAAUK,CAAC,GAAC9B,CAAC,CAACsC,CAAD,CAAb;AAAiBtC,UAAAA,CAAC,CAACsC,CAAD,CAAD,GAAK,YAAUR,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAnB,IAAuB,cAAYA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAtB,CAA5B;AAAqD;;AAAA,YAAIgB,CAAC,GAAC,KAAK6C,KAAL,CAAWhE,KAAjB;AAAA,YAAuBwB,CAAC,GAACnD,CAAC,CAACC,CAAC,GAAC,CAAH,CAA1B;AAAA,YAAgCqE,CAAC,GAACtE,CAAC,CAACC,CAAC,GAAC,CAAH,CAAnC;AAAA,YAAyC2F,CAAC,GAAC5F,CAAC,CAACC,CAAC,GAAC,CAAH,CAA5C;AAAA,YAAkD4F,CAAC,GAAC7F,CAAC,CAACC,CAAC,GAAC,CAAH,CAArD;AAAA,YAA2D6F,CAAC,GAAC9F,CAAC,CAACC,CAAC,GAAC,CAAH,CAA9D;AAAA,YAAoE8F,CAAC,GAAC/F,CAAC,CAACC,CAAC,GAAC,CAAH,CAAvE;AAAA,YAA6E+F,CAAC,GAAChG,CAAC,CAACC,CAAC,GAAC,CAAH,CAAhF;AAAA,YAAsFgG,CAAC,GAACjG,CAAC,CAACC,CAAC,GAAC,CAAH,CAAzF;AAAA,YAA+FiG,CAAC,GAAClG,CAAC,CAACC,CAAC,GAAC,CAAH,CAAlG;AAAA,YAAwGkG,CAAC,GAACnG,CAAC,CAACC,CAAC,GAAC,CAAH,CAA3G;AAAA,YAAiHmG,CAAC,GAACpG,CAAC,CAACC,CAAC,GAAC,EAAH,CAApH;AAAA,YAA2HoG,CAAC,GAACrG,CAAC,CAACC,CAAC,GAAC,EAAH,CAA9H;AAAA,YAAqIqG,CAAC,GAACtG,CAAC,CAACC,CAAC,GAAC,EAAH,CAAxI;AAAA,YAA+IsG,CAAC,GAACvG,CAAC,CAACC,CAAC,GAAC,EAAH,CAAlJ;AAAA,YAAyJuG,CAAC,GAACxG,CAAC,CAACC,CAAC,GAAC,EAAH,CAA5J;AAAA,YAAmKwG,CAAC,GAACzG,CAAC,CAACC,CAAC,GAAC,EAAH,CAAtK;AAAA,YAA6KyG,CAAC,GAAC5D,CAAC,CAAC,CAAD,CAAhL;AAAA,YAAoL6D,CAAC,GAAC7D,CAAC,CAAC,CAAD,CAAvL;AAAA,YAA2L8D,CAAC,GAAC9D,CAAC,CAAC,CAAD,CAA9L;AAAA,YAAkM+D,CAAC,GAAC/D,CAAC,CAAC,CAAD,CAArM;AAAyM4D,QAAAA,CAAC,GAACnG,CAAC,CAACmG,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAAS1D,CAAT,EAAW,CAAX,EAAaO,CAAC,CAAC,CAAD,CAAd,CAAH,EAAsBmD,CAAC,GAACtG,CAAC,CAACsG,CAAD,EAAGH,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAAStC,CAAT,EAAW,EAAX,EAAcZ,CAAC,CAAC,CAAD,CAAf,CAAzB,EAA6CkD,CAAC,GAACrG,CAAC,CAACqG,CAAD,EAAGC,CAAH,EAAKH,CAAL,EAAOC,CAAP,EAASf,CAAT,EAAW,EAAX,EAAclC,CAAC,CAAC,CAAD,CAAf,CAAhD,EAAoEiD,CAAC,GAACpG,CAAC,CAACoG,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOH,CAAP,EAASb,CAAT,EAAW,EAAX,EAAcnC,CAAC,CAAC,CAAD,CAAf,CAAvE,EAA2FgD,CAAC,GAACnG,CAAC,CAACmG,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASf,CAAT,EAAW,CAAX,EAAapC,CAAC,CAAC,CAAD,CAAd,CAA9F,EAAiHmD,CAAC,GAACtG,CAAC,CAACsG,CAAD,EAAGH,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASb,CAAT,EAAW,EAAX,EAAcrC,CAAC,CAAC,CAAD,CAAf,CAApH,EAAwIkD,CAAC,GAACrG,CAAC,CAACqG,CAAD,EAAGC,CAAH,EAAKH,CAAL,EAAOC,CAAP,EAASX,CAAT,EAAW,EAAX,EAActC,CAAC,CAAC,CAAD,CAAf,CAA3I,EAA+JiD,CAAC,GAACpG,CAAC,CAACoG,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOH,CAAP,EAAST,CAAT,EAAW,EAAX,EAAcvC,CAAC,CAAC,CAAD,CAAf,CAAlK,EAAsLgD,CAAC,GAACnG,CAAC,CAACmG,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASX,CAAT,EAAW,CAAX,EAAaxC,CAAC,CAAC,CAAD,CAAd,CAAzL,EAA4MmD,CAAC,GAACtG,CAAC,CAACsG,CAAD,EAAGH,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAAST,CAAT,EAAW,EAAX,EAAczC,CAAC,CAAC,CAAD,CAAf,CAA/M,EAAmOkD,CAAC,GAACrG,CAAC,CAACqG,CAAD,EAAGC,CAAH,EAAKH,CAAL,EAAOC,CAAP,EAASP,CAAT,EAAW,EAAX,EAAc1C,CAAC,CAAC,EAAD,CAAf,CAAtO,EAA2PiD,CAAC,GAACpG,CAAC,CAACoG,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOH,CAAP,EAASL,CAAT,EAAW,EAAX,EAAc3C,CAAC,CAAC,EAAD,CAAf,CAA9P,EAAmRgD,CAAC,GAACnG,CAAC,CAACmG,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASP,CAAT,EAAW,CAAX,EAAa5C,CAAC,CAAC,EAAD,CAAd,CAAtR,EAA0SmD,CAAC,GAACtG,CAAC,CAACsG,CAAD,EAAGH,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASL,CAAT,EAAW,EAAX,EAAc7C,CAAC,CAAC,EAAD,CAAf,CAA7S,EAAkUkD,CAAC,GAACrG,CAAC,CAACqG,CAAD,EAAGC,CAAH,EAAKH,CAAL,EAAOC,CAAP,EAASH,CAAT,EAAW,EAAX,EAAc9C,CAAC,CAAC,EAAD,CAAf,CAArU,EAA0ViD,CAAC,GAACpG,CAAC,CAACoG,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOH,CAAP,EAASD,CAAT,EAAW,EAAX,EAAc/C,CAAC,CAAC,EAAD,CAAf,CAA7V,EAAkXgD,CAAC,GAAC/F,CAAC,CAAC+F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASvC,CAAT,EAAW,CAAX,EAAaZ,CAAC,CAAC,EAAD,CAAd,CAArX,EAAyYmD,CAAC,GAAClG,CAAC,CAACkG,CAAD,EAAGH,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASZ,CAAT,EAAW,CAAX,EAAatC,CAAC,CAAC,EAAD,CAAd,CAA5Y,EAAgakD,CAAC,GAACjG,CAAC,CAACiG,CAAD,EAAGC,CAAH,EAAKH,CAAL,EAAOC,CAAP,EAASN,CAAT,EAAW,EAAX,EAAc3C,CAAC,CAAC,EAAD,CAAf,CAAna,EAAwbiD,CAAC,GAAChG,CAAC,CAACgG,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOH,CAAP,EAASvD,CAAT,EAAW,EAAX,EAAcO,CAAC,CAAC,EAAD,CAAf,CAA3b,EAAgdgD,CAAC,GAAC/F,CAAC,CAAC+F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASd,CAAT,EAAW,CAAX,EAAarC,CAAC,CAAC,EAAD,CAAd,CAAnd,EAAuemD,CAAC,GAAClG,CAAC,CAACkG,CAAD,EAAGH,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASR,CAAT,EAAW,CAAX,EAAa1C,CAAC,CAAC,EAAD,CAAd,CAA1e,EAA8fkD,CAAC,GAACjG,CAAC,CAACiG,CAAD,EAAGC,CAAH,EAAKH,CAAL,EAAOC,CAAP,EAASF,CAAT,EAAW,EAAX,EAAc/C,CAAC,CAAC,EAAD,CAAf,CAAjgB,EAAshBiD,CAAC,GAAChG,CAAC,CAACgG,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOH,CAAP,EAASZ,CAAT,EAAW,EAAX,EAAcpC,CAAC,CAAC,EAAD,CAAf,CAAzhB,EAA8iBgD,CAAC,GAAC/F,CAAC,CAAC+F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASV,CAAT,EAAW,CAAX,EAAazC,CAAC,CAAC,EAAD,CAAd,CAAjjB,EAAqkBmD,CAAC,GAAClG,CAAC,CAACkG,CAAD,EAAGH,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASJ,CAAT,EAAW,CAAX,EAAa9C,CAAC,CAAC,EAAD,CAAd,CAAxkB,EAA4lBkD,CAAC,GAACjG,CAAC,CAACiG,CAAD,EAAGC,CAAH,EAAKH,CAAL,EAAOC,CAAP,EAASd,CAAT,EAAW,EAAX,EAAcnC,CAAC,CAAC,EAAD,CAAf,CAA/lB,EAAonBiD,CAAC,GAAChG,CAAC,CAACgG,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOH,CAAP,EAASR,CAAT,EAAW,EAAX,EAAcxC,CAAC,CAAC,EAAD,CAAf,CAAvnB,EAA4oBgD,CAAC,GAAC/F,CAAC,CAAC+F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASN,CAAT,EAAW,CAAX,EAAa7C,CAAC,CAAC,EAAD,CAAd,CAA/oB,EAAmqBmD,CAAC,GAAClG,CAAC,CAACkG,CAAD,EAAGH,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAAShB,CAAT,EAAW,CAAX,EAAalC,CAAC,CAAC,EAAD,CAAd,CAAtqB,EAA0rBkD,CAAC,GAACjG,CAAC,CAACiG,CAAD,EAAGC,CAAH,EAAKH,CAAL,EAAOC,CAAP,EAASV,CAAT,EAAW,EAAX,EAAcvC,CAAC,CAAC,EAAD,CAAf,CAA7rB,EAAktBiD,CAAC,GAAChG,CAAC,CAACgG,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOH,CAAP,EAASJ,CAAT,EAAW,EAAX,EAAc5C,CAAC,CAAC,EAAD,CAAf,CAArtB,EAA0uBgD,CAAC,GAAC9F,CAAC,CAAC8F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASd,CAAT,EAAW,CAAX,EAAarC,CAAC,CAAC,EAAD,CAAd,CAA7uB,EAAiwBmD,CAAC,GAACjG,CAAC,CAACiG,CAAD,EAAGH,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASV,CAAT,EAAW,EAAX,EAAcxC,CAAC,CAAC,EAAD,CAAf,CAApwB,EAAyxBkD,CAAC,GAAChG,CAAC,CAACgG,CAAD,EAAGC,CAAH,EAAKH,CAAL,EAAOC,CAAP,EAASN,CAAT,EAAW,EAAX,EAAc3C,CAAC,CAAC,EAAD,CAAf,CAA5xB,EAAizBiD,CAAC,GAAC/F,CAAC,CAAC+F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOH,CAAP,EAASF,CAAT,EAAW,EAAX,EAAc9C,CAAC,CAAC,EAAD,CAAf,CAApzB,EAAy0BgD,CAAC,GAAC9F,CAAC,CAAC8F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASvC,CAAT,EAAW,CAAX,EAAaZ,CAAC,CAAC,EAAD,CAAd,CAA50B,EAAg2BmD,CAAC,GAACjG,CAAC,CAACiG,CAAD,EAAGH,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASd,CAAT,EAAW,EAAX,EAAcpC,CAAC,CAAC,EAAD,CAAf,CAAn2B,EAAw3BkD,CAAC,GAAChG,CAAC,CAACgG,CAAD,EAAGC,CAAH,EAAKH,CAAL,EAAOC,CAAP,EAASV,CAAT,EAAW,EAAX,EAAcvC,CAAC,CAAC,EAAD,CAAf,CAA33B,EAAg5BiD,CAAC,GAAC/F,CAAC,CAAC+F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOH,CAAP,EAASN,CAAT,EAAW,EAAX,EAAc1C,CAAC,CAAC,EAAD,CAAf,CAAn5B,EAAw6BgD,CAAC,GAAC9F,CAAC,CAAC8F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASN,CAAT,EAAW,CAAX,EAAa7C,CAAC,CAAC,EAAD,CAAd,CAA36B,EAA+7BmD,CAAC,GAACjG,CAAC,CAACiG,CAAD,EAAGH,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASzD,CAAT,EAAW,EAAX,EAAcO,CAAC,CAAC,EAAD,CAAf,CAAl8B,EAAu9BkD,CAAC,GAAChG,CAAC,CAACgG,CAAD,EAAGC,CAAH,EAAKH,CAAL,EAAOC,CAAP,EAASd,CAAT,EAAW,EAAX,EAAcnC,CAAC,CAAC,EAAD,CAAf,CAA19B,EAA++BiD,CAAC,GAAC/F,CAAC,CAAC+F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOH,CAAP,EAASV,CAAT,EAAW,EAAX,EAActC,CAAC,CAAC,EAAD,CAAf,CAAl/B,EAAugCgD,CAAC,GAAC9F,CAAC,CAAC8F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASV,CAAT,EAAW,CAAX,EAAazC,CAAC,CAAC,EAAD,CAAd,CAA1gC,EAA8hCmD,CAAC,GAACjG,CAAC,CAACiG,CAAD,EAAGH,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASN,CAAT,EAAW,EAAX,EAAc5C,CAAC,CAAC,EAAD,CAAf,CAAjiC,EAAsjCkD,CAAC,GAAChG,CAAC,CAACgG,CAAD,EAAGC,CAAH,EAAKH,CAAL,EAAOC,CAAP,EAASF,CAAT,EAAW,EAAX,EAAc/C,CAAC,CAAC,EAAD,CAAf,CAAzjC,EAA8kCiD,CAAC,GAAC/F,CAAC,CAAC+F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOH,CAAP,EAASd,CAAT,EAAW,EAAX,EAAclC,CAAC,CAAC,EAAD,CAAf,CAAjlC,EAAsmCgD,CAAC,GAAC5F,CAAC,CAAC4F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAAS1D,CAAT,EAAW,CAAX,EAAaO,CAAC,CAAC,EAAD,CAAd,CAAzmC,EAA6nCmD,CAAC,GAAC/F,CAAC,CAAC+F,CAAD,EAAGH,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASX,CAAT,EAAW,EAAX,EAAcvC,CAAC,CAAC,EAAD,CAAf,CAAhoC,EAAqpCkD,CAAC,GAAC9F,CAAC,CAAC8F,CAAD,EAAGC,CAAH,EAAKH,CAAL,EAAOC,CAAP,EAASH,CAAT,EAAW,EAAX,EAAc9C,CAAC,CAAC,EAAD,CAAf,CAAxpC,EAA6qCiD,CAAC,GAAC7F,CAAC,CAAC6F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOH,CAAP,EAASX,CAAT,EAAW,EAAX,EAAcrC,CAAC,CAAC,EAAD,CAAf,CAAhrC,EAAqsCgD,CAAC,GAAC5F,CAAC,CAAC4F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASP,CAAT,EAAW,CAAX,EAAa5C,CAAC,CAAC,EAAD,CAAd,CAAxsC,EAA4tCmD,CAAC,GAAC/F,CAAC,CAAC+F,CAAD,EAAGH,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASf,CAAT,EAAW,EAAX,EAAcnC,CAAC,CAAC,EAAD,CAAf,CAA/tC,EAAovCkD,CAAC,GAAC9F,CAAC,CAAC8F,CAAD,EAAGC,CAAH,EAAKH,CAAL,EAAOC,CAAP,EAASP,CAAT,EAAW,EAAX,EAAc1C,CAAC,CAAC,EAAD,CAAf,CAAvvC,EAA4wCiD,CAAC,GAAC7F,CAAC,CAAC6F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOH,CAAP,EAASpC,CAAT,EAAW,EAAX,EAAcZ,CAAC,CAAC,EAAD,CAAf,CAA/wC,EAAoyCgD,CAAC,GAAC5F,CAAC,CAAC4F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASX,CAAT,EAAW,CAAX,EAAaxC,CAAC,CAAC,EAAD,CAAd,CAAvyC,EAA2zCmD,CAAC,GAAC/F,CAAC,CAAC+F,CAAD,EAAGH,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASH,CAAT,EAAW,EAAX,EAAc/C,CAAC,CAAC,EAAD,CAAf,CAA9zC,EAAm1CkD,CAAC,GAAC9F,CAAC,CAAC8F,CAAD,EAAGC,CAAH,EAAKH,CAAL,EAAOC,CAAP,EAASX,CAAT,EAAW,EAAX,EAActC,CAAC,CAAC,EAAD,CAAf,CAAt1C,EAA22CiD,CAAC,GAAC7F,CAAC,CAAC6F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOH,CAAP,EAASH,CAAT,EAAW,EAAX,EAAc7C,CAAC,CAAC,EAAD,CAAf,CAA92C,EAAm4CgD,CAAC,GAAC5F,CAAC,CAAC4F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASf,CAAT,EAAW,CAAX,EAAapC,CAAC,CAAC,EAAD,CAAd,CAAt4C,EAA05CmD,CAAC,GAAC/F,CAAC,CAAC+F,CAAD,EAAGH,CAAH,EAAKC,CAAL,EAAOC,CAAP,EAASP,CAAT,EAAW,EAAX,EAAc3C,CAAC,CAAC,EAAD,CAAf,CAA75C,EAAk7CkD,CAAC,GAAC9F,CAAC,CAAC8F,CAAD,EAAGC,CAAH,EAAKH,CAAL,EAAOC,CAAP,EAASf,CAAT,EAAW,EAAX,EAAclC,CAAC,CAAC,EAAD,CAAf,CAAr7C,EAA08CiD,CAAC,GAAC7F,CAAC,CAAC6F,CAAD,EAAGC,CAAH,EAAKC,CAAL,EAAOH,CAAP,EAASP,CAAT,EAAW,EAAX,EAAczC,CAAC,CAAC,EAAD,CAAf,CAA78C,EAAk+CZ,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK4D,CAAL,GAAO,CAA9+C,EAAg/C5D,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK6D,CAAL,GAAO,CAA5/C,EAA8/C7D,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK8D,CAAL,GAAO,CAA1gD,EAA4gD9D,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK+D,CAAL,GAAO,CAAxhD;AAA0hD,OAAv7D;AAAw7DhC,MAAAA,WAAW,EAAC,uBAAU;AAAC,YAAI7E,CAAC,GAAC,KAAK6D,KAAX;AAAA,YAAiBtD,CAAC,GAACP,CAAC,CAAC2B,KAArB;AAAA,YAA2BhB,CAAC,GAAC,IAAE,KAAKmD,WAApC;AAAA,YAAgDlD,CAAC,GAAC,IAAEZ,CAAC,CAAC4B,QAAtD;AAA+DrB,QAAAA,CAAC,CAACK,CAAC,KAAG,CAAL,CAAD,IAAU,OAAK,KAAGA,CAAC,GAAC,EAApB;AAAuB,YAAIE,CAAC,GAACb,CAAC,CAAC6G,KAAF,CAAQnG,CAAC,GAAC,UAAV,CAAN;AAAA,YAA4Bc,CAAC,GAACd,CAA9B;AAAgCJ,QAAAA,CAAC,CAAC,CAACK,CAAC,GAAC,EAAF,KAAO,CAAP,IAAU,CAAX,IAAc,EAAf,CAAD,GAAoB,YAAUE,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAnB,IAAuB,cAAYA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAtB,CAA3C,EAAoEP,CAAC,CAAC,CAACK,CAAC,GAAC,EAAF,KAAO,CAAP,IAAU,CAAX,IAAc,EAAf,CAAD,GAAoB,YAAUa,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAnB,IAAuB,cAAYA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAtB,CAA/G,EAAwIzB,CAAC,CAAC4B,QAAF,GAAW,KAAGrB,CAAC,CAACsB,MAAF,GAAS,CAAZ,CAAnJ,EAAkK,KAAKmC,QAAL,EAAlK;;AAAkL,aAAI,IAAI1B,CAAC,GAAC,KAAKqD,KAAX,EAAiB7D,CAAC,GAACQ,CAAC,CAACX,KAArB,EAA2BmB,CAAC,GAAC,CAAjC,EAAmCA,CAAC,GAAC,CAArC,EAAuCA,CAAC,EAAxC,EAA2C;AAAC,cAAIK,CAAC,GAACrB,CAAC,CAACgB,CAAD,CAAP;AAAWhB,UAAAA,CAAC,CAACgB,CAAD,CAAD,GAAK,YAAUK,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAnB,IAAuB,cAAYA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAtB,CAA5B;AAAqD;;AAAA,eAAOb,CAAP;AAAS,OAA52E;AAA62Ed,MAAAA,KAAK,EAAC,iBAAU;AAAC,YAAIxB,CAAC,GAAC8C,CAAC,CAACtB,KAAF,CAAQW,IAAR,CAAa,IAAb,CAAN;AAAyB,eAAOnC,CAAC,CAAC2F,KAAF,GAAQ,KAAKA,KAAL,CAAWnE,KAAX,EAAR,EAA2BxB,CAAlC;AAAoC;AAA37E,KAAT,CAAZ;AAAm9EyB,IAAAA,CAAC,CAACiE,GAAF,GAAM5C,CAAC,CAACgC,aAAF,CAAgBR,CAAhB,CAAN,EAAyB7C,CAAC,CAACsF,OAAF,GAAUjE,CAAC,CAACiC,iBAAF,CAAoBT,CAApB,CAAnC;AAA0D,GAAz7F,CAA07FY,IAA17F,CAA31B,EAA2xH,YAAU;AAAC,QAAIjF,CAAC,GAACD,CAAN;AAAA,QAAQO,CAAC,GAACN,CAAC,CAACY,GAAZ;AAAA,QAAgBF,CAAC,GAACJ,CAAC,CAACmB,SAApB;AAAA,QAA8Bd,CAAC,GAACL,CAAC,CAACiE,MAAlC;AAAA,QAAyC1D,CAAC,GAACb,CAAC,CAACgF,IAA7C;AAAA,QAAkDxD,CAAC,GAAC,EAApD;AAAA,QAAuDa,CAAC,GAACxB,CAAC,CAACkG,IAAF,GAAOpG,CAAC,CAACI,MAAF,CAAS;AAAC0D,MAAAA,QAAQ,EAAC,oBAAU;AAAC,aAAKiB,KAAL,GAAW,IAAIhF,CAAC,CAACQ,IAAN,CAAW,CAAC,UAAD,EAAY,UAAZ,EAAuB,UAAvB,EAAkC,SAAlC,EAA4C,UAA5C,CAAX,CAAX;AAA+E,OAApG;AAAqGkD,MAAAA,eAAe,EAAC,yBAASrE,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAI,IAAIM,CAAC,GAAC,KAAKoF,KAAL,CAAWhE,KAAjB,EAAuBhB,CAAC,GAACJ,CAAC,CAAC,CAAD,CAA1B,EAA8BK,CAAC,GAACL,CAAC,CAAC,CAAD,CAAjC,EAAqCO,CAAC,GAACP,CAAC,CAAC,CAAD,CAAxC,EAA4C+B,CAAC,GAAC/B,CAAC,CAAC,CAAD,CAA/C,EAAmDuB,CAAC,GAACvB,CAAC,CAAC,CAAD,CAAtD,EAA0DuC,CAAC,GAAC,CAAhE,EAAkEA,CAAC,GAAC,EAApE,EAAuEA,CAAC,EAAxE,EAA2E;AAAC,cAAGA,CAAC,GAAC,EAAL,EAAQrB,CAAC,CAACqB,CAAD,CAAD,GAAK,IAAE9C,CAAC,CAACC,CAAC,GAAC6C,CAAH,CAAR,CAAR,KAA0B;AAAC,gBAAIK,CAAC,GAAC1B,CAAC,CAACqB,CAAC,GAAC,CAAH,CAAD,GAAOrB,CAAC,CAACqB,CAAC,GAAC,CAAH,CAAR,GAAcrB,CAAC,CAACqB,CAAC,GAAC,EAAH,CAAf,GAAsBrB,CAAC,CAACqB,CAAC,GAAC,EAAH,CAA7B;AAAoCrB,YAAAA,CAAC,CAACqB,CAAD,CAAD,GAAKK,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAd;AAAiB;AAAA,cAAIO,CAAC,GAAC,CAAC/C,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAV,IAAcmB,CAAd,GAAgBL,CAAC,CAACqB,CAAD,CAAvB;AAA2BY,UAAAA,CAAC,IAAEZ,CAAC,GAAC,EAAF,GAAK,CAAClC,CAAC,GAACE,CAAF,GAAI,CAACF,CAAD,GAAG0B,CAAR,IAAW,UAAhB,GAA2BQ,CAAC,GAAC,EAAF,GAAK,CAAClC,CAAC,GAACE,CAAF,GAAIwB,CAAL,IAAQ,UAAb,GAAwBQ,CAAC,GAAC,EAAF,GAAK,CAAClC,CAAC,GAACE,CAAF,GAAIF,CAAC,GAAC0B,CAAN,GAAQxB,CAAC,GAACwB,CAAX,IAAc,UAAnB,GAA8B,CAAC1B,CAAC,GAACE,CAAF,GAAIwB,CAAL,IAAQ,SAA5F,EAAsGR,CAAC,GAACQ,CAAxG,EAA0GA,CAAC,GAACxB,CAA5G,EAA8GA,CAAC,GAACF,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAA1H,EAA4HA,CAAC,GAACD,CAA9H,EAAgIA,CAAC,GAAC+C,CAAlI;AAAoI;;AAAAnD,QAAAA,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAKI,CAAL,GAAO,CAAZ,EAAcJ,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAKK,CAAL,GAAO,CAA1B,EAA4BL,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAKO,CAAL,GAAO,CAAxC,EAA0CP,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK+B,CAAL,GAAO,CAAtD,EAAwD/B,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAKuB,CAAL,GAAO,CAApE;AAAsE,OAApgB;AAAqgB+C,MAAAA,WAAW,EAAC,uBAAU;AAAC,YAAI7E,CAAC,GAAC,KAAK6D,KAAX;AAAA,YAAiB5D,CAAC,GAACD,CAAC,CAAC2B,KAArB;AAAA,YAA2BpB,CAAC,GAAC,IAAE,KAAKuD,WAApC;AAAA,YAAgDnD,CAAC,GAAC,IAAEX,CAAC,CAAC4B,QAAtD;AAA+D,eAAO3B,CAAC,CAACU,CAAC,KAAG,CAAL,CAAD,IAAU,OAAK,KAAGA,CAAC,GAAC,EAApB,EAAuBV,CAAC,CAAC,CAACU,CAAC,GAAC,EAAF,KAAO,CAAP,IAAU,CAAX,IAAc,EAAf,CAAD,GAAoBuE,IAAI,CAAC4B,KAAL,CAAWvG,CAAC,GAAC,UAAb,CAA3C,EAAoEN,CAAC,CAAC,CAACU,CAAC,GAAC,EAAF,KAAO,CAAP,IAAU,CAAX,IAAc,EAAf,CAAD,GAAoBJ,CAAxF,EAA0FP,CAAC,CAAC4B,QAAF,GAAW,IAAE3B,CAAC,CAAC4B,MAAzG,EAAgH,KAAKmC,QAAL,EAAhH,EAAgI,KAAK2B,KAA5I;AAAkJ,OAA7uB;AAA8uBnE,MAAAA,KAAK,EAAC,iBAAU;AAAC,YAAIxB,CAAC,GAACY,CAAC,CAACY,KAAF,CAAQW,IAAR,CAAa,IAAb,CAAN;AAAyB,eAAOnC,CAAC,CAAC2F,KAAF,GAAQ,KAAKA,KAAL,CAAWnE,KAAX,EAAR,EAA2BxB,CAAlC;AAAoC;AAA5zB,KAAT,CAAhE;AAAw4BC,IAAAA,CAAC,CAAC+G,IAAF,GAAOpG,CAAC,CAACkE,aAAF,CAAgBxC,CAAhB,CAAP,EAA0BrC,CAAC,CAACgH,QAAF,GAAWrG,CAAC,CAACmE,iBAAF,CAAoBzC,CAApB,CAArC;AAA4D,GAA/8B,EAA3xH,EAA6uJ,UAASrC,CAAT,EAAW;AAAC,QAAIM,CAAC,GAACP,CAAN;AAAA,QAAQW,CAAC,GAACJ,CAAC,CAACM,GAAZ;AAAA,QAAgBD,CAAC,GAACD,CAAC,CAACe,SAApB;AAAA,QAA8BZ,CAAC,GAACH,CAAC,CAAC6D,MAAlC;AAAA,QAAyC/C,CAAC,GAAClB,CAAC,CAAC0E,IAA7C;AAAA,QAAkD3C,CAAC,GAAC,EAApD;AAAA,QAAuDR,CAAC,GAAC,EAAzD;AAA4D,KAAC,YAAU;AAAC,eAAS9B,CAAT,CAAWA,CAAX,EAAa;AAAC,aAAI,IAAIO,CAAC,GAACN,CAAC,CAACiH,IAAF,CAAOlH,CAAP,CAAN,EAAgBW,CAAC,GAAC,CAAtB,EAAwBA,CAAC,IAAEJ,CAA3B,EAA6BI,CAAC,EAA9B;AAAiC,cAAG,EAAEX,CAAC,GAACW,CAAJ,CAAH,EAAU,OAAM,CAAC,CAAP;AAA3C;;AAAoD,eAAM,CAAC,CAAP;AAAS;;AAAA,eAASJ,CAAT,CAAWP,CAAX,EAAa;AAAC,eAAO,cAAYA,CAAC,IAAE,IAAEA,CAAJ,CAAb,IAAqB,CAA5B;AAA8B;;AAAA,WAAI,IAAIW,CAAC,GAAC,CAAN,EAAQC,CAAC,GAAC,CAAd,EAAgBA,CAAC,GAAC,EAAlB;AAAsBZ,QAAAA,CAAC,CAACW,CAAD,CAAD,KAAOC,CAAC,GAAC,CAAF,KAAM0B,CAAC,CAAC1B,CAAD,CAAD,GAAKL,CAAC,CAACN,CAAC,CAACkH,GAAF,CAAMxG,CAAN,EAAQ,EAAR,CAAD,CAAZ,GAA2BmB,CAAC,CAAClB,CAAD,CAAD,GAAKL,CAAC,CAACN,CAAC,CAACkH,GAAF,CAAMxG,CAAN,EAAQ,IAAE,CAAV,CAAD,CAAjC,EAAgDC,CAAC,EAAxD,GAA4DD,CAAC,EAA7D;AAAtB;AAAsF,KAAxN,EAAD;AAA4N,QAAImC,CAAC,GAAC,EAAN;AAAA,QAASK,CAAC,GAAC1B,CAAC,CAAC2F,MAAF,GAAStG,CAAC,CAACE,MAAF,CAAS;AAAC0D,MAAAA,QAAQ,EAAC,oBAAU;AAAC,aAAKiB,KAAL,GAAW,IAAI/E,CAAC,CAACO,IAAN,CAAWmB,CAAC,CAACF,KAAF,CAAQ,CAAR,CAAX,CAAX;AAAkC,OAAvD;AAAwDiC,MAAAA,eAAe,EAAC,yBAASrE,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAI,IAAIM,CAAC,GAAC,KAAKoF,KAAL,CAAWhE,KAAjB,EAAuBhB,CAAC,GAACJ,CAAC,CAAC,CAAD,CAA1B,EAA8BK,CAAC,GAACL,CAAC,CAAC,CAAD,CAAjC,EAAqCO,CAAC,GAACP,CAAC,CAAC,CAAD,CAAxC,EAA4CkB,CAAC,GAAClB,CAAC,CAAC,CAAD,CAA/C,EAAmD+B,CAAC,GAAC/B,CAAC,CAAC,CAAD,CAAtD,EAA0D4C,CAAC,GAAC5C,CAAC,CAAC,CAAD,CAA7D,EAAiEmD,CAAC,GAACnD,CAAC,CAAC,CAAD,CAApE,EAAwE+D,CAAC,GAAC/D,CAAC,CAAC,CAAD,CAA3E,EAA+EqF,CAAC,GAAC,CAArF,EAAuFA,CAAC,GAAC,EAAzF,EAA4FA,CAAC,EAA7F,EAAgG;AAAC,cAAGA,CAAC,GAAC,EAAL,EAAQ9C,CAAC,CAAC8C,CAAD,CAAD,GAAK,IAAE5F,CAAC,CAACC,CAAC,GAAC2F,CAAH,CAAR,CAAR,KAA0B;AAAC,gBAAIC,CAAC,GAAC/C,CAAC,CAAC8C,CAAC,GAAC,EAAH,CAAP;AAAA,gBAAcE,CAAC,GAAC,CAACD,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAX,KAAeA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,EAAzB,IAA6BA,CAAC,KAAG,CAAjD;AAAA,gBAAmDE,CAAC,GAACjD,CAAC,CAAC8C,CAAC,GAAC,CAAH,CAAtD;AAAA,gBAA4DI,CAAC,GAAC,CAACD,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,EAAX,KAAgBA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,EAA1B,IAA8BA,CAAC,KAAG,EAAhG;AAAmGjD,YAAAA,CAAC,CAAC8C,CAAD,CAAD,GAAKE,CAAC,GAAChD,CAAC,CAAC8C,CAAC,GAAC,CAAH,CAAH,GAASI,CAAT,GAAWlD,CAAC,CAAC8C,CAAC,GAAC,EAAH,CAAjB;AAAwB;AAAA,cAAIK,CAAC,GAAC3D,CAAC,GAACa,CAAF,GAAI,CAACb,CAAD,GAAGoB,CAAb;AAAA,cAAewC,CAAC,GAACvF,CAAC,GAACC,CAAF,GAAID,CAAC,GAACG,CAAN,GAAQF,CAAC,GAACE,CAA3B;AAAA,cAA6BqF,CAAC,GAAC,CAACxF,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAX,KAAeA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,EAAzB,KAA8BA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,EAAxC,CAA/B;AAAA,cAA2EyF,CAAC,GAAC,CAAC9D,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAX,KAAeA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,EAAzB,KAA8BA,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAvC,CAA7E;AAAA,cAAwH+D,CAAC,GAAC/B,CAAC,GAAC8B,CAAF,GAAIH,CAAJ,GAAMnE,CAAC,CAAC8D,CAAD,CAAP,GAAW9C,CAAC,CAAC8C,CAAD,CAAtI;AAAA,cAA0IU,CAAC,GAACH,CAAC,GAACD,CAA9I;AAAgJ5B,UAAAA,CAAC,GAACZ,CAAF,EAAIA,CAAC,GAACP,CAAN,EAAQA,CAAC,GAACb,CAAV,EAAYA,CAAC,GAACb,CAAC,GAAC4E,CAAF,GAAI,CAAlB,EAAoB5E,CAAC,GAACX,CAAtB,EAAwBA,CAAC,GAACF,CAA1B,EAA4BA,CAAC,GAACD,CAA9B,EAAgCA,CAAC,GAAC0F,CAAC,GAACC,CAAF,GAAI,CAAtC;AAAwC;;AAAA/F,QAAAA,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAKI,CAAL,GAAO,CAAZ,EAAcJ,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAKK,CAAL,GAAO,CAA1B,EAA4BL,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAKO,CAAL,GAAO,CAAxC,EAA0CP,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAKkB,CAAL,GAAO,CAAtD,EAAwDlB,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK+B,CAAL,GAAO,CAApE,EAAsE/B,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK4C,CAAL,GAAO,CAAlF,EAAoF5C,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAKmD,CAAL,GAAO,CAAhG,EAAkGnD,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK+D,CAAL,GAAO,CAA9G;AAAgH,OAArnB;AAAsnBO,MAAAA,WAAW,EAAC,uBAAU;AAAC,YAAI7E,CAAC,GAAC,KAAK6D,KAAX;AAAA,YAAiBtD,CAAC,GAACP,CAAC,CAAC2B,KAArB;AAAA,YAA2BhB,CAAC,GAAC,IAAE,KAAKmD,WAApC;AAAA,YAAgDlD,CAAC,GAAC,IAAEZ,CAAC,CAAC4B,QAAtD;AAA+D,eAAOrB,CAAC,CAACK,CAAC,KAAG,CAAL,CAAD,IAAU,OAAK,KAAGA,CAAC,GAAC,EAApB,EAAuBL,CAAC,CAAC,CAACK,CAAC,GAAC,EAAF,KAAO,CAAP,IAAU,CAAX,IAAc,EAAf,CAAD,GAAoBX,CAAC,CAAC6G,KAAF,CAAQnG,CAAC,GAAC,UAAV,CAA3C,EAAiEJ,CAAC,CAAC,CAACK,CAAC,GAAC,EAAF,KAAO,CAAP,IAAU,CAAX,IAAc,EAAf,CAAD,GAAoBD,CAArF,EAAuFX,CAAC,CAAC4B,QAAF,GAAW,IAAErB,CAAC,CAACsB,MAAtG,EAA6G,KAAKmC,QAAL,EAA7G,EAA6H,KAAK2B,KAAzI;AAA+I,OAA31B;AAA41BnE,MAAAA,KAAK,EAAC,iBAAU;AAAC,YAAIxB,CAAC,GAACc,CAAC,CAACU,KAAF,CAAQW,IAAR,CAAa,IAAb,CAAN;AAAyB,eAAOnC,CAAC,CAAC2F,KAAF,GAAQ,KAAKA,KAAL,CAAWnE,KAAX,EAAR,EAA2BxB,CAAlC;AAAoC;AAA16B,KAAT,CAApB;AAA08BO,IAAAA,CAAC,CAAC6G,MAAF,GAAStG,CAAC,CAACgE,aAAF,CAAgB3B,CAAhB,CAAT,EAA4B5C,CAAC,CAAC8G,UAAF,GAAavG,CAAC,CAACiE,iBAAF,CAAoB5B,CAApB,CAAzC;AAAgE,GAA9yC,CAA+yC+B,IAA/yC,CAA7uJ,EAAkiM,YAAU;AAAC,aAASjF,CAAT,CAAWD,CAAX,EAAa;AAAC,aAAOA,CAAC,IAAE,CAAH,GAAK,UAAL,GAAgBA,CAAC,KAAG,CAAJ,GAAM,QAA7B;AAAsC;;AAAA,QAAIO,CAAC,GAACP,CAAN;AAAA,QAAQW,CAAC,GAACJ,CAAC,CAACM,GAAZ;AAAA,QAAgBD,CAAC,GAACD,CAAC,CAACe,SAApB;AAAA,QAA8BZ,CAAC,GAACP,CAAC,CAACiC,GAAlC;AAAsC1B,IAAAA,CAAC,CAACwG,KAAF,GAAQxG,CAAC,CAACyG,OAAF,GAAU;AAACxF,MAAAA,SAAS,EAAC,mBAAS/B,CAAT,EAAW;AAAC,aAAI,IAAIC,CAAC,GAACD,CAAC,CAAC2B,KAAR,EAAcpB,CAAC,GAACP,CAAC,CAAC4B,QAAlB,EAA2BjB,CAAC,GAAC,EAA7B,EAAgCC,CAAC,GAAC,CAAtC,EAAwCA,CAAC,GAACL,CAA1C,EAA4CK,CAAC,IAAE,CAA/C,EAAiD;AAAC,cAAIE,CAAC,GAACb,CAAC,CAACW,CAAC,KAAG,CAAL,CAAD,KAAW,KAAGA,CAAC,GAAC,CAAF,GAAI,CAAlB,GAAoB,KAA1B;AAAgCD,UAAAA,CAAC,CAAC4B,IAAF,CAAOS,MAAM,CAACC,YAAP,CAAoBnC,CAApB,CAAP;AAA+B;;AAAA,eAAOH,CAAC,CAAC+B,IAAF,CAAO,EAAP,CAAP;AAAkB,OAA1J;AAA2JC,MAAAA,KAAK,EAAC,eAAS3C,CAAT,EAAW;AAAC,aAAI,IAAIC,CAAC,GAACD,CAAC,CAAC6B,MAAR,EAAetB,CAAC,GAAC,EAAjB,EAAoBI,CAAC,GAAC,CAA1B,EAA4BA,CAAC,GAACV,CAA9B,EAAgCU,CAAC,EAAjC;AAAoCJ,UAAAA,CAAC,CAACI,CAAC,KAAG,CAAL,CAAD,IAAUX,CAAC,CAACkD,UAAF,CAAavC,CAAb,KAAiB,KAAGA,CAAC,GAAC,CAAF,GAAI,EAAlC;AAApC;;AAAyE,eAAOC,CAAC,CAACH,MAAF,CAASF,CAAT,EAAW,IAAEN,CAAb,CAAP;AAAuB;AAA7Q,KAAlB;AAAiSa,IAAAA,CAAC,CAAC0G,OAAF,GAAU;AAACzF,MAAAA,SAAS,EAAC,mBAAS/B,CAAT,EAAW;AAAC,aAAI,IAAIO,CAAC,GAACP,CAAC,CAAC2B,KAAR,EAAchB,CAAC,GAACX,CAAC,CAAC4B,QAAlB,EAA2BhB,CAAC,GAAC,EAA7B,EAAgCE,CAAC,GAAC,CAAtC,EAAwCA,CAAC,GAACH,CAA1C,EAA4CG,CAAC,IAAE,CAA/C,EAAiD;AAAC,cAAIW,CAAC,GAACxB,CAAC,CAACM,CAAC,CAACO,CAAC,KAAG,CAAL,CAAD,KAAW,KAAGA,CAAC,GAAC,CAAF,GAAI,CAAlB,GAAoB,KAArB,CAAP;AAAmCF,UAAAA,CAAC,CAAC2B,IAAF,CAAOS,MAAM,CAACC,YAAP,CAAoBxB,CAApB,CAAP;AAA+B;;AAAA,eAAOb,CAAC,CAAC8B,IAAF,CAAO,EAAP,CAAP;AAAkB,OAA7J;AAA8JC,MAAAA,KAAK,EAAC,eAAS3C,CAAT,EAAW;AAAC,aAAI,IAAIO,CAAC,GAACP,CAAC,CAAC6B,MAAR,EAAelB,CAAC,GAAC,EAAjB,EAAoBG,CAAC,GAAC,CAA1B,EAA4BA,CAAC,GAACP,CAA9B,EAAgCO,CAAC,EAAjC;AAAoCH,UAAAA,CAAC,CAACG,CAAC,KAAG,CAAL,CAAD,IAAUb,CAAC,CAACD,CAAC,CAACkD,UAAF,CAAapC,CAAb,KAAiB,KAAGA,CAAC,GAAC,CAAF,GAAI,EAAzB,CAAX;AAApC;;AAA4E,eAAOF,CAAC,CAACH,MAAF,CAASE,CAAT,EAAW,IAAEJ,CAAb,CAAP;AAAuB;AAAnR,KAAV;AAA+R,GAArqB,EAAliM,EAA0sN,YAAU;AAAC,QAAG,cAAY,OAAOkH,WAAtB,EAAkC;AAAC,UAAIxH,CAAC,GAACD,CAAN;AAAA,UAAQO,CAAC,GAACN,CAAC,CAACY,GAAZ;AAAA,UAAgBF,CAAC,GAACJ,CAAC,CAACmB,SAApB;AAAA,UAA8Bd,CAAC,GAACD,CAAC,CAACQ,IAAlC;AAAA,UAAuCL,CAAC,GAACH,CAAC,CAACQ,IAAF,GAAO,UAASnB,CAAT,EAAW;AAAC,YAAGA,CAAC,YAAYyH,WAAb,KAA2BzH,CAAC,GAAC,IAAI0H,UAAJ,CAAe1H,CAAf,CAA7B,GAAgD,CAACA,CAAC,YAAY2H,SAAb,IAAwB,eAAa,OAAOC,iBAApB,IAAuC5H,CAAC,YAAY4H,iBAA5E,IAA+F5H,CAAC,YAAY6H,UAA5G,IAAwH7H,CAAC,YAAY8H,WAArI,IAAkJ9H,CAAC,YAAY+H,UAA/J,IAA2K/H,CAAC,YAAYgI,WAAxL,IAAqMhI,CAAC,YAAYiI,YAAlN,IAAgOjI,CAAC,YAAYkI,YAA9O,MAA8PlI,CAAC,GAAC,IAAI0H,UAAJ,CAAe1H,CAAC,CAACmI,MAAjB,EAAwBnI,CAAC,CAACoI,UAA1B,EAAqCpI,CAAC,CAACqI,UAAvC,CAAhQ,CAAhD,EAAoWrI,CAAC,YAAY0H,UAApX,EAA+X;AAAC,eAAI,IAAIzH,CAAC,GAACD,CAAC,CAACqI,UAAR,EAAmB9H,CAAC,GAAC,EAArB,EAAwBI,CAAC,GAAC,CAA9B,EAAgCA,CAAC,GAACV,CAAlC,EAAoCU,CAAC,EAArC;AAAwCJ,YAAAA,CAAC,CAACI,CAAC,KAAG,CAAL,CAAD,IAAUX,CAAC,CAACW,CAAD,CAAD,IAAM,KAAGA,CAAC,GAAC,CAAF,GAAI,CAAvB;AAAxC;;AAAiEC,UAAAA,CAAC,CAACuB,IAAF,CAAO,IAAP,EAAY5B,CAAZ,EAAcN,CAAd;AAAiB,SAAld,MAAudW,CAAC,CAACS,KAAF,CAAQ,IAAR,EAAaC,SAAb;AAAwB,OAA3iB;;AAA4iBR,MAAAA,CAAC,CAACJ,SAAF,GAAYC,CAAZ;AAAc;AAAC,GAAzmB,EAA1sN,EAAszO,UAASV,CAAT,EAAW;AAAC,aAASM,CAAT,CAAWP,CAAX,EAAaC,CAAb,EAAeM,CAAf,EAAiB;AAAC,aAAOP,CAAC,GAACC,CAAF,GAAIM,CAAX;AAAa;;AAAA,aAASI,CAAT,CAAWX,CAAX,EAAaC,CAAb,EAAeM,CAAf,EAAiB;AAAC,aAAOP,CAAC,GAACC,CAAF,GAAI,CAACD,CAAD,GAAGO,CAAd;AAAgB;;AAAA,aAASK,CAAT,CAAWZ,CAAX,EAAaC,CAAb,EAAeM,CAAf,EAAiB;AAAC,aAAM,CAACP,CAAC,GAAC,CAACC,CAAJ,IAAOM,CAAb;AAAe;;AAAA,aAASO,CAAT,CAAWd,CAAX,EAAaC,CAAb,EAAeM,CAAf,EAAiB;AAAC,aAAOP,CAAC,GAACO,CAAF,GAAIN,CAAC,GAAC,CAACM,CAAd;AAAgB;;AAAA,aAASkB,CAAT,CAAWzB,CAAX,EAAaC,CAAb,EAAeM,CAAf,EAAiB;AAAC,aAAOP,CAAC,IAAEC,CAAC,GAAC,CAACM,CAAL,CAAR;AAAgB;;AAAA,aAAS+B,CAAT,CAAWtC,CAAX,EAAaC,CAAb,EAAe;AAAC,aAAOD,CAAC,IAAEC,CAAH,GAAKD,CAAC,KAAG,KAAGC,CAAnB;AAAqB;;AAAA,QAAI6B,CAAC,GAAC9B,CAAN;AAAA,QAAQ8C,CAAC,GAAChB,CAAC,CAACjB,GAAZ;AAAA,QAAgBsC,CAAC,GAACL,CAAC,CAACpB,SAApB;AAAA,QAA8BgC,CAAC,GAACZ,CAAC,CAAC0B,MAAlC;AAAA,QAAyCF,CAAC,GAACxC,CAAC,CAACmD,IAA7C;AAAA,QAAkDW,CAAC,GAACzC,CAAC,CAAC1C,MAAF,CAAS,CAAC,CAAD,EAAG,CAAH,EAAK,CAAL,EAAO,CAAP,EAAS,CAAT,EAAW,CAAX,EAAa,CAAb,EAAe,CAAf,EAAiB,CAAjB,EAAmB,CAAnB,EAAqB,EAArB,EAAwB,EAAxB,EAA2B,EAA3B,EAA8B,EAA9B,EAAiC,EAAjC,EAAoC,EAApC,EAAuC,CAAvC,EAAyC,CAAzC,EAA2C,EAA3C,EAA8C,CAA9C,EAAgD,EAAhD,EAAmD,CAAnD,EAAqD,EAArD,EAAwD,CAAxD,EAA0D,EAA1D,EAA6D,CAA7D,EAA+D,CAA/D,EAAiE,CAAjE,EAAmE,CAAnE,EAAqE,EAArE,EAAwE,EAAxE,EAA2E,CAA3E,EAA6E,CAA7E,EAA+E,EAA/E,EAAkF,EAAlF,EAAqF,CAArF,EAAuF,CAAvF,EAAyF,EAAzF,EAA4F,CAA5F,EAA8F,CAA9F,EAAgG,CAAhG,EAAkG,CAAlG,EAAoG,CAApG,EAAsG,CAAtG,EAAwG,EAAxG,EAA2G,EAA3G,EAA8G,CAA9G,EAAgH,EAAhH,EAAmH,CAAnH,EAAqH,CAArH,EAAuH,EAAvH,EAA0H,EAA1H,EAA6H,CAA7H,EAA+H,CAA/H,EAAiI,EAAjI,EAAoI,CAApI,EAAsI,EAAtI,EAAyI,CAAzI,EAA2I,CAA3I,EAA6I,EAA7I,EAAgJ,EAAhJ,EAAmJ,CAAnJ,EAAqJ,CAArJ,EAAuJ,CAAvJ,EAAyJ,CAAzJ,EAA2J,CAA3J,EAA6J,CAA7J,EAA+J,CAA/J,EAAiK,CAAjK,EAAmK,EAAnK,EAAsK,CAAtK,EAAwK,EAAxK,EAA2K,EAA3K,EAA8K,CAA9K,EAAgL,CAAhL,EAAkL,CAAlL,EAAoL,EAApL,EAAuL,CAAvL,EAAyL,EAAzL,EAA4L,EAA5L,CAAT,CAApD;AAAA,QAA8PoF,CAAC,GAAC1C,CAAC,CAAC1C,MAAF,CAAS,CAAC,CAAD,EAAG,EAAH,EAAM,CAAN,EAAQ,CAAR,EAAU,CAAV,EAAY,CAAZ,EAAc,EAAd,EAAiB,CAAjB,EAAmB,EAAnB,EAAsB,CAAtB,EAAwB,EAAxB,EAA2B,CAA3B,EAA6B,CAA7B,EAA+B,EAA/B,EAAkC,CAAlC,EAAoC,EAApC,EAAuC,CAAvC,EAAyC,EAAzC,EAA4C,CAA5C,EAA8C,CAA9C,EAAgD,CAAhD,EAAkD,EAAlD,EAAqD,CAArD,EAAuD,EAAvD,EAA0D,EAA1D,EAA6D,EAA7D,EAAgE,CAAhE,EAAkE,EAAlE,EAAqE,CAArE,EAAuE,CAAvE,EAAyE,CAAzE,EAA2E,CAA3E,EAA6E,EAA7E,EAAgF,CAAhF,EAAkF,CAAlF,EAAoF,CAApF,EAAsF,CAAtF,EAAwF,EAAxF,EAA2F,CAA3F,EAA6F,CAA7F,EAA+F,EAA/F,EAAkG,CAAlG,EAAoG,EAApG,EAAuG,CAAvG,EAAyG,EAAzG,EAA4G,CAA5G,EAA8G,CAA9G,EAAgH,EAAhH,EAAmH,CAAnH,EAAqH,CAArH,EAAuH,CAAvH,EAAyH,CAAzH,EAA2H,CAA3H,EAA6H,EAA7H,EAAgI,EAAhI,EAAmI,CAAnI,EAAqI,CAArI,EAAuI,EAAvI,EAA0I,CAA1I,EAA4I,EAA5I,EAA+I,CAA/I,EAAiJ,CAAjJ,EAAmJ,EAAnJ,EAAsJ,EAAtJ,EAAyJ,EAAzJ,EAA4J,EAA5J,EAA+J,EAA/J,EAAkK,CAAlK,EAAoK,CAApK,EAAsK,CAAtK,EAAwK,CAAxK,EAA0K,CAA1K,EAA4K,CAA5K,EAA8K,CAA9K,EAAgL,EAAhL,EAAmL,EAAnL,EAAsL,CAAtL,EAAwL,CAAxL,EAA0L,CAA1L,EAA4L,EAA5L,CAAT,CAAhQ;AAAA,QAA0cqF,CAAC,GAAC3C,CAAC,CAAC1C,MAAF,CAAS,CAAC,EAAD,EAAI,EAAJ,EAAO,EAAP,EAAU,EAAV,EAAa,CAAb,EAAe,CAAf,EAAiB,CAAjB,EAAmB,CAAnB,EAAqB,EAArB,EAAwB,EAAxB,EAA2B,EAA3B,EAA8B,EAA9B,EAAiC,CAAjC,EAAmC,CAAnC,EAAqC,CAArC,EAAuC,CAAvC,EAAyC,CAAzC,EAA2C,CAA3C,EAA6C,CAA7C,EAA+C,EAA/C,EAAkD,EAAlD,EAAqD,CAArD,EAAuD,CAAvD,EAAyD,EAAzD,EAA4D,CAA5D,EAA8D,EAA9D,EAAiE,EAAjE,EAAoE,CAApE,EAAsE,EAAtE,EAAyE,CAAzE,EAA2E,EAA3E,EAA8E,EAA9E,EAAiF,EAAjF,EAAoF,EAApF,EAAuF,CAAvF,EAAyF,CAAzF,EAA2F,EAA3F,EAA8F,CAA9F,EAAgG,EAAhG,EAAmG,EAAnG,EAAsG,EAAtG,EAAyG,CAAzG,EAA2G,EAA3G,EAA8G,CAA9G,EAAgH,CAAhH,EAAkH,EAAlH,EAAqH,CAArH,EAAuH,CAAvH,EAAyH,EAAzH,EAA4H,EAA5H,EAA+H,EAA/H,EAAkI,EAAlI,EAAqI,EAArI,EAAwI,EAAxI,EAA2I,CAA3I,EAA6I,CAA7I,EAA+I,CAA/I,EAAiJ,EAAjJ,EAAoJ,CAApJ,EAAsJ,CAAtJ,EAAwJ,CAAxJ,EAA0J,CAA1J,EAA4J,CAA5J,EAA8J,EAA9J,EAAiK,CAAjK,EAAmK,EAAnK,EAAsK,CAAtK,EAAwK,EAAxK,EAA2K,CAA3K,EAA6K,CAA7K,EAA+K,EAA/K,EAAkL,EAAlL,EAAqL,CAArL,EAAuL,EAAvL,EAA0L,EAA1L,EAA6L,EAA7L,EAAgM,EAAhM,EAAmM,CAAnM,EAAqM,CAArM,EAAuM,CAAvM,CAAT,CAA5c;AAAA,QAAgqBsF,CAAC,GAAC5C,CAAC,CAAC1C,MAAF,CAAS,CAAC,CAAD,EAAG,CAAH,EAAK,CAAL,EAAO,EAAP,EAAU,EAAV,EAAa,EAAb,EAAgB,EAAhB,EAAmB,CAAnB,EAAqB,CAArB,EAAuB,CAAvB,EAAyB,CAAzB,EAA2B,EAA3B,EAA8B,EAA9B,EAAiC,EAAjC,EAAoC,EAApC,EAAuC,CAAvC,EAAyC,CAAzC,EAA2C,EAA3C,EAA8C,EAA9C,EAAiD,CAAjD,EAAmD,EAAnD,EAAsD,CAAtD,EAAwD,CAAxD,EAA0D,EAA1D,EAA6D,CAA7D,EAA+D,CAA/D,EAAiE,EAAjE,EAAoE,CAApE,EAAsE,CAAtE,EAAwE,EAAxE,EAA2E,EAA3E,EAA8E,EAA9E,EAAiF,CAAjF,EAAmF,CAAnF,EAAqF,EAArF,EAAwF,EAAxF,EAA2F,CAA3F,EAA6F,CAA7F,EAA+F,CAA/F,EAAiG,EAAjG,EAAoG,EAApG,EAAuG,EAAvG,EAA0G,CAA1G,EAA4G,EAA5G,EAA+G,EAA/G,EAAkH,EAAlH,EAAqH,CAArH,EAAuH,CAAvH,EAAyH,EAAzH,EAA4H,CAA5H,EAA8H,CAA9H,EAAgI,EAAhI,EAAmI,EAAnI,EAAsI,EAAtI,EAAyI,CAAzI,EAA2I,EAA3I,EAA8I,CAA9I,EAAgJ,CAAhJ,EAAkJ,EAAlJ,EAAqJ,CAArJ,EAAuJ,EAAvJ,EAA0J,CAA1J,EAA4J,EAA5J,EAA+J,CAA/J,EAAiK,CAAjK,EAAmK,CAAnK,EAAqK,EAArK,EAAwK,CAAxK,EAA0K,EAA1K,EAA6K,CAA7K,EAA+K,EAA/K,EAAkL,CAAlL,EAAoL,CAApL,EAAsL,EAAtL,EAAyL,CAAzL,EAA2L,CAA3L,EAA6L,EAA7L,EAAgM,EAAhM,EAAmM,EAAnM,EAAsM,EAAtM,CAAT,CAAlqB;AAAA,QAAs3BuF,CAAC,GAAC7C,CAAC,CAAC1C,MAAF,CAAS,CAAC,CAAD,EAAG,UAAH,EAAc,UAAd,EAAyB,UAAzB,EAAoC,UAApC,CAAT,CAAx3B;AAAA,QAAk7BwF,CAAC,GAAC9C,CAAC,CAAC1C,MAAF,CAAS,CAAC,UAAD,EAAY,UAAZ,EAAuB,UAAvB,EAAkC,UAAlC,EAA6C,CAA7C,CAAT,CAAp7B;AAAA,QAA8+ByF,CAAC,GAAC5B,CAAC,CAACgE,SAAF,GAAY5E,CAAC,CAAC1C,MAAF,CAAS;AAAC0D,MAAAA,QAAQ,EAAC,oBAAU;AAAC,aAAKiB,KAAL,GAAWxC,CAAC,CAAC1C,MAAF,CAAS,CAAC,UAAD,EAAY,UAAZ,EAAuB,UAAvB,EAAkC,SAAlC,EAA4C,UAA5C,CAAT,CAAX;AAA6E,OAAlG;AAAmG4D,MAAAA,eAAe,EAAC,yBAASrE,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAI,IAAI6B,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,EAAd,EAAiBA,CAAC,EAAlB,EAAqB;AAAC,cAAIgB,CAAC,GAAC7C,CAAC,GAAC6B,CAAR;AAAA,cAAUqB,CAAC,GAACnD,CAAC,CAAC8C,CAAD,CAAb;AAAiB9C,UAAAA,CAAC,CAAC8C,CAAD,CAAD,GAAK,YAAUK,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAnB,IAAuB,cAAYA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAtB,CAA5B;AAAqD;;AAAA,YAAIO,CAAJ;AAAA,YAAMY,CAAN;AAAA,YAAQ4B,CAAR;AAAA,YAAUC,CAAV;AAAA,YAAYC,CAAZ;AAAA,YAAcC,CAAd;AAAA,YAAgBC,CAAhB;AAAA,YAAkBC,CAAlB;AAAA,YAAoBC,CAApB;AAAA,YAAsBC,CAAtB;AAAA,YAAwBC,CAAC,GAAC,KAAKf,KAAL,CAAWhE,KAArC;AAAA,YAA2CgF,CAAC,GAACX,CAAC,CAACrE,KAA/C;AAAA,YAAqDiF,CAAC,GAACX,CAAC,CAACtE,KAAzD;AAAA,YAA+DkF,CAAC,GAACjB,CAAC,CAACjE,KAAnE;AAAA,YAAyE4G,CAAC,GAAC1C,CAAC,CAAClE,KAA7E;AAAA,YAAmF6G,CAAC,GAAC1C,CAAC,CAACnE,KAAvF;AAAA,YAA6F8G,CAAC,GAAC1C,CAAC,CAACpE,KAAjG;AAAuG0E,QAAAA,CAAC,GAAC3C,CAAC,GAACgD,CAAC,CAAC,CAAD,CAAL,EAASJ,CAAC,GAAChC,CAAC,GAACoC,CAAC,CAAC,CAAD,CAAd,EAAkBH,CAAC,GAACL,CAAC,GAACQ,CAAC,CAAC,CAAD,CAAvB,EAA2BF,CAAC,GAACL,CAAC,GAACO,CAAC,CAAC,CAAD,CAAhC,EAAoCD,CAAC,GAACL,CAAC,GAACM,CAAC,CAAC,CAAD,CAAzC;;AAA6C,aAAI,IAAIgC,CAAJ,EAAM5G,CAAC,GAAC,CAAZ,EAAcA,CAAC,GAAC,EAAhB,EAAmBA,CAAC,IAAE,CAAtB;AAAwB4G,UAAAA,CAAC,GAAChF,CAAC,GAAC1D,CAAC,CAACC,CAAC,GAAC4G,CAAC,CAAC/E,CAAD,CAAJ,CAAH,GAAY,CAAd,EAAgB4G,CAAC,IAAE5G,CAAC,GAAC,EAAF,GAAKvB,CAAC,CAAC+D,CAAD,EAAG4B,CAAH,EAAKC,CAAL,CAAD,GAASQ,CAAC,CAAC,CAAD,CAAf,GAAmB7E,CAAC,GAAC,EAAF,GAAKnB,CAAC,CAAC2D,CAAD,EAAG4B,CAAH,EAAKC,CAAL,CAAD,GAASQ,CAAC,CAAC,CAAD,CAAf,GAAmB7E,CAAC,GAAC,EAAF,GAAKlB,CAAC,CAAC0D,CAAD,EAAG4B,CAAH,EAAKC,CAAL,CAAD,GAASQ,CAAC,CAAC,CAAD,CAAf,GAAmB7E,CAAC,GAAC,EAAF,GAAKhB,CAAC,CAACwD,CAAD,EAAG4B,CAAH,EAAKC,CAAL,CAAD,GAASQ,CAAC,CAAC,CAAD,CAAf,GAAmBlF,CAAC,CAAC6C,CAAD,EAAG4B,CAAH,EAAKC,CAAL,CAAD,GAASQ,CAAC,CAAC,CAAD,CAAzG,EAA6G+B,CAAC,IAAE,CAAhH,EAAkHA,CAAC,GAACpG,CAAC,CAACoG,CAAD,EAAGF,CAAC,CAAC1G,CAAD,CAAJ,CAArH,EAA8H4G,CAAC,GAACA,CAAC,GAACtC,CAAF,GAAI,CAApI,EAAsI1C,CAAC,GAAC0C,CAAxI,EAA0IA,CAAC,GAACD,CAA5I,EAA8IA,CAAC,GAAC7D,CAAC,CAAC4D,CAAD,EAAG,EAAH,CAAjJ,EAAwJA,CAAC,GAAC5B,CAA1J,EAA4JA,CAAC,GAACoE,CAA9J,EAAgKA,CAAC,GAACrC,CAAC,GAACrG,CAAC,CAACC,CAAC,GAACsI,CAAC,CAACzG,CAAD,CAAJ,CAAH,GAAY,CAA9K,EAAgL4G,CAAC,IAAE5G,CAAC,GAAC,EAAF,GAAKL,CAAC,CAAC6E,CAAD,EAAGC,CAAH,EAAKC,CAAL,CAAD,GAASI,CAAC,CAAC,CAAD,CAAf,GAAmB9E,CAAC,GAAC,EAAF,GAAKhB,CAAC,CAACwF,CAAD,EAAGC,CAAH,EAAKC,CAAL,CAAD,GAASI,CAAC,CAAC,CAAD,CAAf,GAAmB9E,CAAC,GAAC,EAAF,GAAKlB,CAAC,CAAC0F,CAAD,EAAGC,CAAH,EAAKC,CAAL,CAAD,GAASI,CAAC,CAAC,CAAD,CAAf,GAAmB9E,CAAC,GAAC,EAAF,GAAKnB,CAAC,CAAC2F,CAAD,EAAGC,CAAH,EAAKC,CAAL,CAAD,GAASI,CAAC,CAAC,CAAD,CAAf,GAAmBrG,CAAC,CAAC+F,CAAD,EAAGC,CAAH,EAAKC,CAAL,CAAD,GAASI,CAAC,CAAC,CAAD,CAAzQ,EAA6Q8B,CAAC,IAAE,CAAhR,EAAkRA,CAAC,GAACpG,CAAC,CAACoG,CAAD,EAAGD,CAAC,CAAC3G,CAAD,CAAJ,CAArR,EAA8R4G,CAAC,GAACA,CAAC,GAACjC,CAAF,GAAI,CAApS,EAAsSJ,CAAC,GAACI,CAAxS,EAA0SA,CAAC,GAACD,CAA5S,EAA8SA,CAAC,GAAClE,CAAC,CAACiE,CAAD,EAAG,EAAH,CAAjT,EAAwTA,CAAC,GAACD,CAA1T,EAA4TA,CAAC,GAACoC,CAA9T;AAAxB;;AAAwVA,QAAAA,CAAC,GAAChC,CAAC,CAAC,CAAD,CAAD,GAAKR,CAAL,GAAOM,CAAP,GAAS,CAAX,EAAaE,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAKP,CAAL,GAAOM,CAAP,GAAS,CAA3B,EAA6BC,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAKN,CAAL,GAAOC,CAAP,GAAS,CAA3C,EAA6CK,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAKhD,CAAL,GAAO4C,CAAP,GAAS,CAA3D,EAA6DI,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAKpC,CAAL,GAAOiC,CAAP,GAAS,CAA3E,EAA6EG,CAAC,CAAC,CAAD,CAAD,GAAKgC,CAAlF;AAAoF,OAA7xB;AAA8xB7D,MAAAA,WAAW,EAAC,uBAAU;AAAC,YAAI7E,CAAC,GAAC,KAAK6D,KAAX;AAAA,YAAiB5D,CAAC,GAACD,CAAC,CAAC2B,KAArB;AAAA,YAA2BpB,CAAC,GAAC,IAAE,KAAKuD,WAApC;AAAA,YAAgDnD,CAAC,GAAC,IAAEX,CAAC,CAAC4B,QAAtD;AAA+D3B,QAAAA,CAAC,CAACU,CAAC,KAAG,CAAL,CAAD,IAAU,OAAK,KAAGA,CAAC,GAAC,EAApB,EAAuBV,CAAC,CAAC,CAACU,CAAC,GAAC,EAAF,KAAO,CAAP,IAAU,CAAX,IAAc,EAAf,CAAD,GAAoB,YAAUJ,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAnB,IAAuB,cAAYA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAtB,CAAlE,EAA2FP,CAAC,CAAC4B,QAAF,GAAW,KAAG3B,CAAC,CAAC4B,MAAF,GAAS,CAAZ,CAAtG,EAAqH,KAAKmC,QAAL,EAArH;;AAAqI,aAAI,IAAIpD,CAAC,GAAC,KAAK+E,KAAX,EAAiB7E,CAAC,GAACF,CAAC,CAACe,KAArB,EAA2BF,CAAC,GAAC,CAAjC,EAAmCA,CAAC,GAAC,CAArC,EAAuCA,CAAC,EAAxC,EAA2C;AAAC,cAAIa,CAAC,GAACxB,CAAC,CAACW,CAAD,CAAP;AAAWX,UAAAA,CAAC,CAACW,CAAD,CAAD,GAAK,YAAUa,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAnB,IAAuB,cAAYA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAtB,CAA5B;AAAqD;;AAAA,eAAO1B,CAAP;AAAS,OAA9mC;AAA+mCY,MAAAA,KAAK,EAAC,iBAAU;AAAC,YAAIxB,CAAC,GAAC0D,CAAC,CAAClC,KAAF,CAAQW,IAAR,CAAa,IAAb,CAAN;AAAyB,eAAOnC,CAAC,CAAC2F,KAAF,GAAQ,KAAKA,KAAL,CAAWnE,KAAX,EAAR,EAA2BxB,CAAlC;AAAoC;AAA7rC,KAAT,CAA5/B;;AAAqsE8B,IAAAA,CAAC,CAACwG,SAAF,GAAY5E,CAAC,CAACoB,aAAF,CAAgBoB,CAAhB,CAAZ,EAA+BpE,CAAC,CAAC6G,aAAF,GAAgBjF,CAAC,CAACqB,iBAAF,CAAoBmB,CAApB,CAA/C;AAAsE,GAAl+E,CAAm+EhB,IAAn+E,CAAtzO,EAA+xT,YAAU;AAAC,QAAIjF,CAAC,GAACD,CAAN;AAAA,QAAQO,CAAC,GAACN,CAAC,CAACY,GAAZ;AAAA,QAAgBF,CAAC,GAACJ,CAAC,CAACQ,IAApB;AAAA,QAAyBH,CAAC,GAACX,CAAC,CAACuC,GAA7B;AAAA,QAAiC1B,CAAC,GAACF,CAAC,CAACwC,IAArC;AAAA,QAA0C3B,CAAC,GAACxB,CAAC,CAACgF,IAA9C;AAAmDxD,IAAAA,CAAC,CAACuD,IAAF,GAAOrE,CAAC,CAACK,MAAF,CAAS;AAACG,MAAAA,IAAI,EAAC,cAASnB,CAAT,EAAWC,CAAX,EAAa;AAACD,QAAAA,CAAC,GAAC,KAAK4I,OAAL,GAAa,IAAI5I,CAAC,CAACmB,IAAN,EAAf,EAA0B,YAAU,OAAOlB,CAAjB,KAAqBA,CAAC,GAACa,CAAC,CAAC6B,KAAF,CAAQ1C,CAAR,CAAvB,CAA1B;AAA6D,YAAIM,CAAC,GAACP,CAAC,CAACiE,SAAR;AAAA,YAAkBtD,CAAC,GAAC,IAAEJ,CAAtB;AAAwBN,QAAAA,CAAC,CAAC2B,QAAF,GAAWjB,CAAX,KAAeV,CAAC,GAACD,CAAC,CAAC4E,QAAF,CAAW3E,CAAX,CAAjB,GAAgCA,CAAC,CAACgC,KAAF,EAAhC;;AAA0C,aAAI,IAAIrB,CAAC,GAAC,KAAKiI,KAAL,GAAW5I,CAAC,CAACuB,KAAF,EAAjB,EAA2BC,CAAC,GAAC,KAAKqH,KAAL,GAAW7I,CAAC,CAACuB,KAAF,EAAxC,EAAkDc,CAAC,GAAC1B,CAAC,CAACe,KAAtD,EAA4DG,CAAC,GAACL,CAAC,CAACE,KAAhE,EAAsEmB,CAAC,GAAC,CAA5E,EAA8EA,CAAC,GAACvC,CAAhF,EAAkFuC,CAAC,EAAnF;AAAsFR,UAAAA,CAAC,CAACQ,CAAD,CAAD,IAAM,UAAN,EAAiBhB,CAAC,CAACgB,CAAD,CAAD,IAAM,SAAvB;AAAtF;;AAAuHlC,QAAAA,CAAC,CAACgB,QAAF,GAAWH,CAAC,CAACG,QAAF,GAAWjB,CAAtB,EAAwB,KAAKiD,KAAL,EAAxB;AAAqC,OAA/S;AAAgTA,MAAAA,KAAK,EAAC,iBAAU;AAAC,YAAI5D,CAAC,GAAC,KAAK4I,OAAX;AAAmB5I,QAAAA,CAAC,CAAC4D,KAAF,IAAU5D,CAAC,CAAC2E,MAAF,CAAS,KAAKmE,KAAd,CAAV;AAA+B,OAAnX;AAAoXnE,MAAAA,MAAM,EAAC,gBAAS3E,CAAT,EAAW;AAAC,eAAO,KAAK4I,OAAL,CAAajE,MAAb,CAAoB3E,CAApB,GAAuB,IAA9B;AAAmC,OAA1a;AAA2a4E,MAAAA,QAAQ,EAAC,kBAAS5E,CAAT,EAAW;AAAC,YAAIC,CAAC,GAAC,KAAK2I,OAAX;AAAA,YAAmBrI,CAAC,GAACN,CAAC,CAAC2E,QAAF,CAAW5E,CAAX,CAArB;AAAmCC,QAAAA,CAAC,CAAC2D,KAAF;AAAU,YAAIjD,CAAC,GAACV,CAAC,CAAC2E,QAAF,CAAW,KAAKiE,KAAL,CAAWrH,KAAX,GAAmBQ,MAAnB,CAA0BzB,CAA1B,CAAX,CAAN;AAA+C,eAAOI,CAAP;AAAS;AAAriB,KAAT,CAAP;AAAwjB,GAAtnB,EAA/xT,EAAw5U,YAAU;AAAC,QAAIV,CAAC,GAACD,CAAN;AAAA,QAAQO,CAAC,GAACN,CAAC,CAACY,GAAZ;AAAA,QAAgBF,CAAC,GAACJ,CAAC,CAACQ,IAApB;AAAA,QAAyBH,CAAC,GAACL,CAAC,CAACmB,SAA7B;AAAA,QAAuCZ,CAAC,GAACb,CAAC,CAACgF,IAA3C;AAAA,QAAgDxD,CAAC,GAACX,CAAC,CAACkG,IAApD;AAAA,QAAyD1E,CAAC,GAACxB,CAAC,CAACkE,IAA7D;AAAA,QAAkElD,CAAC,GAAChB,CAAC,CAACiI,MAAF,GAASpI,CAAC,CAACK,MAAF,CAAS;AAACyD,MAAAA,GAAG,EAAC9D,CAAC,CAACK,MAAF,CAAS;AAACgI,QAAAA,OAAO,EAAC,CAAT;AAAWC,QAAAA,MAAM,EAACxH,CAAlB;AAAoByH,QAAAA,UAAU,EAAC;AAA/B,OAAT,CAAL;AAAiD/H,MAAAA,IAAI,EAAC,cAASnB,CAAT,EAAW;AAAC,aAAKyE,GAAL,GAAS,KAAKA,GAAL,CAASzD,MAAT,CAAgBhB,CAAhB,CAAT;AAA4B,OAA9F;AAA+FmJ,MAAAA,OAAO,EAAC,iBAASnJ,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAI,IAAIM,CAAC,GAAC,KAAKkE,GAAX,EAAe9D,CAAC,GAAC2B,CAAC,CAAC7B,MAAF,CAASF,CAAC,CAAC0I,MAAX,EAAkBjJ,CAAlB,CAAjB,EAAsCc,CAAC,GAACF,CAAC,CAACH,MAAF,EAAxC,EAAmDgB,CAAC,GAACb,CAAC,CAACH,MAAF,CAAS,CAAC,CAAD,CAAT,CAArD,EAAmEqB,CAAC,GAAChB,CAAC,CAACa,KAAvE,EAA6EmB,CAAC,GAACrB,CAAC,CAACE,KAAjF,EAAuFwB,CAAC,GAAC5C,CAAC,CAACyI,OAA3F,EAAmGtF,CAAC,GAACnD,CAAC,CAAC2I,UAA3G,EAAsHpH,CAAC,CAACD,MAAF,GAASsB,CAA/H,GAAkI;AAAC,cAAImB,CAAC,GAAC3D,CAAC,CAACgE,MAAF,CAAS1E,CAAT,EAAY2E,QAAZ,CAAqBnD,CAArB,CAAN;AAA8Bd,UAAAA,CAAC,CAACiD,KAAF;;AAAU,eAAI,IAAIgC,CAAC,GAACtB,CAAC,CAAC3C,KAAR,EAAckE,CAAC,GAACD,CAAC,CAAC/D,MAAlB,EAAyBiE,CAAC,GAACxB,CAA3B,EAA6ByB,CAAC,GAAC,CAAnC,EAAqCA,CAAC,GAACrC,CAAvC,EAAyCqC,CAAC,EAA1C,EAA6C;AAACD,YAAAA,CAAC,GAACnF,CAAC,CAACiE,QAAF,CAAWkB,CAAX,CAAF,EAAgBnF,CAAC,CAACiD,KAAF,EAAhB;;AAA0B,iBAAI,IAAIoC,CAAC,GAACF,CAAC,CAACnE,KAAR,EAAcsE,CAAC,GAAC,CAApB,EAAsBA,CAAC,GAACJ,CAAxB,EAA0BI,CAAC,EAA3B;AAA8BL,cAAAA,CAAC,CAACK,CAAD,CAAD,IAAMD,CAAC,CAACC,CAAD,CAAP;AAA9B;AAAyC;;AAAAnF,UAAAA,CAAC,CAACkB,MAAF,CAASsC,CAAT,GAAYxB,CAAC,CAAC,CAAD,CAAD,EAAZ;AAAmB;;AAAA,eAAOhC,CAAC,CAACc,QAAF,GAAW,IAAEuB,CAAb,EAAerC,CAAtB;AAAwB;AAA5b,KAAT,CAA7E;;AAAqhBb,IAAAA,CAAC,CAAC8I,MAAF,GAAS,UAAS/I,CAAT,EAAWC,CAAX,EAAaM,CAAb,EAAe;AAAC,aAAOuB,CAAC,CAACrB,MAAF,CAASF,CAAT,EAAY4I,OAAZ,CAAoBnJ,CAApB,EAAsBC,CAAtB,CAAP;AAAgC,KAAzD;AAA0D,GAA1lB,EAAx5U,EAAq/V,YAAU;AAAC,QAAIA,CAAC,GAACD,CAAN;AAAA,QAAQO,CAAC,GAACN,CAAC,CAACY,GAAZ;AAAA,QAAgBF,CAAC,GAACJ,CAAC,CAACQ,IAApB;AAAA,QAAyBH,CAAC,GAACL,CAAC,CAACmB,SAA7B;AAAA,QAAuCZ,CAAC,GAACb,CAAC,CAACgF,IAA3C;AAAA,QAAgDxD,CAAC,GAACX,CAAC,CAAC4E,GAApD;AAAA,QAAwDpD,CAAC,GAACxB,CAAC,CAACsI,MAAF,GAASzI,CAAC,CAACK,MAAF,CAAS;AAACyD,MAAAA,GAAG,EAAC9D,CAAC,CAACK,MAAF,CAAS;AAACgI,QAAAA,OAAO,EAAC,CAAT;AAAWC,QAAAA,MAAM,EAACxH,CAAlB;AAAoByH,QAAAA,UAAU,EAAC;AAA/B,OAAT,CAAL;AAAiD/H,MAAAA,IAAI,EAAC,cAASnB,CAAT,EAAW;AAAC,aAAKyE,GAAL,GAAS,KAAKA,GAAL,CAASzD,MAAT,CAAgBhB,CAAhB,CAAT;AAA4B,OAA9F;AAA+FmJ,MAAAA,OAAO,EAAC,iBAASnJ,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAI,IAAIM,CAAC,GAAC,KAAKkE,GAAX,EAAe9D,CAAC,GAACJ,CAAC,CAAC0I,MAAF,CAASxI,MAAT,EAAjB,EAAmCK,CAAC,GAACF,CAAC,CAACH,MAAF,EAArC,EAAgDgB,CAAC,GAACX,CAAC,CAACa,KAApD,EAA0DW,CAAC,GAAC/B,CAAC,CAACyI,OAA9D,EAAsElH,CAAC,GAACvB,CAAC,CAAC2I,UAA9E,EAAyFzH,CAAC,CAACI,MAAF,GAASS,CAAlG,GAAqG;AAACQ,UAAAA,CAAC,IAAEnC,CAAC,CAACgE,MAAF,CAAS7B,CAAT,CAAH;AAAe,cAAIA,CAAC,GAACnC,CAAC,CAACgE,MAAF,CAAS3E,CAAT,EAAY4E,QAAZ,CAAqB3E,CAArB,CAAN;AAA8BU,UAAAA,CAAC,CAACiD,KAAF;;AAAU,eAAI,IAAIT,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACrB,CAAd,EAAgBqB,CAAC,EAAjB;AAAoBL,YAAAA,CAAC,GAACnC,CAAC,CAACiE,QAAF,CAAW9B,CAAX,CAAF,EAAgBnC,CAAC,CAACiD,KAAF,EAAhB;AAApB;;AAA8C9C,UAAAA,CAAC,CAACkB,MAAF,CAASc,CAAT;AAAY;;AAAA,eAAOhC,CAAC,CAACc,QAAF,GAAW,IAAEU,CAAb,EAAexB,CAAtB;AAAwB;AAApW,KAAT,CAAnE;;AAAmbb,IAAAA,CAAC,CAACmJ,MAAF,GAAS,UAASpJ,CAAT,EAAWC,CAAX,EAAaM,CAAb,EAAe;AAAC,aAAO+B,CAAC,CAAC7B,MAAF,CAASF,CAAT,EAAY4I,OAAZ,CAAoBnJ,CAApB,EAAsBC,CAAtB,CAAP;AAAgC,KAAzD;AAA0D,GAAxf,EAAr/V,EAAg/W,YAAU;AAAC,QAAIA,CAAC,GAACD,CAAN;AAAA,QAAQO,CAAC,GAACN,CAAC,CAACY,GAAZ;AAAA,QAAgBF,CAAC,GAACJ,CAAC,CAACmB,SAApB;AAAA,QAA8Bd,CAAC,GAACX,CAAC,CAACgF,IAAlC;AAAA,QAAuCnE,CAAC,GAACF,CAAC,CAACwG,MAA3C;AAAA,QAAkD3F,CAAC,GAACb,CAAC,CAACyI,MAAF,GAASvI,CAAC,CAACE,MAAF,CAAS;AAAC0D,MAAAA,QAAQ,EAAC,oBAAU;AAAC,aAAKiB,KAAL,GAAW,IAAIhF,CAAC,CAACQ,IAAN,CAAW,CAAC,UAAD,EAAY,SAAZ,EAAsB,SAAtB,EAAgC,UAAhC,EAA2C,UAA3C,EAAsD,UAAtD,EAAiE,UAAjE,EAA4E,UAA5E,CAAX,CAAX;AAA+G,OAApI;AAAqI0D,MAAAA,WAAW,EAAC,uBAAU;AAAC,YAAI7E,CAAC,GAACc,CAAC,CAAC+D,WAAF,CAAc1C,IAAd,CAAmB,IAAnB,CAAN;;AAA+B,eAAOnC,CAAC,CAAC4B,QAAF,IAAY,CAAZ,EAAc5B,CAArB;AAAuB;AAAlN,KAAT,CAA7D;AAA2RC,IAAAA,CAAC,CAACoJ,MAAF,GAASvI,CAAC,CAACgE,aAAF,CAAgBrD,CAAhB,CAAT,EAA4BxB,CAAC,CAACqJ,UAAF,GAAaxI,CAAC,CAACiE,iBAAF,CAAoBtD,CAApB,CAAzC;AAAgE,GAAtW,EAAh/W,EAAy1X,UAASxB,CAAT,EAAW;AAAC,QAAIM,CAAC,GAACP,CAAN;AAAA,QAAQW,CAAC,GAACJ,CAAC,CAACM,GAAZ;AAAA,QAAgBD,CAAC,GAACD,CAAC,CAACI,IAApB;AAAA,QAAyBD,CAAC,GAACH,CAAC,CAACe,SAA7B;AAAA,QAAuCD,CAAC,GAAClB,CAAC,CAACgJ,GAAF,GAAM,EAA/C;AAAkD9H,IAAAA,CAAC,CAAC+H,IAAF,GAAO5I,CAAC,CAACI,MAAF,CAAS;AAACG,MAAAA,IAAI,EAAC,cAASnB,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAKwJ,IAAL,GAAUzJ,CAAV,EAAY,KAAK0J,GAAL,GAASzJ,CAArB;AAAuB;AAA3C,KAAT,CAAP,EAA8DwB,CAAC,CAACC,SAAF,GAAYd,CAAC,CAACI,MAAF,CAAS;AAACG,MAAAA,IAAI,EAAC,cAASnB,CAAT,EAAWO,CAAX,EAAa;AAACP,QAAAA,CAAC,GAAC,KAAK2B,KAAL,GAAW3B,CAAC,IAAE,EAAhB,EAAmBO,CAAC,IAAEN,CAAH,GAAK,KAAK2B,QAAL,GAAcrB,CAAnB,GAAqB,KAAKqB,QAAL,GAAc,IAAE5B,CAAC,CAAC6B,MAA1D;AAAiE,OAArF;AAAsF8H,MAAAA,KAAK,EAAC,iBAAU;AAAC,aAAI,IAAI3J,CAAC,GAAC,KAAK2B,KAAX,EAAiB1B,CAAC,GAACD,CAAC,CAAC6B,MAArB,EAA4BtB,CAAC,GAAC,EAA9B,EAAiCI,CAAC,GAAC,CAAvC,EAAyCA,CAAC,GAACV,CAA3C,EAA6CU,CAAC,EAA9C,EAAiD;AAAC,cAAIC,CAAC,GAACZ,CAAC,CAACW,CAAD,CAAP;AAAWJ,UAAAA,CAAC,CAACgC,IAAF,CAAO3B,CAAC,CAAC6I,IAAT,GAAelJ,CAAC,CAACgC,IAAF,CAAO3B,CAAC,CAAC8I,GAAT,CAAf;AAA6B;;AAAA,eAAO5I,CAAC,CAACL,MAAF,CAASF,CAAT,EAAW,KAAKqB,QAAhB,CAAP;AAAiC,OAAlO;AAAmOJ,MAAAA,KAAK,EAAC,iBAAU;AAAC,aAAI,IAAIxB,CAAC,GAACY,CAAC,CAACY,KAAF,CAAQW,IAAR,CAAa,IAAb,CAAN,EAAyBlC,CAAC,GAACD,CAAC,CAAC2B,KAAF,GAAQ,KAAKA,KAAL,CAAWS,KAAX,CAAiB,CAAjB,CAAnC,EAAuD7B,CAAC,GAACN,CAAC,CAAC4B,MAA3D,EAAkElB,CAAC,GAAC,CAAxE,EAA0EA,CAAC,GAACJ,CAA5E,EAA8EI,CAAC,EAA/E;AAAkFV,UAAAA,CAAC,CAACU,CAAD,CAAD,GAAKV,CAAC,CAACU,CAAD,CAAD,CAAKa,KAAL,EAAL;AAAlF;;AAAoG,eAAOxB,CAAP;AAAS;AAAjW,KAAT,CAA1E;AAAub,GAArf,EAAz1X,EAAi1Y,UAASC,CAAT,EAAW;AAAC,QAAIM,CAAC,GAACP,CAAN;AAAA,QAAQW,CAAC,GAACJ,CAAC,CAACM,GAAZ;AAAA,QAAgBD,CAAC,GAACD,CAAC,CAACe,SAApB;AAAA,QAA8BZ,CAAC,GAACH,CAAC,CAAC6D,MAAlC;AAAA,QAAyC/C,CAAC,GAAClB,CAAC,CAACgJ,GAA7C;AAAA,QAAiDjH,CAAC,GAACb,CAAC,CAAC+H,IAArD;AAAA,QAA0D1H,CAAC,GAACvB,CAAC,CAAC0E,IAA9D;AAAA,QAAmEnC,CAAC,GAAC,EAArE;AAAA,QAAwEK,CAAC,GAAC,EAA1E;AAAA,QAA6EO,CAAC,GAAC,EAA/E;AAAkF,KAAC,YAAU;AAAC,WAAI,IAAI1D,CAAC,GAAC,CAAN,EAAQC,CAAC,GAAC,CAAV,EAAYM,CAAC,GAAC,CAAlB,EAAoBA,CAAC,GAAC,EAAtB,EAAyBA,CAAC,EAA1B,EAA6B;AAACuC,QAAAA,CAAC,CAAC9C,CAAC,GAAC,IAAEC,CAAL,CAAD,GAAS,CAACM,CAAC,GAAC,CAAH,KAAOA,CAAC,GAAC,CAAT,IAAY,CAAZ,GAAc,EAAvB;AAA0B,YAAII,CAAC,GAACV,CAAC,GAAC,CAAR;AAAA,YAAUW,CAAC,GAAC,CAAC,IAAEZ,CAAF,GAAI,IAAEC,CAAP,IAAU,CAAtB;AAAwBD,QAAAA,CAAC,GAACW,CAAF,EAAIV,CAAC,GAACW,CAAN;AAAQ;;AAAA,WAAI,IAAIZ,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB;AAAoB,aAAI,IAAIC,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB;AAAoBkD,UAAAA,CAAC,CAACnD,CAAC,GAAC,IAAEC,CAAL,CAAD,GAASA,CAAC,GAAC,CAAC,IAAED,CAAF,GAAI,IAAEC,CAAP,IAAU,CAAV,GAAY,CAAvB;AAApB;AAApB;;AAAiE,WAAI,IAAIa,CAAC,GAAC,CAAN,EAAQW,CAAC,GAAC,CAAd,EAAgBA,CAAC,GAAC,EAAlB,EAAqBA,CAAC,EAAtB,EAAyB;AAAC,aAAI,IAAIK,CAAC,GAAC,CAAN,EAAQwC,CAAC,GAAC,CAAV,EAAYsB,CAAC,GAAC,CAAlB,EAAoBA,CAAC,GAAC,CAAtB,EAAwBA,CAAC,EAAzB,EAA4B;AAAC,cAAG,IAAE9E,CAAL,EAAO;AAAC,gBAAI+E,CAAC,GAAC,CAAC,KAAGD,CAAJ,IAAO,CAAb;AAAeC,YAAAA,CAAC,GAAC,EAAF,GAAKvB,CAAC,IAAE,KAAGuB,CAAX,GAAa/D,CAAC,IAAE,KAAG+D,CAAC,GAAC,EAArB;AAAwB;;AAAA,gBAAI/E,CAAJ,GAAMA,CAAC,GAACA,CAAC,IAAE,CAAH,GAAK,GAAb,GAAiBA,CAAC,KAAG,CAArB;AAAuB;;AAAA4C,QAAAA,CAAC,CAACjC,CAAD,CAAD,GAAKa,CAAC,CAAC7B,MAAF,CAASqB,CAAT,EAAWwC,CAAX,CAAL;AAAmB;AAAC,KAArT,EAAD;AAAyT,QAAIA,CAAC,GAAC,EAAN;AAAS,KAAC,YAAU;AAAC,WAAI,IAAItE,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,EAAd,EAAiBA,CAAC,EAAlB;AAAqBsE,QAAAA,CAAC,CAACtE,CAAD,CAAD,GAAKsC,CAAC,CAAC7B,MAAF,EAAL;AAArB;AAAqC,KAAhD,EAAD;AAAoD,QAAImF,CAAC,GAAC9D,CAAC,CAAC8H,IAAF,GAAO9I,CAAC,CAACE,MAAF,CAAS;AAACyD,MAAAA,GAAG,EAAC3D,CAAC,CAAC2D,GAAF,CAAMzD,MAAN,CAAa;AAAC6I,QAAAA,YAAY,EAAC;AAAd,OAAb,CAAL;AAAsCnF,MAAAA,QAAQ,EAAC,oBAAU;AAAC,aAAI,IAAI1E,CAAC,GAAC,KAAK8J,MAAL,GAAY,EAAlB,EAAqB7J,CAAC,GAAC,CAA3B,EAA6BA,CAAC,GAAC,EAA/B,EAAkCA,CAAC,EAAnC;AAAsCD,UAAAA,CAAC,CAACC,CAAD,CAAD,GAAK,IAAIqC,CAAC,CAACnB,IAAN,EAAL;AAAtC;;AAAsD,aAAK8C,SAAL,GAAe,CAAC,OAAK,IAAE,KAAKQ,GAAL,CAASoF,YAAjB,IAA+B,EAA9C;AAAiD,OAAjK;AAAkKxF,MAAAA,eAAe,EAAC,yBAASrE,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAI,IAAIM,CAAC,GAAC,KAAKuJ,MAAX,EAAkBnJ,CAAC,GAAC,KAAKsD,SAAL,GAAe,CAAnC,EAAqCrD,CAAC,GAAC,CAA3C,EAA6CA,CAAC,GAACD,CAA/C,EAAiDC,CAAC,EAAlD,EAAqD;AAAC,cAAIE,CAAC,GAACd,CAAC,CAACC,CAAC,GAAC,IAAEW,CAAL,CAAP;AAAA,cAAea,CAAC,GAACzB,CAAC,CAACC,CAAC,GAAC,IAAEW,CAAJ,GAAM,CAAP,CAAlB;AAA4BE,UAAAA,CAAC,GAAC,YAAUA,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAnB,IAAuB,cAAYA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAtB,CAAzB,EAAkDW,CAAC,GAAC,YAAUA,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAnB,IAAuB,cAAYA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAtB,CAA3E;AAAoG,cAAIa,CAAC,GAAC/B,CAAC,CAACK,CAAD,CAAP;AAAW0B,UAAAA,CAAC,CAACmH,IAAF,IAAQhI,CAAR,EAAUa,CAAC,CAACoH,GAAF,IAAO5I,CAAjB;AAAmB;;AAAA,aAAI,IAAIgB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,EAAd,EAAiBA,CAAC,EAAlB,EAAqB;AAAC,eAAI,IAAI8D,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB,EAAoB;AAAC,iBAAI,IAAIC,CAAC,GAAC,CAAN,EAAQC,CAAC,GAAC,CAAV,EAAYC,CAAC,GAAC,CAAlB,EAAoBA,CAAC,GAAC,CAAtB,EAAwBA,CAAC,EAAzB,EAA4B;AAAC,kBAAIzD,CAAC,GAAC/B,CAAC,CAACqF,CAAC,GAAC,IAAEG,CAAL,CAAP;AAAeF,cAAAA,CAAC,IAAEvD,CAAC,CAACmH,IAAL,EAAU3D,CAAC,IAAExD,CAAC,CAACoH,GAAf;AAAmB;;AAAA,gBAAI1D,CAAC,GAAC1B,CAAC,CAACsB,CAAD,CAAP;AAAWI,YAAAA,CAAC,CAACyD,IAAF,GAAO5D,CAAP,EAASG,CAAC,CAAC0D,GAAF,GAAM5D,CAAf;AAAiB;;AAAA,eAAI,IAAIF,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB;AAAoB,iBAAI,IAAIK,CAAC,GAAC3B,CAAC,CAAC,CAACsB,CAAC,GAAC,CAAH,IAAM,CAAP,CAAP,EAAiBM,CAAC,GAAC5B,CAAC,CAAC,CAACsB,CAAC,GAAC,CAAH,IAAM,CAAP,CAApB,EAA8BO,CAAC,GAACD,CAAC,CAACuD,IAAlC,EAAuCrD,CAAC,GAACF,CAAC,CAACwD,GAA3C,EAA+C7D,CAAC,GAACI,CAAC,CAACwD,IAAF,IAAQtD,CAAC,IAAE,CAAH,GAAKC,CAAC,KAAG,EAAjB,CAAjD,EAAsEN,CAAC,GAACG,CAAC,CAACyD,GAAF,IAAOtD,CAAC,IAAE,CAAH,GAAKD,CAAC,KAAG,EAAhB,CAAxE,EAA4FJ,CAAC,GAAC,CAAlG,EAAoGA,CAAC,GAAC,CAAtG,EAAwGA,CAAC,EAAzG,EAA4G;AAAC,kBAAIzD,CAAC,GAAC/B,CAAC,CAACqF,CAAC,GAAC,IAAEG,CAAL,CAAP;AAAezD,cAAAA,CAAC,CAACmH,IAAF,IAAQ5D,CAAR,EAAUvD,CAAC,CAACoH,GAAF,IAAO5D,CAAjB;AAAmB;AAAnK;;AAAmK,eAAI,IAAIO,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,EAAd,EAAiBA,CAAC,EAAlB,EAAqB;AAAC,gBAAI/D,CAAC,GAAC/B,CAAC,CAAC8F,CAAD,CAAP;AAAA,gBAAWC,CAAC,GAAChE,CAAC,CAACmH,IAAf;AAAA,gBAAoBlD,CAAC,GAACjE,CAAC,CAACoH,GAAxB;AAAA,gBAA4BlD,CAAC,GAAC1D,CAAC,CAACuD,CAAD,CAA/B;AAAmC,gBAAGG,CAAC,GAAC,EAAL,EAAQ,IAAIX,CAAC,GAACS,CAAC,IAAEE,CAAH,GAAKD,CAAC,KAAG,KAAGC,CAAlB;AAAA,gBAAoBV,CAAC,GAACS,CAAC,IAAEC,CAAH,GAAKF,CAAC,KAAG,KAAGE,CAAlC,CAAR,KAAiD,IAAIX,CAAC,GAACU,CAAC,IAAEC,CAAC,GAAC,EAAL,GAAQF,CAAC,KAAG,KAAGE,CAArB;AAAA,gBAAuBV,CAAC,GAACQ,CAAC,IAAEE,CAAC,GAAC,EAAL,GAAQD,CAAC,KAAG,KAAGC,CAAxC;AAA0C,gBAAIC,CAAC,GAACnC,CAAC,CAACnB,CAAC,CAACkD,CAAD,CAAF,CAAP;AAAcI,YAAAA,CAAC,CAACgD,IAAF,GAAO5D,CAAP,EAASY,CAAC,CAACiD,GAAF,GAAM5D,CAAf;AAAiB;;AAAA,cAAIY,CAAC,GAACpC,CAAC,CAAC,CAAD,CAAP;AAAA,cAAWqC,CAAC,GAACpG,CAAC,CAAC,CAAD,CAAd;AAAkBmG,UAAAA,CAAC,CAAC+C,IAAF,GAAO9C,CAAC,CAAC8C,IAAT,EAAc/C,CAAC,CAACgD,GAAF,GAAM/C,CAAC,CAAC+C,GAAtB;;AAA0B,eAAI,IAAI9D,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB;AAAoB,iBAAI,IAAIG,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB,EAAoB;AAAC,kBAAIM,CAAC,GAACT,CAAC,GAAC,IAAEG,CAAV;AAAA,kBAAYzD,CAAC,GAAC/B,CAAC,CAAC8F,CAAD,CAAf;AAAA,kBAAmBO,CAAC,GAACtC,CAAC,CAAC+B,CAAD,CAAtB;AAAA,kBAA0BQ,CAAC,GAACvC,CAAC,CAAC,CAACsB,CAAC,GAAC,CAAH,IAAM,CAAN,GAAQ,IAAEG,CAAX,CAA7B;AAAA,kBAA2CwC,CAAC,GAACjE,CAAC,CAAC,CAACsB,CAAC,GAAC,CAAH,IAAM,CAAN,GAAQ,IAAEG,CAAX,CAA9C;AAA4DzD,cAAAA,CAAC,CAACmH,IAAF,GAAO7C,CAAC,CAAC6C,IAAF,GAAO,CAAC5C,CAAC,CAAC4C,IAAH,GAAQlB,CAAC,CAACkB,IAAxB,EAA6BnH,CAAC,CAACoH,GAAF,GAAM9C,CAAC,CAAC8C,GAAF,GAAM,CAAC7C,CAAC,CAAC6C,GAAH,GAAOnB,CAAC,CAACmB,GAAlD;AAAsD;AAA3J;;AAA2J,cAAIpH,CAAC,GAAC/B,CAAC,CAAC,CAAD,CAAP;AAAA,cAAWiI,CAAC,GAAC9E,CAAC,CAAC5B,CAAD,CAAd;AAAkBQ,UAAAA,CAAC,CAACmH,IAAF,IAAQjB,CAAC,CAACiB,IAAV,EAAenH,CAAC,CAACoH,GAAF,IAAOlB,CAAC,CAACkB,GAAxB;AAA4B;AAAC,OAAtmC;AAAumC7E,MAAAA,WAAW,EAAC,uBAAU;AAAC,YAAI7E,CAAC,GAAC,KAAK6D,KAAX;AAAA,YAAiBtD,CAAC,GAACP,CAAC,CAAC2B,KAArB;AAAA,YAA2BhB,CAAC,IAAE,IAAE,KAAKmD,WAAP,EAAmB,IAAE9D,CAAC,CAAC4B,QAAzB,CAA5B;AAAA,YAA+Dd,CAAC,GAAC,KAAG,KAAKmD,SAAzE;AAAmF1D,QAAAA,CAAC,CAACI,CAAC,KAAG,CAAL,CAAD,IAAU,KAAG,KAAGA,CAAC,GAAC,EAAlB,EAAqBJ,CAAC,CAAC,CAACN,CAAC,CAACiC,IAAF,CAAO,CAACvB,CAAC,GAAC,CAAH,IAAMG,CAAb,IAAgBA,CAAhB,KAAoB,CAArB,IAAwB,CAAzB,CAAD,IAA8B,GAAnD,EAAuDd,CAAC,CAAC4B,QAAF,GAAW,IAAErB,CAAC,CAACsB,MAAtE,EAA6E,KAAKmC,QAAL,EAA7E;;AAA6F,aAAI,IAAIvC,CAAC,GAAC,KAAKqI,MAAX,EAAkBxH,CAAC,GAAC,KAAKmC,GAAL,CAASoF,YAAT,GAAsB,CAA1C,EAA4C/H,CAAC,GAACQ,CAAC,GAAC,CAAhD,EAAkDQ,CAAC,GAAC,EAApD,EAAuDK,CAAC,GAAC,CAA7D,EAA+DA,CAAC,GAACrB,CAAjE,EAAmEqB,CAAC,EAApE,EAAuE;AAAC,cAAIO,CAAC,GAACjC,CAAC,CAAC0B,CAAD,CAAP;AAAA,cAAWmB,CAAC,GAACZ,CAAC,CAAC+F,IAAf;AAAA,cAAoB7D,CAAC,GAAClC,CAAC,CAACgG,GAAxB;AAA4BpF,UAAAA,CAAC,GAAC,YAAUA,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAnB,IAAuB,cAAYA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAtB,CAAzB,EAAkDsB,CAAC,GAAC,YAAUA,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAnB,IAAuB,cAAYA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAtB,CAA3E,EAAoG9C,CAAC,CAACP,IAAF,CAAOqD,CAAP,CAApG,EAA8G9C,CAAC,CAACP,IAAF,CAAO+B,CAAP,CAA9G;AAAwH;;AAAA,eAAO,IAAI1D,CAAC,CAACO,IAAN,CAAW2B,CAAX,EAAaR,CAAb,CAAP;AAAuB,OAAjiD;AAAkiDd,MAAAA,KAAK,EAAC,iBAAU;AAAC,aAAI,IAAIxB,CAAC,GAACc,CAAC,CAACU,KAAF,CAAQW,IAAR,CAAa,IAAb,CAAN,EAAyBlC,CAAC,GAACD,CAAC,CAAC8J,MAAF,GAAS,KAAKA,MAAL,CAAY1H,KAAZ,CAAkB,CAAlB,CAApC,EAAyD7B,CAAC,GAAC,CAA/D,EAAiEA,CAAC,GAAC,EAAnE,EAAsEA,CAAC,EAAvE;AAA0EN,UAAAA,CAAC,CAACM,CAAD,CAAD,GAAKN,CAAC,CAACM,CAAD,CAAD,CAAKiB,KAAL,EAAL;AAA1E;;AAA4F,eAAOxB,CAAP;AAAS;AAAxpD,KAAT,CAAb;AAAirDO,IAAAA,CAAC,CAACqJ,IAAF,GAAO9I,CAAC,CAACgE,aAAF,CAAgBc,CAAhB,CAAP,EAA0BrF,CAAC,CAACwJ,QAAF,GAAWjJ,CAAC,CAACiE,iBAAF,CAAoBa,CAApB,CAArC;AAA4D,GAAjsE,CAAksEV,IAAlsE,CAAj1Y,EAAyhd,YAAU;AAAC,aAASjF,CAAT,GAAY;AAAC,aAAOwB,CAAC,CAAChB,MAAF,CAASY,KAAT,CAAeI,CAAf,EAAiBH,SAAjB,CAAP;AAAmC;;AAAA,QAAIf,CAAC,GAACP,CAAN;AAAA,QAAQW,CAAC,GAACJ,CAAC,CAACM,GAAZ;AAAA,QAAgBD,CAAC,GAACD,CAAC,CAAC6D,MAApB;AAAA,QAA2B1D,CAAC,GAACP,CAAC,CAACgJ,GAA/B;AAAA,QAAmC9H,CAAC,GAACX,CAAC,CAAC0I,IAAvC;AAAA,QAA4ClH,CAAC,GAACxB,CAAC,CAACY,SAAhD;AAAA,QAA0DI,CAAC,GAACvB,CAAC,CAAC0E,IAA9D;AAAA,QAAmEnC,CAAC,GAAC,CAAC7C,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAF,EAA0BA,CAAC,CAAC,UAAD,EAAY,SAAZ,CAA3B,EAAkDA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAnD,EAA2EA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA5E,EAAoGA,CAAC,CAAC,SAAD,EAAW,UAAX,CAArG,EAA4HA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA7H,EAAqJA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAtJ,EAA8KA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA/K,EAAuMA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAxM,EAAgOA,CAAC,CAAC,SAAD,EAAW,UAAX,CAAjO,EAAwPA,CAAC,CAAC,SAAD,EAAW,UAAX,CAAzP,EAAgRA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAjR,EAAySA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA1S,EAAkUA,CAAC,CAAC,UAAD,EAAY,SAAZ,CAAnU,EAA0VA,CAAC,CAAC,UAAD,EAAY,SAAZ,CAA3V,EAAkXA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAnX,EAA2YA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA5Y,EAAoaA,CAAC,CAAC,UAAD,EAAY,SAAZ,CAAra,EAA4bA,CAAC,CAAC,SAAD,EAAW,UAAX,CAA7b,EAAodA,CAAC,CAAC,SAAD,EAAW,UAAX,CAArd,EAA4eA,CAAC,CAAC,SAAD,EAAW,UAAX,CAA7e,EAAogBA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAArgB,EAA6hBA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA9hB,EAAsjBA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAvjB,EAA+kBA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAhlB,EAAwmBA,CAAC,CAAC,UAAD,EAAY,SAAZ,CAAzmB,EAAgoBA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAjoB,EAAypBA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA1pB,EAAkrBA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAnrB,EAA2sBA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA5sB,EAAouBA,CAAC,CAAC,SAAD,EAAW,UAAX,CAAruB,EAA4vBA,CAAC,CAAC,SAAD,EAAW,SAAX,CAA7vB,EAAmxBA,CAAC,CAAC,SAAD,EAAW,UAAX,CAApxB,EAA2yBA,CAAC,CAAC,SAAD,EAAW,UAAX,CAA5yB,EAAm0BA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAp0B,EAA41BA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA71B,EAAq3BA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAt3B,EAA84BA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA/4B,EAAu6BA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAx6B,EAAg8BA,CAAC,CAAC,UAAD,EAAY,SAAZ,CAAj8B,EAAw9BA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAz9B,EAAi/BA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAl/B,EAA0gCA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA3gC,EAAmiCA,CAAC,CAAC,UAAD,EAAY,SAAZ,CAApiC,EAA2jCA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA5jC,EAAolCA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAArlC,EAA6mCA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA9mC,EAAsoCA,CAAC,CAAC,SAAD,EAAW,SAAX,CAAvoC,EAA6pCA,CAAC,CAAC,SAAD,EAAW,UAAX,CAA9pC,EAAqrCA,CAAC,CAAC,SAAD,EAAW,UAAX,CAAtrC,EAA6sCA,CAAC,CAAC,SAAD,EAAW,UAAX,CAA9sC,EAAquCA,CAAC,CAAC,SAAD,EAAW,UAAX,CAAtuC,EAA6vCA,CAAC,CAAC,SAAD,EAAW,UAAX,CAA9vC,EAAqxCA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAtxC,EAA8yCA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA/yC,EAAu0CA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAx0C,EAAg2CA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAj2C,EAAy3CA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA13C,EAAk5CA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAn5C,EAA26CA,CAAC,CAAC,UAAD,EAAY,SAAZ,CAA56C,EAAm8CA,CAAC,CAAC,UAAD,EAAY,SAAZ,CAAp8C,EAA29CA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA59C,EAAo/CA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAr/C,EAA6gDA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAA9gD,EAAsiDA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAviD,EAA+jDA,CAAC,CAAC,UAAD,EAAY,SAAZ,CAAhkD,EAAulDA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAxlD,EAAgnDA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAjnD,EAAyoDA,CAAC,CAAC,SAAD,EAAW,UAAX,CAA1oD,EAAiqDA,CAAC,CAAC,SAAD,EAAW,UAAX,CAAlqD,EAAyrDA,CAAC,CAAC,SAAD,EAAW,UAAX,CAA1rD,EAAitDA,CAAC,CAAC,SAAD,EAAW,SAAX,CAAltD,EAAwuDA,CAAC,CAAC,SAAD,EAAW,SAAX,CAAzuD,EAA+vDA,CAAC,CAAC,SAAD,EAAW,UAAX,CAAhwD,EAAuxDA,CAAC,CAAC,UAAD,EAAY,SAAZ,CAAxxD,EAA+yDA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAhzD,EAAw0DA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAz0D,EAAi2DA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAl2D,EAA03DA,CAAC,CAAC,UAAD,EAAY,SAAZ,CAA33D,EAAk5DA,CAAC,CAAC,UAAD,EAAY,UAAZ,CAAn5D,CAArE;AAAA,QAAi/DkD,CAAC,GAAC,EAAn/D;AAAs/D,KAAC,YAAU;AAAC,WAAI,IAAInD,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,EAAd,EAAiBA,CAAC,EAAlB;AAAqBmD,QAAAA,CAAC,CAACnD,CAAD,CAAD,GAAKC,CAAC,EAAN;AAArB;AAA8B,KAAzC,EAAD;AAA6C,QAAIyD,CAAC,GAAC5B,CAAC,CAACkI,MAAF,GAASpJ,CAAC,CAACI,MAAF,CAAS;AAAC0D,MAAAA,QAAQ,EAAC,oBAAU;AAAC,aAAKiB,KAAL,GAAW,IAAIrD,CAAC,CAACnB,IAAN,CAAW,CAAC,IAAIM,CAAC,CAACN,IAAN,CAAW,UAAX,EAAsB,UAAtB,CAAD,EAAmC,IAAIM,CAAC,CAACN,IAAN,CAAW,UAAX,EAAsB,UAAtB,CAAnC,EAAqE,IAAIM,CAAC,CAACN,IAAN,CAAW,UAAX,EAAsB,UAAtB,CAArE,EAAuG,IAAIM,CAAC,CAACN,IAAN,CAAW,UAAX,EAAsB,UAAtB,CAAvG,EAAyI,IAAIM,CAAC,CAACN,IAAN,CAAW,UAAX,EAAsB,UAAtB,CAAzI,EAA2K,IAAIM,CAAC,CAACN,IAAN,CAAW,UAAX,EAAsB,SAAtB,CAA3K,EAA4M,IAAIM,CAAC,CAACN,IAAN,CAAW,SAAX,EAAqB,UAArB,CAA5M,EAA6O,IAAIM,CAAC,CAACN,IAAN,CAAW,UAAX,EAAsB,SAAtB,CAA7O,CAAX,CAAX;AAAsS,OAA3T;AAA4TkD,MAAAA,eAAe,EAAC,yBAASrE,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAI,IAAIM,CAAC,GAAC,KAAKoF,KAAL,CAAWhE,KAAjB,EAAuBhB,CAAC,GAACJ,CAAC,CAAC,CAAD,CAA1B,EAA8BK,CAAC,GAACL,CAAC,CAAC,CAAD,CAAjC,EAAqCO,CAAC,GAACP,CAAC,CAAC,CAAD,CAAxC,EAA4CkB,CAAC,GAAClB,CAAC,CAAC,CAAD,CAA/C,EAAmD+B,CAAC,GAAC/B,CAAC,CAAC,CAAD,CAAtD,EAA0DuB,CAAC,GAACvB,CAAC,CAAC,CAAD,CAA7D,EAAiEmD,CAAC,GAACnD,CAAC,CAAC,CAAD,CAApE,EAAwE+D,CAAC,GAAC/D,CAAC,CAAC,CAAD,CAA3E,EAA+EqF,CAAC,GAACjF,CAAC,CAAC8I,IAAnF,EAAwF5D,CAAC,GAAClF,CAAC,CAAC+I,GAA5F,EAAgG5D,CAAC,GAAClF,CAAC,CAAC6I,IAApG,EAAyG1D,CAAC,GAACnF,CAAC,CAAC8I,GAA7G,EAAiH1D,CAAC,GAAClF,CAAC,CAAC2I,IAArH,EAA0HxD,CAAC,GAACnF,CAAC,CAAC4I,GAA9H,EAAkIxD,CAAC,GAACzE,CAAC,CAACgI,IAAtI,EAA2ItD,CAAC,GAAC1E,CAAC,CAACiI,GAA/I,EAAmJtD,CAAC,GAAC9D,CAAC,CAACmH,IAAvJ,EAA4JpD,CAAC,GAAC/D,CAAC,CAACoH,GAAhK,EAAoKpD,CAAC,GAACxE,CAAC,CAAC2H,IAAxK,EAA6KlD,CAAC,GAACzE,CAAC,CAAC4H,GAAjL,EAAqLlD,CAAC,GAAC9C,CAAC,CAAC+F,IAAzL,EAA8LhD,CAAC,GAAC/C,CAAC,CAACgG,GAAlM,EAAsMhD,CAAC,GAACpC,CAAC,CAACmF,IAA1M,EAA+M9C,CAAC,GAACrC,CAAC,CAACoF,GAAnN,EAAuN9C,CAAC,GAAChB,CAAzN,EAA2NiB,CAAC,GAAChB,CAA7N,EAA+N0C,CAAC,GAACzC,CAAjO,EAAmO0C,CAAC,GAACzC,CAArO,EAAuO0C,CAAC,GAACzC,CAAzO,EAA2O0C,CAAC,GAACzC,CAA7O,EAA+OgE,CAAC,GAAC/D,CAAjP,EAAmPgE,CAAC,GAAC/D,CAArP,EAAuPgE,CAAC,GAAC/D,CAAzP,EAA2PgE,CAAC,GAAC/D,CAA7P,EAA+PgE,CAAC,GAAC/D,CAAjQ,EAAmQgE,CAAC,GAAC/D,CAArQ,EAAuQgE,CAAC,GAAC/D,CAAzQ,EAA2QgE,CAAC,GAAC/D,CAA7Q,EAA+QgE,CAAC,GAAC/D,CAAjR,EAAmRgE,CAAC,GAAC/D,CAArR,EAAuRgE,CAAC,GAAC,CAA7R,EAA+RA,CAAC,GAAC,EAAjS,EAAoSA,CAAC,EAArS,EAAwS;AAAC,cAAIC,CAAC,GAACzH,CAAC,CAACwH,CAAD,CAAP;AAAW,cAAGA,CAAC,GAAC,EAAL,EAAQ,IAAIE,CAAC,GAACD,CAAC,CAACnB,IAAF,GAAO,IAAEzJ,CAAC,CAACC,CAAC,GAAC,IAAE0K,CAAL,CAAhB;AAAA,cAAwBG,CAAC,GAACF,CAAC,CAAClB,GAAF,GAAM,IAAE1J,CAAC,CAACC,CAAC,GAAC,IAAE0K,CAAJ,GAAM,CAAP,CAAnC,CAAR,KAAyD;AAAC,gBAAII,CAAC,GAAC5H,CAAC,CAACwH,CAAC,GAAC,EAAH,CAAP;AAAA,gBAAcK,CAAC,GAACD,CAAC,CAACtB,IAAlB;AAAA,gBAAuBwB,CAAC,GAACF,CAAC,CAACrB,GAA3B;AAAA,gBAA+BwB,CAAC,GAAC,CAACF,CAAC,KAAG,CAAJ,GAAMC,CAAC,IAAE,EAAV,KAAeD,CAAC,KAAG,CAAJ,GAAMC,CAAC,IAAE,EAAxB,IAA4BD,CAAC,KAAG,CAAjE;AAAA,gBAAmEG,CAAC,GAAC,CAACF,CAAC,KAAG,CAAJ,GAAMD,CAAC,IAAE,EAAV,KAAeC,CAAC,KAAG,CAAJ,GAAMD,CAAC,IAAE,EAAxB,KAA6BC,CAAC,KAAG,CAAJ,GAAMD,CAAC,IAAE,EAAtC,CAArE;AAAA,gBAA+GI,EAAE,GAACjI,CAAC,CAACwH,CAAC,GAAC,CAAH,CAAnH;AAAA,gBAAyHU,EAAE,GAACD,EAAE,CAAC3B,IAA/H;AAAA,gBAAoI6B,EAAE,GAACF,EAAE,CAAC1B,GAA1I;AAAA,gBAA8I6B,EAAE,GAAC,CAACF,EAAE,KAAG,EAAL,GAAQC,EAAE,IAAE,EAAb,KAAkBD,EAAE,IAAE,CAAJ,GAAMC,EAAE,KAAG,EAA7B,IAAiCD,EAAE,KAAG,CAAvL;AAAA,gBAAyLG,EAAE,GAAC,CAACF,EAAE,KAAG,EAAL,GAAQD,EAAE,IAAE,EAAb,KAAkBC,EAAE,IAAE,CAAJ,GAAMD,EAAE,KAAG,EAA7B,KAAkCC,EAAE,KAAG,CAAL,GAAOD,EAAE,IAAE,EAA7C,CAA5L;AAAA,gBAA6OI,EAAE,GAACtI,CAAC,CAACwH,CAAC,GAAC,CAAH,CAAjP;AAAA,gBAAuPe,EAAE,GAACD,EAAE,CAAChC,IAA7P;AAAA,gBAAkQkC,EAAE,GAACF,EAAE,CAAC/B,GAAxQ;AAAA,gBAA4QkC,EAAE,GAACzI,CAAC,CAACwH,CAAC,GAAC,EAAH,CAAhR;AAAA,gBAAuRkB,EAAE,GAACD,EAAE,CAACnC,IAA7R;AAAA,gBAAkSqC,EAAE,GAACF,EAAE,CAAClC,GAAxS;AAAA,gBAA4SoB,CAAC,GAACK,CAAC,GAACQ,EAAhT;AAAA,gBAAmTd,CAAC,GAACK,CAAC,GAACQ,EAAF,IAAMZ,CAAC,KAAG,CAAJ,GAAMK,CAAC,KAAG,CAAV,GAAY,CAAZ,GAAc,CAApB,CAArT;AAAA,gBAA4UL,CAAC,GAACA,CAAC,GAACU,EAAhV;AAAA,gBAAmVX,CAAC,GAACA,CAAC,GAACU,EAAF,IAAMT,CAAC,KAAG,CAAJ,GAAMU,EAAE,KAAG,CAAX,GAAa,CAAb,GAAe,CAArB,CAArV;AAAA,gBAA6WV,CAAC,GAACA,CAAC,GAACgB,EAAjX;AAAA,gBAAoXjB,CAAC,GAACA,CAAC,GAACgB,EAAF,IAAMf,CAAC,KAAG,CAAJ,GAAMgB,EAAE,KAAG,CAAX,GAAa,CAAb,GAAe,CAArB,CAAtX;AAA8YlB,YAAAA,CAAC,CAACnB,IAAF,GAAOoB,CAAP,EAASD,CAAC,CAAClB,GAAF,GAAMoB,CAAf;AAAiB;;AAAA,cAAIiB,EAAE,GAAC5B,CAAC,GAACE,CAAF,GAAI,CAACF,CAAD,GAAGI,CAAd;AAAA,cAAgByB,EAAE,GAAC5B,CAAC,GAACE,CAAF,GAAI,CAACF,CAAD,GAAGI,CAA1B;AAAA,cAA4ByB,EAAE,GAACrF,CAAC,GAAC2B,CAAF,GAAI3B,CAAC,GAAC6B,CAAN,GAAQF,CAAC,GAACE,CAAzC;AAAA,cAA2CyD,EAAE,GAACrF,CAAC,GAAC2B,CAAF,GAAI3B,CAAC,GAAC6B,CAAN,GAAQF,CAAC,GAACE,CAAxD;AAAA,cAA0DyD,EAAE,GAAC,CAACvF,CAAC,KAAG,EAAJ,GAAOC,CAAC,IAAE,CAAX,KAAeD,CAAC,IAAE,EAAH,GAAMC,CAAC,KAAG,CAAzB,KAA6BD,CAAC,IAAE,EAAH,GAAMC,CAAC,KAAG,CAAvC,CAA7D;AAAA,cAAuGuF,EAAE,GAAC,CAACvF,CAAC,KAAG,EAAJ,GAAOD,CAAC,IAAE,CAAX,KAAeC,CAAC,IAAE,EAAH,GAAMD,CAAC,KAAG,CAAzB,KAA6BC,CAAC,IAAE,EAAH,GAAMD,CAAC,KAAG,CAAvC,CAA1G;AAAA,cAAoJyF,EAAE,GAAC,CAAClC,CAAC,KAAG,EAAJ,GAAOC,CAAC,IAAE,EAAX,KAAgBD,CAAC,KAAG,EAAJ,GAAOC,CAAC,IAAE,EAA1B,KAA+BD,CAAC,IAAE,EAAH,GAAMC,CAAC,KAAG,CAAzC,CAAvJ;AAAA,cAAmMkC,EAAE,GAAC,CAAClC,CAAC,KAAG,EAAJ,GAAOD,CAAC,IAAE,EAAX,KAAgBC,CAAC,KAAG,EAAJ,GAAOD,CAAC,IAAE,EAA1B,KAA+BC,CAAC,IAAE,EAAH,GAAMD,CAAC,KAAG,CAAzC,CAAtM;AAAA,cAAkPoC,EAAE,GAACzJ,CAAC,CAAC6H,CAAD,CAAtP;AAAA,cAA0P6B,EAAE,GAACD,EAAE,CAAC9C,IAAhQ;AAAA,cAAqQgD,EAAE,GAACF,EAAE,CAAC7C,GAA3Q;AAAA,cAA+QgD,EAAE,GAAChC,CAAC,GAAC4B,EAApR;AAAA,cAAuRK,EAAE,GAAClC,CAAC,GAAC4B,EAAF,IAAMK,EAAE,KAAG,CAAL,GAAOhC,CAAC,KAAG,CAAX,GAAa,CAAb,GAAe,CAArB,CAA1R;AAAA,cAAkTgC,EAAE,GAACA,EAAE,GAACV,EAAxT;AAAA,cAA2TW,EAAE,GAACA,EAAE,GAACZ,EAAH,IAAOW,EAAE,KAAG,CAAL,GAAOV,EAAE,KAAG,CAAZ,GAAc,CAAd,GAAgB,CAAvB,CAA9T;AAAA,cAAwVU,EAAE,GAACA,EAAE,GAACD,EAA9V;AAAA,cAAiWE,EAAE,GAACA,EAAE,GAACH,EAAH,IAAOE,EAAE,KAAG,CAAL,GAAOD,EAAE,KAAG,CAAZ,GAAc,CAAd,GAAgB,CAAvB,CAApW;AAAA,cAA8XC,EAAE,GAACA,EAAE,GAAC5B,CAApY;AAAA,cAAsY6B,EAAE,GAACA,EAAE,GAAC9B,CAAH,IAAM6B,EAAE,KAAG,CAAL,GAAO5B,CAAC,KAAG,CAAX,GAAa,CAAb,GAAe,CAArB,CAAzY;AAAA,cAAia8B,EAAE,GAACR,EAAE,GAACF,EAAva;AAAA,cAA0aW,EAAE,GAACV,EAAE,GAACF,EAAH,IAAOW,EAAE,KAAG,CAAL,GAAOR,EAAE,KAAG,CAAZ,GAAc,CAAd,GAAgB,CAAvB,CAA7a;;AAAuc3B,UAAAA,CAAC,GAACF,CAAF,EAAIG,CAAC,GAACF,CAAN,EAAQD,CAAC,GAACF,CAAV,EAAYG,CAAC,GAACF,CAAd,EAAgBD,CAAC,GAACF,CAAlB,EAAoBG,CAAC,GAACF,CAAtB,EAAwBA,CAAC,GAACF,CAAC,GAACwC,EAAF,GAAK,CAA/B,EAAiCvC,CAAC,GAACF,CAAC,GAAC0C,EAAF,IAAMvC,CAAC,KAAG,CAAJ,GAAMF,CAAC,KAAG,CAAV,GAAY,CAAZ,GAAc,CAApB,IAAuB,CAA1D,EAA4DD,CAAC,GAACxB,CAA9D,EAAgEyB,CAAC,GAACxB,CAAlE,EAAoED,CAAC,GAACF,CAAtE,EAAwEG,CAAC,GAACF,CAA1E,EAA4ED,CAAC,GAAC3B,CAA9E,EAAgF4B,CAAC,GAAC3B,CAAlF,EAAoFA,CAAC,GAAC6F,EAAE,GAACE,EAAH,GAAM,CAA5F,EAA8FhG,CAAC,GAAC+F,EAAE,GAACE,EAAH,IAAOhG,CAAC,KAAG,CAAJ,GAAM6F,EAAE,KAAG,CAAX,GAAa,CAAb,GAAe,CAAtB,IAAyB,CAAzH;AAA2H;;AAAA7G,QAAAA,CAAC,GAAClF,CAAC,CAAC+I,GAAF,GAAM7D,CAAC,GAACgB,CAAV,EAAYlG,CAAC,CAAC8I,IAAF,GAAO7D,CAAC,GAACgB,CAAF,IAAKf,CAAC,KAAG,CAAJ,GAAMgB,CAAC,KAAG,CAAV,GAAY,CAAZ,GAAc,CAAnB,CAAnB,EAAyCd,CAAC,GAACnF,CAAC,CAAC8I,GAAF,GAAM3D,CAAC,GAACyC,CAAnD,EAAqD5H,CAAC,CAAC6I,IAAF,GAAO3D,CAAC,GAACyC,CAAF,IAAKxC,CAAC,KAAG,CAAJ,GAAMyC,CAAC,KAAG,CAAV,GAAY,CAAZ,GAAc,CAAnB,CAA5D,EAAkFvC,CAAC,GAACnF,CAAC,CAAC4I,GAAF,GAAMzD,CAAC,GAACyC,CAA5F,EAA8F5H,CAAC,CAAC2I,IAAF,GAAOzD,CAAC,GAACyC,CAAF,IAAKxC,CAAC,KAAG,CAAJ,GAAMyC,CAAC,KAAG,CAAV,GAAY,CAAZ,GAAc,CAAnB,CAArG,EAA2HvC,CAAC,GAAC1E,CAAC,CAACiI,GAAF,GAAMvD,CAAC,GAAC+D,CAArI,EAAuIzI,CAAC,CAACgI,IAAF,GAAOvD,CAAC,GAAC+D,CAAF,IAAK9D,CAAC,KAAG,CAAJ,GAAM+D,CAAC,KAAG,CAAV,GAAY,CAAZ,GAAc,CAAnB,CAA9I,EAAoK7D,CAAC,GAAC/D,CAAC,CAACoH,GAAF,GAAMrD,CAAC,GAAC+D,CAA9K,EAAgL9H,CAAC,CAACmH,IAAF,GAAOrD,CAAC,GAAC+D,CAAF,IAAK9D,CAAC,KAAG,CAAJ,GAAM+D,CAAC,KAAG,CAAV,GAAY,CAAZ,GAAc,CAAnB,CAAvL,EAA6M7D,CAAC,GAACzE,CAAC,CAAC4H,GAAF,GAAMnD,CAAC,GAAC+D,CAAvN,EAAyNxI,CAAC,CAAC2H,IAAF,GAAOnD,CAAC,GAAC+D,CAAF,IAAK9D,CAAC,KAAG,CAAJ,GAAM+D,CAAC,KAAG,CAAV,GAAY,CAAZ,GAAc,CAAnB,CAAhO,EAAsP7D,CAAC,GAAC/C,CAAC,CAACgG,GAAF,GAAMjD,CAAC,GAAC+D,CAAhQ,EAAkQ9G,CAAC,CAAC+F,IAAF,GAAOjD,CAAC,GAAC+D,CAAF,IAAK9D,CAAC,KAAG,CAAJ,GAAM+D,CAAC,KAAG,CAAV,GAAY,CAAZ,GAAc,CAAnB,CAAzQ,EAA+R7D,CAAC,GAACrC,CAAC,CAACoF,GAAF,GAAM/C,CAAC,GAAC+D,CAAzS,EAA2SpG,CAAC,CAACmF,IAAF,GAAO/C,CAAC,GAAC+D,CAAF,IAAK9D,CAAC,KAAG,CAAJ,GAAM+D,CAAC,KAAG,CAAV,GAAY,CAAZ,GAAc,CAAnB,CAAlT;AAAwU,OAAj/D;AAAk/D7F,MAAAA,WAAW,EAAC,uBAAU;AAAC,YAAI7E,CAAC,GAAC,KAAK6D,KAAX;AAAA,YAAiB5D,CAAC,GAACD,CAAC,CAAC2B,KAArB;AAAA,YAA2BpB,CAAC,GAAC,IAAE,KAAKuD,WAApC;AAAA,YAAgDnD,CAAC,GAAC,IAAEX,CAAC,CAAC4B,QAAtD;AAA+D3B,QAAAA,CAAC,CAACU,CAAC,KAAG,CAAL,CAAD,IAAU,OAAK,KAAGA,CAAC,GAAC,EAApB,EAAuBV,CAAC,CAAC,CAACU,CAAC,GAAC,GAAF,KAAQ,EAAR,IAAY,CAAb,IAAgB,EAAjB,CAAD,GAAsBuE,IAAI,CAAC4B,KAAL,CAAWvG,CAAC,GAAC,UAAb,CAA7C,EAAsEN,CAAC,CAAC,CAACU,CAAC,GAAC,GAAF,KAAQ,EAAR,IAAY,CAAb,IAAgB,EAAjB,CAAD,GAAsBJ,CAA5F,EAA8FP,CAAC,CAAC4B,QAAF,GAAW,IAAE3B,CAAC,CAAC4B,MAA7G,EAAoH,KAAKmC,QAAL,EAApH;;AAAoI,YAAIpD,CAAC,GAAC,KAAK+E,KAAL,CAAWgE,KAAX,EAAN;;AAAyB,eAAO/I,CAAP;AAAS,OAA9uE;AAA+uEY,MAAAA,KAAK,EAAC,iBAAU;AAAC,YAAIxB,CAAC,GAACY,CAAC,CAACY,KAAF,CAAQW,IAAR,CAAa,IAAb,CAAN;AAAyB,eAAOnC,CAAC,CAAC2F,KAAF,GAAQ,KAAKA,KAAL,CAAWnE,KAAX,EAAR,EAA2BxB,CAAlC;AAAoC,OAA7zE;AAA8zEiE,MAAAA,SAAS,EAAC;AAAx0E,KAAT,CAAf;AAAq2E1D,IAAAA,CAAC,CAACyJ,MAAF,GAASpJ,CAAC,CAACkE,aAAF,CAAgBpB,CAAhB,CAAT,EAA4BnD,CAAC,CAACuM,UAAF,GAAalM,CAAC,CAACmE,iBAAF,CAAoBrB,CAApB,CAAzC;AAAgE,GAAngJ,EAAzhd,EAA+hmB,YAAU;AAAC,QAAIzD,CAAC,GAACD,CAAN;AAAA,QAAQO,CAAC,GAACN,CAAC,CAACsJ,GAAZ;AAAA,QAAgB5I,CAAC,GAACJ,CAAC,CAACiJ,IAApB;AAAA,QAAyB5I,CAAC,GAACL,CAAC,CAACmB,SAA7B;AAAA,QAAuCZ,CAAC,GAACb,CAAC,CAACgF,IAA3C;AAAA,QAAgDxD,CAAC,GAACX,CAAC,CAACkJ,MAApD;AAAA,QAA2D1H,CAAC,GAACxB,CAAC,CAACiM,MAAF,GAAStL,CAAC,CAACT,MAAF,CAAS;AAAC0D,MAAAA,QAAQ,EAAC,oBAAU;AAAC,aAAKiB,KAAL,GAAW,IAAI/E,CAAC,CAACO,IAAN,CAAW,CAAC,IAAIR,CAAC,CAACQ,IAAN,CAAW,UAAX,EAAsB,UAAtB,CAAD,EAAmC,IAAIR,CAAC,CAACQ,IAAN,CAAW,UAAX,EAAsB,SAAtB,CAAnC,EAAoE,IAAIR,CAAC,CAACQ,IAAN,CAAW,UAAX,EAAsB,SAAtB,CAApE,EAAqG,IAAIR,CAAC,CAACQ,IAAN,CAAW,SAAX,EAAqB,UAArB,CAArG,EAAsI,IAAIR,CAAC,CAACQ,IAAN,CAAW,UAAX,EAAsB,UAAtB,CAAtI,EAAwK,IAAIR,CAAC,CAACQ,IAAN,CAAW,UAAX,EAAsB,UAAtB,CAAxK,EAA0M,IAAIR,CAAC,CAACQ,IAAN,CAAW,UAAX,EAAsB,UAAtB,CAA1M,EAA4O,IAAIR,CAAC,CAACQ,IAAN,CAAW,UAAX,EAAsB,UAAtB,CAA5O,CAAX,CAAX;AAAsS,OAA3T;AAA4T0D,MAAAA,WAAW,EAAC,uBAAU;AAAC,YAAI7E,CAAC,GAACyB,CAAC,CAACoD,WAAF,CAAc1C,IAAd,CAAmB,IAAnB,CAAN;;AAA+B,eAAOnC,CAAC,CAAC4B,QAAF,IAAY,EAAZ,EAAe5B,CAAtB;AAAwB;AAA1Y,KAAT,CAAtE;AAA4dC,IAAAA,CAAC,CAAC8M,MAAF,GAAStL,CAAC,CAACqD,aAAF,CAAgBxC,CAAhB,CAAT,EAA4BrC,CAAC,CAAC+M,UAAF,GAAavL,CAAC,CAACsD,iBAAF,CAAoBzC,CAApB,CAAzC;AAAgE,GAAviB,EAA/hmB,EAAyknBtC,CAAC,CAACa,GAAF,CAAMoM,MAAN,IAAc,UAAShN,CAAT,EAAW;AAAC,QAAIM,CAAC,GAACP,CAAN;AAAA,QAAQW,CAAC,GAACJ,CAAC,CAACM,GAAZ;AAAA,QAAgBD,CAAC,GAACD,CAAC,CAACI,IAApB;AAAA,QAAyBD,CAAC,GAACH,CAAC,CAACe,SAA7B;AAAA,QAAuCD,CAAC,GAACd,CAAC,CAACgD,sBAA3C;AAAA,QAAkErB,CAAC,GAAC/B,CAAC,CAACiC,GAAtE;AAAA,QAA0EV,CAAC,IAAEQ,CAAC,CAACc,IAAF,EAAOd,CAAC,CAAC6C,MAAX,CAA3E;AAAA,QAA8FrC,CAAC,GAACvC,CAAC,CAAC0E,IAAlG;AAAA,QAAuG9B,CAAC,GAACL,CAAC,CAACsG,MAA3G;AAAA,QAAkH1F,CAAC,GAAC/C,CAAC,CAACsM,MAAF,GAASxL,CAAC,CAACT,MAAF,CAAS;AAACyD,MAAAA,GAAG,EAAC7D,CAAC,CAACI,MAAF,EAAL;AAAgBkM,MAAAA,eAAe,EAAC,yBAASlN,CAAT,EAAWC,CAAX,EAAa;AAAC,eAAO,KAAKQ,MAAL,CAAY,KAAK0M,eAAjB,EAAiCnN,CAAjC,EAAmCC,CAAnC,CAAP;AAA6C,OAA3F;AAA4FmN,MAAAA,eAAe,EAAC,yBAASpN,CAAT,EAAWC,CAAX,EAAa;AAAC,eAAO,KAAKQ,MAAL,CAAY,KAAK4M,eAAjB,EAAiCrN,CAAjC,EAAmCC,CAAnC,CAAP;AAA6C,OAAvK;AAAwKkB,MAAAA,IAAI,EAAC,cAASnB,CAAT,EAAWC,CAAX,EAAaM,CAAb,EAAe;AAAC,aAAKkE,GAAL,GAAS,KAAKA,GAAL,CAASzD,MAAT,CAAgBT,CAAhB,CAAT,EAA4B,KAAK+M,UAAL,GAAgBtN,CAA5C,EAA8C,KAAKuN,IAAL,GAAUtN,CAAxD,EAA0D,KAAK2D,KAAL,EAA1D;AAAuE,OAApQ;AAAqQA,MAAAA,KAAK,EAAC,iBAAU;AAACnC,QAAAA,CAAC,CAACmC,KAAF,CAAQzB,IAAR,CAAa,IAAb,GAAmB,KAAKuC,QAAL,EAAnB;AAAmC,OAAzT;AAA0T8I,MAAAA,OAAO,EAAC,iBAASxN,CAAT,EAAW;AAAC,eAAO,KAAK+D,OAAL,CAAa/D,CAAb,GAAgB,KAAKgE,QAAL,EAAvB;AAAuC,OAArX;AAAsXY,MAAAA,QAAQ,EAAC,kBAAS5E,CAAT,EAAW;AAACA,QAAAA,CAAC,IAAE,KAAK+D,OAAL,CAAa/D,CAAb,CAAH;;AAAmB,YAAIC,CAAC,GAAC,KAAK4E,WAAL,EAAN;;AAAyB,eAAO5E,CAAP;AAAS,OAAhc;AAAic+I,MAAAA,OAAO,EAAC,CAAzc;AAA2cyE,MAAAA,MAAM,EAAC,CAAld;AAAodN,MAAAA,eAAe,EAAC,CAApe;AAAseE,MAAAA,eAAe,EAAC,CAAtf;AAAwfvI,MAAAA,aAAa,EAAC,YAAU;AAAC,iBAAS9E,CAAT,CAAWA,CAAX,EAAa;AAAC,iBAAM,YAAU,OAAOA,CAAjB,GAAmBsG,CAAnB,GAAqBH,CAA3B;AAA6B;;AAAA,eAAO,UAASlG,CAAT,EAAW;AAAC,iBAAM;AAACyN,YAAAA,OAAO,EAAC,iBAASnN,CAAT,EAAWI,CAAX,EAAaC,CAAb,EAAe;AAAC,qBAAOZ,CAAC,CAACW,CAAD,CAAD,CAAK+M,OAAL,CAAazN,CAAb,EAAeM,CAAf,EAAiBI,CAAjB,EAAmBC,CAAnB,CAAP;AAA6B,aAAtD;AAAuD+M,YAAAA,OAAO,EAAC,iBAASpN,CAAT,EAAWI,CAAX,EAAaC,CAAb,EAAe;AAAC,qBAAOZ,CAAC,CAACW,CAAD,CAAD,CAAKgN,OAAL,CAAa1N,CAAb,EAAeM,CAAf,EAAiBI,CAAjB,EAAmBC,CAAnB,CAAP;AAA6B;AAA5G,WAAN;AAAoH,SAAvI;AAAwI,OAA9L;AAAtgB,KAAT,CAA7H;AAAA,QAA+0B0D,CAAC,IAAE3D,CAAC,CAACiN,YAAF,GAAelK,CAAC,CAAC1C,MAAF,CAAS;AAAC6D,MAAAA,WAAW,EAAC,uBAAU;AAAC,YAAI7E,CAAC,GAAC,KAAKgE,QAAL,CAAc,CAAC,CAAf,CAAN;;AAAwB,eAAOhE,CAAP;AAAS,OAAzD;AAA0DiE,MAAAA,SAAS,EAAC;AAApE,KAAT,CAAf,EAAgG1D,CAAC,CAACsN,IAAF,GAAO,EAAzG,CAAh1B;AAAA,QAA67BjI,CAAC,GAACjF,CAAC,CAACmN,eAAF,GAAkBlN,CAAC,CAACI,MAAF,CAAS;AAACkM,MAAAA,eAAe,EAAC,yBAASlN,CAAT,EAAWC,CAAX,EAAa;AAAC,eAAO,KAAK8N,SAAL,CAAetN,MAAf,CAAsBT,CAAtB,EAAwBC,CAAxB,CAAP;AAAkC,OAAjE;AAAkEmN,MAAAA,eAAe,EAAC,yBAASpN,CAAT,EAAWC,CAAX,EAAa;AAAC,eAAO,KAAK+N,SAAL,CAAevN,MAAf,CAAsBT,CAAtB,EAAwBC,CAAxB,CAAP;AAAkC,OAAlI;AAAmIkB,MAAAA,IAAI,EAAC,cAASnB,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAKgO,OAAL,GAAajO,CAAb,EAAe,KAAKkO,GAAL,GAASjO,CAAxB;AAA0B;AAAhL,KAAT,CAAj9B;AAAA,QAA6oC4F,CAAC,GAACvB,CAAC,CAAC6J,GAAF,GAAM,YAAU;AAAC,eAASnO,CAAT,CAAWA,CAAX,EAAaO,CAAb,EAAeI,CAAf,EAAiB;AAAC,YAAIC,CAAC,GAAC,KAAKsN,GAAX;;AAAe,YAAGtN,CAAH,EAAK;AAAC,cAAIE,CAAC,GAACF,CAAN;AAAQ,eAAKsN,GAAL,GAASjO,CAAT;AAAW,SAAzB,MAA8B,IAAIa,CAAC,GAAC,KAAKsN,UAAX;;AAAsB,aAAI,IAAI3M,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACd,CAAd,EAAgBc,CAAC,EAAjB;AAAoBzB,UAAAA,CAAC,CAACO,CAAC,GAACkB,CAAH,CAAD,IAAQX,CAAC,CAACW,CAAD,CAAT;AAApB;AAAiC;;AAAA,UAAIlB,CAAC,GAACqF,CAAC,CAAC5E,MAAF,EAAN;AAAiB,aAAOT,CAAC,CAACwN,SAAF,GAAYxN,CAAC,CAACS,MAAF,CAAS;AAACqN,QAAAA,YAAY,EAAC,sBAASpO,CAAT,EAAWM,CAAX,EAAa;AAAC,cAAII,CAAC,GAAC,KAAKsN,OAAX;AAAA,cAAmBrN,CAAC,GAACD,CAAC,CAACsD,SAAvB;AAAiCjE,UAAAA,CAAC,CAACmC,IAAF,CAAO,IAAP,EAAYlC,CAAZ,EAAcM,CAAd,EAAgBK,CAAhB,GAAmBD,CAAC,CAAC2N,YAAF,CAAerO,CAAf,EAAiBM,CAAjB,CAAnB,EAAuC,KAAK6N,UAAL,GAAgBnO,CAAC,CAACmC,KAAF,CAAQ7B,CAAR,EAAUA,CAAC,GAACK,CAAZ,CAAvD;AAAsE;AAAnI,OAAT,CAAZ,EAA2JL,CAAC,CAACyN,SAAF,GAAYzN,CAAC,CAACS,MAAF,CAAS;AAACqN,QAAAA,YAAY,EAAC,sBAASpO,CAAT,EAAWM,CAAX,EAAa;AAAC,cAAII,CAAC,GAAC,KAAKsN,OAAX;AAAA,cAAmBrN,CAAC,GAACD,CAAC,CAACsD,SAAvB;AAAA,cAAiCnD,CAAC,GAACb,CAAC,CAACmC,KAAF,CAAQ7B,CAAR,EAAUA,CAAC,GAACK,CAAZ,CAAnC;AAAkDD,UAAAA,CAAC,CAAC4N,YAAF,CAAetO,CAAf,EAAiBM,CAAjB,GAAoBP,CAAC,CAACmC,IAAF,CAAO,IAAP,EAAYlC,CAAZ,EAAcM,CAAd,EAAgBK,CAAhB,CAApB,EAAuC,KAAKwN,UAAL,GAAgBtN,CAAvD;AAAyD;AAAvI,OAAT,CAAvK,EAA0TP,CAAjU;AAAmU,KAArd,EAArpC;AAAA,QAA6mDuF,CAAC,GAACvF,CAAC,CAACiO,GAAF,GAAM,EAArnD;AAAA,QAAwnDzI,CAAC,GAACD,CAAC,CAAC2I,KAAF,GAAQ;AAACD,MAAAA,GAAG,EAAC,aAASxO,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAI,IAAIM,CAAC,GAAC,IAAEN,CAAR,EAAUU,CAAC,GAACJ,CAAC,GAACP,CAAC,CAAC4B,QAAF,GAAWrB,CAAzB,EAA2BK,CAAC,GAACD,CAAC,IAAE,EAAH,GAAMA,CAAC,IAAE,EAAT,GAAYA,CAAC,IAAE,CAAf,GAAiBA,CAA9C,EAAgDc,CAAC,GAAC,EAAlD,EAAqDa,CAAC,GAAC,CAA3D,EAA6DA,CAAC,GAAC3B,CAA/D,EAAiE2B,CAAC,IAAE,CAApE;AAAsEb,UAAAA,CAAC,CAACc,IAAF,CAAO3B,CAAP;AAAtE;;AAAgF,YAAIkB,CAAC,GAAChB,CAAC,CAACL,MAAF,CAASgB,CAAT,EAAWd,CAAX,CAAN;AAAoBX,QAAAA,CAAC,CAACgC,MAAF,CAASF,CAAT;AAAY,OAAnI;AAAoI4M,MAAAA,KAAK,EAAC,eAAS1O,CAAT,EAAW;AAAC,YAAIC,CAAC,GAAC,MAAID,CAAC,CAAC2B,KAAF,CAAQ3B,CAAC,CAAC4B,QAAF,GAAW,CAAX,KAAe,CAAvB,CAAV;AAAoC5B,QAAAA,CAAC,CAAC4B,QAAF,IAAY3B,CAAZ;AAAc;AAAxM,KAAloD;AAAA,QAA40D+F,CAAC,IAAErF,CAAC,CAACgO,WAAF,GAAcjL,CAAC,CAAC1C,MAAF,CAAS;AAACyD,MAAAA,GAAG,EAACf,CAAC,CAACe,GAAF,CAAMzD,MAAN,CAAa;AAAC6M,QAAAA,IAAI,EAAChI,CAAN;AAAQ+I,QAAAA,OAAO,EAAC7I;AAAhB,OAAb,CAAL;AAAsCnC,MAAAA,KAAK,EAAC,iBAAU;AAACF,QAAAA,CAAC,CAACE,KAAF,CAAQzB,IAAR,CAAa,IAAb;AAAmB,YAAInC,CAAC,GAAC,KAAKyE,GAAX;AAAA,YAAexE,CAAC,GAACD,CAAC,CAAC6O,EAAnB;AAAA,YAAsBtO,CAAC,GAACP,CAAC,CAAC6N,IAA1B;AAA+B,YAAG,KAAKP,UAAL,IAAiB,KAAKH,eAAzB,EAAyC,IAAIxM,CAAC,GAACJ,CAAC,CAAC2M,eAAR,CAAzC,KAAqE;AAAC,cAAIvM,CAAC,GAACJ,CAAC,CAAC6M,eAAR;AAAwB,eAAKjJ,cAAL,GAAoB,CAApB;AAAsB;AAAA,aAAK2K,KAAL,IAAY,KAAKA,KAAL,CAAWC,SAAX,IAAsBpO,CAAlC,GAAoC,KAAKmO,KAAL,CAAW3N,IAAX,CAAgB,IAAhB,EAAqBlB,CAAC,IAAEA,CAAC,CAAC0B,KAA1B,CAApC,IAAsE,KAAKmN,KAAL,GAAWnO,CAAC,CAACwB,IAAF,CAAO5B,CAAP,EAAS,IAAT,EAAcN,CAAC,IAAEA,CAAC,CAAC0B,KAAnB,CAAX,EAAqC,KAAKmN,KAAL,CAAWC,SAAX,GAAqBpO,CAAhI;AAAmI,OAAhW;AAAiW0D,MAAAA,eAAe,EAAC,yBAASrE,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAK6O,KAAL,CAAWT,YAAX,CAAwBrO,CAAxB,EAA0BC,CAA1B;AAA6B,OAA5Z;AAA6Z4E,MAAAA,WAAW,EAAC,uBAAU;AAAC,YAAI7E,CAAC,GAAC,KAAKyE,GAAL,CAASmK,OAAf;;AAAuB,YAAG,KAAKtB,UAAL,IAAiB,KAAKH,eAAzB,EAAyC;AAACnN,UAAAA,CAAC,CAACwO,GAAF,CAAM,KAAK3K,KAAX,EAAiB,KAAKI,SAAtB;;AAAiC,cAAIhE,CAAC,GAAC,KAAK+D,QAAL,CAAc,CAAC,CAAf,CAAN;AAAwB,SAAnG,MAAuG;AAAC,cAAI/D,CAAC,GAAC,KAAK+D,QAAL,CAAc,CAAC,CAAf,CAAN;;AAAwBhE,UAAAA,CAAC,CAAC0O,KAAF,CAAQzO,CAAR;AAAW;;AAAA,eAAOA,CAAP;AAAS,OAA/lB;AAAgmBgE,MAAAA,SAAS,EAAC;AAA1mB,KAAT,CAAd,EAAqoBtD,CAAC,CAACqO,YAAF,GAAepO,CAAC,CAACI,MAAF,CAAS;AAACG,MAAAA,IAAI,EAAC,cAASnB,CAAT,EAAW;AAAC,aAAKiB,KAAL,CAAWjB,CAAX;AAAc,OAAhC;AAAiCuB,MAAAA,QAAQ,EAAC,kBAASvB,CAAT,EAAW;AAAC,eAAM,CAACA,CAAC,IAAE,KAAKiP,SAAT,EAAoBlN,SAApB,CAA8B,IAA9B,CAAN;AAA0C;AAAhG,KAAT,CAAtpB,CAA70D;AAAA,QAAglFkE,CAAC,GAAC1F,CAAC,CAAC2O,MAAF,GAAS,EAA3lF;AAAA,QAA8lFhJ,CAAC,GAACD,CAAC,CAACkJ,OAAF,GAAU;AAACpN,MAAAA,SAAS,EAAC,mBAAS/B,CAAT,EAAW;AAAC,YAAIC,CAAC,GAACD,CAAC,CAACoP,UAAR;AAAA,YAAmB7O,CAAC,GAACP,CAAC,CAACqP,IAAvB;AAA4B,YAAG9O,CAAH,EAAK,IAAII,CAAC,GAACG,CAAC,CAACL,MAAF,CAAS,CAAC,UAAD,EAAY,UAAZ,CAAT,EAAkCuB,MAAlC,CAAyCzB,CAAzC,EAA4CyB,MAA5C,CAAmD/B,CAAnD,CAAN,CAAL,KAAsE,IAAIU,CAAC,GAACV,CAAN;AAAQ,eAAOU,CAAC,CAACY,QAAF,CAAWO,CAAX,CAAP;AAAqB,OAAtJ;AAAuJa,MAAAA,KAAK,EAAC,eAAS3C,CAAT,EAAW;AAAC,YAAIC,CAAC,GAAC6B,CAAC,CAACa,KAAF,CAAQ3C,CAAR,CAAN;AAAA,YAAiBO,CAAC,GAACN,CAAC,CAAC0B,KAArB;;AAA2B,YAAG,cAAYpB,CAAC,CAAC,CAAD,CAAb,IAAkB,cAAYA,CAAC,CAAC,CAAD,CAAlC,EAAsC;AAAC,cAAII,CAAC,GAACG,CAAC,CAACL,MAAF,CAASF,CAAC,CAAC6B,KAAF,CAAQ,CAAR,EAAU,CAAV,CAAT,CAAN;AAA6B7B,UAAAA,CAAC,CAACgE,MAAF,CAAS,CAAT,EAAW,CAAX,GAActE,CAAC,CAAC2B,QAAF,IAAY,EAA1B;AAA6B;;AAAA,eAAOoE,CAAC,CAACvF,MAAF,CAAS;AAAC2O,UAAAA,UAAU,EAACnP,CAAZ;AAAcoP,UAAAA,IAAI,EAAC1O;AAAnB,SAAT,CAAP;AAAuC;AAA5U,KAA1mF;AAAA,QAAw7FwF,CAAC,GAACxF,CAAC,CAAC2O,kBAAF,GAAqB1O,CAAC,CAACI,MAAF,CAAS;AAACyD,MAAAA,GAAG,EAAC7D,CAAC,CAACI,MAAF,CAAS;AAACkO,QAAAA,MAAM,EAAChJ;AAAR,OAAT,CAAL;AAA0BwH,MAAAA,OAAO,EAAC,iBAAS1N,CAAT,EAAWC,CAAX,EAAaM,CAAb,EAAeI,CAAf,EAAiB;AAACA,QAAAA,CAAC,GAAC,KAAK8D,GAAL,CAASzD,MAAT,CAAgBL,CAAhB,CAAF;AAAqB,YAAIC,CAAC,GAACZ,CAAC,CAACkN,eAAF,CAAkB3M,CAAlB,EAAoBI,CAApB,CAAN;AAAA,YAA6BG,CAAC,GAACF,CAAC,CAACgE,QAAF,CAAW3E,CAAX,CAA/B;AAAA,YAA6CwB,CAAC,GAACb,CAAC,CAAC6D,GAAjD;AAAqD,eAAOuB,CAAC,CAACvF,MAAF,CAAS;AAAC2O,UAAAA,UAAU,EAACtO,CAAZ;AAAcyO,UAAAA,GAAG,EAAChP,CAAlB;AAAoBsO,UAAAA,EAAE,EAACpN,CAAC,CAACoN,EAAzB;AAA4BW,UAAAA,SAAS,EAACxP,CAAtC;AAAwC6N,UAAAA,IAAI,EAACpM,CAAC,CAACoM,IAA/C;AAAoDe,UAAAA,OAAO,EAACnN,CAAC,CAACmN,OAA9D;AAAsE3K,UAAAA,SAAS,EAACjE,CAAC,CAACiE,SAAlF;AAA4FgL,UAAAA,SAAS,EAACtO,CAAC,CAACuO;AAAxG,SAAT,CAAP;AAAiI,OAA/P;AAAgQvB,MAAAA,OAAO,EAAC,iBAAS3N,CAAT,EAAWC,CAAX,EAAaM,CAAb,EAAeI,CAAf,EAAiB;AAACA,QAAAA,CAAC,GAAC,KAAK8D,GAAL,CAASzD,MAAT,CAAgBL,CAAhB,CAAF,EAAqBV,CAAC,GAAC,KAAKwP,MAAL,CAAYxP,CAAZ,EAAcU,CAAC,CAACuO,MAAhB,CAAvB;AAA+C,YAAItO,CAAC,GAACZ,CAAC,CAACoN,eAAF,CAAkB7M,CAAlB,EAAoBI,CAApB,EAAuBiE,QAAvB,CAAgC3E,CAAC,CAACmP,UAAlC,CAAN;AAAoD,eAAOxO,CAAP;AAAS,OAAtY;AAAuY6O,MAAAA,MAAM,EAAC,gBAASzP,CAAT,EAAWC,CAAX,EAAa;AAAC,eAAM,YAAU,OAAOD,CAAjB,GAAmBC,CAAC,CAAC0C,KAAF,CAAQ3C,CAAR,EAAU,IAAV,CAAnB,GAAmCA,CAAzC;AAA2C;AAAvc,KAAT,CAA/8F;AAAA,QAAk6GoG,CAAC,GAAC7F,CAAC,CAACmP,GAAF,GAAM,EAA16G;AAAA,QAA66GrJ,CAAC,GAACD,CAAC,CAAC+I,OAAF,GAAU;AAACQ,MAAAA,OAAO,EAAC,iBAAS3P,CAAT,EAAWC,CAAX,EAAaM,CAAb,EAAeI,CAAf,EAAiB;AAACA,QAAAA,CAAC,KAAGA,CAAC,GAACG,CAAC,CAACuB,MAAF,CAAS,CAAT,CAAL,CAAD;AAAmB,YAAIzB,CAAC,GAACuC,CAAC,CAAC1C,MAAF,CAAS;AAACuI,UAAAA,OAAO,EAAC/I,CAAC,GAACM;AAAX,SAAT,EAAwB4I,OAAxB,CAAgCnJ,CAAhC,EAAkCW,CAAlC,CAAN;AAAA,YAA2Cc,CAAC,GAACX,CAAC,CAACL,MAAF,CAASG,CAAC,CAACe,KAAF,CAAQS,KAAR,CAAcnC,CAAd,CAAT,EAA0B,IAAEM,CAA5B,CAA7C;AAA4E,eAAOK,CAAC,CAACgB,QAAF,GAAW,IAAE3B,CAAb,EAAe+F,CAAC,CAACvF,MAAF,CAAS;AAAC8O,UAAAA,GAAG,EAAC3O,CAAL;AAAOiO,UAAAA,EAAE,EAACpN,CAAV;AAAY4N,UAAAA,IAAI,EAAC1O;AAAjB,SAAT,CAAtB;AAAoD;AAA9K,KAAz7G;AAAA,QAAymH2F,CAAC,GAAC3F,CAAC,CAACiP,mBAAF,GAAsBzJ,CAAC,CAACnF,MAAF,CAAS;AAACyD,MAAAA,GAAG,EAAC0B,CAAC,CAAC1B,GAAF,CAAMzD,MAAN,CAAa;AAAC0O,QAAAA,GAAG,EAACrJ;AAAL,OAAb,CAAL;AAA2BqH,MAAAA,OAAO,EAAC,iBAAS1N,CAAT,EAAWC,CAAX,EAAaM,CAAb,EAAeI,CAAf,EAAiB;AAACA,QAAAA,CAAC,GAAC,KAAK8D,GAAL,CAASzD,MAAT,CAAgBL,CAAhB,CAAF;AAAqB,YAAIC,CAAC,GAACD,CAAC,CAAC+O,GAAF,CAAMC,OAAN,CAAcpP,CAAd,EAAgBP,CAAC,CAACgJ,OAAlB,EAA0BhJ,CAAC,CAACyN,MAA5B,CAAN;AAA0C9M,QAAAA,CAAC,CAACkO,EAAF,GAAKjO,CAAC,CAACiO,EAAP;AAAU,YAAI/N,CAAC,GAACqF,CAAC,CAACuH,OAAF,CAAUvL,IAAV,CAAe,IAAf,EAAoBnC,CAApB,EAAsBC,CAAtB,EAAwBW,CAAC,CAAC2O,GAA1B,EAA8B5O,CAA9B,CAAN;AAAuC,eAAOG,CAAC,CAACG,KAAF,CAAQL,CAAR,GAAWE,CAAlB;AAAoB,OAAzL;AAA0L6M,MAAAA,OAAO,EAAC,iBAAS3N,CAAT,EAAWC,CAAX,EAAaM,CAAb,EAAeI,CAAf,EAAiB;AAACA,QAAAA,CAAC,GAAC,KAAK8D,GAAL,CAASzD,MAAT,CAAgBL,CAAhB,CAAF,EAAqBV,CAAC,GAAC,KAAKwP,MAAL,CAAYxP,CAAZ,EAAcU,CAAC,CAACuO,MAAhB,CAAvB;AAA+C,YAAItO,CAAC,GAACD,CAAC,CAAC+O,GAAF,CAAMC,OAAN,CAAcpP,CAAd,EAAgBP,CAAC,CAACgJ,OAAlB,EAA0BhJ,CAAC,CAACyN,MAA5B,EAAmCxN,CAAC,CAACoP,IAArC,CAAN;AAAiD1O,QAAAA,CAAC,CAACkO,EAAF,GAAKjO,CAAC,CAACiO,EAAP;AAAU,YAAI/N,CAAC,GAACqF,CAAC,CAACwH,OAAF,CAAUxL,IAAV,CAAe,IAAf,EAAoBnC,CAApB,EAAsBC,CAAtB,EAAwBW,CAAC,CAAC2O,GAA1B,EAA8B5O,CAA9B,CAAN;AAAuC,eAAOG,CAAP;AAAS;AAA9W,KAAT,CAAjoH;AAA2/H,GAAvgI,EAAvlnB,EAAimvBd,CAAC,CAAC6N,IAAF,CAAOgC,GAAP,GAAW,YAAU;AAAC,aAAS5P,CAAT,CAAWD,CAAX,EAAaC,CAAb,EAAeM,CAAf,EAAiBI,CAAjB,EAAmB;AAAC,UAAIC,CAAC,GAAC,KAAKsN,GAAX;;AAAe,UAAGtN,CAAH,EAAK;AAAC,YAAIE,CAAC,GAACF,CAAC,CAACwB,KAAF,CAAQ,CAAR,CAAN;AAAiB,aAAK8L,GAAL,GAAS,KAAK,CAAd;AAAgB,OAAvC,MAA4C,IAAIpN,CAAC,GAAC,KAAKsN,UAAX;;AAAsBzN,MAAAA,CAAC,CAAC2N,YAAF,CAAexN,CAAf,EAAiB,CAAjB;;AAAoB,WAAI,IAAIW,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAClB,CAAd,EAAgBkB,CAAC,EAAjB;AAAoBzB,QAAAA,CAAC,CAACC,CAAC,GAACwB,CAAH,CAAD,IAAQX,CAAC,CAACW,CAAD,CAAT;AAApB;AAAiC;;AAAA,QAAIlB,CAAC,GAACP,CAAC,CAACa,GAAF,CAAMiN,eAAN,CAAsB9M,MAAtB,EAAN;AAAqC,WAAOT,CAAC,CAACwN,SAAF,GAAYxN,CAAC,CAACS,MAAF,CAAS;AAACqN,MAAAA,YAAY,EAAC,sBAASrO,CAAT,EAAWO,CAAX,EAAa;AAAC,YAAII,CAAC,GAAC,KAAKsN,OAAX;AAAA,YAAmBrN,CAAC,GAACD,CAAC,CAACsD,SAAvB;AAAiChE,QAAAA,CAAC,CAACkC,IAAF,CAAO,IAAP,EAAYnC,CAAZ,EAAcO,CAAd,EAAgBK,CAAhB,EAAkBD,CAAlB,GAAqB,KAAKyN,UAAL,GAAgBpO,CAAC,CAACoC,KAAF,CAAQ7B,CAAR,EAAUA,CAAC,GAACK,CAAZ,CAArC;AAAoD;AAAjH,KAAT,CAAZ,EAAyIL,CAAC,CAACyN,SAAF,GAAYzN,CAAC,CAACS,MAAF,CAAS;AAACqN,MAAAA,YAAY,EAAC,sBAASrO,CAAT,EAAWO,CAAX,EAAa;AAAC,YAAII,CAAC,GAAC,KAAKsN,OAAX;AAAA,YAAmBrN,CAAC,GAACD,CAAC,CAACsD,SAAvB;AAAA,YAAiCnD,CAAC,GAACd,CAAC,CAACoC,KAAF,CAAQ7B,CAAR,EAAUA,CAAC,GAACK,CAAZ,CAAnC;AAAkDX,QAAAA,CAAC,CAACkC,IAAF,CAAO,IAAP,EAAYnC,CAAZ,EAAcO,CAAd,EAAgBK,CAAhB,EAAkBD,CAAlB,GAAqB,KAAKyN,UAAL,GAAgBtN,CAArC;AAAuC;AAArH,KAAT,CAArJ,EAAsRP,CAA7R;AAA+R,GAAze,EAA5mvB,EAAwlwBP,CAAC,CAAC6N,IAAF,CAAOiC,GAAP,GAAW,YAAU;AAAC,QAAI7P,CAAC,GAACD,CAAC,CAACa,GAAF,CAAMiN,eAAN,CAAsB9M,MAAtB,EAAN;AAAqC,WAAOf,CAAC,CAAC8N,SAAF,GAAY9N,CAAC,CAACe,MAAF,CAAS;AAACqN,MAAAA,YAAY,EAAC,sBAASrO,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAKgO,OAAL,CAAaK,YAAb,CAA0BtO,CAA1B,EAA4BC,CAA5B;AAA+B;AAA3D,KAAT,CAAZ,EAAmFA,CAAC,CAAC+N,SAAF,GAAY/N,CAAC,CAACe,MAAF,CAAS;AAACqN,MAAAA,YAAY,EAAC,sBAASrO,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAKgO,OAAL,CAAaM,YAAb,CAA0BvO,CAA1B,EAA4BC,CAA5B;AAA+B;AAA3D,KAAT,CAA/F,EAAsKA,CAA7K;AAA+K,GAA/N,EAAnmwB,EAAq0wBD,CAAC,CAACwO,GAAF,CAAMuB,QAAN,GAAe;AAACvB,IAAAA,GAAG,EAAC,aAASxO,CAAT,EAAWC,CAAX,EAAa;AAAC,UAAIM,CAAC,GAACP,CAAC,CAAC4B,QAAR;AAAA,UAAiBjB,CAAC,GAAC,IAAEV,CAArB;AAAA,UAAuBW,CAAC,GAACD,CAAC,GAACJ,CAAC,GAACI,CAA7B;AAAA,UAA+BG,CAAC,GAACP,CAAC,GAACK,CAAF,GAAI,CAArC;AAAuCZ,MAAAA,CAAC,CAACiC,KAAF,IAAUjC,CAAC,CAAC2B,KAAF,CAAQb,CAAC,KAAG,CAAZ,KAAgBF,CAAC,IAAE,KAAGE,CAAC,GAAC,CAAF,GAAI,CAApC,EAAsCd,CAAC,CAAC4B,QAAF,IAAYhB,CAAlD;AAAoD,KAA9G;AAA+G8N,IAAAA,KAAK,EAAC,eAAS1O,CAAT,EAAW;AAAC,UAAIC,CAAC,GAAC,MAAID,CAAC,CAAC2B,KAAF,CAAQ3B,CAAC,CAAC4B,QAAF,GAAW,CAAX,KAAe,CAAvB,CAAV;AAAoC5B,MAAAA,CAAC,CAAC4B,QAAF,IAAY3B,CAAZ;AAAc;AAAnL,GAAp1wB,EAAygxBD,CAAC,CAACwO,GAAF,CAAMwB,QAAN,GAAe;AAACxB,IAAAA,GAAG,EAAC,aAASvO,CAAT,EAAWM,CAAX,EAAa;AAAC,UAAII,CAAC,GAAC,IAAEJ,CAAR;AAAA,UAAUK,CAAC,GAACD,CAAC,GAACV,CAAC,CAAC2B,QAAF,GAAWjB,CAAzB;AAA2BV,MAAAA,CAAC,CAAC+B,MAAF,CAAShC,CAAC,CAACa,GAAF,CAAMa,SAAN,CAAgBW,MAAhB,CAAuBzB,CAAC,GAAC,CAAzB,CAAT,EAAsCoB,MAAtC,CAA6ChC,CAAC,CAACa,GAAF,CAAMa,SAAN,CAAgBjB,MAAhB,CAAuB,CAACG,CAAC,IAAE,EAAJ,CAAvB,EAA+B,CAA/B,CAA7C;AAAgF,KAA9H;AAA+H8N,IAAAA,KAAK,EAAC,eAAS1O,CAAT,EAAW;AAAC,UAAIC,CAAC,GAAC,MAAID,CAAC,CAAC2B,KAAF,CAAQ3B,CAAC,CAAC4B,QAAF,GAAW,CAAX,KAAe,CAAvB,CAAV;AAAoC5B,MAAAA,CAAC,CAAC4B,QAAF,IAAY3B,CAAZ;AAAc;AAAnM,GAAxhxB,EAA6txBD,CAAC,CAACwO,GAAF,CAAMyB,QAAN,GAAe;AAACzB,IAAAA,GAAG,EAAC,aAASvO,CAAT,EAAWM,CAAX,EAAa;AAACN,MAAAA,CAAC,CAAC+B,MAAF,CAAShC,CAAC,CAACa,GAAF,CAAMa,SAAN,CAAgBjB,MAAhB,CAAuB,CAAC,UAAD,CAAvB,EAAoC,CAApC,CAAT,GAAiDT,CAAC,CAACwO,GAAF,CAAM0B,WAAN,CAAkB1B,GAAlB,CAAsBvO,CAAtB,EAAwBM,CAAxB,CAAjD;AAA4E,KAA/F;AAAgGmO,IAAAA,KAAK,EAAC,eAASzO,CAAT,EAAW;AAACD,MAAAA,CAAC,CAACwO,GAAF,CAAM0B,WAAN,CAAkBxB,KAAlB,CAAwBzO,CAAxB,GAA2BA,CAAC,CAAC2B,QAAF,EAA3B;AAAwC;AAA1J,GAA5uxB,EAAw4xB5B,CAAC,CAAC6N,IAAF,CAAOsC,GAAP,GAAW,YAAU;AAAC,QAAIlQ,CAAC,GAACD,CAAC,CAACa,GAAF,CAAMiN,eAAN,CAAsB9M,MAAtB,EAAN;AAAA,QAAqCT,CAAC,GAACN,CAAC,CAAC8N,SAAF,GAAY9N,CAAC,CAACe,MAAF,CAAS;AAACqN,MAAAA,YAAY,EAAC,sBAASrO,CAAT,EAAWC,CAAX,EAAa;AAAC,YAAIM,CAAC,GAAC,KAAK0N,OAAX;AAAA,YAAmBtN,CAAC,GAACJ,CAAC,CAAC0D,SAAvB;AAAA,YAAiCrD,CAAC,GAAC,KAAKsN,GAAxC;AAAA,YAA4CpN,CAAC,GAAC,KAAKsP,UAAnD;AAA8DxP,QAAAA,CAAC,KAAGE,CAAC,GAAC,KAAKsP,UAAL,GAAgBxP,CAAC,CAACwB,KAAF,CAAQ,CAAR,CAAlB,EAA6B,KAAK8L,GAAL,GAAS,KAAK,CAA9C,CAAD,EAAkD3N,CAAC,CAAC+N,YAAF,CAAexN,CAAf,EAAiB,CAAjB,CAAlD;;AAAsE,aAAI,IAAIW,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACd,CAAd,EAAgBc,CAAC,EAAjB;AAAoBzB,UAAAA,CAAC,CAACC,CAAC,GAACwB,CAAH,CAAD,IAAQX,CAAC,CAACW,CAAD,CAAT;AAApB;AAAiC;AAAjM,KAAT,CAAnD;AAAgQ,WAAOxB,CAAC,CAAC+N,SAAF,GAAYzN,CAAZ,EAAcN,CAArB;AAAuB,GAAlS,EAAn5xB,EAAwryBD,CAAC,CAACwO,GAAF,CAAM6B,SAAN,GAAgB;AAAC7B,IAAAA,GAAG,EAAC,eAAU,CAAE,CAAjB;AAAkBE,IAAAA,KAAK,EAAC,iBAAU,CAAE;AAApC,GAAxsyB,EAA8uyB,UAASzO,CAAT,EAAW;AAAC,QAAIM,CAAC,GAACP,CAAN;AAAA,QAAQW,CAAC,GAACJ,CAAC,CAACM,GAAZ;AAAA,QAAgBD,CAAC,GAACD,CAAC,CAACqO,YAApB;AAAA,QAAiClO,CAAC,GAACP,CAAC,CAACiC,GAArC;AAAA,QAAyCf,CAAC,GAACX,CAAC,CAAC2B,GAA7C;AAAA,QAAiDH,CAAC,GAAC/B,CAAC,CAAC2O,MAArD;AAA4D5M,IAAAA,CAAC,CAACG,GAAF,GAAM;AAACV,MAAAA,SAAS,EAAC,mBAAS/B,CAAT,EAAW;AAAC,eAAOA,CAAC,CAACoP,UAAF,CAAa7N,QAAb,CAAsBE,CAAtB,CAAP;AAAgC,OAAvD;AAAwDkB,MAAAA,KAAK,EAAC,eAAS3C,CAAT,EAAW;AAAC,YAAIC,CAAC,GAACwB,CAAC,CAACkB,KAAF,CAAQ3C,CAAR,CAAN;AAAiB,eAAOY,CAAC,CAACH,MAAF,CAAS;AAAC2O,UAAAA,UAAU,EAACnP;AAAZ,SAAT,CAAP;AAAgC;AAA3H,KAAN;AAAmI,GAA3M,EAA9uyB,EAA47yB,YAAU;AAAC,QAAIA,CAAC,GAACD,CAAN;AAAA,QAAQO,CAAC,GAACN,CAAC,CAACY,GAAZ;AAAA,QAAgBF,CAAC,GAACJ,CAAC,CAACoO,WAApB;AAAA,QAAgC/N,CAAC,GAACX,CAAC,CAACgF,IAApC;AAAA,QAAyCnE,CAAC,GAAC,EAA3C;AAAA,QAA8CW,CAAC,GAAC,EAAhD;AAAA,QAAmDa,CAAC,GAAC,EAArD;AAAA,QAAwDR,CAAC,GAAC,EAA1D;AAAA,QAA6DgB,CAAC,GAAC,EAA/D;AAAA,QAAkEK,CAAC,GAAC,EAApE;AAAA,QAAuEO,CAAC,GAAC,EAAzE;AAAA,QAA4EY,CAAC,GAAC,EAA9E;AAAA,QAAiFsB,CAAC,GAAC,EAAnF;AAAA,QAAsFC,CAAC,GAAC,EAAxF;AAA2F,KAAC,YAAU;AAAC,WAAI,IAAI7F,CAAC,GAAC,EAAN,EAASC,CAAC,GAAC,CAAf,EAAiBA,CAAC,GAAC,GAAnB,EAAuBA,CAAC,EAAxB;AAA2BA,QAAAA,CAAC,GAAC,GAAF,GAAMD,CAAC,CAACC,CAAD,CAAD,GAAKA,CAAC,IAAE,CAAd,GAAgBD,CAAC,CAACC,CAAD,CAAD,GAAKA,CAAC,IAAE,CAAH,GAAK,GAA1B;AAA3B;;AAAyD,WAAI,IAAIM,CAAC,GAAC,CAAN,EAAQI,CAAC,GAAC,CAAV,EAAYV,CAAC,GAAC,CAAlB,EAAoBA,CAAC,GAAC,GAAtB,EAA0BA,CAAC,EAA3B,EAA8B;AAAC,YAAIW,CAAC,GAACD,CAAC,GAACA,CAAC,IAAE,CAAL,GAAOA,CAAC,IAAE,CAAV,GAAYA,CAAC,IAAE,CAAf,GAAiBA,CAAC,IAAE,CAA1B;AAA4BC,QAAAA,CAAC,GAACA,CAAC,KAAG,CAAJ,GAAM,MAAIA,CAAV,GAAY,EAAd,EAAiBE,CAAC,CAACP,CAAD,CAAD,GAAKK,CAAtB,EAAwBa,CAAC,CAACb,CAAD,CAAD,GAAKL,CAA7B;AAA+B,YAAIuF,CAAC,GAAC9F,CAAC,CAACO,CAAD,CAAP;AAAA,YAAWwF,CAAC,GAAC/F,CAAC,CAAC8F,CAAD,CAAd;AAAA,YAAkBE,CAAC,GAAChG,CAAC,CAAC+F,CAAD,CAArB;AAAA,YAAyBE,CAAC,GAAC,MAAIjG,CAAC,CAACY,CAAD,CAAL,GAAS,WAASA,CAA7C;AAA+C0B,QAAAA,CAAC,CAAC/B,CAAD,CAAD,GAAK0F,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAf,EAAiBnE,CAAC,CAACvB,CAAD,CAAD,GAAK0F,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,EAAhC,EAAmCnD,CAAC,CAACvC,CAAD,CAAD,GAAK0F,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAjD,EAAoD9C,CAAC,CAAC5C,CAAD,CAAD,GAAK0F,CAAzD;AAA2D,YAAIA,CAAC,GAAC,WAASD,CAAT,GAAW,QAAMD,CAAjB,GAAmB,MAAID,CAAvB,GAAyB,WAASvF,CAAxC;AAA0CmD,QAAAA,CAAC,CAAC9C,CAAD,CAAD,GAAKqF,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAf,EAAiB3B,CAAC,CAAC1D,CAAD,CAAD,GAAKqF,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,EAAhC,EAAmCL,CAAC,CAAChF,CAAD,CAAD,GAAKqF,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAjD,EAAoDJ,CAAC,CAACjF,CAAD,CAAD,GAAKqF,CAAzD,EAA2D1F,CAAC,IAAEA,CAAC,GAACuF,CAAC,GAAC9F,CAAC,CAACA,CAAC,CAACA,CAAC,CAACgG,CAAC,GAACF,CAAH,CAAF,CAAF,CAAL,EAAiBnF,CAAC,IAAEX,CAAC,CAACA,CAAC,CAACW,CAAD,CAAF,CAAvB,IAA+BJ,CAAC,GAACI,CAAC,GAAC,CAA/F;AAAiG;AAAC,KAApZ,EAAD;;AAAwZ,QAAImF,CAAC,GAAC,CAAC,CAAD,EAAG,CAAH,EAAK,CAAL,EAAO,CAAP,EAAS,CAAT,EAAW,EAAX,EAAc,EAAd,EAAiB,EAAjB,EAAoB,GAApB,EAAwB,EAAxB,EAA2B,EAA3B,CAAN;AAAA,QAAqCC,CAAC,GAACnF,CAAC,CAAC0P,GAAF,GAAM3P,CAAC,CAACK,MAAF,CAAS;AAAC0D,MAAAA,QAAQ,EAAC,oBAAU;AAAC,YAAG,CAAC,KAAK6L,QAAN,IAAgB,KAAKC,cAAL,KAAsB,KAAKjD,IAA9C,EAAmD;AAAC,eAAI,IAAIvN,CAAC,GAAC,KAAKwQ,cAAL,GAAoB,KAAKjD,IAA/B,EAAoCtN,CAAC,GAACD,CAAC,CAAC2B,KAAxC,EAA8CpB,CAAC,GAACP,CAAC,CAAC4B,QAAF,GAAW,CAA3D,EAA6DjB,CAAC,GAAC,KAAK4P,QAAL,GAAchQ,CAAC,GAAC,CAA/E,EAAiFK,CAAC,GAAC,KAAGD,CAAC,GAAC,CAAL,CAAnF,EAA2Fc,CAAC,GAAC,KAAKgP,YAAL,GAAkB,EAA/G,EAAkHnO,CAAC,GAAC,CAAxH,EAA0HA,CAAC,GAAC1B,CAA5H,EAA8H0B,CAAC,EAA/H;AAAkI,gBAAGA,CAAC,GAAC/B,CAAL,EAAOkB,CAAC,CAACa,CAAD,CAAD,GAAKrC,CAAC,CAACqC,CAAD,CAAN,CAAP,KAAqB;AAAC,kBAAIR,CAAC,GAACL,CAAC,CAACa,CAAC,GAAC,CAAH,CAAP;AAAaA,cAAAA,CAAC,GAAC/B,CAAF,GAAIA,CAAC,GAAC,CAAF,IAAK+B,CAAC,GAAC/B,CAAF,IAAK,CAAV,KAAcuB,CAAC,GAAChB,CAAC,CAACgB,CAAC,KAAG,EAAL,CAAD,IAAW,EAAX,GAAchB,CAAC,CAACgB,CAAC,KAAG,EAAJ,GAAO,GAAR,CAAD,IAAe,EAA7B,GAAgChB,CAAC,CAACgB,CAAC,KAAG,CAAJ,GAAM,GAAP,CAAD,IAAc,CAA9C,GAAgDhB,CAAC,CAAC,MAAIgB,CAAL,CAAjE,CAAJ,IAA+EA,CAAC,GAACA,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAX,EAAcA,CAAC,GAAChB,CAAC,CAACgB,CAAC,KAAG,EAAL,CAAD,IAAW,EAAX,GAAchB,CAAC,CAACgB,CAAC,KAAG,EAAJ,GAAO,GAAR,CAAD,IAAe,EAA7B,GAAgChB,CAAC,CAACgB,CAAC,KAAG,CAAJ,GAAM,GAAP,CAAD,IAAc,CAA9C,GAAgDhB,CAAC,CAAC,MAAIgB,CAAL,CAAjE,EAAyEA,CAAC,IAAEgE,CAAC,CAACxD,CAAC,GAAC/B,CAAF,GAAI,CAAL,CAAD,IAAU,EAArK,GAAyKkB,CAAC,CAACa,CAAD,CAAD,GAAKb,CAAC,CAACa,CAAC,GAAC/B,CAAH,CAAD,GAAOuB,CAArL;AAAuL;AAA5V;;AAA4V,eAAI,IAAIgB,CAAC,GAAC,KAAK4N,eAAL,GAAqB,EAA3B,EAA8BvN,CAAC,GAAC,CAApC,EAAsCA,CAAC,GAACvC,CAAxC,EAA0CuC,CAAC,EAA3C,EAA8C;AAAC,gBAAIb,CAAC,GAAC1B,CAAC,GAACuC,CAAR;AAAU,gBAAGA,CAAC,GAAC,CAAL,EAAO,IAAIrB,CAAC,GAACL,CAAC,CAACa,CAAD,CAAP,CAAP,KAAuB,IAAIR,CAAC,GAACL,CAAC,CAACa,CAAC,GAAC,CAAH,CAAP;AAAaa,YAAAA,CAAC,GAAC,CAAF,IAAKb,CAAC,IAAE,CAAR,GAAUQ,CAAC,CAACK,CAAD,CAAD,GAAKrB,CAAf,GAAiBgB,CAAC,CAACK,CAAD,CAAD,GAAKO,CAAC,CAAC5C,CAAC,CAACgB,CAAC,KAAG,EAAL,CAAF,CAAD,GAAawC,CAAC,CAACxD,CAAC,CAACgB,CAAC,KAAG,EAAJ,GAAO,GAAR,CAAF,CAAd,GAA8B8D,CAAC,CAAC9E,CAAC,CAACgB,CAAC,KAAG,CAAJ,GAAM,GAAP,CAAF,CAA/B,GAA8C+D,CAAC,CAAC/E,CAAC,CAAC,MAAIgB,CAAL,CAAF,CAArE;AAAgF;AAAC;AAAC,OAAplB;AAAqlBwM,MAAAA,YAAY,EAAC,sBAAStO,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAK0Q,aAAL,CAAmB3Q,CAAnB,EAAqBC,CAArB,EAAuB,KAAKwQ,YAA5B,EAAyCnO,CAAzC,EAA2CR,CAA3C,EAA6CgB,CAA7C,EAA+CK,CAA/C,EAAiDrC,CAAjD;AAAoD,OAApqB;AAAqqByN,MAAAA,YAAY,EAAC,sBAASvO,CAAT,EAAWC,CAAX,EAAa;AAAC,YAAIM,CAAC,GAACP,CAAC,CAACC,CAAC,GAAC,CAAH,CAAP;AAAaD,QAAAA,CAAC,CAACC,CAAC,GAAC,CAAH,CAAD,GAAOD,CAAC,CAACC,CAAC,GAAC,CAAH,CAAR,EAAcD,CAAC,CAACC,CAAC,GAAC,CAAH,CAAD,GAAOM,CAArB,EAAuB,KAAKoQ,aAAL,CAAmB3Q,CAAnB,EAAqBC,CAArB,EAAuB,KAAKyQ,eAA5B,EAA4ChN,CAA5C,EAA8CY,CAA9C,EAAgDsB,CAAhD,EAAkDC,CAAlD,EAAoDpE,CAApD,CAAvB;AAA8E,YAAIlB,CAAC,GAACP,CAAC,CAACC,CAAC,GAAC,CAAH,CAAP;AAAaD,QAAAA,CAAC,CAACC,CAAC,GAAC,CAAH,CAAD,GAAOD,CAAC,CAACC,CAAC,GAAC,CAAH,CAAR,EAAcD,CAAC,CAACC,CAAC,GAAC,CAAH,CAAD,GAAOM,CAArB;AAAuB,OAA/zB;AAAg0BoQ,MAAAA,aAAa,EAAC,uBAAS3Q,CAAT,EAAWC,CAAX,EAAaM,CAAb,EAAeI,CAAf,EAAiBC,CAAjB,EAAmBE,CAAnB,EAAqBW,CAArB,EAAuBa,CAAvB,EAAyB;AAAC,aAAI,IAAIR,CAAC,GAAC,KAAKyO,QAAX,EAAoBzN,CAAC,GAAC9C,CAAC,CAACC,CAAD,CAAD,GAAKM,CAAC,CAAC,CAAD,CAA5B,EAAgC4C,CAAC,GAACnD,CAAC,CAACC,CAAC,GAAC,CAAH,CAAD,GAAOM,CAAC,CAAC,CAAD,CAA1C,EAA8CmD,CAAC,GAAC1D,CAAC,CAACC,CAAC,GAAC,CAAH,CAAD,GAAOM,CAAC,CAAC,CAAD,CAAxD,EAA4D+D,CAAC,GAACtE,CAAC,CAACC,CAAC,GAAC,CAAH,CAAD,GAAOM,CAAC,CAAC,CAAD,CAAtE,EAA0EqF,CAAC,GAAC,CAA5E,EAA8EC,CAAC,GAAC,CAApF,EAAsFA,CAAC,GAAC/D,CAAxF,EAA0F+D,CAAC,EAA3F,EAA8F;AAAC,cAAIC,CAAC,GAACnF,CAAC,CAACmC,CAAC,KAAG,EAAL,CAAD,GAAUlC,CAAC,CAACuC,CAAC,KAAG,EAAJ,GAAO,GAAR,CAAX,GAAwBrC,CAAC,CAAC4C,CAAC,KAAG,CAAJ,GAAM,GAAP,CAAzB,GAAqCjC,CAAC,CAAC,MAAI6C,CAAL,CAAtC,GAA8C/D,CAAC,CAACqF,CAAC,EAAF,CAArD;AAAA,cAA2DG,CAAC,GAACpF,CAAC,CAACwC,CAAC,KAAG,EAAL,CAAD,GAAUvC,CAAC,CAAC8C,CAAC,KAAG,EAAJ,GAAO,GAAR,CAAX,GAAwB5C,CAAC,CAACwD,CAAC,KAAG,CAAJ,GAAM,GAAP,CAAzB,GAAqC7C,CAAC,CAAC,MAAIqB,CAAL,CAAtC,GAA8CvC,CAAC,CAACqF,CAAC,EAAF,CAA5G;AAAA,cAAkHI,CAAC,GAACrF,CAAC,CAAC+C,CAAC,KAAG,EAAL,CAAD,GAAU9C,CAAC,CAAC0D,CAAC,KAAG,EAAJ,GAAO,GAAR,CAAX,GAAwBxD,CAAC,CAACgC,CAAC,KAAG,CAAJ,GAAM,GAAP,CAAzB,GAAqCrB,CAAC,CAAC,MAAI0B,CAAL,CAAtC,GAA8C5C,CAAC,CAACqF,CAAC,EAAF,CAAnK;AAAA,cAAyKK,CAAC,GAACtF,CAAC,CAAC2D,CAAC,KAAG,EAAL,CAAD,GAAU1D,CAAC,CAACkC,CAAC,KAAG,EAAJ,GAAO,GAAR,CAAX,GAAwBhC,CAAC,CAACqC,CAAC,KAAG,CAAJ,GAAM,GAAP,CAAzB,GAAqC1B,CAAC,CAAC,MAAIiC,CAAL,CAAtC,GAA8CnD,CAAC,CAACqF,CAAC,EAAF,CAA1N;;AAAgO9C,UAAAA,CAAC,GAACgD,CAAF,EAAI3C,CAAC,GAAC4C,CAAN,EAAQrC,CAAC,GAACsC,CAAV,EAAY1B,CAAC,GAAC2B,CAAd;AAAgB;;AAAA,YAAIH,CAAC,GAAC,CAACxD,CAAC,CAACQ,CAAC,KAAG,EAAL,CAAD,IAAW,EAAX,GAAcR,CAAC,CAACa,CAAC,KAAG,EAAJ,GAAO,GAAR,CAAD,IAAe,EAA7B,GAAgCb,CAAC,CAACoB,CAAC,KAAG,CAAJ,GAAM,GAAP,CAAD,IAAc,CAA9C,GAAgDpB,CAAC,CAAC,MAAIgC,CAAL,CAAlD,IAA2D/D,CAAC,CAACqF,CAAC,EAAF,CAAlE;AAAA,YAAwEG,CAAC,GAAC,CAACzD,CAAC,CAACa,CAAC,KAAG,EAAL,CAAD,IAAW,EAAX,GAAcb,CAAC,CAACoB,CAAC,KAAG,EAAJ,GAAO,GAAR,CAAD,IAAe,EAA7B,GAAgCpB,CAAC,CAACgC,CAAC,KAAG,CAAJ,GAAM,GAAP,CAAD,IAAc,CAA9C,GAAgDhC,CAAC,CAAC,MAAIQ,CAAL,CAAlD,IAA2DvC,CAAC,CAACqF,CAAC,EAAF,CAAtI;AAAA,YAA4II,CAAC,GAAC,CAAC1D,CAAC,CAACoB,CAAC,KAAG,EAAL,CAAD,IAAW,EAAX,GAAcpB,CAAC,CAACgC,CAAC,KAAG,EAAJ,GAAO,GAAR,CAAD,IAAe,EAA7B,GAAgChC,CAAC,CAACQ,CAAC,KAAG,CAAJ,GAAM,GAAP,CAAD,IAAc,CAA9C,GAAgDR,CAAC,CAAC,MAAIa,CAAL,CAAlD,IAA2D5C,CAAC,CAACqF,CAAC,EAAF,CAA1M;AAAA,YAAgNK,CAAC,GAAC,CAAC3D,CAAC,CAACgC,CAAC,KAAG,EAAL,CAAD,IAAW,EAAX,GAAchC,CAAC,CAACQ,CAAC,KAAG,EAAJ,GAAO,GAAR,CAAD,IAAe,EAA7B,GAAgCR,CAAC,CAACa,CAAC,KAAG,CAAJ,GAAM,GAAP,CAAD,IAAc,CAA9C,GAAgDb,CAAC,CAAC,MAAIoB,CAAL,CAAlD,IAA2DnD,CAAC,CAACqF,CAAC,EAAF,CAA9Q;;AAAoR5F,QAAAA,CAAC,CAACC,CAAD,CAAD,GAAK6F,CAAL,EAAO9F,CAAC,CAACC,CAAC,GAAC,CAAH,CAAD,GAAO8F,CAAd,EAAgB/F,CAAC,CAACC,CAAC,GAAC,CAAH,CAAD,GAAO+F,CAAvB,EAAyBhG,CAAC,CAACC,CAAC,GAAC,CAAH,CAAD,GAAOgG,CAAhC;AAAkC,OAA7+C;AAA8+C+C,MAAAA,OAAO,EAAC;AAAt/C,KAAT,CAA7C;;AAAgjD/I,IAAAA,CAAC,CAACqQ,GAAF,GAAM3P,CAAC,CAACmE,aAAF,CAAgBiB,CAAhB,CAAN;AAAyB,GAAvkE,EAA57yB,EAAsg3B,YAAU;AAAC,aAAS9F,CAAT,CAAWD,CAAX,EAAaC,CAAb,EAAe;AAAC,UAAIM,CAAC,GAAC,CAAC,KAAKqQ,OAAL,KAAe5Q,CAAf,GAAiB,KAAK6Q,OAAvB,IAAgC5Q,CAAtC;AAAwC,WAAK4Q,OAAL,IAActQ,CAAd,EAAgB,KAAKqQ,OAAL,IAAcrQ,CAAC,IAAEP,CAAjC;AAAmC;;AAAA,aAASO,CAAT,CAAWP,CAAX,EAAaC,CAAb,EAAe;AAAC,UAAIM,CAAC,GAAC,CAAC,KAAKsQ,OAAL,KAAe7Q,CAAf,GAAiB,KAAK4Q,OAAvB,IAAgC3Q,CAAtC;AAAwC,WAAK2Q,OAAL,IAAcrQ,CAAd,EAAgB,KAAKsQ,OAAL,IAActQ,CAAC,IAAEP,CAAjC;AACpu+B;;AAAA,QAAIW,CAAC,GAACX,CAAN;AAAA,QAAQY,CAAC,GAACD,CAAC,CAACE,GAAZ;AAAA,QAAgBC,CAAC,GAACF,CAAC,CAACc,SAApB;AAAA,QAA8BD,CAAC,GAACb,CAAC,CAAC+N,WAAlC;AAAA,QAA8CrM,CAAC,GAAC3B,CAAC,CAACsE,IAAlD;AAAA,QAAuDnD,CAAC,GAAC,CAAC,EAAD,EAAI,EAAJ,EAAO,EAAP,EAAU,EAAV,EAAa,EAAb,EAAgB,EAAhB,EAAmB,CAAnB,EAAqB,CAArB,EAAuB,EAAvB,EAA0B,EAA1B,EAA6B,EAA7B,EAAgC,EAAhC,EAAmC,EAAnC,EAAsC,EAAtC,EAAyC,EAAzC,EAA4C,CAA5C,EAA8C,EAA9C,EAAiD,EAAjD,EAAoD,EAApD,EAAuD,EAAvD,EAA0D,EAA1D,EAA6D,EAA7D,EAAgE,EAAhE,EAAmE,CAAnE,EAAqE,EAArE,EAAwE,EAAxE,EAA2E,EAA3E,EAA8E,EAA9E,EAAiF,EAAjF,EAAoF,EAApF,EAAuF,EAAvF,EAA0F,EAA1F,EAA6F,EAA7F,EAAgG,EAAhG,EAAmG,EAAnG,EAAsG,CAAtG,EAAwG,EAAxG,EAA2G,EAA3G,EAA8G,EAA9G,EAAiH,EAAjH,EAAoH,EAApH,EAAuH,EAAvH,EAA0H,EAA1H,EAA6H,CAA7H,EAA+H,EAA/H,EAAkI,EAAlI,EAAqI,EAArI,EAAwI,EAAxI,EAA2I,EAA3I,EAA8I,EAA9I,EAAiJ,EAAjJ,EAAoJ,CAApJ,EAAsJ,EAAtJ,EAAyJ,EAAzJ,EAA4J,EAA5J,EAA+J,CAA/J,CAAzD;AAAA,QAA2NgB,CAAC,GAAC,CAAC,EAAD,EAAI,EAAJ,EAAO,EAAP,EAAU,EAAV,EAAa,CAAb,EAAe,CAAf,EAAiB,CAAjB,EAAmB,EAAnB,EAAsB,EAAtB,EAAyB,CAAzB,EAA2B,EAA3B,EAA8B,EAA9B,EAAiC,EAAjC,EAAoC,EAApC,EAAuC,EAAvC,EAA0C,CAA1C,EAA4C,EAA5C,EAA+C,CAA/C,EAAiD,EAAjD,EAAoD,CAApD,EAAsD,EAAtD,EAAyD,EAAzD,EAA4D,EAA5D,EAA+D,CAA/D,EAAiE,EAAjE,EAAoE,EAApE,EAAuE,EAAvE,EAA0E,EAA1E,EAA6E,EAA7E,EAAgF,EAAhF,EAAmF,EAAnF,EAAsF,EAAtF,EAAyF,EAAzF,EAA4F,EAA5F,EAA+F,EAA/F,EAAkG,EAAlG,EAAqG,EAArG,EAAwG,EAAxG,EAA2G,EAA3G,EAA8G,EAA9G,EAAiH,EAAjH,EAAoH,EAApH,EAAuH,EAAvH,EAA0H,EAA1H,EAA6H,EAA7H,EAAgI,EAAhI,EAAmI,EAAnI,EAAsI,EAAtI,CAA7N;AAAA,QAAuWK,CAAC,GAAC,CAAC,CAAD,EAAG,CAAH,EAAK,CAAL,EAAO,CAAP,EAAS,CAAT,EAAW,EAAX,EAAc,EAAd,EAAiB,EAAjB,EAAoB,EAApB,EAAuB,EAAvB,EAA0B,EAA1B,EAA6B,EAA7B,EAAgC,EAAhC,EAAmC,EAAnC,EAAsC,EAAtC,EAAyC,EAAzC,CAAzW;AAAA,QAAsZO,CAAC,GAAC,CAAC;AAAC,SAAE,OAAH;AAAW,iBAAU,KAArB;AAA2B,iBAAU,OAArC;AAA6C,iBAAU,CAAvD;AAAyD,kBAAW,GAApE;AAAwE,kBAAW,OAAnF;AAA2F,kBAAW,OAAtG;AAA8G,kBAAW,OAAzH;AAAiI,kBAAW,GAA5I;AAAgJ,kBAAW,OAA3J;AAAmK,kBAAW,KAA9K;AAAoL,kBAAW,OAA/L;AAAuM,kBAAW,KAAlN;AAAwN,kBAAW,OAAnO;AAA2O,kBAAW,CAAtP;AAAwP,kBAAW,KAAnQ;AAAyQ,iBAAU,CAAnR;AAAqR,iBAAU,OAA/R;AAAuS,iBAAU,KAAjT;AAAuT,iBAAU,KAAjU;AAAuU,kBAAW,OAAlV;AAA0V,kBAAW,GAArW;AAAyW,kBAAW,OAApX;AAA4X,kBAAW,CAAvY;AAAyY,kBAAW,OAApZ;AAA4Z,kBAAW,KAAva;AAA6a,kBAAW,OAAxb;AAAgc,kBAAW,OAA3c;AAAmd,kBAAW,OAA9d;AAAse,kBAAW,KAAjf;AAAuf,kBAAW,GAAlgB;AAAsgB,kBAAW,OAAjhB;AAAyhB,SAAE,KAA3hB;AAAiiB,iBAAU,CAA3iB;AAA6iB,iBAAU,OAAvjB;AAA+jB,iBAAU,OAAzkB;AAAilB,kBAAW,OAA5lB;AAAomB,kBAAW,KAA/mB;AAAqnB,kBAAW,GAAhoB;AAAooB,kBAAW,OAA/oB;AAAupB,kBAAW,OAAlqB;AAA0qB,kBAAW,OAArrB;AAA6rB,kBAAW,OAAxsB;AAAgtB,kBAAW,KAA3tB;AAAiuB,kBAAW,GAA5uB;AAAgvB,kBAAW,OAA3vB;AAAmwB,kBAAW,KAA9wB;AAAoxB,kBAAW,CAA/xB;AAAiyB,iBAAU,OAA3yB;AAAmzB,iBAAU,OAA7zB;AAAq0B,iBAAU,OAA/0B;AAAu1B,iBAAU,GAAj2B;AAAq2B,kBAAW,KAAh3B;AAAs3B,kBAAW,OAAj4B;AAAy4B,kBAAW,CAAp5B;AAAs5B,kBAAW,KAAj6B;AAAu6B,kBAAW,KAAl7B;AAAw7B,kBAAW,OAAn8B;AAA28B,kBAAW,GAAt9B;AAA09B,kBAAW,OAAr+B;AAA6+B,kBAAW,OAAx/B;AAAggC,kBAAW,CAA3gC;AAA6gC,kBAAW,KAAxhC;AAA8hC,kBAAW;AAAziC,KAAD,EAAmjC;AAAC,SAAE,UAAH;AAAc,gBAAS,KAAvB;AAA6B,gBAAS,MAAtC;AAA6C,gBAAS,UAAtD;AAAiE,gBAAS,UAA1E;AAAqF,gBAAS,UAA9F;AAAyG,iBAAU,UAAnH;AAA8H,iBAAU,EAAxI;AAA2I,iBAAU,MAArJ;AAA4J,iBAAU,UAAtK;AAAiL,iBAAU,UAA3L;AAAsM,iBAAU,MAAhN;AAAuN,iBAAU,MAAjO;AAAwO,iBAAU,CAAlP;AAAoP,iBAAU,KAA9P;AAAoQ,iBAAU,UAA9Q;AAAyR,eAAQ,UAAjS;AAA4S,gBAAS,MAArT;AAA4T,gBAAS,EAArU;AAAwU,gBAAS,UAAjV;AAA4V,gBAAS,UAArW;AAAgX,gBAAS,UAAzX;AAAoY,iBAAU,MAA9Y;AAAqZ,iBAAU,UAA/Z;AAA0a,iBAAU,MAApb;AAA2b,iBAAU,CAArc;AAAuc,iBAAU,KAAjd;AAAud,iBAAU,UAAje;AAA4e,iBAAU,UAAtf;AAAigB,iBAAU,MAA3gB;AAAkhB,iBAAU,UAA5hB;AAAuiB,iBAAU,KAAjjB;AAAujB,iBAAU,CAAjkB;AAAmkB,iBAAU,UAA7kB;AAAwlB,iBAAU,UAAlmB;AAA6mB,iBAAU,UAAvnB;AAAkoB,iBAAU,UAA5oB;AAAupB,iBAAU,EAAjqB;AAAoqB,iBAAU,MAA9qB;AAAqrB,iBAAU,KAA/rB;AAAqsB,iBAAU,KAA/sB;AAAqtB,iBAAU,MAA/tB;AAAsuB,iBAAU,MAAhvB;AAAuvB,iBAAU,UAAjwB;AAA4wB,iBAAU,MAAtxB;AAA6xB,iBAAU,UAAvyB;AAAkzB,iBAAU,UAA5zB;AAAu0B,iBAAU,UAAj1B;AAA41B,iBAAU,MAAt2B;AAA62B,iBAAU,MAAv3B;AAA83B,iBAAU,UAAx4B;AAAm5B,iBAAU,KAA75B;AAAm6B,iBAAU,UAA76B;AAAw7B,iBAAU,UAAl8B;AAA68B,iBAAU,EAAv9B;AAA09B,iBAAU,UAAp+B;AAA++B,iBAAU,UAAz/B;AAAogC,iBAAU,UAA9gC;AAAyhC,iBAAU,UAAniC;AAA8iC,iBAAU,MAAxjC;AAA+jC,iBAAU,CAAzkC;AAA2kC,iBAAU,KAArlC;AAA2lC,iBAAU,UAArmC;AAAgnC,iBAAU;AAA1nC,KAAnjC,EAAqrE;AAAC,SAAE,GAAH;AAAO,eAAQ,CAAf;AAAiB,eAAQ,QAAzB;AAAkC,eAAQ,KAA1C;AAAgD,eAAQ,KAAxD;AAA8D,eAAQ,QAAtE;AAA+E,eAAQ,QAAvF;AAAgG,eAAQ,QAAxG;AAAiH,eAAQ,QAAzH;AAAkI,eAAQ,QAA1I;AAAmJ,gBAAS,KAA5J;AAAkK,gBAAS,QAA3K;AAAoL,gBAAS,QAA7L;AAAsM,gBAAS,KAA/M;AAAqN,gBAAS,CAA9N;AAAgO,gBAAS,GAAzO;AAA6O,cAAO,QAApP;AAA6P,eAAQ,QAArQ;AAA8Q,eAAQ,CAAtR;AAAwR,eAAQ,QAAhS;AAAyS,eAAQ,QAAjT;AAA0T,eAAQ,KAAlU;AAAwU,eAAQ,KAAhV;AAAsV,eAAQ,GAA9V;AAAkW,eAAQ,CAA1W;AAA4W,eAAQ,GAApX;AAAwX,gBAAS,QAAjY;AAA0Y,gBAAS,KAAnZ;AAAyZ,gBAAS,KAAla;AAAwa,gBAAS,QAAjb;AAA0b,gBAAS,QAAnc;AAA4c,gBAAS,QAArd;AAA8d,gBAAS,QAAve;AAAgf,gBAAS,KAAzf;AAA+f,gBAAS,KAAxgB;AAA8gB,gBAAS,QAAvhB;AAAgiB,gBAAS,GAAziB;AAA6iB,gBAAS,QAAtjB;AAA+jB,gBAAS,QAAxkB;AAAilB,gBAAS,CAA1lB;AAA4lB,gBAAS,QAArmB;AAA8mB,gBAAS,QAAvnB;AAAgoB,gBAAS,CAAzoB;AAA2oB,gBAAS,KAAppB;AAA0pB,gBAAS,QAAnqB;AAA4qB,gBAAS,GAArrB;AAAyrB,gBAAS,KAAlsB;AAAwsB,gBAAS,QAAjtB;AAA0tB,gBAAS,QAAnuB;AAA4uB,gBAAS,GAArvB;AAAyvB,gBAAS,QAAlwB;AAA2wB,gBAAS,CAApxB;AAAsxB,gBAAS,KAA/xB;AAAqyB,gBAAS,QAA9yB;AAAuzB,gBAAS,GAAh0B;AAAo0B,gBAAS,QAA70B;AAAs1B,gBAAS,KAA/1B;AAAq2B,gBAAS,QAA92B;AAAu3B,gBAAS,KAAh4B;AAAs4B,gBAAS,QAA/4B;AAAw5B,gBAAS,QAAj6B;AAA06B,gBAAS,QAAn7B;AAA47B,gBAAS,CAAr8B;AAAu8B,gBAAS;AAAh9B,KAArrE,EAA4oG;AAAC,SAAE,UAAH;AAAc,aAAM,UAApB;AAA+B,cAAO,OAAtC;AAA8C,cAAO,UAArD;AAAgE,cAAO,CAAvE;AAAyE,cAAO,OAAhF;AAAwF,cAAO,UAA/F;AAA0G,cAAO,OAAjH;AAAyH,cAAO,UAAhI;AAA2I,cAAO,OAAlJ;AAA0J,cAAO,EAAjK;AAAoK,cAAO,UAA3K;AAAsL,cAAO,UAA7L;AAAwM,cAAO,IAA/M;AAAoN,cAAO,IAA3N;AAAgO,cAAO,UAAvO;AAAkP,aAAM,UAAxP;AAAmQ,aAAM,EAAzQ;AAA4Q,cAAO,UAAnR;AAA8R,cAAO,UAArS;AAAgT,cAAO,OAAvT;AAA+T,cAAO,UAAtU;AAAiV,cAAO,CAAxV;AAA0V,cAAO,UAAjW;AAA4W,cAAO,IAAnX;AAAwX,cAAO,UAA/X;AAA0Y,cAAO,OAAjZ;AAAyZ,cAAO,IAAha;AAAqa,cAAO,UAA5a;AAAub,cAAO,OAA9b;AAAsc,cAAO,OAA7c;AAAqd,eAAQ,UAA7d;AAAwe,eAAQ,OAAhf;AAAwf,eAAQ,OAAhgB;AAAwgB,eAAQ,UAAhhB;AAA2hB,eAAQ,CAAniB;AAAqiB,eAAQ,IAA7iB;AAAkjB,eAAQ,UAA1jB;AAAqkB,eAAQ,UAA7kB;AAAwlB,eAAQ,UAAhmB;AAA2mB,eAAQ,UAAnnB;AAA8nB,eAAQ,UAAtoB;AAAipB,eAAQ,UAAzpB;AAAoqB,eAAQ,OAA5qB;AAAorB,eAAQ,UAA5rB;AAAusB,eAAQ,OAA/sB;AAAutB,eAAQ,EAA/tB;AAAkuB,eAAQ,IAA1uB;AAA+uB,eAAQ,UAAvvB;AAAkwB,eAAQ,UAA1wB;AAAqxB,eAAQ,CAA7xB;AAA+xB,eAAQ,OAAvyB;AAA+yB,eAAQ,OAAvzB;AAA+zB,eAAQ,UAAv0B;AAAk1B,eAAQ,UAA11B;AAAq2B,eAAQ,EAA72B;AAAg3B,eAAQ,UAAx3B;AAAm4B,eAAQ,IAA34B;AAAg5B,eAAQ,UAAx5B;AAAm6B,eAAQ,UAA36B;AAAs7B,eAAQ,IAA97B;AAAm8B,eAAQ,UAA38B;AAAs9B,eAAQ,OAA99B;AAAs+B,eAAQ;AAA9+B,KAA5oG,EAAmoI;AAAC,SAAE,GAAH;AAAO,YAAK,QAAZ;AAAqB,YAAK,MAA1B;AAAiC,aAAM,SAAvC;AAAiD,aAAM,SAAvD;AAAiE,aAAM,QAAvE;AAAgF,aAAM,SAAtF;AAAgG,aAAM,MAAtG;AAA6G,aAAM,QAAnH;AAA4H,aAAM,SAAlI;AAA4I,aAAM,SAAlJ;AAA4J,aAAM,SAAlK;AAA4K,aAAM,SAAlL;AAA4L,aAAM,CAAlM;AAAoM,aAAM,QAA1M;AAAmN,aAAM,SAAzN;AAAmO,YAAK,QAAxO;AAAiP,YAAK,SAAtP;AAAgQ,aAAM,GAAtQ;AAA0Q,aAAM,QAAhR;AAAyR,aAAM,MAA/R;AAAsS,aAAM,SAA5S;AAAsT,aAAM,SAA5T;AAAsU,aAAM,SAA5U;AAAsV,aAAM,SAA5V;AAAsW,aAAM,CAA5W;AAA8W,aAAM,SAApX;AAA8X,aAAM,QAApY;AAA6Y,aAAM,SAAnZ;AAA6Z,aAAM,SAAna;AAA6a,aAAM,QAAnb;AAA4b,aAAM,MAAlc;AAAyc,aAAM,MAA/c;AAAsd,aAAM,GAA5d;AAAge,aAAM,SAAte;AAAgf,aAAM,SAAtf;AAAggB,aAAM,QAAtgB;AAA+gB,aAAM,SAArhB;AAA+hB,aAAM,SAAriB;AAA+iB,aAAM,QAArjB;AAA8jB,aAAM,SAApkB;AAA8kB,cAAO,SAArlB;AAA+lB,cAAO,QAAtmB;AAA+mB,cAAO,SAAtnB;AAAgoB,cAAO,MAAvoB;AAA8oB,cAAO,SAArpB;AAA+pB,cAAO,CAAtqB;AAAwqB,cAAO,QAA/qB;AAAwrB,aAAM,SAA9rB;AAAwsB,aAAM,QAA9sB;AAAutB,aAAM,QAA7tB;AAAsuB,aAAM,SAA5uB;AAAsvB,aAAM,SAA5vB;AAAswB,aAAM,QAA5wB;AAAqxB,aAAM,GAA3xB;AAA+xB,aAAM,SAAryB;AAA+yB,cAAO,MAAtzB;AAA6zB,cAAO,SAAp0B;AAA80B,cAAO,CAAr1B;AAAu1B,cAAO,SAA91B;AAAw2B,cAAO,QAA/2B;AAAw3B,cAAO,MAA/3B;AAAs4B,cAAO,SAA74B;AAAu5B,cAAO;AAA95B,KAAnoI,EAA4iK;AAAC,SAAE,SAAH;AAAa,WAAI,IAAjB;AAAsB,WAAI,SAA1B;AAAoC,WAAI,SAAxC;AAAkD,YAAK,SAAvD;AAAiE,YAAK,OAAtE;AAA8E,YAAK,OAAnF;AAA2F,YAAK,SAAhG;AAA0G,YAAK,CAA/G;AAAiH,YAAK,SAAtH;AAAgI,YAAK,OAArI;AAA6I,YAAK,CAAlJ;AAAoJ,YAAK,SAAzJ;AAAmK,YAAK,OAAxK;AAAgL,YAAK,IAArL;AAA0L,YAAK,SAA/L;AAAyM,WAAI,SAA7M;AAAuN,WAAI,SAA3N;AAAqO,WAAI,CAAzO;AAA2O,WAAI,OAA/O;AAAuP,YAAK,OAA5P;AAAoQ,YAAK,SAAzQ;AAAmR,YAAK,SAAxR;AAAkS,YAAK,IAAvS;AAA4S,YAAK,OAAjT;AAAyT,YAAK,IAA9T;AAAmU,YAAK,SAAxU;AAAkV,YAAK,SAAvV;AAAiW,YAAK,CAAtW;AAAwW,YAAK,SAA7W;AAAuX,YAAK,OAA5X;AAAoY,YAAK,SAAzY;AAAmZ,YAAK,SAAxZ;AAAka,YAAK,SAAva;AAAib,YAAK,SAAtb;AAAgc,YAAK,IAArc;AAA0c,YAAK,OAA/c;AAAud,YAAK,SAA5d;AAAse,YAAK,SAA3e;AAAqf,YAAK,OAA1f;AAAkgB,YAAK,OAAvgB;AAA+gB,YAAK,CAAphB;AAAshB,YAAK,CAA3hB;AAA6hB,YAAK,SAAliB;AAA4iB,YAAK,IAAjjB;AAAsjB,YAAK,SAA3jB;AAAqkB,YAAK,SAA1kB;AAAolB,YAAK,OAAzlB;AAAimB,YAAK,CAAtmB;AAAwmB,YAAK,OAA7mB;AAAqnB,YAAK,OAA1nB;AAAkoB,YAAK,SAAvoB;AAAipB,YAAK,SAAtpB;AAAgqB,YAAK,IAArqB;AAA0qB,YAAK,SAA/qB;AAAyrB,YAAK,SAA9rB;AAAwsB,YAAK,SAA7sB;AAAutB,YAAK,SAA5tB;AAAsuB,YAAK,IAA3uB;AAAgvB,YAAK,OAArvB;AAA6vB,YAAK,OAAlwB;AAA0wB,YAAK,CAA/wB;AAAixB,YAAK,SAAtxB;AAAgyB,YAAK;AAAryB,KAA5iK,EAA41L;AAAC,SAAE,OAAH;AAAW,UAAG,QAAd;AAAuB,UAAG,IAA1B;AAA+B,UAAG,OAAlC;AAA0C,UAAG,QAA7C;AAAsD,UAAG,CAAzD;AAA2D,UAAG,CAA9D;AAAgE,WAAI,QAApE;AAA6E,WAAI,QAAjF;AAA0F,WAAI,OAA9F;AAAsG,WAAI,QAA1G;AAAmH,WAAI,QAAvH;AAAgI,WAAI,QAApI;AAA6I,WAAI,IAAjJ;AAAsJ,WAAI,OAA1J;AAAkK,WAAI,QAAtK;AAA+K,SAAE,QAAjL;AAA0L,UAAG,CAA7L;AAA+L,UAAG,QAAlM;AAA2M,UAAG,QAA9M;AAAuN,UAAG,OAA1N;AAAkO,UAAG,QAArO;AAA8O,WAAI,QAAlP;AAA2P,WAAI,IAA/P;AAAoQ,WAAI,OAAxQ;AAAgR,WAAI,QAApR;AAA6R,WAAI,QAAjS;AAA0S,WAAI,OAA9S;AAAsT,WAAI,IAA1T;AAA+T,WAAI,QAAnU;AAA4U,WAAI,CAAhV;AAAkV,WAAI,OAAtV;AAA8V,WAAI,QAAlW;AAA2W,WAAI,OAA/W;AAAuX,WAAI,QAA3X;AAAoY,WAAI,QAAxY;AAAiZ,WAAI,OAArZ;AAA6Z,WAAI,QAAja;AAA0a,WAAI,QAA9a;AAAub,WAAI,OAA3b;AAAmc,WAAI,IAAvc;AAA4c,WAAI,QAAhd;AAAyd,WAAI,OAA7d;AAAqe,WAAI,CAAze;AAA2e,WAAI,CAA/e;AAAif,WAAI,QAArf;AAA8f,WAAI,QAAlgB;AAA2gB,WAAI,IAA/gB;AAAohB,WAAI,OAAxhB;AAAgiB,WAAI,QAApiB;AAA6iB,WAAI,QAAjjB;AAA0jB,WAAI,CAA9jB;AAAgkB,WAAI,QAApkB;AAA6kB,WAAI,OAAjlB;AAAylB,WAAI,IAA7lB;AAAkmB,WAAI,QAAtmB;AAA+mB,WAAI,QAAnnB;AAA4nB,WAAI,QAAhoB;AAAyoB,WAAI,CAA7oB;AAA+oB,WAAI,QAAnpB;AAA4pB,WAAI,OAAhqB;AAAwqB,WAAI,IAA5qB;AAAirB,WAAI,QAArrB;AAA8rB,WAAI;AAAlsB,KAA51L,EAAuiN;AAAC,SAAE,SAAH;AAAa,SAAE,MAAf;AAAsB,SAAE,SAAxB;AAAkC,SAAE,EAApC;AAAuC,SAAE,MAAzC;AAAgD,SAAE,SAAlD;AAA4D,SAAE,SAA9D;AAAwE,SAAE,IAA1E;AAA+E,SAAE,SAAjF;AAA2F,SAAE,SAA7F;AAAuG,UAAG,MAA1G;AAAiH,UAAG,SAApH;AAA8H,UAAG,IAAjI;AAAsI,UAAG,CAAzI;AAA2I,UAAG,SAA9I;AAAwJ,UAAG,MAA3J;AAAkK,kBAAW,IAA7K;AAAkL,kBAAW,SAA7L;AAAuM,kBAAW,SAAlN;AAA4N,kBAAW,SAAvO;AAAiP,kBAAW,SAA5P;AAAsQ,kBAAW,MAAjR;AAAwR,kBAAW,MAAnS;AAA0S,kBAAW,EAArT;AAAwT,kBAAW,SAAnU;AAA6U,kBAAW,IAAxV;AAA6V,kBAAW,MAAxW;AAA+W,kBAAW,SAA1X;AAAoY,kBAAW,CAA/Y;AAAiZ,kBAAW,SAA5Z;AAAsa,kBAAW,SAAjb;AAA2b,kBAAW,MAAtc;AAA6c,UAAG,MAAhd;AAAud,UAAG,SAA1d;AAAoe,UAAG,EAAve;AAA0e,UAAG,IAA7e;AAAkf,UAAG,SAArf;AAA+f,UAAG,SAAlgB;AAA4gB,UAAG,SAA/gB;AAAyhB,UAAG,MAA5hB;AAAmiB,UAAG,CAAtiB;AAAwiB,UAAG,MAA3iB;AAAkjB,UAAG,SAArjB;AAA+jB,UAAG,SAAlkB;AAA4kB,UAAG,SAA/kB;AAAylB,UAAG,MAA5lB;AAAmmB,UAAG,IAAtmB;AAA2mB,UAAG,SAA9mB;AAAwnB,kBAAW,MAAnoB;AAA0oB,kBAAW,IAArpB;AAA0pB,kBAAW,SAArqB;AAA+qB,kBAAW,MAA1rB;AAAisB,kBAAW,EAA5sB;AAA+sB,kBAAW,SAA1tB;AAAouB,kBAAW,SAA/uB;AAAyvB,kBAAW,SAApwB;AAA8wB,kBAAW,SAAzxB;AAAmyB,kBAAW,SAA9yB;AAAwzB,kBAAW,SAAn0B;AAA60B,kBAAW,CAAx1B;AAA01B,kBAAW,MAAr2B;AAA42B,kBAAW,IAAv3B;AAA43B,kBAAW,MAAv4B;AAA84B,kBAAW;AAAz5B,KAAviN,CAAxZ;AAAA,QAAo2PY,CAAC,GAAC,CAAC,UAAD,EAAY,SAAZ,EAAsB,QAAtB,EAA+B,OAA/B,EAAuC,MAAvC,EAA8C,IAA9C,EAAmD,GAAnD,EAAuD,UAAvD,CAAt2P;AAAA,QAAy6PsB,CAAC,GAACtD,CAAC,CAACwO,GAAF,GAAMrP,CAAC,CAACT,MAAF,CAAS;AAAC0D,MAAAA,QAAQ,EAAC,oBAAU;AAAC,aAAI,IAAI1E,CAAC,GAAC,KAAKuN,IAAX,EAAgBtN,CAAC,GAACD,CAAC,CAAC2B,KAApB,EAA0BpB,CAAC,GAAC,EAA5B,EAA+BI,CAAC,GAAC,CAArC,EAAuCA,CAAC,GAAC,EAAzC,EAA4CA,CAAC,EAA7C,EAAgD;AAAC,cAAIC,CAAC,GAACkB,CAAC,CAACnB,CAAD,CAAD,GAAK,CAAX;AAAaJ,UAAAA,CAAC,CAACI,CAAD,CAAD,GAAKV,CAAC,CAACW,CAAC,KAAG,CAAL,CAAD,KAAW,KAAGA,CAAC,GAAC,EAAhB,GAAmB,CAAxB;AAA0B;;AAAA,aAAI,IAAIE,CAAC,GAAC,KAAKiQ,QAAL,GAAc,EAApB,EAAuBtP,CAAC,GAAC,CAA7B,EAA+BA,CAAC,GAAC,EAAjC,EAAoCA,CAAC,EAArC,EAAwC;AAAC,eAAI,IAAIa,CAAC,GAACxB,CAAC,CAACW,CAAD,CAAD,GAAK,EAAX,EAAciC,CAAC,GAACP,CAAC,CAAC1B,CAAD,CAAjB,EAAqBd,CAAC,GAAC,CAA3B,EAA6BA,CAAC,GAAC,EAA/B,EAAkCA,CAAC,EAAnC;AAAsC2B,YAAAA,CAAC,CAAC3B,CAAC,GAAC,CAAF,GAAI,CAAL,CAAD,IAAUJ,CAAC,CAAC,CAACuC,CAAC,CAACnC,CAAD,CAAD,GAAK,CAAL,GAAO+C,CAAR,IAAW,EAAZ,CAAD,IAAkB,KAAG/C,CAAC,GAAC,CAAjC,EAAmC2B,CAAC,CAAC,KAAG3B,CAAC,GAAC,CAAF,GAAI,CAAP,CAAD,CAAD,IAAcJ,CAAC,CAAC,KAAG,CAACuC,CAAC,CAACnC,CAAC,GAAC,EAAH,CAAD,GAAQ,CAAR,GAAU+C,CAAX,IAAc,EAAlB,CAAD,IAAwB,KAAG/C,CAAC,GAAC,CAA9E;AAAtC;;AAAsH2B,UAAAA,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,IAAM,CAAN,GAAQA,CAAC,CAAC,CAAD,CAAD,KAAO,EAApB;;AAAuB,eAAI,IAAI3B,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB;AAAoB2B,YAAAA,CAAC,CAAC3B,CAAD,CAAD,GAAK2B,CAAC,CAAC3B,CAAD,CAAD,KAAO,KAAGA,CAAC,GAAC,CAAL,IAAQ,CAApB;AAApB;;AAA0C2B,UAAAA,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,IAAM,CAAN,GAAQA,CAAC,CAAC,CAAD,CAAD,KAAO,EAApB;AAAuB;;AAAA,aAAI,IAAIgC,CAAC,GAAC,KAAK0M,WAAL,GAAiB,EAAvB,EAA0BrQ,CAAC,GAAC,CAAhC,EAAkCA,CAAC,GAAC,EAApC,EAAuCA,CAAC,EAAxC;AAA2C2D,UAAAA,CAAC,CAAC3D,CAAD,CAAD,GAAKG,CAAC,CAAC,KAAGH,CAAJ,CAAN;AAA3C;AAAwD,OAA5Z;AAA6Z2N,MAAAA,YAAY,EAAC,sBAAStO,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAK0Q,aAAL,CAAmB3Q,CAAnB,EAAqBC,CAArB,EAAuB,KAAK8Q,QAA5B;AAAsC,OAA9d;AAA+dxC,MAAAA,YAAY,EAAC,sBAASvO,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAK0Q,aAAL,CAAmB3Q,CAAnB,EAAqBC,CAArB,EAAuB,KAAK+Q,WAA5B;AAAyC,OAAniB;AAAoiBL,MAAAA,aAAa,EAAC,uBAAS3Q,CAAT,EAAWW,CAAX,EAAaC,CAAb,EAAe;AAAC,aAAKgQ,OAAL,GAAa5Q,CAAC,CAACW,CAAD,CAAd,EAAkB,KAAKkQ,OAAL,GAAa7Q,CAAC,CAACW,CAAC,GAAC,CAAH,CAAhC,EAAsCV,CAAC,CAACkC,IAAF,CAAO,IAAP,EAAY,CAAZ,EAAc,SAAd,CAAtC,EAA+DlC,CAAC,CAACkC,IAAF,CAAO,IAAP,EAAY,EAAZ,EAAe,KAAf,CAA/D,EAAqF5B,CAAC,CAAC4B,IAAF,CAAO,IAAP,EAAY,CAAZ,EAAc,SAAd,CAArF,EAA8G5B,CAAC,CAAC4B,IAAF,CAAO,IAAP,EAAY,CAAZ,EAAc,QAAd,CAA9G,EAAsIlC,CAAC,CAACkC,IAAF,CAAO,IAAP,EAAY,CAAZ,EAAc,UAAd,CAAtI;;AAAgK,aAAI,IAAIrB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,EAAd,EAAiBA,CAAC,EAAlB,EAAqB;AAAC,eAAI,IAAIW,CAAC,GAACb,CAAC,CAACE,CAAD,CAAP,EAAWwB,CAAC,GAAC,KAAKsO,OAAlB,EAA0B9O,CAAC,GAAC,KAAK+O,OAAjC,EAAyC/N,CAAC,GAAC,CAA3C,EAA6CK,CAAC,GAAC,CAAnD,EAAqDA,CAAC,GAAC,CAAvD,EAAyDA,CAAC,EAA1D;AAA6DL,YAAAA,CAAC,IAAEY,CAAC,CAACP,CAAD,CAAD,CAAK,CAAC,CAACrB,CAAC,GAACL,CAAC,CAAC0B,CAAD,CAAJ,IAASmB,CAAC,CAACnB,CAAD,CAAX,MAAkB,CAAvB,CAAH;AAA7D;;AAA0F,eAAKyN,OAAL,GAAa9O,CAAb,EAAe,KAAK+O,OAAL,GAAavO,CAAC,GAACQ,CAA9B;AAAgC;;AAAA,YAAI8C,CAAC,GAAC,KAAKgL,OAAX;AAAmB,aAAKA,OAAL,GAAa,KAAKC,OAAlB,EAA0B,KAAKA,OAAL,GAAajL,CAAvC,EAAyC3F,CAAC,CAACkC,IAAF,CAAO,IAAP,EAAY,CAAZ,EAAc,UAAd,CAAzC,EAAmE5B,CAAC,CAAC4B,IAAF,CAAO,IAAP,EAAY,CAAZ,EAAc,QAAd,CAAnE,EAA2F5B,CAAC,CAAC4B,IAAF,CAAO,IAAP,EAAY,CAAZ,EAAc,SAAd,CAA3F,EAAoHlC,CAAC,CAACkC,IAAF,CAAO,IAAP,EAAY,EAAZ,EAAe,KAAf,CAApH,EAA0IlC,CAAC,CAACkC,IAAF,CAAO,IAAP,EAAY,CAAZ,EAAc,SAAd,CAA1I,EAAmKnC,CAAC,CAACW,CAAD,CAAD,GAAK,KAAKiQ,OAA7K,EAAqL5Q,CAAC,CAACW,CAAC,GAAC,CAAH,CAAD,GAAO,KAAKkQ,OAAjM;AAAyM,OAA9kC;AAA+kC7H,MAAAA,OAAO,EAAC,CAAvlC;AAAylCyE,MAAAA,MAAM,EAAC,CAAhmC;AAAkmCxJ,MAAAA,SAAS,EAAC;AAA5mC,KAAT,CAAj7P;AAA0iStD,IAAAA,CAAC,CAACmQ,GAAF,GAAMrP,CAAC,CAACqD,aAAF,CAAgBc,CAAhB,CAAN;AAAyB,QAAIC,CAAC,GAACvD,CAAC,CAAC2O,SAAF,GAAYxP,CAAC,CAACT,MAAF,CAAS;AAAC0D,MAAAA,QAAQ,EAAC,oBAAU;AAAC,YAAI1E,CAAC,GAAC,KAAKuN,IAAX;AAAA,YAAgBtN,CAAC,GAACD,CAAC,CAAC2B,KAApB;AAA0B,aAAKuP,KAAL,GAAWtL,CAAC,CAACsH,eAAF,CAAkBpM,CAAC,CAACL,MAAF,CAASR,CAAC,CAACmC,KAAF,CAAQ,CAAR,EAAU,CAAV,CAAT,CAAlB,CAAX,EAAqD,KAAK+O,KAAL,GAAWvL,CAAC,CAACsH,eAAF,CAAkBpM,CAAC,CAACL,MAAF,CAASR,CAAC,CAACmC,KAAF,CAAQ,CAAR,EAAU,CAAV,CAAT,CAAlB,CAAhE,EAA0G,KAAKgP,KAAL,GAAWxL,CAAC,CAACsH,eAAF,CAAkBpM,CAAC,CAACL,MAAF,CAASR,CAAC,CAACmC,KAAF,CAAQ,CAAR,EAAU,CAAV,CAAT,CAAlB,CAArH;AAA+J,OAA9M;AAA+MkM,MAAAA,YAAY,EAAC,sBAAStO,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAKiR,KAAL,CAAW5C,YAAX,CAAwBtO,CAAxB,EAA0BC,CAA1B,GAA6B,KAAKkR,KAAL,CAAW5C,YAAX,CAAwBvO,CAAxB,EAA0BC,CAA1B,CAA7B,EAA0D,KAAKmR,KAAL,CAAW9C,YAAX,CAAwBtO,CAAxB,EAA0BC,CAA1B,CAA1D;AAAuF,OAAjU;AAAkUsO,MAAAA,YAAY,EAAC,sBAASvO,CAAT,EAAWC,CAAX,EAAa;AAAC,aAAKmR,KAAL,CAAW7C,YAAX,CAAwBvO,CAAxB,EAA0BC,CAA1B,GAA6B,KAAKkR,KAAL,CAAW7C,YAAX,CAAwBtO,CAAxB,EAA0BC,CAA1B,CAA7B,EAA0D,KAAKiR,KAAL,CAAW3C,YAAX,CAAwBvO,CAAxB,EAA0BC,CAA1B,CAA1D;AAAuF,OAApb;AAAqb+I,MAAAA,OAAO,EAAC,CAA7b;AAA+byE,MAAAA,MAAM,EAAC,CAAtc;AAAwcxJ,MAAAA,SAAS,EAAC;AAAld,KAAT,CAAlB;AAAiftD,IAAAA,CAAC,CAACsQ,SAAF,GAAYxP,CAAC,CAACqD,aAAF,CAAgBe,CAAhB,CAAZ;AAA+B,GADm/qB,EAAtg3B,EACshM,YAAU;AAAC,aAAS5F,CAAT,GAAY;AAAC,WAAI,IAAID,CAAC,GAAC,KAAKqR,EAAX,EAAcpR,CAAC,GAAC,KAAKqR,EAArB,EAAwB/Q,CAAC,GAAC,KAAKgR,EAA/B,EAAkC5Q,CAAC,GAAC,CAApC,EAAsCC,CAAC,GAAC,CAA5C,EAA8CA,CAAC,GAAC,CAAhD,EAAkDA,CAAC,EAAnD,EAAsD;AAACX,QAAAA,CAAC,GAAC,CAACA,CAAC,GAAC,CAAH,IAAM,GAAR,EAAYM,CAAC,GAAC,CAACA,CAAC,GAACP,CAAC,CAACC,CAAD,CAAJ,IAAS,GAAvB;AAA2B,YAAIa,CAAC,GAACd,CAAC,CAACC,CAAD,CAAP;AAAWD,QAAAA,CAAC,CAACC,CAAD,CAAD,GAAKD,CAAC,CAACO,CAAD,CAAN,EAAUP,CAAC,CAACO,CAAD,CAAD,GAAKO,CAAf,EAAiBH,CAAC,IAAEX,CAAC,CAAC,CAACA,CAAC,CAACC,CAAD,CAAD,GAAKD,CAAC,CAACO,CAAD,CAAP,IAAY,GAAb,CAAD,IAAoB,KAAG,IAAEK,CAA7C;AAA+C;;AAAA,aAAO,KAAK0Q,EAAL,GAAQrR,CAAR,EAAU,KAAKsR,EAAL,GAAQhR,CAAlB,EAAoBI,CAA3B;AAA6B;;AAAA,QAAIJ,CAAC,GAACP,CAAN;AAAA,QAAQW,CAAC,GAACJ,CAAC,CAACM,GAAZ;AAAA,QAAgBD,CAAC,GAACD,CAAC,CAACiN,YAApB;AAAA,QAAiC9M,CAAC,GAACP,CAAC,CAAC0E,IAArC;AAAA,QAA0CxD,CAAC,GAACX,CAAC,CAAC0Q,GAAF,GAAM5Q,CAAC,CAACI,MAAF,CAAS;AAAC0D,MAAAA,QAAQ,EAAC,oBAAU;AAAC,aAAI,IAAI1E,CAAC,GAAC,KAAKuN,IAAX,EAAgBtN,CAAC,GAACD,CAAC,CAAC2B,KAApB,EAA0BpB,CAAC,GAACP,CAAC,CAAC4B,QAA9B,EAAuCjB,CAAC,GAAC,KAAK0Q,EAAL,GAAQ,EAAjD,EAAoDzQ,CAAC,GAAC,CAA1D,EAA4DA,CAAC,GAAC,GAA9D,EAAkEA,CAAC,EAAnE;AAAsED,UAAAA,CAAC,CAACC,CAAD,CAAD,GAAKA,CAAL;AAAtE;;AAA6E,aAAI,IAAIA,CAAC,GAAC,CAAN,EAAQE,CAAC,GAAC,CAAd,EAAgBF,CAAC,GAAC,GAAlB,EAAsBA,CAAC,EAAvB,EAA0B;AAAC,cAAIa,CAAC,GAACb,CAAC,GAACL,CAAR;AAAA,cAAU+B,CAAC,GAACrC,CAAC,CAACwB,CAAC,KAAG,CAAL,CAAD,KAAW,KAAGA,CAAC,GAAC,CAAF,GAAI,CAAlB,GAAoB,GAAhC;AAAoCX,UAAAA,CAAC,GAAC,CAACA,CAAC,GAACH,CAAC,CAACC,CAAD,CAAH,GAAO0B,CAAR,IAAW,GAAb;AAAiB,cAAIR,CAAC,GAACnB,CAAC,CAACC,CAAD,CAAP;AAAWD,UAAAA,CAAC,CAACC,CAAD,CAAD,GAAKD,CAAC,CAACG,CAAD,CAAN,EAAUH,CAAC,CAACG,CAAD,CAAD,GAAKgB,CAAf;AAAiB;;AAAA,aAAKwP,EAAL,GAAQ,KAAKC,EAAL,GAAQ,CAAhB;AAAkB,OAAhO;AAAiOlN,MAAAA,eAAe,EAAC,yBAASrE,CAAT,EAAWO,CAAX,EAAa;AAACP,QAAAA,CAAC,CAACO,CAAD,CAAD,IAAMN,CAAC,CAACkC,IAAF,CAAO,IAAP,CAAN;AAAmB,OAAlR;AAAmR6G,MAAAA,OAAO,EAAC,CAA3R;AAA6RyE,MAAAA,MAAM,EAAC;AAApS,KAAT,CAAlD;AAAmWlN,IAAAA,CAAC,CAACiR,GAAF,GAAM5Q,CAAC,CAACkE,aAAF,CAAgBrD,CAAhB,CAAN;AAAyB,QAAIa,CAAC,GAACxB,CAAC,CAAC2Q,OAAF,GAAUhQ,CAAC,CAACT,MAAF,CAAS;AAACyD,MAAAA,GAAG,EAAChD,CAAC,CAACgD,GAAF,CAAMzD,MAAN,CAAa;AAAC0Q,QAAAA,IAAI,EAAC;AAAN,OAAb,CAAL;AAA8BhN,MAAAA,QAAQ,EAAC,oBAAU;AAACjD,QAAAA,CAAC,CAACiD,QAAF,CAAWvC,IAAX,CAAgB,IAAhB;;AAAsB,aAAI,IAAInC,CAAC,GAAC,KAAKyE,GAAL,CAASiN,IAAnB,EAAwB1R,CAAC,GAAC,CAA1B,EAA4BA,CAAC,EAA7B;AAAgCC,UAAAA,CAAC,CAACkC,IAAF,CAAO,IAAP;AAAhC;AAA6C;AAArH,KAAT,CAAhB;AAAiJ5B,IAAAA,CAAC,CAACkR,OAAF,GAAU7Q,CAAC,CAACkE,aAAF,CAAgBxC,CAAhB,CAAV;AAA6B,GAA3uB,EADthM,EACowNtC,CAAC,CAAC6N,IAAF,CAAO8D,UAAP,GAAkB,YAAU;AAAC,aAAS1R,CAAT,CAAWD,CAAX,EAAa;AAAC,UAAG,SAAOA,CAAC,IAAE,EAAH,GAAM,GAAb,CAAH,EAAqB;AAAC,YAAIC,CAAC,GAACD,CAAC,IAAE,EAAH,GAAM,GAAZ;AAAA,YAAgBO,CAAC,GAACP,CAAC,IAAE,CAAH,GAAK,GAAvB;AAAA,YAA2BW,CAAC,GAAC,MAAIX,CAAjC;AAAmC,gBAAMC,CAAN,IAASA,CAAC,GAAC,CAAF,EAAI,QAAMM,CAAN,IAASA,CAAC,GAAC,CAAF,EAAI,QAAMI,CAAN,GAAQA,CAAC,GAAC,CAAV,GAAY,EAAEA,CAA3B,IAA8B,EAAEJ,CAA7C,IAAgD,EAAEN,CAAlD,EAAoDD,CAAC,GAAC,CAAtD,EAAwDA,CAAC,IAAEC,CAAC,IAAE,EAA9D,EAAiED,CAAC,IAAEO,CAAC,IAAE,CAAvE,EAAyEP,CAAC,IAAEW,CAA5E;AAA8E,OAAvI,MAA4IX,CAAC,IAAE,KAAG,EAAN;;AAAS,aAAOA,CAAP;AAAS;;AAAA,aAASO,CAAT,CAAWP,CAAX,EAAa;AAAC,aAAO,OAAKA,CAAC,CAAC,CAAD,CAAD,GAAKC,CAAC,CAACD,CAAC,CAAC,CAAD,CAAF,CAAX,MAAqBA,CAAC,CAAC,CAAD,CAAD,GAAKC,CAAC,CAACD,CAAC,CAAC,CAAD,CAAF,CAA3B,GAAmCA,CAA1C;AAA4C;;AAAA,QAAIW,CAAC,GAACX,CAAC,CAACa,GAAF,CAAMiN,eAAN,CAAsB9M,MAAtB,EAAN;AAAA,QAAqCJ,CAAC,GAACD,CAAC,CAACoN,SAAF,GAAYpN,CAAC,CAACK,MAAF,CAAS;AAACqN,MAAAA,YAAY,EAAC,sBAASrO,CAAT,EAAWC,CAAX,EAAa;AAAC,YAAIU,CAAC,GAAC,KAAKsN,OAAX;AAAA,YAAmBrN,CAAC,GAACD,CAAC,CAACsD,SAAvB;AAAA,YAAiCnD,CAAC,GAAC,KAAKoN,GAAxC;AAAA,YAA4CzM,CAAC,GAAC,KAAKmQ,QAAnD;AAA4D9Q,QAAAA,CAAC,KAAGW,CAAC,GAAC,KAAKmQ,QAAL,GAAc9Q,CAAC,CAACsB,KAAF,CAAQ,CAAR,CAAhB,EAA2B,KAAK8L,GAAL,GAAS,KAAK,CAA5C,CAAD,EAAgD3N,CAAC,CAACkB,CAAD,CAAjD;AAAqD,YAAIa,CAAC,GAACb,CAAC,CAACW,KAAF,CAAQ,CAAR,CAAN;AAAiBzB,QAAAA,CAAC,CAAC2N,YAAF,CAAehM,CAAf,EAAiB,CAAjB;;AAAoB,aAAI,IAAIR,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAClB,CAAd,EAAgBkB,CAAC,EAAjB;AAAoB9B,UAAAA,CAAC,CAACC,CAAC,GAAC6B,CAAH,CAAD,IAAQQ,CAAC,CAACR,CAAD,CAAT;AAApB;AAAiC;AAAnN,KAAT,CAAnD;AAAkR,WAAOnB,CAAC,CAACqN,SAAF,GAAYpN,CAAZ,EAAcD,CAArB;AAAuB,GAA1hB,EADtxN,EACmzO,YAAU;AAAC,aAASV,CAAT,GAAY;AAAC,WAAI,IAAID,CAAC,GAAC,KAAK6R,EAAX,EAAc5R,CAAC,GAAC,KAAK6R,EAArB,EAAwBvR,CAAC,GAAC,CAA9B,EAAgCA,CAAC,GAAC,CAAlC,EAAoCA,CAAC,EAArC;AAAwC+B,QAAAA,CAAC,CAAC/B,CAAD,CAAD,GAAKN,CAAC,CAACM,CAAD,CAAN;AAAxC;;AAAkDN,MAAAA,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK,UAAL,GAAgB,KAAK8R,EAArB,GAAwB,CAA7B,EAA+B9R,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK,UAAL,IAAiBA,CAAC,CAAC,CAAD,CAAD,KAAO,CAAP,GAASqC,CAAC,CAAC,CAAD,CAAD,KAAO,CAAhB,GAAkB,CAAlB,GAAoB,CAArC,IAAwC,CAA5E,EAA8ErC,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK,SAAL,IAAgBA,CAAC,CAAC,CAAD,CAAD,KAAO,CAAP,GAASqC,CAAC,CAAC,CAAD,CAAD,KAAO,CAAhB,GAAkB,CAAlB,GAAoB,CAApC,IAAuC,CAA1H,EAA4HrC,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK,UAAL,IAAiBA,CAAC,CAAC,CAAD,CAAD,KAAO,CAAP,GAASqC,CAAC,CAAC,CAAD,CAAD,KAAO,CAAhB,GAAkB,CAAlB,GAAoB,CAArC,IAAwC,CAAzK,EAA2KrC,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK,UAAL,IAAiBA,CAAC,CAAC,CAAD,CAAD,KAAO,CAAP,GAASqC,CAAC,CAAC,CAAD,CAAD,KAAO,CAAhB,GAAkB,CAAlB,GAAoB,CAArC,IAAwC,CAAxN,EAA0NrC,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK,SAAL,IAAgBA,CAAC,CAAC,CAAD,CAAD,KAAO,CAAP,GAASqC,CAAC,CAAC,CAAD,CAAD,KAAO,CAAhB,GAAkB,CAAlB,GAAoB,CAApC,IAAuC,CAAtQ,EAAwQrC,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK,UAAL,IAAiBA,CAAC,CAAC,CAAD,CAAD,KAAO,CAAP,GAASqC,CAAC,CAAC,CAAD,CAAD,KAAO,CAAhB,GAAkB,CAAlB,GAAoB,CAArC,IAAwC,CAArT,EAAuTrC,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK,UAAL,IAAiBA,CAAC,CAAC,CAAD,CAAD,KAAO,CAAP,GAASqC,CAAC,CAAC,CAAD,CAAD,KAAO,CAAhB,GAAkB,CAAlB,GAAoB,CAArC,IAAwC,CAApW,EAAsW,KAAKyP,EAAL,GAAQ9R,CAAC,CAAC,CAAD,CAAD,KAAO,CAAP,GAASqC,CAAC,CAAC,CAAD,CAAD,KAAO,CAAhB,GAAkB,CAAlB,GAAoB,CAAlY;;AAAoY,WAAI,IAAI/B,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB,EAAoB;AAAC,YAAII,CAAC,GAACX,CAAC,CAACO,CAAD,CAAD,GAAKN,CAAC,CAACM,CAAD,CAAZ;AAAA,YAAgBK,CAAC,GAAC,QAAMD,CAAxB;AAAA,YAA0BG,CAAC,GAACH,CAAC,KAAG,EAAhC;AAAA,YAAmCc,CAAC,GAAC,CAAC,CAACb,CAAC,GAACA,CAAF,KAAM,EAAP,IAAWA,CAAC,GAACE,CAAb,KAAiB,EAAlB,IAAsBA,CAAC,GAACA,CAA7D;AAAA,YAA+DgC,CAAC,GAAC,CAAC,CAAC,aAAWnC,CAAZ,IAAeA,CAAf,GAAiB,CAAlB,KAAsB,CAAC,QAAMA,CAAP,IAAUA,CAAV,GAAY,CAAlC,CAAjE;AAAsGmB,QAAAA,CAAC,CAACvB,CAAD,CAAD,GAAKkB,CAAC,GAACqB,CAAP;AAAS;;AAAA9C,MAAAA,CAAC,CAAC,CAAD,CAAD,GAAK8B,CAAC,CAAC,CAAD,CAAD,IAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAtB,KAA2BA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA3C,IAA+C,CAApD,EAAsD9B,CAAC,CAAC,CAAD,CAAD,GAAK8B,CAAC,CAAC,CAAD,CAAD,IAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,CAAN,GAAQA,CAAC,CAAC,CAAD,CAAD,KAAO,EAArB,IAAyBA,CAAC,CAAC,CAAD,CAA1B,GAA8B,CAAzF,EAA2F9B,CAAC,CAAC,CAAD,CAAD,GAAK8B,CAAC,CAAC,CAAD,CAAD,IAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAtB,KAA2BA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA3C,IAA+C,CAA/I,EAAiJ9B,CAAC,CAAC,CAAD,CAAD,GAAK8B,CAAC,CAAC,CAAD,CAAD,IAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,CAAN,GAAQA,CAAC,CAAC,CAAD,CAAD,KAAO,EAArB,IAAyBA,CAAC,CAAC,CAAD,CAA1B,GAA8B,CAApL,EAAsL9B,CAAC,CAAC,CAAD,CAAD,GAAK8B,CAAC,CAAC,CAAD,CAAD,IAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAtB,KAA2BA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA3C,IAA+C,CAA1O,EAA4O9B,CAAC,CAAC,CAAD,CAAD,GAAK8B,CAAC,CAAC,CAAD,CAAD,IAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,CAAN,GAAQA,CAAC,CAAC,CAAD,CAAD,KAAO,EAArB,IAAyBA,CAAC,CAAC,CAAD,CAA1B,GAA8B,CAA/Q,EAAiR9B,CAAC,CAAC,CAAD,CAAD,GAAK8B,CAAC,CAAC,CAAD,CAAD,IAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAtB,KAA2BA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA3C,IAA+C,CAArU,EAAuU9B,CAAC,CAAC,CAAD,CAAD,GAAK8B,CAAC,CAAC,CAAD,CAAD,IAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,CAAN,GAAQA,CAAC,CAAC,CAAD,CAAD,KAAO,EAArB,IAAyBA,CAAC,CAAC,CAAD,CAA1B,GAA8B,CAA1W;AAA4W;;AAAA,QAAIvB,CAAC,GAACP,CAAN;AAAA,QAAQW,CAAC,GAACJ,CAAC,CAACM,GAAZ;AAAA,QAAgBD,CAAC,GAACD,CAAC,CAACiN,YAApB;AAAA,QAAiC9M,CAAC,GAACP,CAAC,CAAC0E,IAArC;AAAA,QAA0CxD,CAAC,GAAC,EAA5C;AAAA,QAA+Ca,CAAC,GAAC,EAAjD;AAAA,QAAoDR,CAAC,GAAC,EAAtD;AAAA,QAAyDgB,CAAC,GAAChC,CAAC,CAACkR,MAAF,GAASpR,CAAC,CAACI,MAAF,CAAS;AAAC0D,MAAAA,QAAQ,EAAC,oBAAU;AAAC,aAAI,IAAI1E,CAAC,GAAC,KAAKuN,IAAL,CAAU5L,KAAhB,EAAsBpB,CAAC,GAAC,KAAKkE,GAAL,CAASoK,EAAjC,EAAoClO,CAAC,GAAC,CAA1C,EAA4CA,CAAC,GAAC,CAA9C,EAAgDA,CAAC,EAAjD;AAAoDX,UAAAA,CAAC,CAACW,CAAD,CAAD,GAAK,YAAUX,CAAC,CAACW,CAAD,CAAD,IAAM,CAAN,GAAQX,CAAC,CAACW,CAAD,CAAD,KAAO,EAAzB,IAA6B,cAAYX,CAAC,CAACW,CAAD,CAAD,IAAM,EAAN,GAASX,CAAC,CAACW,CAAD,CAAD,KAAO,CAA5B,CAAlC;AAApD;;AAAqH,YAAIC,CAAC,GAAC,KAAKiR,EAAL,GAAQ,CAAC7R,CAAC,CAAC,CAAD,CAAF,EAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAtB,EAAyBA,CAAC,CAAC,CAAD,CAA1B,EAA8BA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA9C,EAAiDA,CAAC,CAAC,CAAD,CAAlD,EAAsDA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAtE,EAAyEA,CAAC,CAAC,CAAD,CAA1E,EAA8EA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA9F,CAAd;AAAA,YAAgHc,CAAC,GAAC,KAAKgR,EAAL,GAAQ,CAAC9R,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAjB,EAAoB,aAAWA,CAAC,CAAC,CAAD,CAAZ,GAAgB,QAAMA,CAAC,CAAC,CAAD,CAA3C,EAA+CA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA/D,EAAkE,aAAWA,CAAC,CAAC,CAAD,CAAZ,GAAgB,QAAMA,CAAC,CAAC,CAAD,CAAzF,EAA6FA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA7G,EAAgH,aAAWA,CAAC,CAAC,CAAD,CAAZ,GAAgB,QAAMA,CAAC,CAAC,CAAD,CAAvI,EAA2IA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA3J,EAA8J,aAAWA,CAAC,CAAC,CAAD,CAAZ,GAAgB,QAAMA,CAAC,CAAC,CAAD,CAArL,CAA1H;AAAoT,aAAK+R,EAAL,GAAQ,CAAR;;AAAU,aAAI,IAAIpR,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB;AAAoBV,UAAAA,CAAC,CAACkC,IAAF,CAAO,IAAP;AAApB;;AAAiC,aAAI,IAAIxB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB;AAAoBG,UAAAA,CAAC,CAACH,CAAD,CAAD,IAAMC,CAAC,CAACD,CAAC,GAAC,CAAF,GAAI,CAAL,CAAP;AAApB;;AAAmC,YAAGJ,CAAH,EAAK;AAAC,cAAIkB,CAAC,GAAClB,CAAC,CAACoB,KAAR;AAAA,cAAcW,CAAC,GAACb,CAAC,CAAC,CAAD,CAAjB;AAAA,cAAqBK,CAAC,GAACL,CAAC,CAAC,CAAD,CAAxB;AAAA,cAA4BqB,CAAC,GAAC,YAAUR,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAnB,IAAuB,cAAYA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAtB,CAArD;AAAA,cAA8Ea,CAAC,GAAC,YAAUrB,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAnB,IAAuB,cAAYA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAtB,CAAvG;AAAA,cAAgI4B,CAAC,GAACZ,CAAC,KAAG,EAAJ,GAAO,aAAWK,CAApJ;AAAA,cAAsJmB,CAAC,GAACnB,CAAC,IAAE,EAAH,GAAM,QAAML,CAApK;AAAsKhC,UAAAA,CAAC,CAAC,CAAD,CAAD,IAAMgC,CAAN,EAAQhC,CAAC,CAAC,CAAD,CAAD,IAAM4C,CAAd,EAAgB5C,CAAC,CAAC,CAAD,CAAD,IAAMqC,CAAtB,EAAwBrC,CAAC,CAAC,CAAD,CAAD,IAAMwD,CAA9B,EAAgCxD,CAAC,CAAC,CAAD,CAAD,IAAMgC,CAAtC,EAAwChC,CAAC,CAAC,CAAD,CAAD,IAAM4C,CAA9C,EAAgD5C,CAAC,CAAC,CAAD,CAAD,IAAMqC,CAAtD,EAAwDrC,CAAC,CAAC,CAAD,CAAD,IAAMwD,CAA9D;;AAAgE,eAAI,IAAI3D,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB;AAAoBV,YAAAA,CAAC,CAACkC,IAAF,CAAO,IAAP;AAApB;AAAiC;AAAC,OAA1xB;AAA2xBkC,MAAAA,eAAe,EAAC,yBAASrE,CAAT,EAAWO,CAAX,EAAa;AAAC,YAAII,CAAC,GAAC,KAAKkR,EAAX;AAAc5R,QAAAA,CAAC,CAACkC,IAAF,CAAO,IAAP,GAAaV,CAAC,CAAC,CAAD,CAAD,GAAKd,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAZ,GAAeA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAvC,EAA0Cc,CAAC,CAAC,CAAD,CAAD,GAAKd,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAZ,GAAeA,CAAC,CAAC,CAAD,CAAD,IAAM,EAApE,EAAuEc,CAAC,CAAC,CAAD,CAAD,GAAKd,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAZ,GAAeA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAjG,EAAoGc,CAAC,CAAC,CAAD,CAAD,GAAKd,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAZ,GAAeA,CAAC,CAAC,CAAD,CAAD,IAAM,EAA9H;;AAAiI,aAAI,IAAIC,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB;AAAoBa,UAAAA,CAAC,CAACb,CAAD,CAAD,GAAK,YAAUa,CAAC,CAACb,CAAD,CAAD,IAAM,CAAN,GAAQa,CAAC,CAACb,CAAD,CAAD,KAAO,EAAzB,IAA6B,cAAYa,CAAC,CAACb,CAAD,CAAD,IAAM,EAAN,GAASa,CAAC,CAACb,CAAD,CAAD,KAAO,CAA5B,CAAlC,EAAiEZ,CAAC,CAACO,CAAC,GAACK,CAAH,CAAD,IAAQa,CAAC,CAACb,CAAD,CAA1E;AAApB;AAAkG,OAA1iC;AAA2iCqD,MAAAA,SAAS,EAAC,CAArjC;AAAujCwJ,MAAAA,MAAM,EAAC;AAA9jC,KAAT,CAApE;AAA+oClN,IAAAA,CAAC,CAACyR,MAAF,GAASpR,CAAC,CAACkE,aAAF,CAAgBhC,CAAhB,CAAT;AAA4B,GAAzmE,EADnzO,EAC+5S9C,CAAC,CAAC6N,IAAF,CAAOoE,GAAP,GAAW,YAAU;AAAC,QAAIhS,CAAC,GAACD,CAAC,CAACa,GAAF,CAAMiN,eAAN,CAAsB9M,MAAtB,EAAN;AAAA,QAAqCT,CAAC,GAACN,CAAC,CAAC8N,SAAF,GAAY9N,CAAC,CAACe,MAAF,CAAS;AAACqN,MAAAA,YAAY,EAAC,sBAASrO,CAAT,EAAWC,CAAX,EAAa;AAAC,YAAIM,CAAC,GAAC,KAAK0N,OAAX;AAAA,YAAmBtN,CAAC,GAACJ,CAAC,CAAC0D,SAAvB;AAAA,YAAiCrD,CAAC,GAAC,KAAKsN,GAAxC;AAAA,YAA4CpN,CAAC,GAAC,KAAK8Q,QAAnD;AAA4DhR,QAAAA,CAAC,KAAGE,CAAC,GAAC,KAAK8Q,QAAL,GAAchR,CAAC,CAACwB,KAAF,CAAQ,CAAR,CAAhB,EAA2B,KAAK8L,GAAL,GAAS,KAAK,CAA5C,CAAD;AAAgD,YAAIzM,CAAC,GAACX,CAAC,CAACsB,KAAF,CAAQ,CAAR,CAAN;AAAiB7B,QAAAA,CAAC,CAAC+N,YAAF,CAAe7M,CAAf,EAAiB,CAAjB,GAAoBX,CAAC,CAACH,CAAC,GAAC,CAAH,CAAD,GAAOG,CAAC,CAACH,CAAC,GAAC,CAAH,CAAD,GAAO,CAAP,GAAS,CAApC;;AAAsC,aAAI,IAAI2B,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC3B,CAAd,EAAgB2B,CAAC,EAAjB;AAAoBtC,UAAAA,CAAC,CAACC,CAAC,GAACqC,CAAH,CAAD,IAAQb,CAAC,CAACa,CAAD,CAAT;AAApB;AAAiC;AAAhO,KAAT,CAAnD;AAA+R,WAAOrC,CAAC,CAAC+N,SAAF,GAAYzN,CAAZ,EAAcN,CAArB;AAAuB,GAAjU,EAD16S,EAC8uT,YAAU;AAAC,aAASA,CAAT,GAAY;AAAC,WAAI,IAAID,CAAC,GAAC,KAAK6R,EAAX,EAAc5R,CAAC,GAAC,KAAK6R,EAArB,EAAwBvR,CAAC,GAAC,CAA9B,EAAgCA,CAAC,GAAC,CAAlC,EAAoCA,CAAC,EAArC;AAAwC+B,QAAAA,CAAC,CAAC/B,CAAD,CAAD,GAAKN,CAAC,CAACM,CAAD,CAAN;AAAxC;;AAAkDN,MAAAA,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK,UAAL,GAAgB,KAAK8R,EAArB,GAAwB,CAA7B,EAA+B9R,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK,UAAL,IAAiBA,CAAC,CAAC,CAAD,CAAD,KAAO,CAAP,GAASqC,CAAC,CAAC,CAAD,CAAD,KAAO,CAAhB,GAAkB,CAAlB,GAAoB,CAArC,IAAwC,CAA5E,EAA8ErC,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK,SAAL,IAAgBA,CAAC,CAAC,CAAD,CAAD,KAAO,CAAP,GAASqC,CAAC,CAAC,CAAD,CAAD,KAAO,CAAhB,GAAkB,CAAlB,GAAoB,CAApC,IAAuC,CAA1H,EAA4HrC,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK,UAAL,IAAiBA,CAAC,CAAC,CAAD,CAAD,KAAO,CAAP,GAASqC,CAAC,CAAC,CAAD,CAAD,KAAO,CAAhB,GAAkB,CAAlB,GAAoB,CAArC,IAAwC,CAAzK,EAA2KrC,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK,UAAL,IAAiBA,CAAC,CAAC,CAAD,CAAD,KAAO,CAAP,GAASqC,CAAC,CAAC,CAAD,CAAD,KAAO,CAAhB,GAAkB,CAAlB,GAAoB,CAArC,IAAwC,CAAxN,EAA0NrC,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK,SAAL,IAAgBA,CAAC,CAAC,CAAD,CAAD,KAAO,CAAP,GAASqC,CAAC,CAAC,CAAD,CAAD,KAAO,CAAhB,GAAkB,CAAlB,GAAoB,CAApC,IAAuC,CAAtQ,EAAwQrC,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK,UAAL,IAAiBA,CAAC,CAAC,CAAD,CAAD,KAAO,CAAP,GAASqC,CAAC,CAAC,CAAD,CAAD,KAAO,CAAhB,GAAkB,CAAlB,GAAoB,CAArC,IAAwC,CAArT,EAAuTrC,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,GAAK,UAAL,IAAiBA,CAAC,CAAC,CAAD,CAAD,KAAO,CAAP,GAASqC,CAAC,CAAC,CAAD,CAAD,KAAO,CAAhB,GAAkB,CAAlB,GAAoB,CAArC,IAAwC,CAApW,EAAsW,KAAKyP,EAAL,GAAQ9R,CAAC,CAAC,CAAD,CAAD,KAAO,CAAP,GAASqC,CAAC,CAAC,CAAD,CAAD,KAAO,CAAhB,GAAkB,CAAlB,GAAoB,CAAlY;;AAAoY,WAAI,IAAI/B,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB,EAAoB;AAAC,YAAII,CAAC,GAACX,CAAC,CAACO,CAAD,CAAD,GAAKN,CAAC,CAACM,CAAD,CAAZ;AAAA,YAAgBK,CAAC,GAAC,QAAMD,CAAxB;AAAA,YAA0BG,CAAC,GAACH,CAAC,KAAG,EAAhC;AAAA,YAAmCc,CAAC,GAAC,CAAC,CAACb,CAAC,GAACA,CAAF,KAAM,EAAP,IAAWA,CAAC,GAACE,CAAb,KAAiB,EAAlB,IAAsBA,CAAC,GAACA,CAA7D;AAAA,YAA+DgC,CAAC,GAAC,CAAC,CAAC,aAAWnC,CAAZ,IAAeA,CAAf,GAAiB,CAAlB,KAAsB,CAAC,QAAMA,CAAP,IAAUA,CAAV,GAAY,CAAlC,CAAjE;AAAsGmB,QAAAA,CAAC,CAACvB,CAAD,CAAD,GAAKkB,CAAC,GAACqB,CAAP;AAAS;;AAAA9C,MAAAA,CAAC,CAAC,CAAD,CAAD,GAAK8B,CAAC,CAAC,CAAD,CAAD,IAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAtB,KAA2BA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA3C,IAA+C,CAApD,EAAsD9B,CAAC,CAAC,CAAD,CAAD,GAAK8B,CAAC,CAAC,CAAD,CAAD,IAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,CAAN,GAAQA,CAAC,CAAC,CAAD,CAAD,KAAO,EAArB,IAAyBA,CAAC,CAAC,CAAD,CAA1B,GAA8B,CAAzF,EAA2F9B,CAAC,CAAC,CAAD,CAAD,GAAK8B,CAAC,CAAC,CAAD,CAAD,IAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAtB,KAA2BA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA3C,IAA+C,CAA/I,EAAiJ9B,CAAC,CAAC,CAAD,CAAD,GAAK8B,CAAC,CAAC,CAAD,CAAD,IAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,CAAN,GAAQA,CAAC,CAAC,CAAD,CAAD,KAAO,EAArB,IAAyBA,CAAC,CAAC,CAAD,CAA1B,GAA8B,CAApL,EAAsL9B,CAAC,CAAC,CAAD,CAAD,GAAK8B,CAAC,CAAC,CAAD,CAAD,IAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAtB,KAA2BA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA3C,IAA+C,CAA1O,EAA4O9B,CAAC,CAAC,CAAD,CAAD,GAAK8B,CAAC,CAAC,CAAD,CAAD,IAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,CAAN,GAAQA,CAAC,CAAC,CAAD,CAAD,KAAO,EAArB,IAAyBA,CAAC,CAAC,CAAD,CAA1B,GAA8B,CAA/Q,EAAiR9B,CAAC,CAAC,CAAD,CAAD,GAAK8B,CAAC,CAAC,CAAD,CAAD,IAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAtB,KAA2BA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA3C,IAA+C,CAArU,EAAuU9B,CAAC,CAAC,CAAD,CAAD,GAAK8B,CAAC,CAAC,CAAD,CAAD,IAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,CAAN,GAAQA,CAAC,CAAC,CAAD,CAAD,KAAO,EAArB,IAAyBA,CAAC,CAAC,CAAD,CAA1B,GAA8B,CAA1W;AAA4W;;AAAA,QAAIvB,CAAC,GAACP,CAAN;AAAA,QAAQW,CAAC,GAACJ,CAAC,CAACM,GAAZ;AAAA,QAAgBD,CAAC,GAACD,CAAC,CAACiN,YAApB;AAAA,QAAiC9M,CAAC,GAACP,CAAC,CAAC0E,IAArC;AAAA,QAA0CxD,CAAC,GAAC,EAA5C;AAAA,QAA+Ca,CAAC,GAAC,EAAjD;AAAA,QAAoDR,CAAC,GAAC,EAAtD;AAAA,QAAyDgB,CAAC,GAAChC,CAAC,CAACoR,YAAF,GAAetR,CAAC,CAACI,MAAF,CAAS;AAAC0D,MAAAA,QAAQ,EAAC,oBAAU;AAAC,YAAI1E,CAAC,GAAC,KAAKuN,IAAL,CAAU5L,KAAhB;AAAA,YAAsBpB,CAAC,GAAC,KAAKkE,GAAL,CAASoK,EAAjC;AAAA,YAAoClO,CAAC,GAAC,KAAKkR,EAAL,GAAQ,CAAC7R,CAAC,CAAC,CAAD,CAAF,EAAMA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAtB,EAAyBA,CAAC,CAAC,CAAD,CAA1B,EAA8BA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA9C,EAAiDA,CAAC,CAAC,CAAD,CAAlD,EAAsDA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAtE,EAAyEA,CAAC,CAAC,CAAD,CAA1E,EAA8EA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA9F,CAA9C;AAAA,YAAgJY,CAAC,GAAC,KAAKkR,EAAL,GAAQ,CAAC9R,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAjB,EAAoB,aAAWA,CAAC,CAAC,CAAD,CAAZ,GAAgB,QAAMA,CAAC,CAAC,CAAD,CAA3C,EAA+CA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA/D,EAAkE,aAAWA,CAAC,CAAC,CAAD,CAAZ,GAAgB,QAAMA,CAAC,CAAC,CAAD,CAAzF,EAA6FA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA7G,EAAgH,aAAWA,CAAC,CAAC,CAAD,CAAZ,GAAgB,QAAMA,CAAC,CAAC,CAAD,CAAvI,EAA2IA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAN,GAASA,CAAC,CAAC,CAAD,CAAD,KAAO,EAA3J,EAA8J,aAAWA,CAAC,CAAC,CAAD,CAAZ,GAAgB,QAAMA,CAAC,CAAC,CAAD,CAArL,CAA1J;AAAoV,aAAK+R,EAAL,GAAQ,CAAR;;AAAU,aAAI,IAAIjR,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB;AAAoBb,UAAAA,CAAC,CAACkC,IAAF,CAAO,IAAP;AAApB;;AAAiC,aAAI,IAAIrB,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB;AAAoBF,UAAAA,CAAC,CAACE,CAAD,CAAD,IAAMH,CAAC,CAACG,CAAC,GAAC,CAAF,GAAI,CAAL,CAAP;AAApB;;AAAmC,YAAGP,CAAH,EAAK;AAAC,cAAIkB,CAAC,GAAClB,CAAC,CAACoB,KAAR;AAAA,cAAcW,CAAC,GAACb,CAAC,CAAC,CAAD,CAAjB;AAAA,cAAqBK,CAAC,GAACL,CAAC,CAAC,CAAD,CAAxB;AAAA,cAA4BqB,CAAC,GAAC,YAAUR,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAnB,IAAuB,cAAYA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAtB,CAArD;AAAA,cAA8Ea,CAAC,GAAC,YAAUrB,CAAC,IAAE,CAAH,GAAKA,CAAC,KAAG,EAAnB,IAAuB,cAAYA,CAAC,IAAE,EAAH,GAAMA,CAAC,KAAG,CAAtB,CAAvG;AAAA,cAAgI4B,CAAC,GAACZ,CAAC,KAAG,EAAJ,GAAO,aAAWK,CAApJ;AAAA,cAAsJmB,CAAC,GAACnB,CAAC,IAAE,EAAH,GAAM,QAAML,CAApK;AAAsKlC,UAAAA,CAAC,CAAC,CAAD,CAAD,IAAMkC,CAAN,EAAQlC,CAAC,CAAC,CAAD,CAAD,IAAM8C,CAAd,EAAgB9C,CAAC,CAAC,CAAD,CAAD,IAAMuC,CAAtB,EAAwBvC,CAAC,CAAC,CAAD,CAAD,IAAM0D,CAA9B,EAAgC1D,CAAC,CAAC,CAAD,CAAD,IAAMkC,CAAtC,EAAwClC,CAAC,CAAC,CAAD,CAAD,IAAM8C,CAA9C,EAAgD9C,CAAC,CAAC,CAAD,CAAD,IAAMuC,CAAtD,EAAwDvC,CAAC,CAAC,CAAD,CAAD,IAAM0D,CAA9D;;AAAgE,eAAI,IAAIxD,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB;AAAoBb,YAAAA,CAAC,CAACkC,IAAF,CAAO,IAAP;AAApB;AAAiC;AAAC,OAArsB;AAAssBkC,MAAAA,eAAe,EAAC,yBAASrE,CAAT,EAAWO,CAAX,EAAa;AAAC,YAAII,CAAC,GAAC,KAAKkR,EAAX;AAAc5R,QAAAA,CAAC,CAACkC,IAAF,CAAO,IAAP,GAAaV,CAAC,CAAC,CAAD,CAAD,GAAKd,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAZ,GAAeA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAvC,EAA0Cc,CAAC,CAAC,CAAD,CAAD,GAAKd,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAZ,GAAeA,CAAC,CAAC,CAAD,CAAD,IAAM,EAApE,EAAuEc,CAAC,CAAC,CAAD,CAAD,GAAKd,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAZ,GAAeA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAjG,EAAoGc,CAAC,CAAC,CAAD,CAAD,GAAKd,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,KAAO,EAAZ,GAAeA,CAAC,CAAC,CAAD,CAAD,IAAM,EAA9H;;AAAiI,aAAI,IAAIC,CAAC,GAAC,CAAV,EAAYA,CAAC,GAAC,CAAd,EAAgBA,CAAC,EAAjB;AAAoBa,UAAAA,CAAC,CAACb,CAAD,CAAD,GAAK,YAAUa,CAAC,CAACb,CAAD,CAAD,IAAM,CAAN,GAAQa,CAAC,CAACb,CAAD,CAAD,KAAO,EAAzB,IAA6B,cAAYa,CAAC,CAACb,CAAD,CAAD,IAAM,EAAN,GAASa,CAAC,CAACb,CAAD,CAAD,KAAO,CAA5B,CAAlC,EAAiEZ,CAAC,CAACO,CAAC,GAACK,CAAH,CAAD,IAAQa,CAAC,CAACb,CAAD,CAA1E;AAApB;AAAkG,OAAr9B;AAAs9BqD,MAAAA,SAAS,EAAC,CAAh+B;AAAk+BwJ,MAAAA,MAAM,EAAC;AAAz+B,KAAT,CAA1E;AAAgkClN,IAAAA,CAAC,CAAC2R,YAAF,GAAetR,CAAC,CAACkE,aAAF,CAAgBhC,CAAhB,CAAf;AAAkC,GAAhiE,EAD9uT,EACixX9C,CAAC,CAACwO,GAAF,CAAM0B,WAAN,GAAkB;AAAC1B,IAAAA,GAAG,EAAC,aAASxO,CAAT,EAAWC,CAAX,EAAa;AAAC,UAAIM,CAAC,GAAC,IAAEN,CAAR;AAAUD,MAAAA,CAAC,CAACiC,KAAF,IAAUjC,CAAC,CAAC4B,QAAF,IAAYrB,CAAC,IAAEP,CAAC,CAAC4B,QAAF,GAAWrB,CAAX,IAAcA,CAAhB,CAAvB;AAA0C,KAAvE;AAAwEmO,IAAAA,KAAK,EAAC,eAAS1O,CAAT,EAAW;AAAC,WAAI,IAAIC,CAAC,GAACD,CAAC,CAAC2B,KAAR,EAAcpB,CAAC,GAACP,CAAC,CAAC4B,QAAF,GAAW,CAA/B,EAAiC,EAAE3B,CAAC,CAACM,CAAC,KAAG,CAAL,CAAD,KAAW,KAAGA,CAAC,GAAC,CAAF,GAAI,CAAlB,GAAoB,GAAtB,CAAjC;AAA6DA,QAAAA,CAAC;AAA9D;;AAAiEP,MAAAA,CAAC,CAAC4B,QAAF,GAAWrB,CAAC,GAAC,CAAb;AAAe;AAA1K,GADnyX,EAC+8XP,CADt9X;AACw9X,CADjhf,CAAD,EAEA","sourceRoot":"/","sourcesContent":["!function(t,r){\"object\"==typeof exports?module.exports=exports=r():\"function\"==typeof define&&define.amd?define([],r):t.CryptoJS=r()}(this,function(){var t=t||function(t,r){var e=Object.create||function(){function t(){}return function(r){var e;return t.prototype=r,e=new t,t.prototype=null,e}}(),i={},n=i.lib={},o=n.Base=function(){return{extend:function(t){var r=e(this);return t&&r.mixIn(t),r.hasOwnProperty(\"init\")&&this.init!==r.init||(r.init=function(){r.$super.init.apply(this,arguments)}),r.init.prototype=r,r.$super=this,r},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r]);t.hasOwnProperty(\"toString\")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),s=n.WordArray=o.extend({init:function(t,e){t=this.words=t||[],e!=r?this.sigBytes=e:this.sigBytes=4*t.length},toString:function(t){return(t||c).stringify(this)},concat:function(t){var r=this.words,e=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;r[i+o>>>2]|=s<<24-(i+o)%4*8}else for(var o=0;o>>2]=e[o>>>2];return this.sigBytes+=n,this},clamp:function(){var r=this.words,e=this.sigBytes;r[e>>>2]&=4294967295<<32-e%4*8,r.length=t.ceil(e/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(r){for(var e,i=[],n=function(r){var r=r,e=987654321,i=4294967295;return function(){e=36969*(65535&e)+(e>>16)&i,r=18e3*(65535&r)+(r>>16)&i;var n=(e<<16)+r&i;return n/=4294967296,n+=.5,n*(t.random()>.5?1:-1)}},o=0;o>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new s.init(e,r/2)}},h=a.Latin1={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new s.init(e,r)}},l=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(h.stringify(t)))}catch(t){throw new Error(\"Malformed UTF-8 data\")}},parse:function(t){return h.parse(unescape(encodeURIComponent(t)))}},f=n.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(t){\"string\"==typeof t&&(t=l.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(r){var e=this._data,i=e.words,n=e.sigBytes,o=this.blockSize,a=4*o,c=n/a;c=r?t.ceil(c):t.max((0|c)-this._minBufferSize,0);var h=c*o,l=t.min(4*h,n);if(h){for(var f=0;f>>6-s%4*2;i[o>>>2]|=(a|c)<<24-o%4*8,o++}return n.create(i,o)}var e=t,i=e.lib,n=i.WordArray,o=e.enc;o.Base64={stringify:function(t){var r=t.words,e=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255,a=r[o+1>>>2]>>>24-(o+1)%4*8&255,c=r[o+2>>>2]>>>24-(o+2)%4*8&255,h=s<<16|a<<8|c,l=0;l<4&&o+.75*l>>6*(3-l)&63));var f=i.charAt(64);if(f)for(;n.length%4;)n.push(f);return n.join(\"\")},parse:function(t){var e=t.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>32-o)+r}function i(t,r,e,i,n,o,s){var a=t+(r&i|e&~i)+n+s;return(a<>>32-o)+r}function n(t,r,e,i,n,o,s){var a=t+(r^e^i)+n+s;return(a<>>32-o)+r}function o(t,r,e,i,n,o,s){var a=t+(e^(r|~i))+n+s;return(a<>>32-o)+r}var s=t,a=s.lib,c=a.WordArray,h=a.Hasher,l=s.algo,f=[];!function(){for(var t=0;t<64;t++)f[t]=4294967296*r.abs(r.sin(t+1))|0}();var u=l.MD5=h.extend({_doReset:function(){this._hash=new c.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,r){for(var s=0;s<16;s++){var a=r+s,c=t[a];t[a]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}var h=this._hash.words,l=t[r+0],u=t[r+1],d=t[r+2],v=t[r+3],p=t[r+4],_=t[r+5],y=t[r+6],g=t[r+7],B=t[r+8],w=t[r+9],k=t[r+10],S=t[r+11],m=t[r+12],x=t[r+13],b=t[r+14],H=t[r+15],z=h[0],A=h[1],C=h[2],D=h[3];z=e(z,A,C,D,l,7,f[0]),D=e(D,z,A,C,u,12,f[1]),C=e(C,D,z,A,d,17,f[2]),A=e(A,C,D,z,v,22,f[3]),z=e(z,A,C,D,p,7,f[4]),D=e(D,z,A,C,_,12,f[5]),C=e(C,D,z,A,y,17,f[6]),A=e(A,C,D,z,g,22,f[7]),z=e(z,A,C,D,B,7,f[8]),D=e(D,z,A,C,w,12,f[9]),C=e(C,D,z,A,k,17,f[10]),A=e(A,C,D,z,S,22,f[11]),z=e(z,A,C,D,m,7,f[12]),D=e(D,z,A,C,x,12,f[13]),C=e(C,D,z,A,b,17,f[14]),A=e(A,C,D,z,H,22,f[15]),z=i(z,A,C,D,u,5,f[16]),D=i(D,z,A,C,y,9,f[17]),C=i(C,D,z,A,S,14,f[18]),A=i(A,C,D,z,l,20,f[19]),z=i(z,A,C,D,_,5,f[20]),D=i(D,z,A,C,k,9,f[21]),C=i(C,D,z,A,H,14,f[22]),A=i(A,C,D,z,p,20,f[23]),z=i(z,A,C,D,w,5,f[24]),D=i(D,z,A,C,b,9,f[25]),C=i(C,D,z,A,v,14,f[26]),A=i(A,C,D,z,B,20,f[27]),z=i(z,A,C,D,x,5,f[28]),D=i(D,z,A,C,d,9,f[29]),C=i(C,D,z,A,g,14,f[30]),A=i(A,C,D,z,m,20,f[31]),z=n(z,A,C,D,_,4,f[32]),D=n(D,z,A,C,B,11,f[33]),C=n(C,D,z,A,S,16,f[34]),A=n(A,C,D,z,b,23,f[35]),z=n(z,A,C,D,u,4,f[36]),D=n(D,z,A,C,p,11,f[37]),C=n(C,D,z,A,g,16,f[38]),A=n(A,C,D,z,k,23,f[39]),z=n(z,A,C,D,x,4,f[40]),D=n(D,z,A,C,l,11,f[41]),C=n(C,D,z,A,v,16,f[42]),A=n(A,C,D,z,y,23,f[43]),z=n(z,A,C,D,w,4,f[44]),D=n(D,z,A,C,m,11,f[45]),C=n(C,D,z,A,H,16,f[46]),A=n(A,C,D,z,d,23,f[47]),z=o(z,A,C,D,l,6,f[48]),D=o(D,z,A,C,g,10,f[49]),C=o(C,D,z,A,b,15,f[50]),A=o(A,C,D,z,_,21,f[51]),z=o(z,A,C,D,m,6,f[52]),D=o(D,z,A,C,v,10,f[53]),C=o(C,D,z,A,k,15,f[54]),A=o(A,C,D,z,u,21,f[55]),z=o(z,A,C,D,B,6,f[56]),D=o(D,z,A,C,H,10,f[57]),C=o(C,D,z,A,y,15,f[58]),A=o(A,C,D,z,x,21,f[59]),z=o(z,A,C,D,p,6,f[60]),D=o(D,z,A,C,S,10,f[61]),C=o(C,D,z,A,d,15,f[62]),A=o(A,C,D,z,w,21,f[63]),h[0]=h[0]+z|0,h[1]=h[1]+A|0,h[2]=h[2]+C|0,h[3]=h[3]+D|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32;var o=r.floor(i/4294967296),s=i;e[(n+64>>>9<<4)+15]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),e[(n+64>>>9<<4)+14]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),t.sigBytes=4*(e.length+1),this._process();for(var a=this._hash,c=a.words,h=0;h<4;h++){var l=c[h];c[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return a},clone:function(){var t=h.clone.call(this);return t._hash=this._hash.clone(),t}});s.MD5=h._createHelper(u),s.HmacMD5=h._createHmacHelper(u)}(Math),function(){var r=t,e=r.lib,i=e.WordArray,n=e.Hasher,o=r.algo,s=[],a=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],a=e[3],c=e[4],h=0;h<80;h++){if(h<16)s[h]=0|t[r+h];else{var l=s[h-3]^s[h-8]^s[h-14]^s[h-16];s[h]=l<<1|l>>>31}var f=(i<<5|i>>>27)+c+s[h];f+=h<20?(n&o|~n&a)+1518500249:h<40?(n^o^a)+1859775393:h<60?(n&o|n&a|o&a)-1894007588:(n^o^a)-899497514,c=a,a=o,o=n<<30|n>>>2,n=i,i=f}e[0]=e[0]+i|0,e[1]=e[1]+n|0,e[2]=e[2]+o|0,e[3]=e[3]+a|0,e[4]=e[4]+c|0},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;return r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=Math.floor(e/4294967296),r[(i+64>>>9<<4)+15]=e,t.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});r.SHA1=n._createHelper(a),r.HmacSHA1=n._createHmacHelper(a)}(),function(r){var e=t,i=e.lib,n=i.WordArray,o=i.Hasher,s=e.algo,a=[],c=[];!function(){function t(t){for(var e=r.sqrt(t),i=2;i<=e;i++)if(!(t%i))return!1;return!0}function e(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)t(i)&&(n<8&&(a[n]=e(r.pow(i,.5))),c[n]=e(r.pow(i,1/3)),n++),i++}();var h=[],l=s.SHA256=o.extend({_doReset:function(){this._hash=new n.init(a.slice(0))},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],s=e[3],a=e[4],l=e[5],f=e[6],u=e[7],d=0;d<64;d++){if(d<16)h[d]=0|t[r+d];else{var v=h[d-15],p=(v<<25|v>>>7)^(v<<14|v>>>18)^v>>>3,_=h[d-2],y=(_<<15|_>>>17)^(_<<13|_>>>19)^_>>>10;h[d]=p+h[d-7]+y+h[d-16]}var g=a&l^~a&f,B=i&n^i&o^n&o,w=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),k=(a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25),S=u+k+g+c[d]+h[d],m=w+B;u=f,f=l,l=a,a=s+S|0,s=o,o=n,n=i,i=S+m|0}e[0]=e[0]+i|0,e[1]=e[1]+n|0,e[2]=e[2]+o|0,e[3]=e[3]+s|0,e[4]=e[4]+a|0,e[5]=e[5]+l|0,e[6]=e[6]+f|0,e[7]=e[7]+u|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[(n+64>>>9<<4)+14]=r.floor(i/4294967296),e[(n+64>>>9<<4)+15]=i,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(l),e.HmacSHA256=o._createHmacHelper(l)}(Math),function(){function r(t){return t<<8&4278255360|t>>>8&16711935}var e=t,i=e.lib,n=i.WordArray,o=e.enc;o.Utf16=o.Utf16BE={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>1]|=t.charCodeAt(i)<<16-i%2*16;return n.create(e,2*r)}};o.Utf16LE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join(\"\")},parse:function(t){for(var e=t.length,i=[],o=0;o>>1]|=r(t.charCodeAt(o)<<16-o%2*16);return n.create(i,2*e)}}}(),function(){if(\"function\"==typeof ArrayBuffer){var r=t,e=r.lib,i=e.WordArray,n=i.init,o=i.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||\"undefined\"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,e=[],i=0;i>>2]|=t[i]<<24-i%4*8;n.call(this,e,r)}else n.apply(this,arguments)};o.prototype=i}}(),function(r){function e(t,r,e){return t^r^e}function i(t,r,e){return t&r|~t&e}function n(t,r,e){return(t|~r)^e}function o(t,r,e){return t&e|r&~e}function s(t,r,e){return t^(r|~e)}function a(t,r){return t<>>32-r}var c=t,h=c.lib,l=h.WordArray,f=h.Hasher,u=c.algo,d=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),v=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),p=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),_=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=l.create([0,1518500249,1859775393,2400959708,2840853838]),g=l.create([1352829926,1548603684,1836072691,2053994217,0]),B=u.RIPEMD160=f.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,r){for(var c=0;c<16;c++){var h=r+c,l=t[h];t[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}var f,u,B,w,k,S,m,x,b,H,z=this._hash.words,A=y.words,C=g.words,D=d.words,R=v.words,E=p.words,M=_.words;S=f=z[0],m=u=z[1],x=B=z[2],b=w=z[3],H=k=z[4];for(var F,c=0;c<80;c+=1)F=f+t[r+D[c]]|0,F+=c<16?e(u,B,w)+A[0]:c<32?i(u,B,w)+A[1]:c<48?n(u,B,w)+A[2]:c<64?o(u,B,w)+A[3]:s(u,B,w)+A[4],F|=0,F=a(F,E[c]),F=F+k|0,f=k,k=w,w=a(B,10),B=u,u=F,F=S+t[r+R[c]]|0,F+=c<16?s(m,x,b)+C[0]:c<32?o(m,x,b)+C[1]:c<48?n(m,x,b)+C[2]:c<64?i(m,x,b)+C[3]:e(m,x,b)+C[4],F|=0,F=a(F,M[c]),F=F+H|0,S=H,H=b,b=a(x,10),x=m,m=F;F=z[1]+B+b|0,z[1]=z[2]+w+H|0,z[2]=z[3]+k+S|0,z[3]=z[4]+f+m|0,z[4]=z[0]+u+x|0,z[0]=F},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8),t.sigBytes=4*(r.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var a=o[s];o[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return n},clone:function(){var t=f.clone.call(this);return t._hash=this._hash.clone(),t}});c.RIPEMD160=f._createHelper(B),c.HmacRIPEMD160=f._createHmacHelper(B)}(Math),function(){var r=t,e=r.lib,i=e.Base,n=r.enc,o=n.Utf8,s=r.algo;s.HMAC=i.extend({init:function(t,r){t=this._hasher=new t.init,\"string\"==typeof r&&(r=o.parse(r));var e=t.blockSize,i=4*e;r.sigBytes>i&&(r=t.finalize(r)),r.clamp();for(var n=this._oKey=r.clone(),s=this._iKey=r.clone(),a=n.words,c=s.words,h=0;h>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8);var a=e[n];a.high^=s,a.low^=o}for(var c=0;c<24;c++){for(var d=0;d<5;d++){for(var v=0,p=0,_=0;_<5;_++){var a=e[d+5*_];v^=a.high,p^=a.low}var y=u[d];y.high=v,y.low=p}for(var d=0;d<5;d++)for(var g=u[(d+4)%5],B=u[(d+1)%5],w=B.high,k=B.low,v=g.high^(w<<1|k>>>31),p=g.low^(k<<1|w>>>31),_=0;_<5;_++){var a=e[d+5*_];a.high^=v,a.low^=p}for(var S=1;S<25;S++){var a=e[S],m=a.high,x=a.low,b=h[S];if(b<32)var v=m<>>32-b,p=x<>>32-b;else var v=x<>>64-b,p=m<>>64-b;var H=u[l[S]];H.high=v,H.low=p}var z=u[0],A=e[0];z.high=A.high,z.low=A.low;for(var d=0;d<5;d++)for(var _=0;_<5;_++){var S=d+5*_,a=e[S],C=u[S],D=u[(d+1)%5+5*_],R=u[(d+2)%5+5*_];a.high=C.high^~D.high&R.high,a.low=C.low^~D.low&R.low}var a=e[0],E=f[c];a.high^=E.high,a.low^=E.low}},_doFinalize:function(){var t=this._data,e=t.words,i=(8*this._nDataBytes,8*t.sigBytes),o=32*this.blockSize;e[i>>>5]|=1<<24-i%32,e[(r.ceil((i+1)/o)*o>>>5)-1]|=128,t.sigBytes=4*e.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,c=a/8,h=[],l=0;l>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),h.push(d),h.push(u)}return new n.init(h,a)},clone:function(){for(var t=o.clone.call(this),r=t._state=this._state.slice(0),e=0;e<25;e++)r[e]=r[e].clone();return t}});e.SHA3=o._createHelper(d),e.HmacSHA3=o._createHmacHelper(d)}(Math),function(){function r(){return s.create.apply(s,arguments)}var e=t,i=e.lib,n=i.Hasher,o=e.x64,s=o.Word,a=o.WordArray,c=e.algo,h=[r(1116352408,3609767458),r(1899447441,602891725),r(3049323471,3964484399),r(3921009573,2173295548),r(961987163,4081628472),r(1508970993,3053834265),r(2453635748,2937671579),r(2870763221,3664609560),r(3624381080,2734883394),r(310598401,1164996542),r(607225278,1323610764),r(1426881987,3590304994),r(1925078388,4068182383),r(2162078206,991336113),r(2614888103,633803317),r(3248222580,3479774868),r(3835390401,2666613458),r(4022224774,944711139),r(264347078,2341262773),r(604807628,2007800933),r(770255983,1495990901),r(1249150122,1856431235),r(1555081692,3175218132),r(1996064986,2198950837),r(2554220882,3999719339),r(2821834349,766784016),r(2952996808,2566594879),r(3210313671,3203337956),r(3336571891,1034457026),r(3584528711,2466948901),r(113926993,3758326383),r(338241895,168717936),r(666307205,1188179964),r(773529912,1546045734),r(1294757372,1522805485),r(1396182291,2643833823),r(1695183700,2343527390),r(1986661051,1014477480),r(2177026350,1206759142),r(2456956037,344077627),r(2730485921,1290863460),r(2820302411,3158454273),r(3259730800,3505952657),r(3345764771,106217008),r(3516065817,3606008344),r(3600352804,1432725776),r(4094571909,1467031594),r(275423344,851169720),r(430227734,3100823752),r(506948616,1363258195),r(659060556,3750685593),r(883997877,3785050280),r(958139571,3318307427),r(1322822218,3812723403),r(1537002063,2003034995),r(1747873779,3602036899),r(1955562222,1575990012),r(2024104815,1125592928),r(2227730452,2716904306),r(2361852424,442776044),r(2428436474,593698344),r(2756734187,3733110249),r(3204031479,2999351573),r(3329325298,3815920427),r(3391569614,3928383900),r(3515267271,566280711),r(3940187606,3454069534),r(4118630271,4000239992),r(116418474,1914138554),r(174292421,2731055270),r(289380356,3203993006),r(460393269,320620315),r(685471733,587496836),r(852142971,1086792851),r(1017036298,365543100),r(1126000580,2618297676),r(1288033470,3409855158),r(1501505948,4234509866),r(1607167915,987167468),r(1816402316,1246189591)],l=[];!function(){for(var t=0;t<80;t++)l[t]=r()}();var f=c.SHA512=n.extend({_doReset:function(){this._hash=new a.init([new s.init(1779033703,4089235720),new s.init(3144134277,2227873595),new s.init(1013904242,4271175723),new s.init(2773480762,1595750129),new s.init(1359893119,2917565137),new s.init(2600822924,725511199),new s.init(528734635,4215389547),new s.init(1541459225,327033209)])},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],s=e[3],a=e[4],c=e[5],f=e[6],u=e[7],d=i.high,v=i.low,p=n.high,_=n.low,y=o.high,g=o.low,B=s.high,w=s.low,k=a.high,S=a.low,m=c.high,x=c.low,b=f.high,H=f.low,z=u.high,A=u.low,C=d,D=v,R=p,E=_,M=y,F=g,P=B,W=w,O=k,U=S,I=m,K=x,X=b,L=H,j=z,N=A,T=0;T<80;T++){var Z=l[T];if(T<16)var q=Z.high=0|t[r+2*T],G=Z.low=0|t[r+2*T+1];else{var J=l[T-15],$=J.high,Q=J.low,V=($>>>1|Q<<31)^($>>>8|Q<<24)^$>>>7,Y=(Q>>>1|$<<31)^(Q>>>8|$<<24)^(Q>>>7|$<<25),tt=l[T-2],rt=tt.high,et=tt.low,it=(rt>>>19|et<<13)^(rt<<3|et>>>29)^rt>>>6,nt=(et>>>19|rt<<13)^(et<<3|rt>>>29)^(et>>>6|rt<<26),ot=l[T-7],st=ot.high,at=ot.low,ct=l[T-16],ht=ct.high,lt=ct.low,G=Y+at,q=V+st+(G>>>0>>0?1:0),G=G+nt,q=q+it+(G>>>0>>0?1:0),G=G+lt,q=q+ht+(G>>>0>>0?1:0);Z.high=q,Z.low=G}var ft=O&I^~O&X,ut=U&K^~U&L,dt=C&R^C&M^R&M,vt=D&E^D&F^E&F,pt=(C>>>28|D<<4)^(C<<30|D>>>2)^(C<<25|D>>>7),_t=(D>>>28|C<<4)^(D<<30|C>>>2)^(D<<25|C>>>7),yt=(O>>>14|U<<18)^(O>>>18|U<<14)^(O<<23|U>>>9),gt=(U>>>14|O<<18)^(U>>>18|O<<14)^(U<<23|O>>>9),Bt=h[T],wt=Bt.high,kt=Bt.low,St=N+gt,mt=j+yt+(St>>>0>>0?1:0),St=St+ut,mt=mt+ft+(St>>>0>>0?1:0),St=St+kt,mt=mt+wt+(St>>>0>>0?1:0),St=St+G,mt=mt+q+(St>>>0>>0?1:0),xt=_t+vt,bt=pt+dt+(xt>>>0<_t>>>0?1:0);j=X,N=L,X=I,L=K,I=O,K=U,U=W+St|0,O=P+mt+(U>>>0>>0?1:0)|0,P=M,W=F,M=R,F=E,R=C,E=D,D=St+xt|0,C=mt+bt+(D>>>0>>0?1:0)|0}v=i.low=v+D,i.high=d+C+(v>>>0>>0?1:0),_=n.low=_+E,n.high=p+R+(_>>>0>>0?1:0),g=o.low=g+F,o.high=y+M+(g>>>0>>0?1:0),w=s.low=w+W,s.high=B+P+(w>>>0>>0?1:0),S=a.low=S+U,a.high=k+O+(S>>>0>>0?1:0),x=c.low=x+K,c.high=m+I+(x>>>0>>0?1:0),H=f.low=H+L,f.high=b+X+(H>>>0>>0?1:0),A=u.low=A+N,u.high=z+j+(A>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32,r[(i+128>>>10<<5)+30]=Math.floor(e/4294967296),r[(i+128>>>10<<5)+31]=e,t.sigBytes=4*r.length,this._process();var n=this._hash.toX32();return n},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});e.SHA512=n._createHelper(f),e.HmacSHA512=n._createHmacHelper(f)}(),function(){var r=t,e=r.x64,i=e.Word,n=e.WordArray,o=r.algo,s=o.SHA512,a=o.SHA384=s.extend({_doReset:function(){this._hash=new n.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var t=s._doFinalize.call(this);return t.sigBytes-=16,t}});r.SHA384=s._createHelper(a),r.HmacSHA384=s._createHmacHelper(a)}(),t.lib.Cipher||function(r){var e=t,i=e.lib,n=i.Base,o=i.WordArray,s=i.BufferedBlockAlgorithm,a=e.enc,c=(a.Utf8,a.Base64),h=e.algo,l=h.EvpKDF,f=i.Cipher=s.extend({cfg:n.extend(),createEncryptor:function(t,r){return this.create(this._ENC_XFORM_MODE,t,r)},createDecryptor:function(t,r){return this.create(this._DEC_XFORM_MODE,t,r)},init:function(t,r,e){this.cfg=this.cfg.extend(e),this._xformMode=t,this._key=r,this.reset()},reset:function(){s.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){t&&this._append(t);var r=this._doFinalize();return r},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return\"string\"==typeof t?m:w}return function(r){return{encrypt:function(e,i,n){return t(i).encrypt(r,e,i,n)},decrypt:function(e,i,n){return t(i).decrypt(r,e,i,n)}}}}()}),u=(i.StreamCipher=f.extend({_doFinalize:function(){var t=this._process(!0);return t},blockSize:1}),e.mode={}),d=i.BlockCipherMode=n.extend({createEncryptor:function(t,r){return this.Encryptor.create(t,r)},createDecryptor:function(t,r){return this.Decryptor.create(t,r)},init:function(t,r){this._cipher=t,this._iv=r}}),v=u.CBC=function(){function t(t,e,i){var n=this._iv;if(n){var o=n;this._iv=r}else var o=this._prevBlock;for(var s=0;s>>2];t.sigBytes-=r}},y=(i.BlockCipher=f.extend({cfg:f.cfg.extend({mode:v,padding:_}),reset:function(){f.reset.call(this);var t=this.cfg,r=t.iv,e=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var i=e.createEncryptor;else{var i=e.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==i?this._mode.init(this,r&&r.words):(this._mode=i.call(e,this,r&&r.words),this._mode.__creator=i)},_doProcessBlock:function(t,r){this._mode.processBlock(t,r)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var r=this._process(!0)}else{var r=this._process(!0);t.unpad(r)}return r},blockSize:4}),i.CipherParams=n.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),g=e.format={},B=g.OpenSSL={stringify:function(t){var r=t.ciphertext,e=t.salt;if(e)var i=o.create([1398893684,1701076831]).concat(e).concat(r);else var i=r;return i.toString(c)},parse:function(t){var r=c.parse(t),e=r.words;if(1398893684==e[0]&&1701076831==e[1]){var i=o.create(e.slice(2,4));e.splice(0,4),r.sigBytes-=16}return y.create({ciphertext:r,salt:i})}},w=i.SerializableCipher=n.extend({cfg:n.extend({format:B}),encrypt:function(t,r,e,i){i=this.cfg.extend(i);var n=t.createEncryptor(e,i),o=n.finalize(r),s=n.cfg;return y.create({ciphertext:o,key:e,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,r,e,i){i=this.cfg.extend(i),r=this._parse(r,i.format);var n=t.createDecryptor(e,i).finalize(r.ciphertext);return n},_parse:function(t,r){return\"string\"==typeof t?r.parse(t,this):t}}),k=e.kdf={},S=k.OpenSSL={execute:function(t,r,e,i){i||(i=o.random(8));var n=l.create({keySize:r+e}).compute(t,i),s=o.create(n.words.slice(r),4*e);return n.sigBytes=4*r,y.create({key:n,iv:s,salt:i})}},m=i.PasswordBasedCipher=w.extend({cfg:w.cfg.extend({kdf:S}),encrypt:function(t,r,e,i){i=this.cfg.extend(i);var n=i.kdf.execute(e,t.keySize,t.ivSize);i.iv=n.iv;var o=w.encrypt.call(this,t,r,n.key,i);return o.mixIn(n),o},decrypt:function(t,r,e,i){i=this.cfg.extend(i),r=this._parse(r,i.format);var n=i.kdf.execute(e,t.keySize,t.ivSize,r.salt);i.iv=n.iv;var o=w.decrypt.call(this,t,r,n.key,i);return o}})}(),t.mode.CFB=function(){function r(t,r,e,i){var n=this._iv;if(n){var o=n.slice(0);this._iv=void 0}else var o=this._prevBlock;i.encryptBlock(o,0);for(var s=0;s>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},t.pad.Iso10126={pad:function(r,e){var i=4*e,n=i-r.sigBytes%i;r.concat(t.lib.WordArray.random(n-1)).concat(t.lib.WordArray.create([n<<24],1))},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},t.pad.Iso97971={pad:function(r,e){r.concat(t.lib.WordArray.create([2147483648],1)),t.pad.ZeroPadding.pad(r,e)},unpad:function(r){t.pad.ZeroPadding.unpad(r),r.sigBytes--}},t.mode.OFB=function(){var r=t.lib.BlockCipherMode.extend(),e=r.Encryptor=r.extend({processBlock:function(t,r){var e=this._cipher,i=e.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),e.encryptBlock(o,0);for(var s=0;s>>8^255&n^99,o[e]=n,s[n]=e;var p=t[e],_=t[p],y=t[_],g=257*t[n]^16843008*n;a[e]=g<<24|g>>>8,c[e]=g<<16|g>>>16,h[e]=g<<8|g>>>24,l[e]=g;var g=16843009*y^65537*_^257*p^16843008*e;f[n]=g<<24|g>>>8,u[n]=g<<16|g>>>16,d[n]=g<<8|g>>>24,v[n]=g,e?(e=p^t[t[t[y^p]]],i^=t[t[i]]):e=i=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],_=n.AES=i.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,r=t.words,e=t.sigBytes/4,i=this._nRounds=e+6,n=4*(i+1),s=this._keySchedule=[],a=0;a6&&a%e==4&&(c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c]):(c=c<<8|c>>>24,c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c],c^=p[a/e|0]<<24),s[a]=s[a-e]^c}for(var h=this._invKeySchedule=[],l=0;l>>24]]^u[o[c>>>16&255]]^d[o[c>>>8&255]]^v[o[255&c]]}}},encryptBlock:function(t,r){this._doCryptBlock(t,r,this._keySchedule,a,c,h,l,o)},decryptBlock:function(t,r){var e=t[r+1];t[r+1]=t[r+3],t[r+3]=e,this._doCryptBlock(t,r,this._invKeySchedule,f,u,d,v,s);var e=t[r+1];t[r+1]=t[r+3],t[r+3]=e},_doCryptBlock:function(t,r,e,i,n,o,s,a){for(var c=this._nRounds,h=t[r]^e[0],l=t[r+1]^e[1],f=t[r+2]^e[2],u=t[r+3]^e[3],d=4,v=1;v>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&u]^e[d++],_=i[l>>>24]^n[f>>>16&255]^o[u>>>8&255]^s[255&h]^e[d++],y=i[f>>>24]^n[u>>>16&255]^o[h>>>8&255]^s[255&l]^e[d++],g=i[u>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^e[d++];h=p,l=_,f=y,u=g}var p=(a[h>>>24]<<24|a[l>>>16&255]<<16|a[f>>>8&255]<<8|a[255&u])^e[d++],_=(a[l>>>24]<<24|a[f>>>16&255]<<16|a[u>>>8&255]<<8|a[255&h])^e[d++],y=(a[f>>>24]<<24|a[u>>>16&255]<<16|a[h>>>8&255]<<8|a[255&l])^e[d++],g=(a[u>>>24]<<24|a[h>>>16&255]<<16|a[l>>>8&255]<<8|a[255&f])^e[d++];t[r]=p,t[r+1]=_,t[r+2]=y,t[r+3]=g},keySize:8});r.AES=i._createHelper(_)}(),function(){function r(t,r){var e=(this._lBlock>>>t^this._rBlock)&r;this._rBlock^=e,this._lBlock^=e<>>t^this._lBlock)&r;this._lBlock^=e,this._rBlock^=e<>>5]>>>31-n%32&1}for(var o=this._subKeys=[],s=0;s<16;s++){for(var a=o[s]=[],f=l[s],i=0;i<24;i++)a[i/6|0]|=e[(h[i]-1+f)%28]<<31-i%6,a[4+(i/6|0)]|=e[28+(h[i+24]-1+f)%28]<<31-i%6;a[0]=a[0]<<1|a[0]>>>31;for(var i=1;i<7;i++)a[i]=a[i]>>>4*(i-1)+3;a[7]=a[7]<<5|a[7]>>>27}for(var u=this._invSubKeys=[],i=0;i<16;i++)u[i]=o[15-i]},encryptBlock:function(t,r){this._doCryptBlock(t,r,this._subKeys)},decryptBlock:function(t,r){this._doCryptBlock(t,r,this._invSubKeys)},_doCryptBlock:function(t,i,n){this._lBlock=t[i],this._rBlock=t[i+1],r.call(this,4,252645135),r.call(this,16,65535),e.call(this,2,858993459),e.call(this,8,16711935),r.call(this,1,1431655765);for(var o=0;o<16;o++){for(var s=n[o],a=this._lBlock,c=this._rBlock,h=0,l=0;l<8;l++)h|=f[l][((c^s[l])&u[l])>>>0];this._lBlock=c,this._rBlock=a^h}var d=this._lBlock;this._lBlock=this._rBlock,this._rBlock=d,r.call(this,1,1431655765),e.call(this,8,16711935),e.call(this,2,858993459),r.call(this,16,65535),r.call(this,4,252645135),t[i]=this._lBlock,t[i+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});i.DES=s._createHelper(d);var v=a.TripleDES=s.extend({_doReset:function(){var t=this._key,r=t.words;this._des1=d.createEncryptor(o.create(r.slice(0,2))),this._des2=d.createEncryptor(o.create(r.slice(2,4))),this._des3=d.createEncryptor(o.create(r.slice(4,6)))},encryptBlock:function(t,r){this._des1.encryptBlock(t,r),this._des2.decryptBlock(t,r),this._des3.encryptBlock(t,r)},decryptBlock:function(t,r){this._des3.decryptBlock(t,r),this._des2.encryptBlock(t,r),this._des1.decryptBlock(t,r)},keySize:6,ivSize:2,blockSize:2});i.TripleDES=s._createHelper(v)}(),function(){function r(){for(var t=this._S,r=this._i,e=this._j,i=0,n=0;n<4;n++){r=(r+1)%256,e=(e+t[r])%256;var o=t[r];t[r]=t[e],t[e]=o,i|=t[(t[r]+t[e])%256]<<24-8*n}return this._i=r,this._j=e,i}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=o.RC4=n.extend({_doReset:function(){for(var t=this._key,r=t.words,e=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;for(var n=0,o=0;n<256;n++){var s=n%e,a=r[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+a)%256;var c=i[n];i[n]=i[o],i[o]=c}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=r.call(this)},keySize:8,ivSize:0});e.RC4=n._createHelper(s);var a=o.RC4Drop=s.extend({cfg:s.cfg.extend({drop:192}),_doReset:function(){s._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)r.call(this)}});e.RC4Drop=n._createHelper(a)}(),t.mode.CTRGladman=function(){function r(t){if(255===(t>>24&255)){var r=t>>16&255,e=t>>8&255,i=255&t;255===r?(r=0,255===e?(e=0,255===i?i=0:++i):++e):++r,t=0,t+=r<<16,t+=e<<8,t+=i}else t+=1<<24;return t}function e(t){return 0===(t[0]=r(t[0]))&&(t[1]=r(t[1])),t}var i=t.lib.BlockCipherMode.extend(),n=i.Encryptor=i.extend({processBlock:function(t,r){var i=this._cipher,n=i.blockSize,o=this._iv,s=this._counter;o&&(s=this._counter=o.slice(0),this._iv=void 0),e(s);var a=s.slice(0);i.encryptBlock(a,0);for(var c=0;c>>0>>0?1:0)|0,r[2]=r[2]+886263092+(r[1]>>>0>>0?1:0)|0,r[3]=r[3]+1295307597+(r[2]>>>0>>0?1:0)|0,r[4]=r[4]+3545052371+(r[3]>>>0>>0?1:0)|0,r[5]=r[5]+886263092+(r[4]>>>0>>0?1:0)|0,r[6]=r[6]+1295307597+(r[5]>>>0>>0?1:0)|0,r[7]=r[7]+3545052371+(r[6]>>>0>>0?1:0)|0,this._b=r[7]>>>0>>0?1:0;for(var e=0;e<8;e++){var i=t[e]+r[e],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,h=((4294901760&i)*i|0)+((65535&i)*i|0);c[e]=s^h}t[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,t[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,t[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,t[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,t[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,t[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,t[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,t[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=[],a=[],c=[],h=o.Rabbit=n.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,i=0;i<4;i++)t[i]=16711935&(t[i]<<8|t[i]>>>24)|4278255360&(t[i]<<24|t[i]>>>8);var n=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],o=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var i=0;i<4;i++)r.call(this);for(var i=0;i<8;i++)o[i]^=n[i+4&7];if(e){var s=e.words,a=s[0],c=s[1],h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;o[0]^=h,o[1]^=f,o[2]^=l,o[3]^=u,o[4]^=h,o[5]^=f,o[6]^=l,o[7]^=u;for(var i=0;i<4;i++)r.call(this)}},_doProcessBlock:function(t,e){var i=this._X;r.call(this),s[0]=i[0]^i[5]>>>16^i[3]<<16,s[1]=i[2]^i[7]>>>16^i[5]<<16,s[2]=i[4]^i[1]>>>16^i[7]<<16,s[3]=i[6]^i[3]>>>16^i[1]<<16;for(var n=0;n<4;n++)s[n]=16711935&(s[n]<<8|s[n]>>>24)|4278255360&(s[n]<<24|s[n]>>>8),t[e+n]^=s[n]},blockSize:4,ivSize:2});e.Rabbit=n._createHelper(h)}(),t.mode.CTR=function(){var r=t.lib.BlockCipherMode.extend(),e=r.Encryptor=r.extend({processBlock:function(t,r){var e=this._cipher,i=e.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);e.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var a=0;a>>0>>0?1:0)|0,r[2]=r[2]+886263092+(r[1]>>>0>>0?1:0)|0,r[3]=r[3]+1295307597+(r[2]>>>0>>0?1:0)|0,r[4]=r[4]+3545052371+(r[3]>>>0>>0?1:0)|0,r[5]=r[5]+886263092+(r[4]>>>0>>0?1:0)|0,r[6]=r[6]+1295307597+(r[5]>>>0>>0?1:0)|0,r[7]=r[7]+3545052371+(r[6]>>>0>>0?1:0)|0,this._b=r[7]>>>0>>0?1:0;for(var e=0;e<8;e++){var i=t[e]+r[e],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,h=((4294901760&i)*i|0)+((65535&i)*i|0);c[e]=s^h}t[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,t[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,t[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,t[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,t[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,t[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,t[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,t[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=[],a=[],c=[],h=o.RabbitLegacy=n.extend({_doReset:function(){var t=this._key.words,e=this.cfg.iv,i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var o=0;o<4;o++)r.call(this);for(var o=0;o<8;o++)n[o]^=i[o+4&7];if(e){var s=e.words,a=s[0],c=s[1],h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;n[0]^=h,n[1]^=f,n[2]^=l,n[3]^=u,n[4]^=h,n[5]^=f,n[6]^=l,n[7]^=u;for(var o=0;o<4;o++)r.call(this)}},_doProcessBlock:function(t,e){var i=this._X;r.call(this),s[0]=i[0]^i[5]>>>16^i[3]<<16,s[1]=i[2]^i[7]>>>16^i[5]<<16,s[2]=i[4]^i[1]>>>16^i[7]<<16,s[3]=i[6]^i[3]>>>16^i[1]<<16;for(var n=0;n<4;n++)s[n]=16711935&(s[n]<<8|s[n]>>>24)|4278255360&(s[n]<<24|s[n]>>>8),t[e+n]^=s[n]},blockSize:4,ivSize:2});e.RabbitLegacy=n._createHelper(h)}(),t.pad.ZeroPadding={pad:function(t,r){var e=4*r;t.clamp(),t.sigBytes+=e-(t.sigBytes%e||e)},unpad:function(t){for(var r=t.words,e=t.sigBytes-1;!(r[e>>>2]>>>24-e%4*8&255);)e--;t.sigBytes=e+1}},t});\n//# sourceMappingURL=crypto-js.min.js.map"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\module\\Crypto\\crypto-js.min.js"],"names":["t","r","exports","module","define","amd","CryptoJS","e","Object","create","prototype","i","n","lib","o","Base","extend","mixIn","hasOwnProperty","init","$super","apply","arguments","toString","clone","s","WordArray","words","sigBytes","length","c","stringify","concat","clamp","ceil","call","slice","random","a","push","enc","Hex","join","parse","parseInt","substr","h","Latin1","String","fromCharCode","charCodeAt","l","Utf8","decodeURIComponent","escape","Error","unescape","encodeURIComponent","f","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","_process","blockSize","max","_minBufferSize","min","_doProcessBlock","u","splice","Hasher","cfg","_doReset","update","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","Math","Base64","_map","charAt","_reverseMap","indexOf","abs","sin","MD5","_hash","d","v","p","_","y","g","B","w","k","S","m","x","b","H","z","A","C","D","floor","HmacMD5","SHA1","HmacSHA1","sqrt","pow","SHA256","HmacSHA256","Utf16","Utf16BE","Utf16LE","ArrayBuffer","Uint8Array","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","buffer","byteOffset","byteLength","RIPEMD160","R","E","M","F","HmacRIPEMD160","_hasher","_oKey","_iKey","PBKDF2","keySize","hasher","iterations","compute","EvpKDF","SHA224","HmacSHA224","x64","Word","high","low","toX32","SHA3","outputLength","_state","HmacSHA3","SHA512","P","W","O","U","I","K","X","L","j","N","T","Z","q","G","J","$","Q","V","Y","tt","rt","et","it","nt","ot","st","at","ct","ht","lt","ft","ut","dt","vt","pt","_t","yt","gt","Bt","wt","kt","St","mt","xt","bt","HmacSHA512","SHA384","HmacSHA384","Cipher","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","_xformMode","_key","process","ivSize","encrypt","decrypt","StreamCipher","mode","BlockCipherMode","Encryptor","Decryptor","_cipher","_iv","CBC","_prevBlock","processBlock","encryptBlock","decryptBlock","pad","Pkcs7","unpad","BlockCipher","padding","iv","_mode","__creator","CipherParams","formatter","format","OpenSSL","ciphertext","salt","SerializableCipher","key","algorithm","_parse","kdf","execute","PasswordBasedCipher","CFB","ECB","AnsiX923","Iso10126","Iso97971","ZeroPadding","OFB","_keystream","NoPadding","AES","_nRounds","_keyPriorReset","_keySchedule","_invKeySchedule","_doCryptBlock","_lBlock","_rBlock","DES","_subKeys","_invSubKeys","TripleDES","_des1","_des2","_des3","_S","_i","_j","RC4","RC4Drop","drop","CTRGladman","_counter","_X","_C","_b","Rabbit","CTR","RabbitLegacy"],"mappings":"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,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC;MAACqF,CAAC,GAAC3C,CAAC,CAAC1C,MAAM,CAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;MAACsF,CAAC,GAAC5C,CAAC,CAAC1C,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,CAAC;MAACuF,CAAC,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C,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EA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","sourceRoot":"/","sourcesContent":["!function(t,r){\"object\"==typeof exports?module.exports=exports=r():\"function\"==typeof define&&define.amd?define([],r):t.CryptoJS=r()}(this,function(){var t=t||function(t,r){var e=Object.create||function(){function t(){}return function(r){var e;return t.prototype=r,e=new t,t.prototype=null,e}}(),i={},n=i.lib={},o=n.Base=function(){return{extend:function(t){var r=e(this);return t&&r.mixIn(t),r.hasOwnProperty(\"init\")&&this.init!==r.init||(r.init=function(){r.$super.init.apply(this,arguments)}),r.init.prototype=r,r.$super=this,r},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r]);t.hasOwnProperty(\"toString\")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),s=n.WordArray=o.extend({init:function(t,e){t=this.words=t||[],e!=r?this.sigBytes=e:this.sigBytes=4*t.length},toString:function(t){return(t||c).stringify(this)},concat:function(t){var r=this.words,e=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;r[i+o>>>2]|=s<<24-(i+o)%4*8}else for(var o=0;o>>2]=e[o>>>2];return this.sigBytes+=n,this},clamp:function(){var r=this.words,e=this.sigBytes;r[e>>>2]&=4294967295<<32-e%4*8,r.length=t.ceil(e/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(r){for(var e,i=[],n=function(r){var r=r,e=987654321,i=4294967295;return function(){e=36969*(65535&e)+(e>>16)&i,r=18e3*(65535&r)+(r>>16)&i;var n=(e<<16)+r&i;return n/=4294967296,n+=.5,n*(t.random()>.5?1:-1)}},o=0;o>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new s.init(e,r/2)}},h=a.Latin1={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new s.init(e,r)}},l=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(h.stringify(t)))}catch(t){throw new Error(\"Malformed UTF-8 data\")}},parse:function(t){return h.parse(unescape(encodeURIComponent(t)))}},f=n.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(t){\"string\"==typeof t&&(t=l.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(r){var e=this._data,i=e.words,n=e.sigBytes,o=this.blockSize,a=4*o,c=n/a;c=r?t.ceil(c):t.max((0|c)-this._minBufferSize,0);var h=c*o,l=t.min(4*h,n);if(h){for(var f=0;f>>6-s%4*2;i[o>>>2]|=(a|c)<<24-o%4*8,o++}return n.create(i,o)}var e=t,i=e.lib,n=i.WordArray,o=e.enc;o.Base64={stringify:function(t){var r=t.words,e=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255,a=r[o+1>>>2]>>>24-(o+1)%4*8&255,c=r[o+2>>>2]>>>24-(o+2)%4*8&255,h=s<<16|a<<8|c,l=0;l<4&&o+.75*l>>6*(3-l)&63));var f=i.charAt(64);if(f)for(;n.length%4;)n.push(f);return n.join(\"\")},parse:function(t){var e=t.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>32-o)+r}function i(t,r,e,i,n,o,s){var a=t+(r&i|e&~i)+n+s;return(a<>>32-o)+r}function n(t,r,e,i,n,o,s){var a=t+(r^e^i)+n+s;return(a<>>32-o)+r}function o(t,r,e,i,n,o,s){var a=t+(e^(r|~i))+n+s;return(a<>>32-o)+r}var s=t,a=s.lib,c=a.WordArray,h=a.Hasher,l=s.algo,f=[];!function(){for(var t=0;t<64;t++)f[t]=4294967296*r.abs(r.sin(t+1))|0}();var u=l.MD5=h.extend({_doReset:function(){this._hash=new c.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,r){for(var s=0;s<16;s++){var a=r+s,c=t[a];t[a]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}var h=this._hash.words,l=t[r+0],u=t[r+1],d=t[r+2],v=t[r+3],p=t[r+4],_=t[r+5],y=t[r+6],g=t[r+7],B=t[r+8],w=t[r+9],k=t[r+10],S=t[r+11],m=t[r+12],x=t[r+13],b=t[r+14],H=t[r+15],z=h[0],A=h[1],C=h[2],D=h[3];z=e(z,A,C,D,l,7,f[0]),D=e(D,z,A,C,u,12,f[1]),C=e(C,D,z,A,d,17,f[2]),A=e(A,C,D,z,v,22,f[3]),z=e(z,A,C,D,p,7,f[4]),D=e(D,z,A,C,_,12,f[5]),C=e(C,D,z,A,y,17,f[6]),A=e(A,C,D,z,g,22,f[7]),z=e(z,A,C,D,B,7,f[8]),D=e(D,z,A,C,w,12,f[9]),C=e(C,D,z,A,k,17,f[10]),A=e(A,C,D,z,S,22,f[11]),z=e(z,A,C,D,m,7,f[12]),D=e(D,z,A,C,x,12,f[13]),C=e(C,D,z,A,b,17,f[14]),A=e(A,C,D,z,H,22,f[15]),z=i(z,A,C,D,u,5,f[16]),D=i(D,z,A,C,y,9,f[17]),C=i(C,D,z,A,S,14,f[18]),A=i(A,C,D,z,l,20,f[19]),z=i(z,A,C,D,_,5,f[20]),D=i(D,z,A,C,k,9,f[21]),C=i(C,D,z,A,H,14,f[22]),A=i(A,C,D,z,p,20,f[23]),z=i(z,A,C,D,w,5,f[24]),D=i(D,z,A,C,b,9,f[25]),C=i(C,D,z,A,v,14,f[26]),A=i(A,C,D,z,B,20,f[27]),z=i(z,A,C,D,x,5,f[28]),D=i(D,z,A,C,d,9,f[29]),C=i(C,D,z,A,g,14,f[30]),A=i(A,C,D,z,m,20,f[31]),z=n(z,A,C,D,_,4,f[32]),D=n(D,z,A,C,B,11,f[33]),C=n(C,D,z,A,S,16,f[34]),A=n(A,C,D,z,b,23,f[35]),z=n(z,A,C,D,u,4,f[36]),D=n(D,z,A,C,p,11,f[37]),C=n(C,D,z,A,g,16,f[38]),A=n(A,C,D,z,k,23,f[39]),z=n(z,A,C,D,x,4,f[40]),D=n(D,z,A,C,l,11,f[41]),C=n(C,D,z,A,v,16,f[42]),A=n(A,C,D,z,y,23,f[43]),z=n(z,A,C,D,w,4,f[44]),D=n(D,z,A,C,m,11,f[45]),C=n(C,D,z,A,H,16,f[46]),A=n(A,C,D,z,d,23,f[47]),z=o(z,A,C,D,l,6,f[48]),D=o(D,z,A,C,g,10,f[49]),C=o(C,D,z,A,b,15,f[50]),A=o(A,C,D,z,_,21,f[51]),z=o(z,A,C,D,m,6,f[52]),D=o(D,z,A,C,v,10,f[53]),C=o(C,D,z,A,k,15,f[54]),A=o(A,C,D,z,u,21,f[55]),z=o(z,A,C,D,B,6,f[56]),D=o(D,z,A,C,H,10,f[57]),C=o(C,D,z,A,y,15,f[58]),A=o(A,C,D,z,x,21,f[59]),z=o(z,A,C,D,p,6,f[60]),D=o(D,z,A,C,S,10,f[61]),C=o(C,D,z,A,d,15,f[62]),A=o(A,C,D,z,w,21,f[63]),h[0]=h[0]+z|0,h[1]=h[1]+A|0,h[2]=h[2]+C|0,h[3]=h[3]+D|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32;var o=r.floor(i/4294967296),s=i;e[(n+64>>>9<<4)+15]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),e[(n+64>>>9<<4)+14]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),t.sigBytes=4*(e.length+1),this._process();for(var a=this._hash,c=a.words,h=0;h<4;h++){var l=c[h];c[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return a},clone:function(){var t=h.clone.call(this);return t._hash=this._hash.clone(),t}});s.MD5=h._createHelper(u),s.HmacMD5=h._createHmacHelper(u)}(Math),function(){var r=t,e=r.lib,i=e.WordArray,n=e.Hasher,o=r.algo,s=[],a=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],a=e[3],c=e[4],h=0;h<80;h++){if(h<16)s[h]=0|t[r+h];else{var l=s[h-3]^s[h-8]^s[h-14]^s[h-16];s[h]=l<<1|l>>>31}var f=(i<<5|i>>>27)+c+s[h];f+=h<20?(n&o|~n&a)+1518500249:h<40?(n^o^a)+1859775393:h<60?(n&o|n&a|o&a)-1894007588:(n^o^a)-899497514,c=a,a=o,o=n<<30|n>>>2,n=i,i=f}e[0]=e[0]+i|0,e[1]=e[1]+n|0,e[2]=e[2]+o|0,e[3]=e[3]+a|0,e[4]=e[4]+c|0},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;return r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=Math.floor(e/4294967296),r[(i+64>>>9<<4)+15]=e,t.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});r.SHA1=n._createHelper(a),r.HmacSHA1=n._createHmacHelper(a)}(),function(r){var e=t,i=e.lib,n=i.WordArray,o=i.Hasher,s=e.algo,a=[],c=[];!function(){function t(t){for(var e=r.sqrt(t),i=2;i<=e;i++)if(!(t%i))return!1;return!0}function e(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)t(i)&&(n<8&&(a[n]=e(r.pow(i,.5))),c[n]=e(r.pow(i,1/3)),n++),i++}();var h=[],l=s.SHA256=o.extend({_doReset:function(){this._hash=new n.init(a.slice(0))},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],s=e[3],a=e[4],l=e[5],f=e[6],u=e[7],d=0;d<64;d++){if(d<16)h[d]=0|t[r+d];else{var v=h[d-15],p=(v<<25|v>>>7)^(v<<14|v>>>18)^v>>>3,_=h[d-2],y=(_<<15|_>>>17)^(_<<13|_>>>19)^_>>>10;h[d]=p+h[d-7]+y+h[d-16]}var g=a&l^~a&f,B=i&n^i&o^n&o,w=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),k=(a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25),S=u+k+g+c[d]+h[d],m=w+B;u=f,f=l,l=a,a=s+S|0,s=o,o=n,n=i,i=S+m|0}e[0]=e[0]+i|0,e[1]=e[1]+n|0,e[2]=e[2]+o|0,e[3]=e[3]+s|0,e[4]=e[4]+a|0,e[5]=e[5]+l|0,e[6]=e[6]+f|0,e[7]=e[7]+u|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[(n+64>>>9<<4)+14]=r.floor(i/4294967296),e[(n+64>>>9<<4)+15]=i,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(l),e.HmacSHA256=o._createHmacHelper(l)}(Math),function(){function r(t){return t<<8&4278255360|t>>>8&16711935}var e=t,i=e.lib,n=i.WordArray,o=e.enc;o.Utf16=o.Utf16BE={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>1]|=t.charCodeAt(i)<<16-i%2*16;return n.create(e,2*r)}};o.Utf16LE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join(\"\")},parse:function(t){for(var e=t.length,i=[],o=0;o>>1]|=r(t.charCodeAt(o)<<16-o%2*16);return n.create(i,2*e)}}}(),function(){if(\"function\"==typeof ArrayBuffer){var r=t,e=r.lib,i=e.WordArray,n=i.init,o=i.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||\"undefined\"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,e=[],i=0;i>>2]|=t[i]<<24-i%4*8;n.call(this,e,r)}else n.apply(this,arguments)};o.prototype=i}}(),function(r){function e(t,r,e){return t^r^e}function i(t,r,e){return t&r|~t&e}function n(t,r,e){return(t|~r)^e}function o(t,r,e){return t&e|r&~e}function s(t,r,e){return t^(r|~e)}function a(t,r){return t<>>32-r}var c=t,h=c.lib,l=h.WordArray,f=h.Hasher,u=c.algo,d=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),v=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),p=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),_=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=l.create([0,1518500249,1859775393,2400959708,2840853838]),g=l.create([1352829926,1548603684,1836072691,2053994217,0]),B=u.RIPEMD160=f.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,r){for(var c=0;c<16;c++){var h=r+c,l=t[h];t[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}var f,u,B,w,k,S,m,x,b,H,z=this._hash.words,A=y.words,C=g.words,D=d.words,R=v.words,E=p.words,M=_.words;S=f=z[0],m=u=z[1],x=B=z[2],b=w=z[3],H=k=z[4];for(var F,c=0;c<80;c+=1)F=f+t[r+D[c]]|0,F+=c<16?e(u,B,w)+A[0]:c<32?i(u,B,w)+A[1]:c<48?n(u,B,w)+A[2]:c<64?o(u,B,w)+A[3]:s(u,B,w)+A[4],F|=0,F=a(F,E[c]),F=F+k|0,f=k,k=w,w=a(B,10),B=u,u=F,F=S+t[r+R[c]]|0,F+=c<16?s(m,x,b)+C[0]:c<32?o(m,x,b)+C[1]:c<48?n(m,x,b)+C[2]:c<64?i(m,x,b)+C[3]:e(m,x,b)+C[4],F|=0,F=a(F,M[c]),F=F+H|0,S=H,H=b,b=a(x,10),x=m,m=F;F=z[1]+B+b|0,z[1]=z[2]+w+H|0,z[2]=z[3]+k+S|0,z[3]=z[4]+f+m|0,z[4]=z[0]+u+x|0,z[0]=F},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8),t.sigBytes=4*(r.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var a=o[s];o[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return n},clone:function(){var t=f.clone.call(this);return t._hash=this._hash.clone(),t}});c.RIPEMD160=f._createHelper(B),c.HmacRIPEMD160=f._createHmacHelper(B)}(Math),function(){var r=t,e=r.lib,i=e.Base,n=r.enc,o=n.Utf8,s=r.algo;s.HMAC=i.extend({init:function(t,r){t=this._hasher=new t.init,\"string\"==typeof r&&(r=o.parse(r));var e=t.blockSize,i=4*e;r.sigBytes>i&&(r=t.finalize(r)),r.clamp();for(var n=this._oKey=r.clone(),s=this._iKey=r.clone(),a=n.words,c=s.words,h=0;h>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8);var a=e[n];a.high^=s,a.low^=o}for(var c=0;c<24;c++){for(var d=0;d<5;d++){for(var v=0,p=0,_=0;_<5;_++){var a=e[d+5*_];v^=a.high,p^=a.low}var y=u[d];y.high=v,y.low=p}for(var d=0;d<5;d++)for(var g=u[(d+4)%5],B=u[(d+1)%5],w=B.high,k=B.low,v=g.high^(w<<1|k>>>31),p=g.low^(k<<1|w>>>31),_=0;_<5;_++){var a=e[d+5*_];a.high^=v,a.low^=p}for(var S=1;S<25;S++){var a=e[S],m=a.high,x=a.low,b=h[S];if(b<32)var v=m<>>32-b,p=x<>>32-b;else var v=x<>>64-b,p=m<>>64-b;var H=u[l[S]];H.high=v,H.low=p}var z=u[0],A=e[0];z.high=A.high,z.low=A.low;for(var d=0;d<5;d++)for(var _=0;_<5;_++){var S=d+5*_,a=e[S],C=u[S],D=u[(d+1)%5+5*_],R=u[(d+2)%5+5*_];a.high=C.high^~D.high&R.high,a.low=C.low^~D.low&R.low}var a=e[0],E=f[c];a.high^=E.high,a.low^=E.low}},_doFinalize:function(){var t=this._data,e=t.words,i=(8*this._nDataBytes,8*t.sigBytes),o=32*this.blockSize;e[i>>>5]|=1<<24-i%32,e[(r.ceil((i+1)/o)*o>>>5)-1]|=128,t.sigBytes=4*e.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,c=a/8,h=[],l=0;l>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),h.push(d),h.push(u)}return new n.init(h,a)},clone:function(){for(var t=o.clone.call(this),r=t._state=this._state.slice(0),e=0;e<25;e++)r[e]=r[e].clone();return t}});e.SHA3=o._createHelper(d),e.HmacSHA3=o._createHmacHelper(d)}(Math),function(){function r(){return s.create.apply(s,arguments)}var e=t,i=e.lib,n=i.Hasher,o=e.x64,s=o.Word,a=o.WordArray,c=e.algo,h=[r(1116352408,3609767458),r(1899447441,602891725),r(3049323471,3964484399),r(3921009573,2173295548),r(961987163,4081628472),r(1508970993,3053834265),r(2453635748,2937671579),r(2870763221,3664609560),r(3624381080,2734883394),r(310598401,1164996542),r(607225278,1323610764),r(1426881987,3590304994),r(1925078388,4068182383),r(2162078206,991336113),r(2614888103,633803317),r(3248222580,3479774868),r(3835390401,2666613458),r(4022224774,944711139),r(264347078,2341262773),r(604807628,2007800933),r(770255983,1495990901),r(1249150122,1856431235),r(1555081692,3175218132),r(1996064986,2198950837),r(2554220882,3999719339),r(2821834349,766784016),r(2952996808,2566594879),r(3210313671,3203337956),r(3336571891,1034457026),r(3584528711,2466948901),r(113926993,3758326383),r(338241895,168717936),r(666307205,1188179964),r(773529912,1546045734),r(1294757372,1522805485),r(1396182291,2643833823),r(1695183700,2343527390),r(1986661051,1014477480),r(2177026350,1206759142),r(2456956037,344077627),r(2730485921,1290863460),r(2820302411,3158454273),r(3259730800,3505952657),r(3345764771,106217008),r(3516065817,3606008344),r(3600352804,1432725776),r(4094571909,1467031594),r(275423344,851169720),r(430227734,3100823752),r(506948616,1363258195),r(659060556,3750685593),r(883997877,3785050280),r(958139571,3318307427),r(1322822218,3812723403),r(1537002063,2003034995),r(1747873779,3602036899),r(1955562222,1575990012),r(2024104815,1125592928),r(2227730452,2716904306),r(2361852424,442776044),r(2428436474,593698344),r(2756734187,3733110249),r(3204031479,2999351573),r(3329325298,3815920427),r(3391569614,3928383900),r(3515267271,566280711),r(3940187606,3454069534),r(4118630271,4000239992),r(116418474,1914138554),r(174292421,2731055270),r(289380356,3203993006),r(460393269,320620315),r(685471733,587496836),r(852142971,1086792851),r(1017036298,365543100),r(1126000580,2618297676),r(1288033470,3409855158),r(1501505948,4234509866),r(1607167915,987167468),r(1816402316,1246189591)],l=[];!function(){for(var t=0;t<80;t++)l[t]=r()}();var f=c.SHA512=n.extend({_doReset:function(){this._hash=new a.init([new s.init(1779033703,4089235720),new s.init(3144134277,2227873595),new s.init(1013904242,4271175723),new s.init(2773480762,1595750129),new s.init(1359893119,2917565137),new s.init(2600822924,725511199),new s.init(528734635,4215389547),new s.init(1541459225,327033209)])},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],s=e[3],a=e[4],c=e[5],f=e[6],u=e[7],d=i.high,v=i.low,p=n.high,_=n.low,y=o.high,g=o.low,B=s.high,w=s.low,k=a.high,S=a.low,m=c.high,x=c.low,b=f.high,H=f.low,z=u.high,A=u.low,C=d,D=v,R=p,E=_,M=y,F=g,P=B,W=w,O=k,U=S,I=m,K=x,X=b,L=H,j=z,N=A,T=0;T<80;T++){var Z=l[T];if(T<16)var q=Z.high=0|t[r+2*T],G=Z.low=0|t[r+2*T+1];else{var J=l[T-15],$=J.high,Q=J.low,V=($>>>1|Q<<31)^($>>>8|Q<<24)^$>>>7,Y=(Q>>>1|$<<31)^(Q>>>8|$<<24)^(Q>>>7|$<<25),tt=l[T-2],rt=tt.high,et=tt.low,it=(rt>>>19|et<<13)^(rt<<3|et>>>29)^rt>>>6,nt=(et>>>19|rt<<13)^(et<<3|rt>>>29)^(et>>>6|rt<<26),ot=l[T-7],st=ot.high,at=ot.low,ct=l[T-16],ht=ct.high,lt=ct.low,G=Y+at,q=V+st+(G>>>0>>0?1:0),G=G+nt,q=q+it+(G>>>0>>0?1:0),G=G+lt,q=q+ht+(G>>>0>>0?1:0);Z.high=q,Z.low=G}var ft=O&I^~O&X,ut=U&K^~U&L,dt=C&R^C&M^R&M,vt=D&E^D&F^E&F,pt=(C>>>28|D<<4)^(C<<30|D>>>2)^(C<<25|D>>>7),_t=(D>>>28|C<<4)^(D<<30|C>>>2)^(D<<25|C>>>7),yt=(O>>>14|U<<18)^(O>>>18|U<<14)^(O<<23|U>>>9),gt=(U>>>14|O<<18)^(U>>>18|O<<14)^(U<<23|O>>>9),Bt=h[T],wt=Bt.high,kt=Bt.low,St=N+gt,mt=j+yt+(St>>>0>>0?1:0),St=St+ut,mt=mt+ft+(St>>>0>>0?1:0),St=St+kt,mt=mt+wt+(St>>>0>>0?1:0),St=St+G,mt=mt+q+(St>>>0>>0?1:0),xt=_t+vt,bt=pt+dt+(xt>>>0<_t>>>0?1:0);j=X,N=L,X=I,L=K,I=O,K=U,U=W+St|0,O=P+mt+(U>>>0>>0?1:0)|0,P=M,W=F,M=R,F=E,R=C,E=D,D=St+xt|0,C=mt+bt+(D>>>0>>0?1:0)|0}v=i.low=v+D,i.high=d+C+(v>>>0>>0?1:0),_=n.low=_+E,n.high=p+R+(_>>>0>>0?1:0),g=o.low=g+F,o.high=y+M+(g>>>0>>0?1:0),w=s.low=w+W,s.high=B+P+(w>>>0>>0?1:0),S=a.low=S+U,a.high=k+O+(S>>>0>>0?1:0),x=c.low=x+K,c.high=m+I+(x>>>0>>0?1:0),H=f.low=H+L,f.high=b+X+(H>>>0>>0?1:0),A=u.low=A+N,u.high=z+j+(A>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32,r[(i+128>>>10<<5)+30]=Math.floor(e/4294967296),r[(i+128>>>10<<5)+31]=e,t.sigBytes=4*r.length,this._process();var n=this._hash.toX32();return n},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});e.SHA512=n._createHelper(f),e.HmacSHA512=n._createHmacHelper(f)}(),function(){var r=t,e=r.x64,i=e.Word,n=e.WordArray,o=r.algo,s=o.SHA512,a=o.SHA384=s.extend({_doReset:function(){this._hash=new n.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var t=s._doFinalize.call(this);return t.sigBytes-=16,t}});r.SHA384=s._createHelper(a),r.HmacSHA384=s._createHmacHelper(a)}(),t.lib.Cipher||function(r){var e=t,i=e.lib,n=i.Base,o=i.WordArray,s=i.BufferedBlockAlgorithm,a=e.enc,c=(a.Utf8,a.Base64),h=e.algo,l=h.EvpKDF,f=i.Cipher=s.extend({cfg:n.extend(),createEncryptor:function(t,r){return this.create(this._ENC_XFORM_MODE,t,r)},createDecryptor:function(t,r){return this.create(this._DEC_XFORM_MODE,t,r)},init:function(t,r,e){this.cfg=this.cfg.extend(e),this._xformMode=t,this._key=r,this.reset()},reset:function(){s.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){t&&this._append(t);var r=this._doFinalize();return r},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return\"string\"==typeof t?m:w}return function(r){return{encrypt:function(e,i,n){return t(i).encrypt(r,e,i,n)},decrypt:function(e,i,n){return t(i).decrypt(r,e,i,n)}}}}()}),u=(i.StreamCipher=f.extend({_doFinalize:function(){var t=this._process(!0);return t},blockSize:1}),e.mode={}),d=i.BlockCipherMode=n.extend({createEncryptor:function(t,r){return this.Encryptor.create(t,r)},createDecryptor:function(t,r){return this.Decryptor.create(t,r)},init:function(t,r){this._cipher=t,this._iv=r}}),v=u.CBC=function(){function t(t,e,i){var n=this._iv;if(n){var o=n;this._iv=r}else var o=this._prevBlock;for(var s=0;s>>2];t.sigBytes-=r}},y=(i.BlockCipher=f.extend({cfg:f.cfg.extend({mode:v,padding:_}),reset:function(){f.reset.call(this);var t=this.cfg,r=t.iv,e=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var i=e.createEncryptor;else{var i=e.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==i?this._mode.init(this,r&&r.words):(this._mode=i.call(e,this,r&&r.words),this._mode.__creator=i)},_doProcessBlock:function(t,r){this._mode.processBlock(t,r)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var r=this._process(!0)}else{var r=this._process(!0);t.unpad(r)}return r},blockSize:4}),i.CipherParams=n.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),g=e.format={},B=g.OpenSSL={stringify:function(t){var r=t.ciphertext,e=t.salt;if(e)var i=o.create([1398893684,1701076831]).concat(e).concat(r);else var i=r;return i.toString(c)},parse:function(t){var r=c.parse(t),e=r.words;if(1398893684==e[0]&&1701076831==e[1]){var i=o.create(e.slice(2,4));e.splice(0,4),r.sigBytes-=16}return y.create({ciphertext:r,salt:i})}},w=i.SerializableCipher=n.extend({cfg:n.extend({format:B}),encrypt:function(t,r,e,i){i=this.cfg.extend(i);var n=t.createEncryptor(e,i),o=n.finalize(r),s=n.cfg;return y.create({ciphertext:o,key:e,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,r,e,i){i=this.cfg.extend(i),r=this._parse(r,i.format);var n=t.createDecryptor(e,i).finalize(r.ciphertext);return n},_parse:function(t,r){return\"string\"==typeof t?r.parse(t,this):t}}),k=e.kdf={},S=k.OpenSSL={execute:function(t,r,e,i){i||(i=o.random(8));var n=l.create({keySize:r+e}).compute(t,i),s=o.create(n.words.slice(r),4*e);return n.sigBytes=4*r,y.create({key:n,iv:s,salt:i})}},m=i.PasswordBasedCipher=w.extend({cfg:w.cfg.extend({kdf:S}),encrypt:function(t,r,e,i){i=this.cfg.extend(i);var n=i.kdf.execute(e,t.keySize,t.ivSize);i.iv=n.iv;var o=w.encrypt.call(this,t,r,n.key,i);return o.mixIn(n),o},decrypt:function(t,r,e,i){i=this.cfg.extend(i),r=this._parse(r,i.format);var n=i.kdf.execute(e,t.keySize,t.ivSize,r.salt);i.iv=n.iv;var o=w.decrypt.call(this,t,r,n.key,i);return o}})}(),t.mode.CFB=function(){function r(t,r,e,i){var n=this._iv;if(n){var o=n.slice(0);this._iv=void 0}else var o=this._prevBlock;i.encryptBlock(o,0);for(var s=0;s>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},t.pad.Iso10126={pad:function(r,e){var i=4*e,n=i-r.sigBytes%i;r.concat(t.lib.WordArray.random(n-1)).concat(t.lib.WordArray.create([n<<24],1))},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},t.pad.Iso97971={pad:function(r,e){r.concat(t.lib.WordArray.create([2147483648],1)),t.pad.ZeroPadding.pad(r,e)},unpad:function(r){t.pad.ZeroPadding.unpad(r),r.sigBytes--}},t.mode.OFB=function(){var r=t.lib.BlockCipherMode.extend(),e=r.Encryptor=r.extend({processBlock:function(t,r){var e=this._cipher,i=e.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),e.encryptBlock(o,0);for(var s=0;s>>8^255&n^99,o[e]=n,s[n]=e;var p=t[e],_=t[p],y=t[_],g=257*t[n]^16843008*n;a[e]=g<<24|g>>>8,c[e]=g<<16|g>>>16,h[e]=g<<8|g>>>24,l[e]=g;var g=16843009*y^65537*_^257*p^16843008*e;f[n]=g<<24|g>>>8,u[n]=g<<16|g>>>16,d[n]=g<<8|g>>>24,v[n]=g,e?(e=p^t[t[t[y^p]]],i^=t[t[i]]):e=i=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],_=n.AES=i.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,r=t.words,e=t.sigBytes/4,i=this._nRounds=e+6,n=4*(i+1),s=this._keySchedule=[],a=0;a6&&a%e==4&&(c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c]):(c=c<<8|c>>>24,c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c],c^=p[a/e|0]<<24),s[a]=s[a-e]^c}for(var h=this._invKeySchedule=[],l=0;l>>24]]^u[o[c>>>16&255]]^d[o[c>>>8&255]]^v[o[255&c]]}}},encryptBlock:function(t,r){this._doCryptBlock(t,r,this._keySchedule,a,c,h,l,o)},decryptBlock:function(t,r){var e=t[r+1];t[r+1]=t[r+3],t[r+3]=e,this._doCryptBlock(t,r,this._invKeySchedule,f,u,d,v,s);var e=t[r+1];t[r+1]=t[r+3],t[r+3]=e},_doCryptBlock:function(t,r,e,i,n,o,s,a){for(var c=this._nRounds,h=t[r]^e[0],l=t[r+1]^e[1],f=t[r+2]^e[2],u=t[r+3]^e[3],d=4,v=1;v>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&u]^e[d++],_=i[l>>>24]^n[f>>>16&255]^o[u>>>8&255]^s[255&h]^e[d++],y=i[f>>>24]^n[u>>>16&255]^o[h>>>8&255]^s[255&l]^e[d++],g=i[u>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^e[d++];h=p,l=_,f=y,u=g}var p=(a[h>>>24]<<24|a[l>>>16&255]<<16|a[f>>>8&255]<<8|a[255&u])^e[d++],_=(a[l>>>24]<<24|a[f>>>16&255]<<16|a[u>>>8&255]<<8|a[255&h])^e[d++],y=(a[f>>>24]<<24|a[u>>>16&255]<<16|a[h>>>8&255]<<8|a[255&l])^e[d++],g=(a[u>>>24]<<24|a[h>>>16&255]<<16|a[l>>>8&255]<<8|a[255&f])^e[d++];t[r]=p,t[r+1]=_,t[r+2]=y,t[r+3]=g},keySize:8});r.AES=i._createHelper(_)}(),function(){function r(t,r){var e=(this._lBlock>>>t^this._rBlock)&r;this._rBlock^=e,this._lBlock^=e<>>t^this._lBlock)&r;this._lBlock^=e,this._rBlock^=e<>>5]>>>31-n%32&1}for(var o=this._subKeys=[],s=0;s<16;s++){for(var a=o[s]=[],f=l[s],i=0;i<24;i++)a[i/6|0]|=e[(h[i]-1+f)%28]<<31-i%6,a[4+(i/6|0)]|=e[28+(h[i+24]-1+f)%28]<<31-i%6;a[0]=a[0]<<1|a[0]>>>31;for(var i=1;i<7;i++)a[i]=a[i]>>>4*(i-1)+3;a[7]=a[7]<<5|a[7]>>>27}for(var u=this._invSubKeys=[],i=0;i<16;i++)u[i]=o[15-i]},encryptBlock:function(t,r){this._doCryptBlock(t,r,this._subKeys)},decryptBlock:function(t,r){this._doCryptBlock(t,r,this._invSubKeys)},_doCryptBlock:function(t,i,n){this._lBlock=t[i],this._rBlock=t[i+1],r.call(this,4,252645135),r.call(this,16,65535),e.call(this,2,858993459),e.call(this,8,16711935),r.call(this,1,1431655765);for(var o=0;o<16;o++){for(var s=n[o],a=this._lBlock,c=this._rBlock,h=0,l=0;l<8;l++)h|=f[l][((c^s[l])&u[l])>>>0];this._lBlock=c,this._rBlock=a^h}var d=this._lBlock;this._lBlock=this._rBlock,this._rBlock=d,r.call(this,1,1431655765),e.call(this,8,16711935),e.call(this,2,858993459),r.call(this,16,65535),r.call(this,4,252645135),t[i]=this._lBlock,t[i+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});i.DES=s._createHelper(d);var v=a.TripleDES=s.extend({_doReset:function(){var t=this._key,r=t.words;this._des1=d.createEncryptor(o.create(r.slice(0,2))),this._des2=d.createEncryptor(o.create(r.slice(2,4))),this._des3=d.createEncryptor(o.create(r.slice(4,6)))},encryptBlock:function(t,r){this._des1.encryptBlock(t,r),this._des2.decryptBlock(t,r),this._des3.encryptBlock(t,r)},decryptBlock:function(t,r){this._des3.decryptBlock(t,r),this._des2.encryptBlock(t,r),this._des1.decryptBlock(t,r)},keySize:6,ivSize:2,blockSize:2});i.TripleDES=s._createHelper(v)}(),function(){function r(){for(var t=this._S,r=this._i,e=this._j,i=0,n=0;n<4;n++){r=(r+1)%256,e=(e+t[r])%256;var o=t[r];t[r]=t[e],t[e]=o,i|=t[(t[r]+t[e])%256]<<24-8*n}return this._i=r,this._j=e,i}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=o.RC4=n.extend({_doReset:function(){for(var t=this._key,r=t.words,e=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;for(var n=0,o=0;n<256;n++){var s=n%e,a=r[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+a)%256;var c=i[n];i[n]=i[o],i[o]=c}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=r.call(this)},keySize:8,ivSize:0});e.RC4=n._createHelper(s);var a=o.RC4Drop=s.extend({cfg:s.cfg.extend({drop:192}),_doReset:function(){s._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)r.call(this)}});e.RC4Drop=n._createHelper(a)}(),t.mode.CTRGladman=function(){function r(t){if(255===(t>>24&255)){var r=t>>16&255,e=t>>8&255,i=255&t;255===r?(r=0,255===e?(e=0,255===i?i=0:++i):++e):++r,t=0,t+=r<<16,t+=e<<8,t+=i}else t+=1<<24;return t}function e(t){return 0===(t[0]=r(t[0]))&&(t[1]=r(t[1])),t}var i=t.lib.BlockCipherMode.extend(),n=i.Encryptor=i.extend({processBlock:function(t,r){var i=this._cipher,n=i.blockSize,o=this._iv,s=this._counter;o&&(s=this._counter=o.slice(0),this._iv=void 0),e(s);var a=s.slice(0);i.encryptBlock(a,0);for(var c=0;c>>0>>0?1:0)|0,r[2]=r[2]+886263092+(r[1]>>>0>>0?1:0)|0,r[3]=r[3]+1295307597+(r[2]>>>0>>0?1:0)|0,r[4]=r[4]+3545052371+(r[3]>>>0>>0?1:0)|0,r[5]=r[5]+886263092+(r[4]>>>0>>0?1:0)|0,r[6]=r[6]+1295307597+(r[5]>>>0>>0?1:0)|0,r[7]=r[7]+3545052371+(r[6]>>>0>>0?1:0)|0,this._b=r[7]>>>0>>0?1:0;for(var e=0;e<8;e++){var i=t[e]+r[e],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,h=((4294901760&i)*i|0)+((65535&i)*i|0);c[e]=s^h}t[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,t[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,t[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,t[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,t[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,t[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,t[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,t[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=[],a=[],c=[],h=o.Rabbit=n.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,i=0;i<4;i++)t[i]=16711935&(t[i]<<8|t[i]>>>24)|4278255360&(t[i]<<24|t[i]>>>8);var n=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],o=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var i=0;i<4;i++)r.call(this);for(var i=0;i<8;i++)o[i]^=n[i+4&7];if(e){var s=e.words,a=s[0],c=s[1],h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;o[0]^=h,o[1]^=f,o[2]^=l,o[3]^=u,o[4]^=h,o[5]^=f,o[6]^=l,o[7]^=u;for(var i=0;i<4;i++)r.call(this)}},_doProcessBlock:function(t,e){var i=this._X;r.call(this),s[0]=i[0]^i[5]>>>16^i[3]<<16,s[1]=i[2]^i[7]>>>16^i[5]<<16,s[2]=i[4]^i[1]>>>16^i[7]<<16,s[3]=i[6]^i[3]>>>16^i[1]<<16;for(var n=0;n<4;n++)s[n]=16711935&(s[n]<<8|s[n]>>>24)|4278255360&(s[n]<<24|s[n]>>>8),t[e+n]^=s[n]},blockSize:4,ivSize:2});e.Rabbit=n._createHelper(h)}(),t.mode.CTR=function(){var r=t.lib.BlockCipherMode.extend(),e=r.Encryptor=r.extend({processBlock:function(t,r){var e=this._cipher,i=e.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);e.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var a=0;a>>0>>0?1:0)|0,r[2]=r[2]+886263092+(r[1]>>>0>>0?1:0)|0,r[3]=r[3]+1295307597+(r[2]>>>0>>0?1:0)|0,r[4]=r[4]+3545052371+(r[3]>>>0>>0?1:0)|0,r[5]=r[5]+886263092+(r[4]>>>0>>0?1:0)|0,r[6]=r[6]+1295307597+(r[5]>>>0>>0?1:0)|0,r[7]=r[7]+3545052371+(r[6]>>>0>>0?1:0)|0,this._b=r[7]>>>0>>0?1:0;for(var e=0;e<8;e++){var i=t[e]+r[e],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,h=((4294901760&i)*i|0)+((65535&i)*i|0);c[e]=s^h}t[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,t[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,t[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,t[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,t[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,t[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,t[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,t[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=[],a=[],c=[],h=o.RabbitLegacy=n.extend({_doReset:function(){var t=this._key.words,e=this.cfg.iv,i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var o=0;o<4;o++)r.call(this);for(var o=0;o<8;o++)n[o]^=i[o+4&7];if(e){var s=e.words,a=s[0],c=s[1],h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;n[0]^=h,n[1]^=f,n[2]^=l,n[3]^=u,n[4]^=h,n[5]^=f,n[6]^=l,n[7]^=u;for(var o=0;o<4;o++)r.call(this)}},_doProcessBlock:function(t,e){var i=this._X;r.call(this),s[0]=i[0]^i[5]>>>16^i[3]<<16,s[1]=i[2]^i[7]>>>16^i[5]<<16,s[2]=i[4]^i[1]>>>16^i[7]<<16,s[3]=i[6]^i[3]>>>16^i[1]<<16;for(var n=0;n<4;n++)s[n]=16711935&(s[n]<<8|s[n]>>>24)|4278255360&(s[n]<<24|s[n]>>>8),t[e+n]^=s[n]},blockSize:4,ivSize:2});e.RabbitLegacy=n._createHelper(h)}(),t.pad.ZeroPadding={pad:function(t,r){var e=4*r;t.clamp(),t.sigBytes+=e-(t.sigBytes%e||e)},unpad:function(t){for(var r=t.words,e=t.sigBytes-1;!(r[e>>>2]>>>24-e%4*8&255);)e--;t.sigBytes=e+1}},t});\r\n//# sourceMappingURL=crypto-js.min.js.map"]} \ 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 new file mode 100644 index 0000000..4026ad8 --- /dev/null +++ b/library/imports/e6/e6f3c660-cfa7-4368-b36d-609458c5678b.json @@ -0,0 +1,28 @@ +{ + "__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/e8/e83c98d2-86c2-4cfd-8be8-77e11e9dca04.json b/library/imports/e8/e83c98d2-86c2-4cfd-8be8-77e11e9dca04.json new file mode 100644 index 0000000..c712322 --- /dev/null +++ b/library/imports/e8/e83c98d2-86c2-4cfd-8be8-77e11e9dca04.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "cost_9", + "texture": "621ae85f-f4e4-48a1-9e97-1cdfd769677d", + "atlas": "", + "rect": [ + 0, + 0, + 27, + 39 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 27, + 39 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/e8/e8b23e56-8d10-44ad-a8f0-2e637cc45533.js b/library/imports/e8/e8b23e56-8d10-44ad-a8f0-2e637cc45533.js index 1dc8e4f..24fd759 100644 --- a/library/imports/e8/e8b23e56-8d10-44ad-a8f0-2e637cc45533.js +++ b/library/imports/e8/e8b23e56-8d10-44ad-a8f0-2e637cc45533.js @@ -2,6 +2,7 @@ cc._RF.push(module, 'e8b235WjRBErajwLmN8xFUz', 'GameScene'); // Script/GameScene.js + // cc.Class({ // extends: cc.Component, // properties: { @@ -32,15 +33,21 @@ cc._RF.push(module, 'e8b235WjRBErajwLmN8xFUz', 'GameScene'); // daojishi: cc.Label, // pause_anniu: cc.Sprite, // mask: cc.Node, + // flashUI: { // default: null, // type: cc.SpriteAtlas // }, // }, + // onLoad() { + // }, + // update(dt) { + // }, + // }); "use strict"; diff --git a/library/imports/e8/e8b23e56-8d10-44ad-a8f0-2e637cc45533.js.map b/library/imports/e8/e8b23e56-8d10-44ad-a8f0-2e637cc45533.js.map index 7b1d114..34b992f 100644 --- a/library/imports/e8/e8b23e56-8d10-44ad-a8f0-2e637cc45533.js.map +++ b/library/imports/e8/e8b23e56-8d10-44ad-a8f0-2e637cc45533.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\GameScene.js"],"names":[],"mappings":";;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAGA;AAEA;AAEA;AAEA","sourceRoot":"/","sourcesContent":["\r\n// cc.Class({\r\n// extends: cc.Component,\r\n// properties: {\r\n// localTest: {\r\n// default: false,\r\n// tooltip: '本地测试时勾选,避免tz_url和Configure报错,提交前勾掉'\r\n// },\r\n// clientTest: {\r\n// default: false,\r\n// tooltip: '客户端测试时勾选,展示版本标记方便测试区分,上线前勾掉'\r\n// },\r\n// clientTestVersion: {\r\n// default: '',\r\n// tooltip: '版本标记'\r\n// },\r\n// testVersion: cc.Label,\r\n// score: cc.Label,\r\n// double_hit: cc.Node,\r\n// add: cc.Node,\r\n// add2: cc.Node,\r\n// double_title: cc.Node,\r\n// count_time: cc.Node,\r\n// beginNode: cc.Node,\r\n// ball_nomal: [cc.SpriteFrame],\r\n// bg_nomal: [cc.SpriteFrame],\r\n// ball_light: [cc.SpriteFrame],\r\n// kuang_Frame: [cc.SpriteFrame],\r\n// daojishi: cc.Label,\r\n// pause_anniu: cc.Sprite,\r\n// mask: cc.Node,\r\n\r\n// flashUI: {\r\n// default: null,\r\n// type: cc.SpriteAtlas\r\n// },\r\n// },\r\n\r\n// onLoad() {\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\\GameScene.js"],"names":[],"mappings":";;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAGA;;AAEA;;AAEA;;AAEA;AAAA","sourceRoot":"/","sourcesContent":["\r\n// cc.Class({\r\n// extends: cc.Component,\r\n// properties: {\r\n// localTest: {\r\n// default: false,\r\n// tooltip: '本地测试时勾选,避免tz_url和Configure报错,提交前勾掉'\r\n// },\r\n// clientTest: {\r\n// default: false,\r\n// tooltip: '客户端测试时勾选,展示版本标记方便测试区分,上线前勾掉'\r\n// },\r\n// clientTestVersion: {\r\n// default: '',\r\n// tooltip: '版本标记'\r\n// },\r\n// testVersion: cc.Label,\r\n// score: cc.Label,\r\n// double_hit: cc.Node,\r\n// add: cc.Node,\r\n// add2: cc.Node,\r\n// double_title: cc.Node,\r\n// count_time: cc.Node,\r\n// beginNode: cc.Node,\r\n// ball_nomal: [cc.SpriteFrame],\r\n// bg_nomal: [cc.SpriteFrame],\r\n// ball_light: [cc.SpriteFrame],\r\n// kuang_Frame: [cc.SpriteFrame],\r\n// daojishi: cc.Label,\r\n// pause_anniu: cc.Sprite,\r\n// mask: cc.Node,\r\n\r\n// flashUI: {\r\n// default: null,\r\n// type: cc.SpriteAtlas\r\n// },\r\n// },\r\n\r\n// onLoad() {\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/e9/e9077dbb-d18e-45d5-aae4-9f46b103ed05.json b/library/imports/e9/e9077dbb-d18e-45d5-aae4-9f46b103ed05.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/e9/e9077dbb-d18e-45d5-aae4-9f46b103ed05.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/e9/e9077dbb-d18e-45d5-aae4-9f46b103ed05.png b/library/imports/e9/e9077dbb-d18e-45d5-aae4-9f46b103ed05.png new file mode 100644 index 0000000..e099815 Binary files /dev/null and b/library/imports/e9/e9077dbb-d18e-45d5-aae4-9f46b103ed05.png differ diff --git a/library/imports/ea/ea182daa-7a43-48b5-9a08-f20f71980deb.json b/library/imports/ea/ea182daa-7a43-48b5-9a08-f20f71980deb.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/ea/ea182daa-7a43-48b5-9a08-f20f71980deb.json @@ -0,0 +1,4 @@ +{ + "__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 new file mode 100644 index 0000000..ae57f5d Binary files /dev/null and b/library/imports/ea/ea182daa-7a43-48b5-9a08-f20f71980deb.png differ diff --git a/library/imports/ea/eaafa373-6457-4f01-9ab1-bc6fa92a1055.json b/library/imports/ea/eaafa373-6457-4f01-9ab1-bc6fa92a1055.json new file mode 100644 index 0000000..1f9ce7f --- /dev/null +++ b/library/imports/ea/eaafa373-6457-4f01-9ab1-bc6fa92a1055.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins_sz12", + "texture": "6112faa1-3935-48de-a5a8-3369a63cead8", + "atlas": "", + "rect": [ + 0, + 0, + 64, + 65 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 64, + 65 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/ed/ed52ffde-cd70-4093-befc-350b89c5692e.json b/library/imports/ed/ed52ffde-cd70-4093-befc-350b89c5692e.json new file mode 100644 index 0000000..569d9ad --- /dev/null +++ b/library/imports/ed/ed52ffde-cd70-4093-befc-350b89c5692e.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "cost_yuan", + "texture": "6b7f9211-7903-45b4-b2e2-d388ba17e935", + "atlas": "", + "rect": [ + 0, + 0, + 46, + 43 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 46, + 43 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/ef/efc62fa5-f8bc-4661-8eb9-f6e2cb5b4ad7.json b/library/imports/ef/efc62fa5-f8bc-4661-8eb9-f6e2cb5b4ad7.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/ef/efc62fa5-f8bc-4661-8eb9-f6e2cb5b4ad7.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/ef/efc62fa5-f8bc-4661-8eb9-f6e2cb5b4ad7.png b/library/imports/ef/efc62fa5-f8bc-4661-8eb9-f6e2cb5b4ad7.png new file mode 100644 index 0000000..582718b Binary files /dev/null and b/library/imports/ef/efc62fa5-f8bc-4661-8eb9-f6e2cb5b4ad7.png differ diff --git a/library/imports/f0/f0c1b219-0608-4a6c-aef0-59fc9db4955e.json b/library/imports/f0/f0c1b219-0608-4a6c-aef0-59fc9db4955e.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/f0/f0c1b219-0608-4a6c-aef0-59fc9db4955e.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/f0/f0c1b219-0608-4a6c-aef0-59fc9db4955e.png b/library/imports/f0/f0c1b219-0608-4a6c-aef0-59fc9db4955e.png new file mode 100644 index 0000000..8ceee8e Binary files /dev/null and b/library/imports/f0/f0c1b219-0608-4a6c-aef0-59fc9db4955e.png differ diff --git a/library/imports/f1/f1028c3f-7467-4079-94f7-b7d77662c91f.json b/library/imports/f1/f1028c3f-7467-4079-94f7-b7d77662c91f.json new file mode 100644 index 0000000..844b762 --- /dev/null +++ b/library/imports/f1/f1028c3f-7467-4079-94f7-b7d77662c91f.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "cost_10", + "texture": "76a01e2d-248a-494c-a56c-c14e4f26a3b0", + "atlas": "", + "rect": [ + 0, + 0, + 9, + 10 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 9, + 10 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ 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 new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/f1/f1cd9c7b-a0b7-41fc-94c2-db60d6a51281.json @@ -0,0 +1,4 @@ +{ + "__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.png b/library/imports/f1/f1cd9c7b-a0b7-41fc-94c2-db60d6a51281.png new file mode 100644 index 0000000..d14a9dd Binary files /dev/null and b/library/imports/f1/f1cd9c7b-a0b7-41fc-94c2-db60d6a51281.png differ diff --git a/library/imports/f5/f5f584ca-c27f-40a2-96e6-6bc312eb3c21.json b/library/imports/f5/f5f584ca-c27f-40a2-96e6-6bc312eb3c21.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/f5/f5f584ca-c27f-40a2-96e6-6bc312eb3c21.json @@ -0,0 +1,4 @@ +{ + "__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 new file mode 100644 index 0000000..3a96861 Binary files /dev/null and b/library/imports/f5/f5f584ca-c27f-40a2-96e6-6bc312eb3c21.png differ diff --git a/library/imports/f7/f7af558f-2dec-4cc5-8c41-ea9802ca48d1.json b/library/imports/f7/f7af558f-2dec-4cc5-8c41-ea9802ca48d1.json new file mode 100644 index 0000000..c9b957a --- /dev/null +++ b/library/imports/f7/f7af558f-2dec-4cc5-8c41-ea9802ca48d1.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "coins_sz10", + "texture": "6c076da3-bb21-4e43-9e7e-d88b44bd01f4", + "atlas": "", + "rect": [ + 0, + 0, + 19, + 23 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 19, + 23 + ], + "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 new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/f8/f8ebdf98-79f3-41fd-8663-8abd3225fa66.json @@ -0,0 +1,4 @@ +{ + "__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 new file mode 100644 index 0000000..ad7a995 Binary files /dev/null and b/library/imports/f8/f8ebdf98-79f3-41fd-8663-8abd3225fa66.png differ diff --git a/library/imports/fa/faeaa6a2-5e23-43cd-9acb-baa4eba7e32d.json b/library/imports/fa/faeaa6a2-5e23-43cd-9acb-baa4eba7e32d.json index db73712..ca66bec 100644 --- a/library/imports/fa/faeaa6a2-5e23-43cd-9acb-baa4eba7e32d.json +++ b/library/imports/fa/faeaa6a2-5e23-43cd-9acb-baa4eba7e32d.json @@ -446,7 +446,7 @@ } } }, - "_atlasText": "\nzhandan.png\nsize: 1020,1020\nformat: RGBA8888\nfilter: Linear,Linear\nrepeat: none\nbanyuan0001\n rotate: true\n xy: 758, 692\n size: 86, 79\n orig: 265, 209\n offset: 87, 34\n index: -1\nbanyuan0004\n rotate: true\n xy: 633, 273\n size: 172, 133\n orig: 265, 209\n offset: 46, 11\n index: -1\nbanyuan0007\n rotate: false\n xy: 2, 4\n size: 242, 188\n orig: 265, 209\n offset: 10, 6\n index: -1\nbanyuan0010\n rotate: false\n xy: 2, 194\n size: 253, 195\n orig: 265, 209\n offset: 5, 7\n index: -1\nbanyuan0013\n rotate: false\n xy: 2, 611\n size: 259, 199\n orig: 265, 209\n offset: 2, 5\n index: -1\nbanyuan0016\n rotate: false\n xy: 2, 812\n size: 262, 203\n orig: 265, 209\n offset: 1, 3\n index: -1\nhuoquan0001\n rotate: true\n xy: 758, 780\n size: 123, 80\n orig: 222, 151\n offset: 52, 41\n index: -1\nhuoquan0004\n rotate: true\n xy: 633, 17\n size: 193, 140\n orig: 222, 151\n offset: 16, 9\n index: -1\nhuoquan0006\n rotate: true\n xy: 463, 615\n size: 209, 148\n orig: 222, 151\n offset: 7, 3\n index: -1\nhuoquan0009\n rotate: false\n xy: 468, 870\n size: 213, 145\n orig: 222, 151\n offset: 5, 2\n index: -1\nhuoquan0012\n rotate: true\n xy: 613, 655\n size: 213, 143\n orig: 222, 151\n offset: 5, 1\n index: -1\nhuoquan0015\n rotate: true\n xy: 633, 447\n size: 206, 140\n orig: 222, 151\n offset: 9, 1\n index: -1\nzaza0001\n rotate: true\n xy: 683, 905\n size: 110, 98\n orig: 251, 223\n offset: 74, 45\n index: -1\nzaza0003\n rotate: false\n xy: 240, 408\n size: 218, 201\n orig: 251, 223\n offset: 28, 0\n index: -1\nzaza0004\n rotate: false\n xy: 2, 391\n size: 236, 218\n orig: 251, 223\n offset: 15, 0\n index: -1\nzaza0008\n rotate: true\n xy: 266, 612\n size: 212, 195\n orig: 251, 223\n offset: 27, 6\n index: -1\nzaza0012\n rotate: true\n xy: 257, 191\n size: 215, 198\n orig: 251, 223\n offset: 24, 6\n index: -1\nzaza0016\n rotate: true\n xy: 266, 826\n size: 189, 200\n orig: 251, 223\n offset: 28, 4\n index: -1\nzaza0020\n rotate: true\n xy: 246, 2\n size: 187, 205\n orig: 251, 223\n offset: 24, 2\n index: -1\nzaza0024\n rotate: false\n xy: 457, 212\n size: 174, 194\n orig: 251, 223\n offset: 30, 6\n index: -1\nzaza0028\n rotate: false\n xy: 457, 16\n size: 174, 194\n orig: 251, 223\n offset: 30, 6\n index: -1\nzaza0032\n rotate: false\n xy: 460, 415\n size: 171, 194\n orig: 251, 223\n offset: 30, 6\n index: -1\nzhadan1\n rotate: false\n xy: 768, 352\n size: 60, 93\n orig: 62, 95\n offset: 1, 1\n index: -1\nzhadan2\n rotate: false\n xy: 768, 267\n size: 59, 83\n orig: 62, 95\n offset: 1, 1\n index: -1\nzhadan3\n rotate: false\n xy: 775, 447\n size: 59, 76\n orig: 62, 95\n offset: 1, 1\n index: -1\n", + "_atlasText": "\r\nzhandan.png\r\nsize: 1020,1020\r\nformat: RGBA8888\r\nfilter: Linear,Linear\r\nrepeat: none\r\nbanyuan0001\r\n rotate: true\r\n xy: 758, 692\r\n size: 86, 79\r\n orig: 265, 209\r\n offset: 87, 34\r\n index: -1\r\nbanyuan0004\r\n rotate: true\r\n xy: 633, 273\r\n size: 172, 133\r\n orig: 265, 209\r\n offset: 46, 11\r\n index: -1\r\nbanyuan0007\r\n rotate: false\r\n xy: 2, 4\r\n size: 242, 188\r\n orig: 265, 209\r\n offset: 10, 6\r\n index: -1\r\nbanyuan0010\r\n rotate: false\r\n xy: 2, 194\r\n size: 253, 195\r\n orig: 265, 209\r\n offset: 5, 7\r\n index: -1\r\nbanyuan0013\r\n rotate: false\r\n xy: 2, 611\r\n size: 259, 199\r\n orig: 265, 209\r\n offset: 2, 5\r\n index: -1\r\nbanyuan0016\r\n rotate: false\r\n xy: 2, 812\r\n size: 262, 203\r\n orig: 265, 209\r\n offset: 1, 3\r\n index: -1\r\nhuoquan0001\r\n rotate: true\r\n xy: 758, 780\r\n size: 123, 80\r\n orig: 222, 151\r\n offset: 52, 41\r\n index: -1\r\nhuoquan0004\r\n rotate: true\r\n xy: 633, 17\r\n size: 193, 140\r\n orig: 222, 151\r\n offset: 16, 9\r\n index: -1\r\nhuoquan0006\r\n rotate: true\r\n xy: 463, 615\r\n size: 209, 148\r\n orig: 222, 151\r\n offset: 7, 3\r\n index: -1\r\nhuoquan0009\r\n rotate: false\r\n xy: 468, 870\r\n size: 213, 145\r\n orig: 222, 151\r\n offset: 5, 2\r\n index: -1\r\nhuoquan0012\r\n rotate: true\r\n xy: 613, 655\r\n size: 213, 143\r\n orig: 222, 151\r\n offset: 5, 1\r\n index: -1\r\nhuoquan0015\r\n rotate: true\r\n xy: 633, 447\r\n size: 206, 140\r\n orig: 222, 151\r\n offset: 9, 1\r\n index: -1\r\nzaza0001\r\n rotate: true\r\n xy: 683, 905\r\n size: 110, 98\r\n orig: 251, 223\r\n offset: 74, 45\r\n index: -1\r\nzaza0003\r\n rotate: false\r\n xy: 240, 408\r\n size: 218, 201\r\n orig: 251, 223\r\n offset: 28, 0\r\n index: -1\r\nzaza0004\r\n rotate: false\r\n xy: 2, 391\r\n size: 236, 218\r\n orig: 251, 223\r\n offset: 15, 0\r\n index: -1\r\nzaza0008\r\n rotate: true\r\n xy: 266, 612\r\n size: 212, 195\r\n orig: 251, 223\r\n offset: 27, 6\r\n index: -1\r\nzaza0012\r\n rotate: true\r\n xy: 257, 191\r\n size: 215, 198\r\n orig: 251, 223\r\n offset: 24, 6\r\n index: -1\r\nzaza0016\r\n rotate: true\r\n xy: 266, 826\r\n size: 189, 200\r\n orig: 251, 223\r\n offset: 28, 4\r\n index: -1\r\nzaza0020\r\n rotate: true\r\n xy: 246, 2\r\n size: 187, 205\r\n orig: 251, 223\r\n offset: 24, 2\r\n index: -1\r\nzaza0024\r\n rotate: false\r\n xy: 457, 212\r\n size: 174, 194\r\n orig: 251, 223\r\n offset: 30, 6\r\n index: -1\r\nzaza0028\r\n rotate: false\r\n xy: 457, 16\r\n size: 174, 194\r\n orig: 251, 223\r\n offset: 30, 6\r\n index: -1\r\nzaza0032\r\n rotate: false\r\n xy: 460, 415\r\n size: 171, 194\r\n orig: 251, 223\r\n offset: 30, 6\r\n index: -1\r\nzhadan1\r\n rotate: false\r\n xy: 768, 352\r\n size: 60, 93\r\n orig: 62, 95\r\n offset: 1, 1\r\n index: -1\r\nzhadan2\r\n rotate: false\r\n xy: 768, 267\r\n size: 59, 83\r\n orig: 62, 95\r\n offset: 1, 1\r\n index: -1\r\nzhadan3\r\n rotate: false\r\n xy: 775, 447\r\n size: 59, 76\r\n orig: 62, 95\r\n offset: 1, 1\r\n index: -1\r\n", "textures": [ { "__uuid__": "849d9729-23bc-455e-b9e5-f3bf7dc96375" diff --git a/library/imports/fc/fcaa412a-64a2-4cdc-937f-1f4fbc527dfc.json b/library/imports/fc/fcaa412a-64a2-4cdc-937f-1f4fbc527dfc.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/fc/fcaa412a-64a2-4cdc-937f-1f4fbc527dfc.json @@ -0,0 +1,4 @@ +{ + "__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 new file mode 100644 index 0000000..728b78e Binary files /dev/null and b/library/imports/fc/fcaa412a-64a2-4cdc-937f-1f4fbc527dfc.png differ diff --git a/library/uuid-to-mtime.json b/library/uuid-to-mtime.json index 5471d25..e70fe30 100644 --- a/library/uuid-to-mtime.json +++ b/library/uuid-to-mtime.json @@ -1,3532 +1,3772 @@ { "2e3d6223-9889-4122-8121-c6d837f5367e": { - "asset": 1750750367916, - "meta": 1750750430440, + "asset": 1750920400385, + "meta": 1750920534748, "relativePath": "migration" }, "29f52784-2fca-467b-92e7-8fd9ef8c57b7": { - "asset": 1750750368785, - "meta": 1750750430447, + "asset": 1750920400216, + "meta": 1750920534753, "relativePath": "Scene" }, "4734c20c-0db8-4eb2-92ea-e692f4d70934": { - "asset": 1750750368996, - "meta": 1750750430448, + "asset": 1750920400254, + "meta": 1750920534753, "relativePath": "Script" }, "7a231473-d1df-4b05-8620-6376c36252c1": { - "asset": 1594224021434, - "meta": 1715325874879, + "asset": 1750920400384, + "meta": 1750920534816, "relativePath": "migration\\use_v2.1-2.2.1_cc.Toggle_event.js" }, "7c1d6faa-66b9-4423-aa04-8c38a15768cf": { - "asset": 1750750367722, - "meta": 1750750430437, + "asset": 1751017162421, + "meta": 1751249638014, "relativePath": "animation" }, "6ebfe2d9-539a-4853-8b16-fca5c89cf2ce": { - "asset": 1750750367939, - "meta": 1750750430441, + "asset": 1750920400407, + "meta": 1750920534748, "relativePath": "music" }, "bf3935ca-518a-42f4-84e4-ad96badfd1b4": { - "asset": 1750750367956, - "meta": 1750750430444, + "asset": 1750920532628, + "meta": 1750920534748, "relativePath": "prefab" }, "52e78fe3-9095-42ad-8e4d-f9bb12dc69ce": { - "asset": 1750750368706, - "meta": 1750750430446, + "asset": 1750920400633, + "meta": 1750920534748, "relativePath": "resources" }, "afa9e39a-94ca-477f-8a2a-25082d9092c3": { - "asset": 1750750369086, - "meta": 1750750430449, + "asset": 1750920400272, + "meta": 1750920534753, "relativePath": "Shader" }, "2880dc26-5b38-48bd-baba-daaec97499cb": { - "asset": 1750750368019, - "meta": 1750750430445, + "asset": 1750920532628, + "meta": 1750920534748, "relativePath": "res" }, "eaa8b84d-69d0-4170-9f7d-8179ea948cde": { - "asset": 1750750368970, - "meta": 1750750430491, + "asset": 1750920400247, + "meta": 1750920535717, "relativePath": "Script\\module" }, "8848cd9b-8115-456d-a656-2abcda1dadbe": { - "asset": 1750750368924, - "meta": 1750750430510, + "asset": 1750920400240, + "meta": 1750920537037, "relativePath": "Script\\module\\Config" }, "13a0b173-d59e-4a9d-b5e3-4dbe4dc37cc1": { - "asset": 1750750368934, - "meta": 1750750430512, + "asset": 1750920400242, + "meta": 1750920537043, "relativePath": "Script\\module\\Crypto" }, "b4e113c6-a987-4133-bfa0-3355d8ab4bd1": { - "asset": 1750750368936, - "meta": 1750750430512, + "asset": 1750920400242, + "meta": 1750920537053, "relativePath": "Script\\module\\GameStart" }, "0487cacb-b94a-4ab6-a301-b6402ab0ac5d": { - "asset": 1750750368941, - "meta": 1750750430512, + "asset": 1750920400243, + "meta": 1750920537068, "relativePath": "Script\\module\\Music" }, "ff6560d9-676d-42ad-8ec7-e44acb84ad9e": { - "asset": 1750750368945, - "meta": 1750750430515, + "asset": 1750920400244, + "meta": 1750920537068, "relativePath": "Script\\module\\Notification" }, "d3520299-33dc-43d2-b522-d424efb5575d": { - "asset": 1750750368953, - "meta": 1750750430516, + "asset": 1750920400245, + "meta": 1750920537073, "relativePath": "Script\\module\\RankList" }, "2af8f2ef-b8a0-43ad-a144-ef4a887f2fa9": { - "asset": 1750750368966, - "meta": 1750750430520, + "asset": 1750920400247, + "meta": 1750920537078, "relativePath": "Script\\module\\Storage" }, "2a81f82d-8d16-44af-b947-44eea4dde54f": { - "asset": 1750750368975, - "meta": 1750750430520, + "asset": 1750920400248, + "meta": 1750920537085, "relativePath": "Script\\module\\Tool" }, "e64e1a97-c93f-4257-ab34-80341d8ff79d": { - "asset": 1627607030000, - "meta": 1718260711110, + "asset": 1750920400242, + "meta": 1750920539825, "relativePath": "Script\\module\\Crypto\\crypto-js.min.js" }, "55403563-1a5a-4f2f-9eb8-82c762641837": { - "asset": 1718260279375, - "meta": 1718260711215, + "asset": 1750920400243, + "meta": 1750920540003, "relativePath": "Script\\module\\Notification\\Notification.ts" }, "5c9b8159-89a3-4b32-b303-b3d4f7ac1c9f": { - "asset": 1626178655932, - "meta": 1718265038280, + "asset": 1750920400220, + "meta": 1750920535287, "relativePath": "Script\\DynamicAtlasManager.js" }, "2cddbdcb-5dba-4b13-960c-9ebe6d17a7db": { - "asset": 1718692696758, - "meta": 1719800322876, + "asset": 1750920400437, + "meta": 1750920536538, "relativePath": "resources\\Json\\LEVEL_INFO.json" }, "066e91c2-fc55-407c-b061-9e4de4a9f224": { - "asset": 1750820043724, - "meta": 1750848887990, + "asset": 1750920400542, + "meta": 1750920534846, "relativePath": "resources\\Json" }, "e8b23e56-8d10-44ad-a8f0-2e637cc45533": { - "asset": 1718681194622, - "meta": 1718681195177, + "asset": 1750920400222, + "meta": 1750920535441, "relativePath": "Script\\GameScene.js" }, "e92938d8-5d93-4823-8770-fd489523a2f5": { - "asset": 1750750369207, - "meta": 1750750430502, + "asset": 1751016612166, + "meta": 1751249638015, "relativePath": "UI\\UI" }, "bdc76845-baea-4381-911e-af437cccf839": { - "asset": 1750750368962, - "meta": 1750750430518, + "asset": 1750920400246, + "meta": 1750920537076, "relativePath": "Script\\module\\Share" }, "b42c4fc1-4cd1-4b12-b206-930cea3d49ca": { - "asset": 1720419330469, - "meta": 1720607873884, + "asset": 1750920400245, + "meta": 1750920537714, "relativePath": "Script\\module\\Share.zip" }, "d54211e0-2d28-4528-88e3-e5fd7c9b59a2": { - "asset": 1721812722990, - "meta": 1721814802300, + "asset": 1750920400245, + "meta": 1750920540411, "relativePath": "Script\\module\\RankList\\List.ts" }, "e74a9f7d-2031-4e69-bcb2-9998174088b2": { - "asset": 1722825953945, - "meta": 1722825954677, + "asset": 1750920400225, + "meta": 1750920535820, "relativePath": "Script\\RankManager.ts" }, "9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d": { - "asset": 1750235430515, - "meta": 1750235430521, + "asset": 1750920400215, + "meta": 1750920535198, "relativePath": "Scene\\LoadScene.fire" }, "93c9bdf3-8205-46e5-a8f1-3576b0dbc836": { - "asset": 1750750369004, - "meta": 1750750430492, + "asset": 1750920400228, + "meta": 1750920535855, "relativePath": "Script\\Sdk" }, "ca0f9934-a015-436e-9402-f8e30d4c5de6": { - "asset": 1725446198136, - "meta": 1725446199111, + "asset": 1750920400244, + "meta": 1750920540039, "relativePath": "Script\\module\\RankList\\ItemRender.ts" }, "3bad2bb2-3b0e-4ccc-bab7-6f983d6879f6": { - "asset": 1725867716734, - "meta": 1725867724437, + "asset": 1750920400229, + "meta": 1750920535895, "relativePath": "Script\\Window.ts" }, "e35ab717-e554-40a0-8b4e-ea6805718c97": { - "asset": 1725869717168, - "meta": 1725869717675, + "asset": 1750920400220, + "meta": 1750920535275, "relativePath": "Script\\ControlManager.ts" }, - "cb16ad0c-b68c-450e-a440-eb78a1562e04": { - "asset": 1741936568672, - "meta": 1741936568672, - "relativePath": "level" - }, "771a3d9a-4013-4654-a777-fbaea0c93280": { - "asset": 1744193262345, - "meta": 1744193408326, + "asset": 1750920400241, + "meta": 1750920539863, "relativePath": "Script\\module\\Crypto\\HttpUtil.ts" }, "dbc5acf2-1061-4d14-a2c5-61c3b03f302f": { - "asset": 1750750367956, - "meta": 1750750430472, + "asset": 1750920400410, + "meta": 1750920534840, "relativePath": "prefab\\map" }, "805c69df-dfdf-4759-97ae-5a7341f424c7": { - "asset": 1742440857125, - "meta": 1742440898761, + "asset": 1750920400221, + "meta": 1750920535430, "relativePath": "Script\\GameOver.ts" }, "4fc739bf-784a-4b9a-b36f-3752a98df628": { - "asset": 1750750367867, - "meta": 1750750430438, + "asset": 1750920400381, + "meta": 1750920534748, "relativePath": "effect" }, "edf0e3d4-4233-4e7b-a725-a1a37209b53a": { - "asset": 1744016572170, - "meta": 1748437823787, + "asset": 1750920400364, + "meta": 1750920534779, "relativePath": "effect\\mohu.effect" }, "4b6dcf92-bde1-46a0-9d58-f3abd25cd3fd": { - "asset": 1744021741725, - "meta": 1748437823777, + "asset": 1750920400350, + "meta": 1750920534773, "relativePath": "effect\\full.effect" }, "7929eb2c-aa5c-4d48-bceb-0312f46aede8": { - "asset": 1750750368993, - "meta": 1750750430491, + "asset": 1750920400253, + "meta": 1750920535793, "relativePath": "Script\\prop" }, "c390fa89-6858-4fdd-a0df-42f78cb37275": { - "asset": 1750750367982, - "meta": 1750750430473, + "asset": 1750920400415, + "meta": 1750920534841, "relativePath": "prefab\\prop" }, "92465aa7-5132-43c3-9493-ab5b7ba1e968": { - "asset": 1744100334038, - "meta": 1744100338251, + "asset": 1750920400253, + "meta": 1750920537207, "relativePath": "Script\\prop\\Key.ts" }, "a496b103-90e1-421c-94c5-500167b26227": { - "asset": 1749019402739, - "meta": 1749019402742, + "asset": 1750920400413, + "meta": 1750920536081, "relativePath": "prefab\\prop\\key.prefab" }, "725f6dd5-18b0-44f9-997a-d89b23ac1fc0": { - "asset": 1749019413554, - "meta": 1749019413559, + "asset": 1750920400413, + "meta": 1750920536136, "relativePath": "prefab\\prop\\lock.prefab" }, "a99d5bb3-6216-4c6e-bfb6-f793289870df": { - "asset": 1749118099108, - "meta": 1749118099113, + "asset": 1750920400412, + "meta": 1750920536074, "relativePath": "prefab\\prop\\heng.prefab" }, "b5a00886-b32d-4185-a4a6-fd9f7a8dbe90": { - "asset": 1749118121705, - "meta": 1749118121709, + "asset": 1750920400414, + "meta": 1750920536141, "relativePath": "prefab\\prop\\shu.prefab" }, "7290c680-dfdc-4c59-9736-a614cc2a8bcf": { - "asset": 1744193586570, - "meta": 1744193608920, + "asset": 1750920400246, + "meta": 1750920540413, "relativePath": "Script\\module\\Share\\share.ts" }, "75a77063-a5a9-456a-8b4f-bfde10c137e8": { - "asset": 1745834478631, - "meta": 1745834478636, + "asset": 1750920400409, + "meta": 1750920536038, "relativePath": "prefab\\map\\turn_Wall.prefab" }, "1c619601-a6ae-4c45-be2c-20b0d95e950f": { - "asset": 1744869442431, - "meta": 1744869442434, + "asset": 1750933801913, + "meta": 1750933801916, "relativePath": "prefab\\map\\wall.prefab" }, "0cf46635-8a58-4196-b24e-d075875778d0": { - "asset": 1749019434200, - "meta": 1749019434204, + "asset": 1750920400411, + "meta": 1750920536063, "relativePath": "prefab\\prop\\boom.prefab" }, - "99be851f-9f4f-4fdd-bd43-3e3f86dd78d2": { - "asset": 1741855414503, - "meta": 1744793852733, - "relativePath": "res\\music" - }, "79bddc67-afa7-4275-9dc3-a2986648eeff": { - "asset": 1750750368035, - "meta": 1750750430477, + "asset": 1750920400435, + "meta": 1750920534846, "relativePath": "res\\texture_Block" }, "7d8008d1-2a44-467e-a492-ddf8527addba": { - "asset": 1744794871178, - "meta": 1744794875511, + "asset": 1750920400248, + "meta": 1750920535765, "relativePath": "Script\\peizhi.ts" }, "4e7ff711-8a91-49f7-8580-bf07609eaaa9": { - "asset": 1750750368680, - "meta": 1750750430486, + "asset": 1750920532643, + "meta": 1750920534860, "relativePath": "resources\\prefab" }, "a500df91-fa68-49df-9b91-3087fab64e20": { - "asset": 1750750368676, - "meta": 1750750430505, + "asset": 1750920400652, + "meta": 1750920536599, "relativePath": "resources\\prefab\\block" }, "2ea4f287-fa08-4f3e-8c66-6f9738b0fd0a": { - "asset": 1749540116034, - "meta": 1749540116039, + "asset": 1750920400638, + "meta": 1750920538413, "relativePath": "resources\\prefab\\block\\block11.prefab" }, "3f275c96-62b0-417f-9224-aeb073192f1d": { - "asset": 1749540120000, - "meta": 1749540120005, + "asset": 1750920400638, + "meta": 1750920538423, "relativePath": "resources\\prefab\\block\\block12.prefab" }, "4c1187d9-40bd-4210-acd7-0eecf4b2706f": { - "asset": 1749540124112, - "meta": 1749540124119, + "asset": 1750920400639, + "meta": 1750920538426, "relativePath": "resources\\prefab\\block\\block13.prefab" }, "4df8b354-d4c6-4219-852d-37ea032eb450": { - "asset": 1749540135049, - "meta": 1749540135053, + "asset": 1750920400641, + "meta": 1750920538453, "relativePath": "resources\\prefab\\block\\block16.prefab" }, "b54f9b14-fdec-476f-98f8-f0a519f7e844": { - "asset": 1749540127882, - "meta": 1749540127888, + "asset": 1750920400640, + "meta": 1750920538443, "relativePath": "resources\\prefab\\block\\block14.prefab" }, "fe980cba-a552-4d61-a357-19c19262f33e": { - "asset": 1749540139305, - "meta": 1749540139311, + "asset": 1750920400642, + "meta": 1750920538458, "relativePath": "resources\\prefab\\block\\block17.prefab" }, "6acd6f05-53d0-4866-b1a3-3fdc05bea16e": { - "asset": 1749540150309, - "meta": 1749540150317, + "asset": 1750920400643, + "meta": 1750920538477, "relativePath": "resources\\prefab\\block\\block20.prefab" }, "be5782f3-3dc7-43b8-a66a-ec50c83d0077": { - "asset": 1749540131354, - "meta": 1749540131359, + "asset": 1750920400640, + "meta": 1750920538448, "relativePath": "resources\\prefab\\block\\block15.prefab" }, "3a3098c2-78cb-4f85-834f-9a282d864462": { - "asset": 1749540146634, - "meta": 1749540146640, + "asset": 1750920400642, + "meta": 1750920538463, "relativePath": "resources\\prefab\\block\\block19.prefab" }, "503530e7-cfb4-4bcb-ac38-d4dd3ce3d1af": { - "asset": 1749539945053, - "meta": 1749539945062, + "asset": 1750920400643, + "meta": 1750920538468, "relativePath": "resources\\prefab\\block\\block2.prefab" }, "bc027956-4f24-4f96-b705-359a19cccb53": { - "asset": 1749540153898, - "meta": 1749540153902, + "asset": 1750920400644, + "meta": 1750920538478, "relativePath": "resources\\prefab\\block\\block21.prefab" }, "59a8c009-6f37-4960-b842-18f457d55412": { - "asset": 1749540157927, - "meta": 1749540157933, + "asset": 1750920400645, + "meta": 1750920538483, "relativePath": "resources\\prefab\\block\\block22.prefab" }, "90a9eb51-3d7f-4094-add0-ad20f9379337": { - "asset": 1749539948344, - "meta": 1749539948350, + "asset": 1750928390962, + "meta": 1750928390966, "relativePath": "resources\\prefab\\block\\block3.prefab" }, "7e0a9fcf-7599-443b-814d-05bf5cca516a": { - "asset": 1749540101052, - "meta": 1749540101068, + "asset": 1750920400649, + "meta": 1750920539128, "relativePath": "resources\\prefab\\block\\block7.prefab" }, "5b0aa537-7f4b-4132-ac45-2101f453a688": { - "asset": 1749540105284, - "meta": 1749540105289, + "asset": 1750920400650, + "meta": 1750920539829, "relativePath": "resources\\prefab\\block\\block8.prefab" }, "0237ad36-2cdb-4e29-944a-8720564056bc": { - "asset": 1749540109136, - "meta": 1749540109143, + "asset": 1750920400651, + "meta": 1750920539877, "relativePath": "resources\\prefab\\block\\block9.prefab" }, "b38991fe-2e45-431c-8f23-974e7905dfaa": { - "asset": 1749540011903, - "meta": 1749540011906, + "asset": 1750920400648, + "meta": 1750920538608, "relativePath": "resources\\prefab\\block\\block6.prefab" }, "74a04df7-a212-4b10-b77c-99e06c88867a": { - "asset": 1750750368702, - "meta": 1750750430505, + "asset": 1750920400660, + "meta": 1750920536599, "relativePath": "resources\\prefab\\wall" }, "a63ade2f-c476-4f26-84e6-b978db27c435": { - "asset": 1750153240896, - "meta": 1750153240900, + "asset": 1750920400655, + "meta": 1750920540691, "relativePath": "resources\\prefab\\wall\\downRight.prefab" }, "fc41ae6e-8743-4057-86fa-bff2f8ff171b": { - "asset": 1750153293722, - "meta": 1750153293726, + "asset": 1750920400659, + "meta": 1750920540735, "relativePath": "resources\\prefab\\wall\\upRight.prefab" }, "a710c09b-ab49-4276-9660-b882fcff8b24": { - "asset": 1750153222315, - "meta": 1750153222320, + "asset": 1750920400654, + "meta": 1750920540687, "relativePath": "resources\\prefab\\wall\\downLeft.prefab" }, "2ad95b5e-51fe-4864-ad40-6743b8fac9d5": { - "asset": 1744881186883, - "meta": 1744881186886, + "asset": 1750920400414, + "meta": 1750920536140, "relativePath": "prefab\\prop\\risefall.prefab" }, "6023e99b-9806-44e9-8325-487a6cfdf3e5": { - "asset": 1749110801807, - "meta": 1749110801814, + "asset": 1750920400408, + "meta": 1750920536028, "relativePath": "prefab\\map\\MapBlock.prefab" }, "eec86efa-7642-410f-934a-7af388c0311a": { - "asset": 1749540308756, - "meta": 1749540308778, + "asset": 1750920400645, + "meta": 1750920538488, "relativePath": "resources\\prefab\\block\\block23.prefab" }, "b6ab43fe-8e9a-48ac-9dc9-9107a47de661": { - "asset": 1750148095057, - "meta": 1750148095061, + "asset": 1750920400656, + "meta": 1750920540696, "relativePath": "resources\\prefab\\wall\\left.prefab" }, "cef92b6b-13fd-44c8-a4af-848b55a7ba57": { - "asset": 1750153013504, - "meta": 1750153013511, + "asset": 1750920400654, + "meta": 1750920540683, "relativePath": "resources\\prefab\\wall\\down.prefab" }, "8600d9b3-b4ad-4c84-b458-42b4f31addcd": { - "asset": 1750148166857, - "meta": 1750148166869, + "asset": 1750920400657, + "meta": 1750920540703, "relativePath": "resources\\prefab\\wall\\right.prefab" }, "f0da65e3-27d4-43c7-9945-ace5c5d815e5": { - "asset": 1750153075841, - "meta": 1750153075847, + "asset": 1750920400658, + "meta": 1750920540728, "relativePath": "resources\\prefab\\wall\\up.prefab" }, "2873d380-eeb8-4805-af74-462d711f466a": { - "asset": 1749540112707, - "meta": 1749540112714, + "asset": 1750920400637, + "meta": 1750920538403, "relativePath": "resources\\prefab\\block\\block10.prefab" }, - "e0e349ff-f854-45e4-9764-50b9babdd4f4": { - "asset": 1745394054739, - "meta": 1745394231033, - "relativePath": "Script\\position.ts" - }, "d773d6d6-5bab-40cf-a17e-6742f7217531": { - "asset": 1745396686155, - "meta": 1745396686598, + "asset": 1750920400253, + "meta": 1750920537253, "relativePath": "Script\\prop\\Star.ts" }, "2a1b17d6-1191-49f5-9d22-584e0776462b": { - "asset": 1745394376000, - "meta": 1745405584681, + "asset": 1750920400478, + "meta": 1750920536433, "relativePath": "resources\\Json\\level16.json" }, "b77a22b4-309b-44fa-abd8-2969a04f40c1": { - "asset": 1745397707000, - "meta": 1745405584684, + "asset": 1750920400479, + "meta": 1750920536435, "relativePath": "resources\\Json\\level18.json" }, "9b2dd653-8198-4221-b239-f531220b63e9": { - "asset": 1745403002000, - "meta": 1745405584687, + "asset": 1750920400481, + "meta": 1750920536435, "relativePath": "resources\\Json\\level22.json" }, "ecd6848d-38d5-46d2-996f-30b47678d91e": { - "asset": 1745403504000, - "meta": 1745405584693, + "asset": 1750920400483, + "meta": 1750920536443, "relativePath": "resources\\Json\\level24.json" }, "2982813d-b86d-476a-b7f0-4aa5db975110": { - "asset": 1745402187000, - "meta": 1745405584699, + "asset": 1750920400480, + "meta": 1750920536440, "relativePath": "resources\\Json\\level20.json" }, "051d3cb4-82a8-434d-8c54-db90891e921a": { - "asset": 1745404470000, - "meta": 1745405584707, + "asset": 1750920400486, + "meta": 1750920536443, "relativePath": "resources\\Json\\level27.json" }, "b70aeb1f-01ce-4fdd-be00-c62f1119cbcc": { - "asset": 1745404916000, - "meta": 1745405584708, + "asset": 1750920400487, + "meta": 1750920536445, "relativePath": "resources\\Json\\level28.json" }, - "84dfdbbd-ae68-4dec-b5e2-aa1e4d28c38f": { - "asset": 1745474175661, - "meta": 1745480088916, - "relativePath": "prefab\\alert" - }, "6ae06208-a2c9-4a04-8c00-afdf3893db50": { - "asset": 1745406160000, - "meta": 1745479622030, + "asset": 1750920400489, + "meta": 1750920536450, "relativePath": "resources\\Json\\level30.json" }, "8a0fe43e-e606-48f4-bed9-5354abd6ca9e": { - "asset": 1745405636000, - "meta": 1745479622030, + "asset": 1750920400488, + "meta": 1750920536445, "relativePath": "resources\\Json\\level29.json" }, "18986fd3-d6c9-4343-9052-bb3bb4361be1": { - "asset": 1745487706000, - "meta": 1745550983303, + "asset": 1750920400490, + "meta": 1750920536453, "relativePath": "resources\\Json\\level31.json" }, "c6199a6f-b313-437d-8b9c-165e1466b659": { - "asset": 1745487716000, - "meta": 1745550983308, + "asset": 1750920400494, + "meta": 1750920536459, "relativePath": "resources\\Json\\level38.json" }, "33709cdd-1903-43f6-9791-ffcdeaefcf92": { - "asset": 1745465902000, - "meta": 1745479622062, + "asset": 1750920400493, + "meta": 1750920536458, "relativePath": "resources\\Json\\level36.json" }, "5a13c40d-c6ea-4902-a528-aa45a249bbd0": { - "asset": 1745475730000, - "meta": 1745479622062, + "asset": 1750920400494, + "meta": 1750920536460, "relativePath": "resources\\Json\\level39.json" }, "e95a2979-58a0-4f26-a874-6b1648ed524f": { - "asset": 1745486441000, - "meta": 1745550983337, + "asset": 1750920400498, + "meta": 1750920536470, "relativePath": "resources\\Json\\level43.json" }, "6e749de9-76c8-4528-8894-a6b38757e70a": { - "asset": 1745495270000, - "meta": 1745550983365, + "asset": 1750920400505, + "meta": 1750920536473, "relativePath": "resources\\Json\\level50.json" }, "806d1742-26ea-42a9-ac9e-4be66adb4122": { - "asset": 1745488624000, - "meta": 1745550983355, + "asset": 1750920400502, + "meta": 1750920536471, "relativePath": "resources\\Json\\level47.json" }, "15e917cb-b4e4-4694-a025-45bd3a31ccc3": { - "asset": 1749540142910, - "meta": 1749540142917, + "asset": 1750920400642, + "meta": 1750920538458, "relativePath": "resources\\prefab\\block\\block18.prefab" }, "52958c6c-bab5-40a7-9e16-328fb1143a3a": { - "asset": 1745485058335, - "meta": 1745485470601, + "asset": 1750920400224, + "meta": 1750920535713, "relativePath": "Script\\MapBlock.ts" }, "d4a58722-34f3-4a67-a943-53c8c6a2f040": { - "asset": 1745548862095, - "meta": 1745550741559, + "asset": 1750920400328, + "meta": 1750920538625, "relativePath": "UI\\UI\\icon.png" }, "1024689e-c2b8-4ef4-91de-02732703334f": { - "asset": 1750153286570, - "meta": 1750153286585, + "asset": 1750920400659, + "meta": 1750920540717, "relativePath": "resources\\prefab\\wall\\upLeft.prefab" }, "340590d7-f501-4626-8c74-a8246476d27e": { - "asset": 1750750368014, - "meta": 1750750430476, + "asset": 1750920400423, + "meta": 1750920534845, "relativePath": "res\\spine" }, "34fa006b-b745-41c9-8260-44a60254952b": { - "asset": 1745742957504, - "meta": 1745821252684, + "asset": 1750920400423, + "meta": 1750920541408, "relativePath": "res\\spine\\破碎.plist" }, "c83397a1-d62d-4546-9599-4561e767d33f": { - "asset": 1744962657274, - "meta": 1745821252626, + "asset": 1750920400422, + "meta": 1750920536209, "relativePath": "res\\spine\\star.png" }, "e1d57e63-4f2f-467d-9c55-0a889d5533a8": { - "asset": 1745228724000, - "meta": 1745834136422, + "asset": 1750920400436, + "meta": 1750920536277, "relativePath": "resources\\Json\\CLICK_DATA.json" }, "8c09ea35-2933-437e-9de7-bb94ad1c019e": { - "asset": 1745315037000, - "meta": 1745834136423, + "asset": 1750920400439, + "meta": 1750920536313, "relativePath": "resources\\Json\\level10.json" }, "933d4cfc-5ecb-43c2-a7ec-f0b8ac153140": { - "asset": 1745317845000, - "meta": 1745834136424, + "asset": 1750920400459, + "meta": 1750920536396, "relativePath": "resources\\Json\\level13.json" }, "92dc8a08-509a-4c12-b296-f37d8e0bd4b7": { - "asset": 1745316492000, - "meta": 1745834136428, + "asset": 1750920400453, + "meta": 1750920536376, "relativePath": "resources\\Json\\level12.json" }, "7e2d7a92-92bd-4774-863b-73f079fd6f86": { - "asset": 1745316128000, - "meta": 1745834136430, + "asset": 1750920400445, + "meta": 1750920536356, "relativePath": "resources\\Json\\level11.json" }, "059e1eb6-2d96-4ad8-83c6-eb9c43d16925": { - "asset": 1745396864000, - "meta": 1745834136434, + "asset": 1750920400474, + "meta": 1750920536427, "relativePath": "resources\\Json\\level15.json" }, "4083be8e-2350-48c4-8beb-6df4c6173240": { - "asset": 1722322206000, - "meta": 1745834136438, + "asset": 1750920400438, + "meta": 1750920536300, "relativePath": "resources\\Json\\dayu_config.json" }, "e480c6e1-3b6f-479e-a4af-c06173b519ea": { - "asset": 1745828826000, - "meta": 1745834136448, + "asset": 1750920400478, + "meta": 1750920536435, "relativePath": "resources\\Json\\level17.json" }, "af87aa67-fec6-4e59-8e5c-e6a5331acc40": { - "asset": 1745309965000, - "meta": 1745834136451, + "asset": 1750920400505, + "meta": 1750920536478, "relativePath": "resources\\Json\\level5.json" }, "e2d961de-5add-4097-a2ba-cc92954a5747": { - "asset": 1745314309000, - "meta": 1745834136453, + "asset": 1750920400495, + "meta": 1750920536461, "relativePath": "resources\\Json\\level4.json" }, "2d69a479-18ec-4787-b35f-e9a9b3247435": { - "asset": 1718613752000, - "meta": 1745834136454, + "asset": 1750920400437, + "meta": 1750920536303, "relativePath": "resources\\Json\\GM_INFO.json" }, "d42cfa1a-14e6-427c-ad23-2cee3474ca86": { - "asset": 1745310786000, - "meta": 1745834136458, + "asset": 1750920400511, + "meta": 1750920536488, "relativePath": "resources\\Json\\level6.json" }, "c1046fe0-8030-42b7-80d1-002890db1a07": { - "asset": 1745314351000, - "meta": 1745834136460, + "asset": 1750920400526, + "meta": 1750920536511, "relativePath": "resources\\Json\\level8.json" }, "b4c32c3b-1ddc-47da-b926-093b56074e4f": { - "asset": 1745314622000, - "meta": 1745834136467, + "asset": 1750920400533, + "meta": 1750920536522, "relativePath": "resources\\Json\\level9.json" }, "ee202f7f-e6c8-47ef-b7fd-86021066be83": { - "asset": 1745313953000, - "meta": 1745834136473, + "asset": 1750920400520, + "meta": 1750920536503, "relativePath": "resources\\Json\\level7.json" }, "f4cdb20d-19b1-4bdf-ace4-709363ecabc5": { - "asset": 1745569874000, - "meta": 1745834136485, + "asset": 1750920400511, + "meta": 1750920536488, "relativePath": "resources\\Json\\level60.json" }, "7e27fe4e-f930-480a-8d92-0c3107d28e74": { - "asset": 1745570132000, - "meta": 1745834136486, + "asset": 1750920400512, + "meta": 1750920536488, "relativePath": "resources\\Json\\level61.json" }, "060510e3-3b32-4b9c-8f09-d72f9b820eda": { - "asset": 1745572200000, - "meta": 1745834136490, + "asset": 1750920400513, + "meta": 1750920536488, "relativePath": "resources\\Json\\level63.json" }, "c59bbf88-51e4-47a8-8290-7f93cd2e8748": { - "asset": 1745573247000, - "meta": 1745834136491, + "asset": 1750920400514, + "meta": 1750920536495, "relativePath": "resources\\Json\\level64.json" }, "ec4fd522-e3c4-4f7d-870c-f8a4e9ad722a": { - "asset": 1745830765000, - "meta": 1745834136492, + "asset": 1750920400515, + "meta": 1750920536493, "relativePath": "resources\\Json\\level65.json" }, "1b839414-50d7-4a44-92ce-e3ae734be929": { - "asset": 1745830634000, - "meta": 1745834136494, + "asset": 1750920400516, + "meta": 1750920536496, "relativePath": "resources\\Json\\level67.json" }, "baef7421-d845-44a8-b30c-616eb0b30b1f": { - "asset": 1745830758000, - "meta": 1745834136496, + "asset": 1750920400515, + "meta": 1750920536493, "relativePath": "resources\\Json\\level66.json" }, "257c6394-95e2-415a-b84f-aa8079faeb97": { - "asset": 1745834174348, - "meta": 1745834181067, + "asset": 1750920400464, + "meta": 1750920536405, "relativePath": "resources\\Json\\level14.json" }, "e08a7960-96e0-4c20-85a3-daecc3c215db": { - "asset": 1745834204964, - "meta": 1745834212082, + "asset": 1750920400512, + "meta": 1750920536488, "relativePath": "resources\\Json\\level62.json" }, "cb1d6907-6e2b-4c96-ae04-20f4be8eca78": { - "asset": 1750750369174, - "meta": 1750750430453, + "asset": 1750920400319, + "meta": 1750920534753, "relativePath": "UI" }, - "264543aa-e611-4ca0-8a6e-737ae87ece33": { - "asset": 1745840128744, - "meta": 1745893418404, - "relativePath": "LoadScene" - }, "a5a1fd16-fffe-4e74-8bf9-7fd966fce8b7": { - "asset": 1745999667397, - "meta": 1745999674098, + "asset": 1750920400482, + "meta": 1750920536445, "relativePath": "resources\\Json\\level23.json" }, "7575a6bd-a21d-491e-aad2-e40a189683e9": { - "asset": 1746000024920, - "meta": 1746000148798, + "asset": 1750920400387, + "meta": 1750920536424, "relativePath": "music\\hit.mp3" }, "ec293610-1767-46e8-b6b6-4a9a79ef2233": { - "asset": 1746000025640, - "meta": 1746000148800, + "asset": 1750920400386, + "meta": 1750920536421, "relativePath": "music\\down.mp3" }, "8d67c864-c7f4-4305-8b3b-2d66eb69e349": { - "asset": 1746000102638, - "meta": 1746000148801, + "asset": 1750920400405, + "meta": 1750920536423, "relativePath": "music\\xiaochu.mp3" }, "61d4c718-db3b-4b31-8221-f16bea3cf030": { - "asset": 1750315683427, - "meta": 1750325562701, + "asset": 1750920400242, + "meta": 1750920539908, "relativePath": "Script\\module\\GameStart\\GameAppStart.ts" }, "825f4992-deeb-4f19-8c4e-9a65b191753b": { - "asset": 1750750368613, - "meta": 1750750430481, + "asset": 1750920400608, + "meta": 1750920534858, "relativePath": "resources\\Particle" }, "e3319d66-f8c4-44d7-8e31-d0decdefcacc": { - "asset": 1746003674850, - "meta": 1746003698356, + "asset": 1750920400490, + "meta": 1750920536454, "relativePath": "resources\\Json\\level32.json" }, "e382f149-9fe7-435f-b800-434f8203afe3": { - "asset": 1746004843292, - "meta": 1746004873879, + "asset": 1750920400492, + "meta": 1750920536456, "relativePath": "resources\\Json\\level35.json" }, "9a2c5cbb-404d-4802-8d16-b7dc44bc9b63": { - "asset": 1746005640491, - "meta": 1746005750406, + "asset": 1750920400491, + "meta": 1750920536455, "relativePath": "resources\\Json\\level33.json" }, "7271b947-0876-411a-816b-d6bb158d1490": { - "asset": 1746007994885, - "meta": 1746008162669, + "asset": 1750920400493, + "meta": 1750920536462, "relativePath": "resources\\Json\\level37.json" }, "c2861659-2172-4217-8bac-8daaca836f4f": { - "asset": 1746007574206, - "meta": 1746008162671, + "asset": 1750920400495, + "meta": 1750920536463, "relativePath": "resources\\Json\\level40.json" }, "9c856152-685e-4679-951a-e49978ae6b2a": { - "asset": 1746008540669, - "meta": 1746008542101, + "asset": 1750920400497, + "meta": 1750920536466, "relativePath": "resources\\Json\\level42.json" }, "36a3a2e9-11ae-4359-bb93-01f8f61c92bf": { - "asset": 1746008535367, - "meta": 1746008542107, + "asset": 1750920400496, + "meta": 1750920536465, "relativePath": "resources\\Json\\level41.json" }, "84916af2-bab0-43e5-91fc-07108bd831ed": { - "asset": 1746009877154, - "meta": 1746009887239, + "asset": 1750920400502, + "meta": 1750920536473, "relativePath": "resources\\Json\\level46.json" }, "55a0b4dc-93a3-4a1e-8238-bd44427943ae": { - "asset": 1746500414194, - "meta": 1746500461290, + "asset": 1750920400504, + "meta": 1750920536473, "relativePath": "resources\\Json\\level49.json" }, "10029dfc-5454-4977-bd11-8809e8f48cac": { - "asset": 1746683841330, - "meta": 1746683842661, + "asset": 1750920400247, + "meta": 1750920540437, "relativePath": "Script\\module\\Storage\\Storage.ts" }, "e98498e1-12bf-4280-8def-6f8e543fb934": { - "asset": 1747886188004, - "meta": 1747886188009, + "asset": 1750920400409, + "meta": 1750920536038, "relativePath": "prefab\\map\\reduce.prefab" }, "ca599214-e611-4461-8af3-a0de7d60ea53": { - "asset": 1746696453753, - "meta": 1746696482648, + "asset": 1750920400226, + "meta": 1750920535826, "relativePath": "Script\\Reduce.ts" }, "d2e9f95d-f8f9-45a8-8a3b-67a1f370a18d": { - "asset": 1746685509000, - "meta": 1746696858052, + "asset": 1750920400542, + "meta": 1750920541765, "relativePath": "resources\\Particle\\bot_1_1.plist" }, "3a6e128b-d998-4c0b-b1ff-762130a580a2": { - "asset": 1746685566000, - "meta": 1746696858052, + "asset": 1750920400545, + "meta": 1750920541760, "relativePath": "resources\\Particle\\bot_1_3.plist" }, "4386a35e-0b50-4e89-a827-6319df821ec2": { - "asset": 1746685533000, - "meta": 1746696858063, + "asset": 1750920400544, + "meta": 1750920541756, "relativePath": "resources\\Particle\\bot_1_2.plist" }, "a8a0985f-7251-4998-a641-c2333fbef6c6": { - "asset": 1746685740000, - "meta": 1746696858063, + "asset": 1750920400549, + "meta": 1750920541790, "relativePath": "resources\\Particle\\bot_2_3.plist" }, "d8d32fc1-13ba-435c-a2b5-b6afb5ead4c3": { - "asset": 1746685589000, - "meta": 1746696858064, + "asset": 1750920400547, + "meta": 1750920541775, "relativePath": "resources\\Particle\\bot_2_1.plist" }, "49e6cc86-2188-4109-87fd-e23e3a6bb1d3": { - "asset": 1746685761000, - "meta": 1746696858065, + "asset": 1750920400551, + "meta": 1750920541797, "relativePath": "resources\\Particle\\bot_3_1.plist" }, "cc1282c3-e268-4bbb-a5a6-895a475cfc7e": { - "asset": 1746696424000, - "meta": 1746696858065, + "asset": 1750920400553, + "meta": 1750920541805, "relativePath": "resources\\Particle\\bot_3_2.plist" }, "870ec0a5-ac62-49c6-b365-09e22bdf9448": { - "asset": 1746687083000, - "meta": 1746696858065, + "asset": 1750920400555, + "meta": 1750920541868, "relativePath": "resources\\Particle\\bot_3_3.plist" }, "cf99e49b-06ca-454a-9a13-29c4e96328c6": { - "asset": 1746686024000, - "meta": 1746696858066, + "asset": 1750920400557, + "meta": 1750920541878, "relativePath": "resources\\Particle\\left_1_1.plist" }, "b180f2e0-f364-4832-bcd7-c0727c15c5e0": { - "asset": 1746686056000, - "meta": 1746696858066, + "asset": 1750920400558, + "meta": 1750920541886, "relativePath": "resources\\Particle\\left_1_2.plist" }, "2cd94fa9-72c6-4357-88c2-697eeb061de3": { - "asset": 1746686397000, - "meta": 1746696858066, + "asset": 1750920400559, + "meta": 1750920541888, "relativePath": "resources\\Particle\\left_1_3.plist" }, "ed81d2b1-5dbe-4eca-a472-3a22134ea19e": { - "asset": 1746686875000, - "meta": 1746696858066, + "asset": 1750920400561, + "meta": 1750920541893, "relativePath": "resources\\Particle\\left_2_2.plist" }, "15604d4e-0b1d-47bb-ae71-6ddc8d6d8a96": { - "asset": 1746686907000, - "meta": 1746696858066, + "asset": 1750920400560, + "meta": 1750920541893, "relativePath": "resources\\Particle\\left_2_1.plist" }, "23f7b3b3-2805-44bf-8204-d1135244b9ae": { - "asset": 1746687038000, - "meta": 1746696858066, + "asset": 1750920400565, + "meta": 1750920541909, "relativePath": "resources\\Particle\\left_3_1.plist" }, "87bc6933-4c65-48f7-ac9e-347b2145d2ef": { - "asset": 1746686844000, - "meta": 1746696858066, + "asset": 1750920400563, + "meta": 1750920541903, "relativePath": "resources\\Particle\\left_2_3.plist" }, "e5c15f0a-718a-47b6-82dc-ea181130859b": { - "asset": 1746686810000, - "meta": 1746696858066, + "asset": 1750920400548, + "meta": 1750920541783, "relativePath": "resources\\Particle\\bot_2_2.plist" }, "9bcf0f0b-4390-407a-b338-9727ef89750a": { - "asset": 1746687057000, - "meta": 1746696858091, + "asset": 1750920400566, + "meta": 1750920541975, "relativePath": "resources\\Particle\\left_3_2.plist" }, "246d7311-437e-4184-8547-664b85645015": { - "asset": 1746687507000, - "meta": 1746696858091, + "asset": 1750920400570, + "meta": 1750920542000, "relativePath": "resources\\Particle\\right_1_1.plist" }, "abe40804-998a-4602-a647-ea4bffb74929": { - "asset": 1746693333000, - "meta": 1746696858091, + "asset": 1750920400572, + "meta": 1750920541998, "relativePath": "resources\\Particle\\right_1_2.plist" }, "471933f9-e1c4-4830-a7a4-db3e48eff87c": { - "asset": 1746694123000, - "meta": 1746696858091, + "asset": 1750920400576, + "meta": 1750920542022, "relativePath": "resources\\Particle\\right_2_3.plist" }, "523feab4-8c80-4417-90c3-47e34cf18f66": { - "asset": 1746687098000, - "meta": 1746696858098, + "asset": 1750920400569, + "meta": 1750920541983, "relativePath": "resources\\Particle\\left_3_3.plist" }, "259cbf2f-a53d-49c6-9c0d-c28875e8bcd4": { - "asset": 1746693363000, - "meta": 1746696858098, + "asset": 1750920400573, + "meta": 1750920541996, "relativePath": "resources\\Particle\\right_1_3.plist" }, "636f36f4-76c6-43be-b0de-95c017bc0749": { - "asset": 1746694419000, - "meta": 1746696858098, + "asset": 1750920400577, + "meta": 1750920542059, "relativePath": "resources\\Particle\\right_3_1.plist" }, "d6d986d6-5774-4d13-9207-4b44d4396852": { - "asset": 1746695341000, - "meta": 1746696858098, + "asset": 1750920400580, + "meta": 1750920542075, "relativePath": "resources\\Particle\\right_3_3.plist" }, "7d728925-7cba-4ba2-83ac-9902652f55bf": { - "asset": 1746693940000, - "meta": 1746696858098, + "asset": 1750920400574, + "meta": 1750920542002, "relativePath": "resources\\Particle\\right_2_1.plist" }, "40f60783-36f6-4831-b55c-3f7aef910438": { - "asset": 1746695524000, - "meta": 1746696858098, + "asset": 1750920400596, + "meta": 1750920542079, "relativePath": "resources\\Particle\\top_1_2.plist" }, "514ab07a-7f5c-46a5-87f0-88cb5dadc0cf": { - "asset": 1746695306000, - "meta": 1746696858098, + "asset": 1750920400578, + "meta": 1750920542073, "relativePath": "resources\\Particle\\right_3_2.plist" }, "01fcca73-6a36-405e-98fb-9e6f37cd2c13": { - "asset": 1746695365000, - "meta": 1746696858098, + "asset": 1750920400595, + "meta": 1750920542079, "relativePath": "resources\\Particle\\top_1_1.plist" }, "27f92c6a-8bde-4a6e-a6a9-9c187bba0ef9": { - "asset": 1746696103000, - "meta": 1746696858098, + "asset": 1750920400597, + "meta": 1750920542084, "relativePath": "resources\\Particle\\top_1_3.plist" }, "68e20e2a-61c1-4058-8cdb-4994aec5f8ce": { - "asset": 1746696176000, - "meta": 1746696858098, + "asset": 1750920400575, + "meta": 1750920542011, "relativePath": "resources\\Particle\\right_2_2.plist" }, "829311c5-ad5c-4756-9a8e-f0968c6e0162": { - "asset": 1746696154000, - "meta": 1746696858098, + "asset": 1750920400599, + "meta": 1750920542093, "relativePath": "resources\\Particle\\top_2_1.plist" }, "fe21168e-d899-4afc-82a6-e9c7585df025": { - "asset": 1746696263000, - "meta": 1746696858106, + "asset": 1750920400601, + "meta": 1750920542093, "relativePath": "resources\\Particle\\top_2_2.plist" }, "63e77e87-7700-4af5-afcc-c540b8af10a0": { - "asset": 1746696368000, - "meta": 1746696858106, + "asset": 1750920400607, + "meta": 1750920542187, "relativePath": "resources\\Particle\\top_3_3.plist" }, "1b494dbb-d786-4f0c-a69d-e4f4db0d889b": { - "asset": 1746696287000, - "meta": 1746696858106, + "asset": 1750920400603, + "meta": 1750920542153, "relativePath": "resources\\Particle\\top_2_3.plist" }, "75feb7e8-e734-4102-b055-93e74d5aed50": { - "asset": 1746696323000, - "meta": 1746696858114, + "asset": 1750920400605, + "meta": 1750920542160, "relativePath": "resources\\Particle\\top_3_1.plist" }, "89d0ea0c-b527-4f7a-a1da-9c0047f9e40e": { - "asset": 1746696349000, - "meta": 1746696858114, + "asset": 1750920400606, + "meta": 1750920542167, "relativePath": "resources\\Particle\\top_3_2.plist" }, "c5ee34da-68b8-453a-996d-dcb9cd04c942": { - "asset": 1750750368003, - "meta": 1750750430475, + "asset": 1750920400420, + "meta": 1750920534845, "relativePath": "res\\font" }, "297683d0-3b76-4fa0-befa-20deae2e66c4": { - "asset": 1746778758765, - "meta": 1746778759678, + "asset": 1750920400484, + "meta": 1750920536443, "relativePath": "resources\\Json\\level25.json" }, "5ed13d95-5b93-4407-b770-0dedeb674b0f": { - "asset": 1749038860317, - "meta": 1749038860321, + "asset": 1750920400412, + "meta": 1750920536073, "relativePath": "prefab\\prop\\freeze.prefab" }, "20379a36-3946-47df-b5c0-96ac9d277b7d": { - "asset": 1746779222301, - "meta": 1746779227524, + "asset": 1750920400500, + "meta": 1750920536469, "relativePath": "resources\\Json\\level45.json" }, "68eef335-f67e-41c3-a232-f99c4ea6797e": { - "asset": 1746779334200, - "meta": 1746779335071, + "asset": 1750920400499, + "meta": 1750920536468, "relativePath": "resources\\Json\\level44.json" }, "563da8e2-de9f-46ff-9eae-3f58663508f1": { - "asset": 1746524583000, - "meta": 1746779797923, + "asset": 1750920400523, + "meta": 1750920536503, "relativePath": "resources\\Json\\level74.json" }, "340d8651-c630-4ee0-a083-7835c3d0eb51": { - "asset": 1746524355000, - "meta": 1746779797924, + "asset": 1750920400522, + "meta": 1750920536503, "relativePath": "resources\\Json\\level73.json" }, "a059709c-98ea-4ff7-b95d-1147b409e547": { - "asset": 1746524898000, - "meta": 1746779797925, + "asset": 1750920400523, + "meta": 1750920536506, "relativePath": "resources\\Json\\level75.json" }, "9014f392-1f3d-42dc-820c-81454dde192d": { - "asset": 1746523884000, - "meta": 1746779797926, + "asset": 1750920400521, + "meta": 1750920536498, "relativePath": "resources\\Json\\level71.json" }, "6db06cce-ee05-4014-ac50-77f548822135": { - "asset": 1746524178000, - "meta": 1746779797927, + "asset": 1750920400522, + "meta": 1750920536498, "relativePath": "resources\\Json\\level72.json" }, "41916418-405c-4025-8e60-c3fdb4a83154": { - "asset": 1750750369124, - "meta": 1750750430453, + "asset": 1750920400287, + "meta": 1750920534753, "relativePath": "TextureBlock" }, "6713016b-5658-4a59-ac4a-ce9d84f47b8d": { - "asset": 1750750369165, - "meta": 1750750430500, + "asset": 1750923547584, + "meta": 1750987168164, "relativePath": "TextureBlock\\block" }, "8f9cd656-30c2-4d3f-88dd-ef00d02b3f3e": { - "asset": 1746782667237, - "meta": 1746785425448, + "asset": 1750920400295, + "meta": 1750920542413, "relativePath": "TextureBlock\\block\\block3.plist" }, "e29d7af1-7e79-4793-b052-bfeb02003e1b": { - "asset": 1746782737124, - "meta": 1746785425474, + "asset": 1750920400304, + "meta": 1750920542474, "relativePath": "TextureBlock\\block\\block4.plist" }, "4f97daea-3e76-4e62-b579-e2b6b25bffd2": { - "asset": 1746782810375, - "meta": 1746785425497, + "asset": 1750920400307, + "meta": 1750920542537, "relativePath": "TextureBlock\\block\\block5.plist" }, "f2c494b7-b6df-488f-b194-358235b0f180": { - "asset": 1749622717622, - "meta": 1749692957709, + "asset": 1750920400311, + "meta": 1750920542653, "relativePath": "TextureBlock\\block\\door.plist" }, "d7e227ab-cc06-48f5-a2ac-092b19ec7f6f": { - "asset": 1745304989984, - "meta": 1746785425594, + "asset": 1750920400313, + "meta": 1750920542743, "relativePath": "TextureBlock\\block\\down.plist" }, "f5eb32ae-c97b-4173-abf2-83de016c2ace": { - "asset": 1746785322424, - "meta": 1746785425317, + "asset": 1750920400428, + "meta": 1750920536203, "relativePath": "res\\texture_Block\\down.png" }, "d01519e3-ffe3-4b8f-980b-50811cc6eb58": { - "asset": 1749622845471, - "meta": 1749692957651, + "asset": 1750920400312, + "meta": 1750920538177, "relativePath": "TextureBlock\\block\\door.png" }, "ed2c3a21-0522-445d-9904-76843208705f": { - "asset": 1745305008193, - "meta": 1746785425319, + "asset": 1750920400314, + "meta": 1750920538165, "relativePath": "TextureBlock\\block\\down.png" }, "8be8182e-f38a-459c-875e-8b4c5d4c53ef": { - "asset": 1746782846484, - "meta": 1746785425326, + "asset": 1750920400310, + "meta": 1750920538263, "relativePath": "TextureBlock\\block\\block5.png" }, "48449cea-32d6-42d9-8499-1fd116440432": { - "asset": 1746782842958, - "meta": 1746785425327, + "asset": 1750920400307, + "meta": 1750920538237, "relativePath": "TextureBlock\\block\\block4.png" }, "d4dfa9d3-985d-4d58-9c06-fc12d3df7d28": { - "asset": 1746782839452, - "meta": 1746785425331, + "asset": 1750920400303, + "meta": 1750920538249, "relativePath": "TextureBlock\\block\\block3.png" }, - "0c4d4d5d-030c-48cd-8abf-8475e0e4ea85": { - "asset": 1746786259272, - "meta": 1747017090310, - "relativePath": "font" - }, "04e50346-1a72-40e7-84f4-34fc35145f86": { - "asset": 1746788471263, - "meta": 1746788501154, + "asset": 1750920400287, + "meta": 1750920542264, "relativePath": "TextureBlock\\block\\block1.plist" }, "4415f278-50b1-46b5-bdf1-0dd7fa4b461b": { - "asset": 1746788486306, - "meta": 1746788501121, + "asset": 1750920400290, + "meta": 1750920538155, "relativePath": "TextureBlock\\block\\block1.png" }, "8b6fd107-6aa0-4523-8fd3-c0f064524b0c": { - "asset": 1747031220662, - "meta": 1747035385860, + "asset": 1750920400429, + "meta": 1750920541423, "relativePath": "res\\texture_Block\\freeze.plist" }, "484f1896-8707-4cc7-8e61-9995a2133f09": { - "asset": 1747031237447, - "meta": 1747035385828, + "asset": 1750920400434, + "meta": 1750920536256, "relativePath": "res\\texture_Block\\freeze.png" }, "0a33af4a-6c55-4b97-a88e-80ce9d1a2321": { - "asset": 1745905232000, - "meta": 1747036608344, + "asset": 1750920400435, + "meta": 1750920536223, "relativePath": "res\\texture_Block\\zhangai.png" }, - "90c37607-5145-4fb1-8d26-94d9a89baeee": { - "asset": 1748318266184, - "meta": 1748437823886, - "relativePath": "Script\\Barrier.ts" - }, "363f650c-0113-40a7-b8d0-1e941f51f056": { - "asset": 1747037900326, - "meta": 1747037915382, + "asset": 1750920400581, + "meta": 1750920536573, "relativePath": "resources\\Particle\\sp1.png" }, "3041839a-879f-4de0-aac8-11fc29132a3a": { - "asset": 1747037900699, - "meta": 1747037915385, + "asset": 1750920400594, + "meta": 1750920536665, "relativePath": "resources\\Particle\\sp9.png" }, "7fd24a6a-f4ee-4180-8a76-97d073262354": { - "asset": 1747037900515, - "meta": 1747037915386, + "asset": 1750920400589, + "meta": 1750920536589, "relativePath": "resources\\Particle\\sp5.png" }, "f3366754-10f0-45e6-91f6-39784b12abd5": { - "asset": 1747037900273, - "meta": 1747037915391, + "asset": 1750920400582, + "meta": 1750920536578, "relativePath": "resources\\Particle\\sp10.png" }, "5cd8d33e-2fec-4ca3-aaad-d0fd7b123bf2": { - "asset": 1747037900374, - "meta": 1747037915399, + "asset": 1750920400584, + "meta": 1750920536593, "relativePath": "resources\\Particle\\sp2.png" }, "d5e17fe2-ec17-4842-8bfb-7d68719eecaf": { - "asset": 1747037900468, - "meta": 1747037915403, + "asset": 1750920400588, + "meta": 1750920536620, "relativePath": "resources\\Particle\\sp4.png" }, "68620429-1b3d-400e-832c-25e8358d9062": { - "asset": 1747037900420, - "meta": 1747037915406, + "asset": 1750920400586, + "meta": 1750920536583, "relativePath": "resources\\Particle\\sp3.png" }, "91339250-5bb5-461e-9d46-aa86181e755c": { - "asset": 1747037900560, - "meta": 1747037915408, + "asset": 1750920400590, + "meta": 1750920536605, "relativePath": "resources\\Particle\\sp6.png" }, "f5f04e60-a876-43ed-b0f6-f829aee17c65": { - "asset": 1747037900654, - "meta": 1747037915410, + "asset": 1750920400592, + "meta": 1750920536666, "relativePath": "resources\\Particle\\sp8.png" }, "5dc63b37-a57d-4a7c-a696-95e0f14daf93": { - "asset": 1747037900607, - "meta": 1747037915411, + "asset": 1750920400591, + "meta": 1750920536623, "relativePath": "resources\\Particle\\sp7.png" }, "c8f0a088-7a76-4057-b546-8e50c5b105c8": { - "asset": 1750750367996, - "meta": 1750750430474, + "asset": 1750920400418, + "meta": 1750920534842, "relativePath": "res\\effect" }, "a546d6f3-5346-4f7c-b2cb-e369cab36b48": { - "asset": 1747042601477, - "meta": 1748437824648, + "asset": 1750920400373, + "meta": 1750920535941, "relativePath": "effect\\texture.png" }, "7ee58a72-2111-450d-b4de-496f4b3ad9a7": { - "asset": 1747047159947, - "meta": 1747047159950, + "asset": 1750920400417, + "meta": 1750920541426, "relativePath": "res\\effect\\New Material.mtl" }, "fff54feb-03db-4d8a-b079-57eedca8a644": { - "asset": 1747120564208, - "meta": 1748437825590, + "asset": 1750920400343, + "meta": 1750920540944, "relativePath": "effect\\New Material.mtl" }, "6970f0a1-4487-4ec7-9623-cfabdaeab39c": { - "asset": 1747050236464, - "meta": 1748437823798, + "asset": 1750920400370, + "meta": 1750920534789, "relativePath": "effect\\ronghua.effect" }, "5a2ab061-e5f5-4caa-b4ee-4a27ff8e7db7": { - "asset": 1747104459028, - "meta": 1748437823809, + "asset": 1750920400380, + "meta": 1750920534795, "relativePath": "effect\\融化.effect" }, "341aecd6-8bf0-4219-adaa-dbc54ef22a32": { - "asset": 1747117357281, - "meta": 1748437823821, + "asset": 1750920400381, + "meta": 1750920534806, "relativePath": "effect\\融化.ts" }, "daf4fd67-c532-4d40-ac76-f104d2e011fc": { - "asset": 1750750372504, - "meta": 1750750429443, + "asset": 1750920401690, + "meta": 1750920528225, "relativePath": "Map" }, "f20c7bea-752c-4521-bba7-facfb396bd0f": { - "asset": 1750750372512, - "meta": 1750750429444, + "asset": 1750920401692, + "meta": 1750920528226, "relativePath": "Material" }, "40181e0c-789f-47f1-ba3c-d92486df52dd": { - "asset": 1719888368058, - "meta": 1747125841647, + "asset": 1750920401691, + "meta": 1750920528259, "relativePath": "Material\\TmoEffect.effect" }, "f2c5d7aa-95bc-4b34-a4c1-01ef2cf23d19": { - "asset": 1750750372529, - "meta": 1750750429445, + "asset": 1750920401697, + "meta": 1750920528227, "relativePath": "Script" }, "18d1ce4e-6c1b-4279-acac-c8ee5b30881b": { - "asset": 1719888368063, - "meta": 1747125841708, + "asset": 1750920401693, + "meta": 1750920528439, "relativePath": "Script\\TmoAssembler.js" }, "30e2e490-5833-4a23-af45-6da61f37ada3": { - "asset": 1719888368065, - "meta": 1747125841739, + "asset": 1750920401694, + "meta": 1750920528499, "relativePath": "Script\\TmoObjectGroup.js" }, "4fa6c3b4-e5a0-4a1a-833e-e445fdce1902": { - "asset": 1719888368066, - "meta": 1747125841748, + "asset": 1750920401695, + "meta": 1750920528511, "relativePath": "Script\\TmoSprite.js" }, "d60cfac6-6d70-4b05-ba65-2e84fb4c19fb": { - "asset": 1719888368068, - "meta": 1747125841772, + "asset": 1750920401696, + "meta": 1750920528543, "relativePath": "Script\\TmoTiledLayer.js" }, "0b9eeb66-4947-4945-9090-4bdd53602c3f": { - "asset": 1719888368071, - "meta": 1747125841791, + "asset": 1750920401697, + "meta": 1750920528568, "relativePath": "Script\\TmoTiledMap.js" }, "9a04d176-199d-4828-99e4-f04c825a7d21": { - "asset": 1719888368060, - "meta": 1747125841841, + "asset": 1750920401691, + "meta": 1750920528613, "relativePath": "Material\\TmoMaterial.mtl" }, "d0ea6fbd-3d02-4764-951b-66f01e10443c": { - "asset": 1719888368055, - "meta": 1747125841842, + "asset": 1750920401686, + "meta": 1750920528613, "relativePath": "Map\\TmoMap.tmx" }, "1bec116d-72a4-4268-8396-f530996ffb22": { - "asset": 1719888368048, - "meta": 1747125841835, + "asset": 1750920401688, + "meta": 1750920528608, "relativePath": "Map\\roguelikeSheet_transparent.png" }, "d9b8a450-e449-4113-8295-a26af54393cb": { - "asset": 1719888368053, - "meta": 1747125841836, + "asset": 1750920401690, + "meta": 1750920528608, "relativePath": "Map\\roguelikeSheet_transparent2.png" }, "e8f06cd0-a6df-473e-8c1c-c2dca70b1193": { - "asset": 1745303526000, - "meta": 1747388064817, + "asset": 1750920400354, + "meta": 1750920535790, "relativePath": "effect\\lianjie_2.png" }, "82acc72d-a7fc-4411-a357-fe2ea85ffd5c": { - "asset": 1745303526000, - "meta": 1747388064818, + "asset": 1750920400353, + "meta": 1750920535768, "relativePath": "effect\\lianjie_1.png" }, "8b8ec6d3-f576-46ed-beea-a154efe1621c": { - "asset": 1750750369043, - "meta": 1750750430496, + "asset": 1750920400262, + "meta": 1750920535897, "relativePath": "Shader\\mofabang_baozha" }, "afcb829a-5254-4c11-9105-dfd8221fb5a9": { - "asset": 1750750369026, - "meta": 1750750430493, + "asset": 1750920400258, + "meta": 1750920535897, "relativePath": "Shader\\jiekou" }, "52d6fee1-c5ed-4712-8dbf-cbea31617bd1": { - "asset": 1750750369026, - "meta": 1750750430525, + "asset": 1750920400257, + "meta": 1750920537650, "relativePath": "Shader\\jiekou\\横" }, "eec9349a-c7f0-4791-9e85-caba15e44e97": { - "asset": 1750750369034, - "meta": 1750750430528, + "asset": 1750920400259, + "meta": 1750920537653, "relativePath": "Shader\\jiekou\\竖" }, "f5c90851-ef9a-44a5-96de-54f17b7a766b": { - "asset": 1750750369056, - "meta": 1750750430497, + "asset": 1750920400265, + "meta": 1750920535897, "relativePath": "Shader\\mofabang_texiao" }, "fe7bac61-99b4-4653-9428-8e258da15302": { - "asset": 1750750369067, - "meta": 1750750430497, + "asset": 1750920400272, + "meta": 1750920535899, "relativePath": "Shader\\mofabang_tuowei" }, "b6ed74f8-9e62-419d-9ea7-59972f6e1a52": { - "asset": 1747710116542, - "meta": 1747710423396, + "asset": 1750920400256, + "meta": 1750920540767, "relativePath": "Shader\\jiekou\\横\\jiekou_heng.atlas" }, "319e830d-24b7-499e-b9ab-e6484934d981": { - "asset": 1747710140423, - "meta": 1747710423400, + "asset": 1750920400258, + "meta": 1750920540764, "relativePath": "Shader\\jiekou\\竖\\skeleton.atlas" }, "97459c20-5c45-444d-b533-f50d2406fe43": { - "asset": 1747709651535, - "meta": 1747710423407, + "asset": 1750920400260, + "meta": 1750920537765, "relativePath": "Shader\\mofabang_baozha\\mofabang_baozha.atlas" }, "13f1b3eb-4cde-4c8e-9dee-16929acd6d24": { - "asset": 1747709904309, - "meta": 1747710423411, + "asset": 1750920400263, + "meta": 1750920537804, "relativePath": "Shader\\mofabang_texiao\\mofabang_texiao.atlas" }, "a4736a35-1bd8-4751-89b4-d0bc089a2614": { - "asset": 1750750369095, - "meta": 1750750430497, + "asset": 1750920400275, + "meta": 1750920535899, "relativePath": "Shader\\zhadan" }, "dca5e70b-8d3f-4ac0-abe7-d0c5647f7837": { - "asset": 1747710140422, - "meta": 1747710423467, + "asset": 1750920400259, + "meta": 1750920540796, "relativePath": "Shader\\jiekou\\竖\\skeleton.png" }, "b422f3cf-81f1-4bda-9b15-c5ef7a9687b8": { - "asset": 1747710116541, - "meta": 1747710423473, + "asset": 1750920400257, + "meta": 1750920540827, "relativePath": "Shader\\jiekou\\横\\jiekou_heng.png" }, "a2a2084f-96a0-4646-a699-ba9714473c81": { - "asset": 1747710233734, - "meta": 1747710423523, + "asset": 1750920400272, + "meta": 1750920537888, "relativePath": "Shader\\zhadan\\zhandan.atlas" }, "88cf729e-5501-40cb-9039-36e92ee9c49b": { - "asset": 1747709650847, - "meta": 1747710423740, + "asset": 1750920400260, + "meta": 1750920542469, "relativePath": "Shader\\mofabang_baozha\\mofabang_baozha.json" }, "0e005ec2-f5a3-41d3-8a99-7ea6d784440d": { - "asset": 1747710140407, - "meta": 1747710423752, + "asset": 1750920400258, + "meta": 1750920543225, "relativePath": "Shader\\jiekou\\竖\\skeleton.json" }, "86f338ab-4874-40d7-ac5e-06e2bf339c6c": { - "asset": 1747709904145, - "meta": 1747710423764, + "asset": 1750920400263, + "meta": 1750920542473, "relativePath": "Shader\\mofabang_texiao\\mofabang_texiao.json" }, "ca1fbdcb-5180-4815-8751-4b66146e74de": { - "asset": 1747710116501, - "meta": 1747710423771, + "asset": 1750920400257, + "meta": 1750920543231, "relativePath": "Shader\\jiekou\\横\\jiekou_heng.json" }, "2a1bffdc-6b63-425c-9710-a32b4d93ea4b": { - "asset": 1747710233511, - "meta": 1747710423781, + "asset": 1750920400273, + "meta": 1750920542701, "relativePath": "Shader\\zhadan\\zhandan.json" }, "43aa6fa9-d440-4a11-93ae-e92a87fc2c4a": { - "asset": 1750750369069, - "meta": 1750750430529, + "asset": 1750920400267, + "meta": 1750920537673, "relativePath": "Shader\\mofabang_tuowei\\2D and UI trailing effects" }, "1aa36344-6803-464b-9ccd-bd47a2dc65d7": { - "asset": 1750750369073, - "meta": 1750750430538, + "asset": 1750920400268, + "meta": 1750920540707, "relativePath": "Shader\\mofabang_tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x" }, "a016c003-4b29-4f55-8f78-f3b6dd5abab6": { - "asset": 1750750369078, - "meta": 1750750430542, + "asset": 1750920400268, + "meta": 1750920540728, "relativePath": "Shader\\mofabang_tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures" }, "866e4be5-7181-407b-8a74-8822bf3e46db": { - "asset": 1750750369086, - "meta": 1750750430549, + "asset": 1750920400270, + "meta": 1750920540737, "relativePath": "Shader\\mofabang_tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures\\particle" }, "32ec5e41-9aeb-475a-9ad2-1d0a81b8dfc2": { - "asset": 1747711946060, - "meta": 1747711946061, + "asset": 1750920400271, + "meta": 1750920537757, "relativePath": "Shader\\mofabang_tuowei\\tuowei1.prefab" }, "118d4d54-d313-4f52-b49f-593effa13423": { - "asset": 1747341686000, - "meta": 1747711946094, + "asset": 1750920400270, + "meta": 1750920540880, "relativePath": "Shader\\mofabang_tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures\\particle\\flash.png" }, "c88c6283-3de7-4606-b65a-fa3e18c95049": { - "asset": 1747341686000, - "meta": 1747711946095, + "asset": 1750920400269, + "meta": 1750920540867, "relativePath": "Shader\\mofabang_tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures\\particle\\circle_00.png" }, "727ab669-af95-43be-9818-2065a98b84a5": { - "asset": 1747341686000, - "meta": 1747711946098, + "asset": 1750920400269, + "meta": 1750920540876, "relativePath": "Shader\\mofabang_tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures\\particle\\LiZi1.png" }, "363ef00a-0ca9-4ccd-b4bc-62a7dec9b6de": { - "asset": 1747710488564, - "meta": 1747711946103, + "asset": 1750920400265, + "meta": 1750920537960, "relativePath": "Shader\\mofabang_texiao\\mofabang_texiao.png" }, "071c697b-6b3e-4294-a6bb-e433ef19e445": { - "asset": 1747341686000, - "meta": 1747711946106, + "asset": 1750920400271, + "meta": 1750920537937, "relativePath": "Shader\\mofabang_tuowei\\bang.png" }, "15f7f173-be51-47f3-8314-66d14e63471f": { - "asset": 1747710491070, - "meta": 1747711946124, + "asset": 1750920400275, + "meta": 1750920538107, "relativePath": "Shader\\zhadan\\zhandan.png" }, "ff0d5773-ca66-4087-b1b7-4777121d85be": { - "asset": 1747710487679, - "meta": 1747711946149, + "asset": 1750920400262, + "meta": 1750920538076, "relativePath": "Shader\\mofabang_baozha\\mofabang_baozha.png" }, "3d20e513-a37f-4e1f-81b2-ad82655fbae7": { - "asset": 1747385177000, - "meta": 1747825104791, + "asset": 1750920400507, + "meta": 1750920536478, "relativePath": "resources\\Json\\level53.json" }, "d7bd43d2-5cca-4b6c-9e82-a6cc63527ca2": { - "asset": 1747797714000, - "meta": 1747825104796, + "asset": 1750920400510, + "meta": 1750920536483, "relativePath": "resources\\Json\\level58.json" }, "77335854-4a1a-4f26-9901-c790758a1ad8": { - "asset": 1747384577000, - "meta": 1747825104800, + "asset": 1750920400507, + "meta": 1750920536478, "relativePath": "resources\\Json\\level52.json" }, "9fab4afa-0132-4bff-a174-be0bf9309e99": { - "asset": 1747810131000, - "meta": 1747825104803, + "asset": 1750920400510, + "meta": 1750920536483, "relativePath": "resources\\Json\\level59.json" }, "da9fa04e-0928-44bc-8a94-069188915bc3": { - "asset": 1747383994000, - "meta": 1747825104804, + "asset": 1750920400526, + "meta": 1750920536511, "relativePath": "resources\\Json\\level80.json" }, "847af5ce-99e2-4928-a762-6cf0be6e0313": { - "asset": 1747813582000, - "meta": 1747825104806, + "asset": 1750920400527, + "meta": 1750920536511, "relativePath": "resources\\Json\\level81.json" }, "61ccb2ff-6d22-465b-a4c2-e30a8362e201": { - "asset": 1747374087000, - "meta": 1747825104807, + "asset": 1750920400529, + "meta": 1750920536518, "relativePath": "resources\\Json\\level84.json" }, "08ba6e2c-b755-496e-8698-1b49e2137e72": { - "asset": 1747367055000, - "meta": 1747825104810, + "asset": 1750920400527, + "meta": 1750920536515, "relativePath": "resources\\Json\\level82.json" }, "4eefa689-9a3c-4525-90f7-02e393e84cea": { - "asset": 1747816655000, - "meta": 1747825104811, + "asset": 1750920400530, + "meta": 1750920536517, "relativePath": "resources\\Json\\level86.json" }, "7deeab69-13fa-4f8b-8366-de153a780366": { - "asset": 1747815568000, - "meta": 1747825104813, + "asset": 1750920400530, + "meta": 1750920536518, "relativePath": "resources\\Json\\level85.json" }, "aae84cd2-d30f-40b7-9e29-503635e78ad3": { - "asset": 1747806207000, - "meta": 1747825104814, + "asset": 1750920400509, + "meta": 1750920536483, "relativePath": "resources\\Json\\level57.json" }, "a1c4796f-77bf-49c5-9b6a-fc680ac4fd90": { - "asset": 1747392192000, - "meta": 1747825104816, + "asset": 1750920400508, + "meta": 1750920536482, "relativePath": "resources\\Json\\level55.json" }, "8ededb2a-b535-494b-b582-046a008ff748": { - "asset": 1747819333000, - "meta": 1747825104820, + "asset": 1750920400532, + "meta": 1750920536518, "relativePath": "resources\\Json\\level87.json" }, "7b899124-e65f-42ca-9360-04616684e7c1": { - "asset": 1747379533000, - "meta": 1747825104821, + "asset": 1750920400533, + "meta": 1750920536520, "relativePath": "resources\\Json\\level89.json" }, "cc263886-aec5-4fa8-9734-b52d9e578e48": { - "asset": 1747824759000, - "meta": 1747825104822, + "asset": 1750920400535, + "meta": 1750920536523, "relativePath": "resources\\Json\\level90.json" }, "c63bea39-61e5-4b89-b514-d84a84d5b3cf": { - "asset": 1747884575000, - "meta": 1747893824029, + "asset": 1750920400519, + "meta": 1750920536498, "relativePath": "resources\\Json\\level69.json" }, "8ccfd006-2c8d-426d-8d3a-3560e61de24e": { - "asset": 1747362753000, - "meta": 1747893824031, + "asset": 1750920400525, + "meta": 1750920536508, "relativePath": "resources\\Json\\level79.json" }, "3518f8c0-d85b-48fb-99ed-41718f2bcff1": { - "asset": 1747887167000, - "meta": 1747893824033, + "asset": 1750920400524, + "meta": 1750920536508, "relativePath": "resources\\Json\\level77.json" }, "da943e93-7ecf-4ff8-936c-5a9c26a88a32": { - "asset": 1747300259000, - "meta": 1747893824035, + "asset": 1750920400525, + "meta": 1750920536508, "relativePath": "resources\\Json\\level78.json" }, "5f6898a9-23b4-4e9c-b751-017617017813": { - "asset": 1747885479000, - "meta": 1747893824037, + "asset": 1750920400524, + "meta": 1750920536506, "relativePath": "resources\\Json\\level76.json" }, "e9baff1b-7642-4be9-88ca-f3f9a4e2f510": { - "asset": 1750750368065, - "meta": 1750750430478, + "asset": 1750920400632, + "meta": 1750920534846, "relativePath": "resources\\bg" }, "02990639-fe0f-4ad3-803c-df7b0f848c77": { - "asset": 1747986598423, - "meta": 1747986908493, + "asset": 1750920400624, + "meta": 1750920536253, "relativePath": "resources\\bg\\bg1.jpg" }, "352b95f2-1985-4a53-975f-76dcf7d4b46b": { - "asset": 1747986314598, - "meta": 1747986908500, + "asset": 1750920400627, + "meta": 1750920536273, "relativePath": "resources\\bg\\bg4.jpg" }, "984f38d2-a029-4f40-926d-e83a6d99809a": { - "asset": 1747986518706, - "meta": 1747986908505, + "asset": 1750920400630, + "meta": 1750920536363, "relativePath": "resources\\bg\\bg7.jpg" }, "90680057-c6bd-4b0a-a386-8c948af5a7b4": { - "asset": 1747986363897, - "meta": 1747986908510, + "asset": 1750920400628, + "meta": 1750920536314, "relativePath": "resources\\bg\\bg5.jpg" }, "400ebc7f-8b6d-4fab-9510-228f4a852233": { - "asset": 1747986487018, - "meta": 1747986908537, + "asset": 1750920400629, + "meta": 1750920536318, "relativePath": "resources\\bg\\bg6.jpg" }, "f2ea2a0e-1212-40d4-9a37-340cec0bb051": { - "asset": 1747986266850, - "meta": 1747986908539, + "asset": 1750920400627, + "meta": 1750920536288, "relativePath": "resources\\bg\\bg3.jpg" }, "78991791-82f2-4a52-a829-5bd78ecf9e09": { - "asset": 1747986556313, - "meta": 1747986908547, + "asset": 1750920400631, + "meta": 1750920536358, "relativePath": "resources\\bg\\bg8.jpg" }, "932f20e4-718e-42cd-a735-f39449ebb955": { - "asset": 1747986188235, - "meta": 1747986908549, + "asset": 1750920400626, + "meta": 1750920536283, "relativePath": "resources\\bg\\bg2.jpg" }, "034840bc-3824-492a-9542-0b64edfb4046": { - "asset": 1750750368769, - "meta": 1750750430487, + "asset": 1750920400623, + "meta": 1750920534860, "relativePath": "resources\\Window_Prop" }, "1c111e49-b82d-4996-b6e9-bc78e698c880": { - "asset": 1747987595874, - "meta": 1747988051909, + "asset": 1750920400611, + "meta": 1750920536823, "relativePath": "resources\\Window_Prop\\daoju1.png" }, "b6ae8682-943e-426b-a202-84f37dc1e843": { - "asset": 1747987597648, - "meta": 1747988051922, + "asset": 1750920400612, + "meta": 1750920536704, "relativePath": "resources\\Window_Prop\\daoju3.png" }, "0b24a717-3022-47c4-8739-9b8de223209a": { - "asset": 1747987598677, - "meta": 1747988051932, + "asset": 1750920400613, + "meta": 1750920537033, "relativePath": "resources\\Window_Prop\\daoju4.png" }, "485efaf3-8f31-441b-8264-6597e43bedea": { - "asset": 1747987592593, - "meta": 1747988051935, + "asset": 1750920400608, + "meta": 1750920536698, "relativePath": "resources\\Window_Prop\\ban.png" }, "10bd800c-0cf0-4fd1-b081-59bdb30d45c3": { - "asset": 1747987594995, - "meta": 1747988051938, + "asset": 1750920400610, + "meta": 1750920536683, "relativePath": "resources\\Window_Prop\\btn.png" }, "f3638483-b203-466d-bd77-27450b756fa9": { - "asset": 1747987593163, - "meta": 1747988051940, + "asset": 1750920400620, + "meta": 1750920537798, "relativePath": "resources\\Window_Prop\\light1.png" }, "97c09743-de26-4de2-b679-165a0f109674": { - "asset": 1747987600435, - "meta": 1747988051944, + "asset": 1750920400615, + "meta": 1750920537052, "relativePath": "resources\\Window_Prop\\daoju6.png" }, "4f0a5f34-c7eb-40f1-b9d4-f05d45bf9157": { - "asset": 1747987594481, - "meta": 1747988051946, + "asset": 1750920400622, + "meta": 1750920537743, "relativePath": "resources\\Window_Prop\\next.png" }, "9c5c2e4c-dc57-4743-ba73-189a3050d7af": { - "asset": 1747987601327, - "meta": 1747988051963, + "asset": 1750920400616, + "meta": 1750920537083, "relativePath": "resources\\Window_Prop\\daoju7.png" }, "b56981d3-e42d-455f-81b9-418f92cd72ef": { - "asset": 1747987594827, - "meta": 1747988051972, + "asset": 1750920400609, + "meta": 1750920536683, "relativePath": "resources\\Window_Prop\\btn 2.png" }, "5e6f2066-cb12-41b7-a171-fc2003da60cf": { - "asset": 1747987599524, - "meta": 1747988051974, + "asset": 1750920400614, + "meta": 1750920537039, "relativePath": "resources\\Window_Prop\\daoju5.png" }, "31334095-1bce-4819-afb1-b9f04de73f2a": { - "asset": 1747987593750, - "meta": 1747988051977, + "asset": 1750920400621, + "meta": 1750920537753, "relativePath": "resources\\Window_Prop\\light2.png" }, "0049e9ab-7e39-49fa-abfd-27482b158ae2": { - "asset": 1747987596759, - "meta": 1747988051979, + "asset": 1750920400611, + "meta": 1750920536822, "relativePath": "resources\\Window_Prop\\daoju2.png" }, "6a766e17-7786-4eb0-9786-3e420d1dbfab": { - "asset": 1747987594427, - "meta": 1747988051982, + "asset": 1750920400623, + "meta": 1750920537761, "relativePath": "resources\\Window_Prop\\return.png" }, "f0d6a1ff-e29a-4846-b6a9-9c96f90bd6df": { - "asset": 1747987594364, - "meta": 1747988051984, + "asset": 1750920400622, + "meta": 1750920537783, "relativePath": "resources\\Window_Prop\\light3.png" }, "1fb08231-41e8-4fdb-86e3-ab67463b088f": { - "asset": 1747987594684, - "meta": 1747988052004, + "asset": 1750920400623, + "meta": 1750920537735, "relativePath": "resources\\Window_Prop\\title.png" }, "9c73e774-538e-4a64-9d46-b5905174e08b": { - "asset": 1747898684000, - "meta": 1747992743341, + "asset": 1750920400541, + "meta": 1750920536535, "relativePath": "resources\\Json\\level97.json" }, "6a78a951-d0ee-4089-ad88-c0361caed2c8": { - "asset": 1747903293000, - "meta": 1747992743343, + "asset": 1750920400440, + "meta": 1750920536323, "relativePath": "resources\\Json\\level100.json" }, "581928fd-74e9-493a-94b3-1a64313909d3": { - "asset": 1747967366000, - "meta": 1747992743346, + "asset": 1750920400442, + "meta": 1750920536338, "relativePath": "resources\\Json\\level105.json" }, "438b7ec6-23dd-471a-9137-3cab7726c687": { - "asset": 1747905455000, - "meta": 1747992743347, + "asset": 1750920400441, + "meta": 1750920536333, "relativePath": "resources\\Json\\level102.json" }, "6b3f5d56-3637-404e-a4e5-189874cd71f3": { - "asset": 1747968552000, - "meta": 1747992743349, + "asset": 1750920400443, + "meta": 1750920536343, "relativePath": "resources\\Json\\level106.json" }, "8e981011-d4c6-41b9-91f8-015f8d9b041d": { - "asset": 1747969059000, - "meta": 1747992743353, + "asset": 1750920400443, + "meta": 1750920536343, "relativePath": "resources\\Json\\level107.json" }, "615e1c78-bbf8-4aef-b55f-025f7c3aa7bb": { - "asset": 1747903996000, - "meta": 1747992743355, + "asset": 1750920400440, + "meta": 1750920536323, "relativePath": "resources\\Json\\level101.json" }, "0a0f446a-b0fc-4929-a9cc-616f502d0dcb": { - "asset": 1747970377000, - "meta": 1747992743357, + "asset": 1750920400444, + "meta": 1750920536351, "relativePath": "resources\\Json\\level108.json" }, "d8431941-00e1-4638-b2a2-1bd96d9fc5b8": { - "asset": 1747910130000, - "meta": 1747992743359, + "asset": 1750920400442, + "meta": 1750920536336, "relativePath": "resources\\Json\\level104.json" }, "0ddde8cc-1b17-454b-8696-be34361845ef": { - "asset": 1747972719000, - "meta": 1747992743360, + "asset": 1750920400445, + "meta": 1750920536358, "relativePath": "resources\\Json\\level110.json" }, "2b0f8eb4-2355-4f65-ae3a-ee6458fc3eb6": { - "asset": 1747906686000, - "meta": 1747992743362, + "asset": 1750920400441, + "meta": 1750920536338, "relativePath": "resources\\Json\\level103.json" }, "69f4fb9f-c1a8-4ffe-bd04-f77c92671be7": { - "asset": 1749636706869, - "meta": 1749692957638, + "asset": 1750920400444, + "meta": 1750920536354, "relativePath": "resources\\Json\\level109.json" }, "0c986bfc-7618-4c66-994d-e406c1da0b24": { - "asset": 1747981248000, - "meta": 1747992743369, + "asset": 1750920400447, + "meta": 1750920536369, "relativePath": "resources\\Json\\level113.json" }, "78522b60-9651-4017-8f9e-38238b0945ad": { - "asset": 1747979775000, - "meta": 1747992743370, + "asset": 1750920400446, + "meta": 1750920536358, "relativePath": "resources\\Json\\level111.json" }, "3876286a-8804-470f-9dbe-1ab37566bf3b": { - "asset": 1747982621000, - "meta": 1747992743372, + "asset": 1750920400448, + "meta": 1750920536372, "relativePath": "resources\\Json\\level114.json" }, "48e7b0d8-05ea-4fd5-8f29-925fb0ba8845": { - "asset": 1747980403000, - "meta": 1747992743374, + "asset": 1750920400447, + "meta": 1750920536363, "relativePath": "resources\\Json\\level112.json" }, "46e711be-b11e-402a-a24c-75e2e394a75b": { - "asset": 1747984981000, - "meta": 1747992743376, + "asset": 1750920400448, + "meta": 1750920536371, "relativePath": "resources\\Json\\level115.json" }, "092ba8f5-46a8-4401-b1c3-46c05efbb12b": { - "asset": 1747883244000, - "meta": 1747992743378, + "asset": 1750920400535, + "meta": 1750920536523, "relativePath": "resources\\Json\\level91.json" }, "d906f930-7480-418b-a3ce-caacbd4ecf2c": { - "asset": 1747990510000, - "meta": 1747992743378, + "asset": 1750920400451, + "meta": 1750920536378, "relativePath": "resources\\Json\\level119.json" }, "c8f0cf5f-c48c-4ca8-9399-47e3adc3a2ba": { - "asset": 1747988913000, - "meta": 1747992743379, + "asset": 1750920400450, + "meta": 1750920536373, "relativePath": "resources\\Json\\level118.json" }, "9e607042-800f-425b-94f4-774ab34c3b91": { - "asset": 1747986734000, - "meta": 1747992743379, + "asset": 1750920400449, + "meta": 1750920536377, "relativePath": "resources\\Json\\level116.json" }, "e1b9030d-905f-4f54-b854-19269ca283c7": { - "asset": 1747896374000, - "meta": 1747992743382, + "asset": 1750920400538, + "meta": 1750920536525, "relativePath": "resources\\Json\\level94.json" }, "d0c255a3-8e36-4dde-94fc-98b0a17104d5": { - "asset": 1747895170000, - "meta": 1747992743383, + "asset": 1750920400537, + "meta": 1750920536528, "relativePath": "resources\\Json\\level93.json" }, "4a6da822-ad56-4f66-a3ba-e1076dcfab32": { - "asset": 1747902270000, - "meta": 1747992743384, + "asset": 1750920400542, + "meta": 1750920536537, "relativePath": "resources\\Json\\level99.json" }, "3661505d-2c18-40dc-aa00-7997d7b19469": { - "asset": 1747898025000, - "meta": 1747992743385, + "asset": 1750920400540, + "meta": 1750920536533, "relativePath": "resources\\Json\\level96.json" }, "169c9fa2-bd83-427d-ad93-a1cce985228c": { - "asset": 1747897318000, - "meta": 1747992743388, + "asset": 1750920400539, + "meta": 1750920536525, "relativePath": "resources\\Json\\level95.json" }, "fd8b0857-2666-45ba-b857-5d08887b91dd": { - "asset": 1747894825000, - "meta": 1747992743389, + "asset": 1750920400536, + "meta": 1750920536525, "relativePath": "resources\\Json\\level92.json" }, "6ceee93b-a101-47f1-9178-07ed9270e9fb": { - "asset": 1748228746644, - "meta": 1748228747360, + "asset": 1750920400509, + "meta": 1750920536483, "relativePath": "resources\\Json\\level56.json" }, "cc01997d-495e-480d-871e-be405a6c38b5": { - "asset": 1748243270785, - "meta": 1748243294435, + "asset": 1750920400424, + "meta": 1750920541283, "relativePath": "res\\texture_Block\\door.plist" }, "0320e925-da03-488f-9e62-0018a6fdbb83": { - "asset": 1748249803539, - "meta": 1748249848882, + "asset": 1750920400291, + "meta": 1750920542319, "relativePath": "TextureBlock\\block\\block2.plist" }, "e401e735-bc45-4c02-ab15-ac8f4afbed44": { - "asset": 1748249818200, - "meta": 1748249848850, + "asset": 1750920400295, + "meta": 1750920538188, "relativePath": "TextureBlock\\block\\block2.png" }, "9836134e-b892-4283-b6b2-78b5acf3ed45": { - "asset": 1748260441106, - "meta": 1748512139383, + "asset": 1750905745131, + "meta": 1750920528663, "relativePath": "effects" }, "abc2cb62-7852-4525-a90d-d474487b88f2": { - "asset": 1748260441092, - "meta": 1748512139492, + "asset": 1750905745116, + "meta": 1750920528748, "relativePath": "effects\\builtin-phong.effect" }, "e2f00085-c597-422d-9759-52c360279106": { - "asset": 1748260441096, - "meta": 1748512139534, + "asset": 1750905745118, + "meta": 1750920528784, "relativePath": "effects\\builtin-toon.effect" }, "430eccbf-bf2c-4e6e-8c0c-884bbb487f32": { - "asset": 1748260441101, - "meta": 1748512139546, + "asset": 1750905745118, + "meta": 1750920528794, "relativePath": "effects\\__builtin-editor-gizmo-line.effect" }, "6c5cf6e1-b044-4eac-9431-835644d57381": { - "asset": 1748260441102, - "meta": 1748512139553, + "asset": 1750905745129, + "meta": 1750920528799, "relativePath": "effects\\__builtin-editor-gizmo-unlit.effect" }, "115286d1-2e10-49ee-aab4-341583f607e8": { - "asset": 1748260441106, - "meta": 1748512139574, + "asset": 1750905745131, + "meta": 1750920528810, "relativePath": "effects\\__builtin-editor-gizmo.effect" }, "f8e6b000-5643-4b86-9080-aa680ce1f599": { - "asset": 1748260441164, - "meta": 1748512139385, + "asset": 1750905745217, + "meta": 1750920528663, "relativePath": "image" }, "5c3eedba-6c41-4c0c-9ba7-d91f813cbd1c": { - "asset": 1748260441169, - "meta": 1748512139386, + "asset": 1750905745224, + "meta": 1750920528664, "relativePath": "materials" }, "fc09f9bd-2cce-4605-b630-8145ef809ed6": { - "asset": 1748260441176, - "meta": 1748512139387, + "asset": 1750905745233, + "meta": 1750920528664, "relativePath": "misc" }, "edd215b9-2796-4a05-aaf5-81f96c9281ce": { - "asset": 1748260441121, - "meta": 1748512139630, + "asset": 1750905745165, + "meta": 1750920528841, "relativePath": "image\\default_editbox_bg.png" }, "db019bf7-f71c-4111-98cf-918ea180cb48": { - "asset": 1748260441211, - "meta": 1748512139388, + "asset": 1750905745263, + "meta": 1750920528665, "relativePath": "model" }, "cfef78f1-c8df-49b7-8ed0-4c953ace2621": { - "asset": 1748260441125, - "meta": 1748512139625, + "asset": 1750905745166, + "meta": 1750920528852, "relativePath": "image\\default_progressbar.png" }, "e39e96e6-6f6e-413f-bcf1-ac7679bb648a": { - "asset": 1748260441204, - "meta": 1748512139638, + "asset": 1750905745261, + "meta": 1750920528853, "relativePath": "model\\prefab" }, "71561142-4c83-4933-afca-cb7a17f67053": { - "asset": 1748260441115, - "meta": 1748512139688, + "asset": 1750905745150, + "meta": 1750920528850, "relativePath": "image\\default_btn_disabled.png" }, "600301aa-3357-4a10-b086-84f011fa32ba": { - "asset": 1748260441112, - "meta": 1748512139709, + "asset": 1750905745131, + "meta": 1750920528845, "relativePath": "image\\default-particle.png" }, "b43ff3c2-02bb-4874-81f7-f2dea6970f18": { - "asset": 1748260441119, - "meta": 1748512139623, + "asset": 1750905745150, + "meta": 1750920528844, "relativePath": "image\\default_btn_pressed.png" }, "9d60001f-b5f4-4726-a629-2659e3ded0b8": { - "asset": 1748260441134, - "meta": 1748512139707, + "asset": 1750905745182, + "meta": 1750920529052, "relativePath": "image\\default_radio_button_on.png" }, "e851e89b-faa2-4484-bea6-5c01dd9f06e2": { - "asset": 1748260441117, - "meta": 1748512139628, + "asset": 1750905745150, + "meta": 1750920528842, "relativePath": "image\\default_btn_normal.png" }, "d81ec8ad-247c-4e62-aa3c-d35c4193c7af": { - "asset": 1748260441124, - "meta": 1748512139690, + "asset": 1750905745166, + "meta": 1750920529054, "relativePath": "image\\default_panel.png" }, "567dcd80-8bf4-4535-8a5a-313f1caf078a": { - "asset": 1748260441132, - "meta": 1748512139635, + "asset": 1750905745179, + "meta": 1750920529050, "relativePath": "image\\default_radio_button_off.png" }, "f6e6dd15-71d1-4ffe-ace7-24fd39942c05": { - "asset": 1748260441219, - "meta": 1748512139389, + "asset": 1750905745263, + "meta": 1750920528665, "relativePath": "obsolete" }, "4bab67cb-18e6-4099-b840-355f0473f890": { - "asset": 1748260441139, - "meta": 1748512139696, + "asset": 1750905745182, + "meta": 1750920529051, "relativePath": "image\\default_scrollbar_bg.png" }, "c4480a0a-6ac5-443f-8b40-361a14257fc8": { - "asset": 1748260441167, - "meta": 1748512140013, + "asset": 1750905745217, + "meta": 1750920529301, "relativePath": "materials\\builtin-phong.mtl" }, "f743d2b6-b7ea-4c14-a55b-547ed4d0a045": { - "asset": 1748260441226, - "meta": 1748512139390, + "asset": 1750905745285, + "meta": 1750920528666, "relativePath": "particle" }, "99170b0b-d210-46f1-b213-7d9e3f23098a": { - "asset": 1748260441128, - "meta": 1748512139702, + "asset": 1750905745166, + "meta": 1750920528851, "relativePath": "image\\default_progressbar_bg.png" }, "a87cc147-01b2-43f8-8e42-a7ca90b0c757": { - "asset": 1748260441183, - "meta": 1748512139922, + "asset": 1750905745233, + "meta": 1750920529228, "relativePath": "model\\prefab\\box.prefab" }, "0291c134-b3da-4098-b7b5-e397edbe947f": { - "asset": 1748260441137, - "meta": 1748512139637, + "asset": 1750905745182, + "meta": 1750920529048, "relativePath": "image\\default_scrollbar.png" }, "fe1417b6-fe6b-46a4-ae7c-9fd331f33a2a": { - "asset": 1748260441186, - "meta": 1748512139915, + "asset": 1750905745233, + "meta": 1750920529231, "relativePath": "model\\prefab\\capsule.prefab" }, "ae6c6c98-11e4-452f-8758-75f5c6a56e83": { - "asset": 1748260441310, - "meta": 1748512139391, + "asset": 1750905745397, + "meta": 1750920528666, "relativePath": "prefab" }, "0275e94c-56a7-410f-bd1a-fc7483f7d14a": { - "asset": 1748260441152, - "meta": 1748512139632, + "asset": 1750905745198, + "meta": 1750920529055, "relativePath": "image\\default_sprite_splash.png" }, "b5fc2cf2-7942-483d-be1f-bbeadc4714ad": { - "asset": 1748260441188, - "meta": 1748512139942, + "asset": 1750905745233, + "meta": 1750920529230, "relativePath": "model\\prefab\\cone.prefab" }, "1c5e4038-953a-44c2-b620-0bbfc6170477": { - "asset": 1748260441191, - "meta": 1748512139939, + "asset": 1750905745248, + "meta": 1750920529233, "relativePath": "model\\prefab\\cylinder.prefab" }, "d6d3ca85-4681-47c1-b5dd-d036a9d39ea2": { - "asset": 1748260441141, - "meta": 1748512139694, + "asset": 1750905745182, + "meta": 1750920529056, "relativePath": "image\\default_scrollbar_vertical.png" }, "6c9ef10d-b479-420b-bfe6-39cdda6a8ae0": { - "asset": 1748260441198, - "meta": 1748512139948, + "asset": 1750905745253, + "meta": 1750920529234, "relativePath": "model\\prefab\\quad.prefab" }, "3f376125-a699-40ca-ad05-04d662eaa1f2": { - "asset": 1748260441193, - "meta": 1748512139943, + "asset": 1750905745250, + "meta": 1750920529235, "relativePath": "model\\prefab\\plane.prefab" }, "617323dd-11f4-4dd3-8eec-0caf6b3b45b9": { - "asset": 1748260441145, - "meta": 1748512139699, + "asset": 1750905745182, + "meta": 1750920529056, "relativePath": "image\\default_scrollbar_vertical_bg.png" }, "2d9a4b85-b0ab-4c46-84c5-18f393ab2058": { - "asset": 1748260441200, - "meta": 1748512139947, + "asset": 1750905745256, + "meta": 1750920529232, "relativePath": "model\\prefab\\sphere.prefab" }, "de510076-056b-484f-b94c-83bef217d0e1": { - "asset": 1748260441204, - "meta": 1748512139945, + "asset": 1750905745260, + "meta": 1750920529236, "relativePath": "model\\prefab\\torus.prefab" }, "6e056173-d285-473c-b206-40a7fff5386e": { - "asset": 1748260441149, - "meta": 1748512139704, + "asset": 1750905745198, + "meta": 1750920529053, "relativePath": "image\\default_sprite.png" }, "897ef7a1-4860-4f64-968d-f5924b18668a": { - "asset": 1748260441231, - "meta": 1748512139721, + "asset": 1750905745290, + "meta": 1750920529064, "relativePath": "prefab\\2d-camera.prefab" }, "70d7cdb0-04cd-41bb-9480-c06a4785f386": { - "asset": 1748260441233, - "meta": 1748512139724, + "asset": 1750905745296, + "meta": 1750920529063, "relativePath": "prefab\\3d-camera.prefab" }, "a3ee0214-b432-4865-9666-4a3211814282": { - "asset": 1748260441267, - "meta": 1748512139725, + "asset": 1750905745330, + "meta": 1750920529064, "relativePath": "prefab\\light" }, "ed88f13d-fcad-4848-aa35-65a2cb973584": { - "asset": 1748260441239, - "meta": 1748512139727, + "asset": 1750905745300, + "meta": 1750920529065, "relativePath": "prefab\\3d-stage.prefab" }, "2c937608-2562-40ea-b264-7395df6f0cea": { - "asset": 1748260441245, - "meta": 1748512139731, + "asset": 1750905745307, + "meta": 1750920529068, "relativePath": "prefab\\canvas.prefab" }, "61aeb05b-3b32-452b-8eed-2b76deeed554": { - "asset": 1748260441249, - "meta": 1748512139735, + "asset": 1750905745310, + "meta": 1750920529069, "relativePath": "prefab\\editbox.prefab" }, "972b9a4d-47ee-4c74-b5c3-61d8a69bc29f": { - "asset": 1748260441241, - "meta": 1748512139730, + "asset": 1750905745303, + "meta": 1750920529066, "relativePath": "prefab\\button.prefab" }, "70bbeb73-6dc2-4ee4-8faf-76b3a0e34ec4": { - "asset": 1748260441236, - "meta": 1748512139734, + "asset": 1750905745298, + "meta": 1750920529067, "relativePath": "prefab\\3d-particle.prefab" }, "27756ebb-3d33-44b0-9b96-e858fadd4dd4": { - "asset": 1748260441251, - "meta": 1748512139740, + "asset": 1750905745312, + "meta": 1750920529073, "relativePath": "prefab\\label.prefab" }, "2be36297-9abb-4fee-8049-9ed5e271da8a": { - "asset": 1748260441175, - "meta": 1748512139801, + "asset": 1750905745232, + "meta": 1750920529103, "relativePath": "misc\\default_video.mp4" }, "785a442c-3ceb-45be-a46e-7317f625f3b9": { - "asset": 1748260441253, - "meta": 1748512139744, + "asset": 1750905745312, + "meta": 1750920529075, "relativePath": "prefab\\layout.prefab" }, "ca8401fe-ad6e-41a8-bd46-8e3e4e9945be": { - "asset": 1748260441268, - "meta": 1748512139748, + "asset": 1750905745330, + "meta": 1750920529078, "relativePath": "prefab\\pageview.prefab" }, "32044bd2-481f-4cf1-a656-e2b2fb1594eb": { - "asset": 1748260441281, - "meta": 1748512139759, + "asset": 1750905745348, + "meta": 1750920529080, "relativePath": "prefab\\scrollview.prefab" }, "5965ffac-69da-4b55-bcde-9225d0613c28": { - "asset": 1748260441272, - "meta": 1748512139754, + "asset": 1750905745346, + "meta": 1750920529078, "relativePath": "prefab\\progressBar.prefab" }, "cd33edea-55f5-46c2-958d-357a01384a36": { - "asset": 1748260441269, - "meta": 1748512139749, + "asset": 1750905745345, + "meta": 1750920529077, "relativePath": "prefab\\particlesystem.prefab" }, "4a37dd57-78cd-4cec-aad4-f11a73d12b63": { - "asset": 1748260441275, - "meta": 1748512139753, + "asset": 1750905745347, + "meta": 1750920529079, "relativePath": "prefab\\richtext.prefab" }, "d29077ba-1627-4a72-9579-7b56a235340c": { - "asset": 1748260441159, - "meta": 1748512139780, + "asset": 1750905745198, + "meta": 1750920529100, "relativePath": "image\\default_toggle_normal.png" }, "0004d1cf-a0ad-47d8-ab17-34d3db9d35a3": { - "asset": 1748260441284, - "meta": 1748512139756, + "asset": 1750905745349, + "meta": 1750920529081, "relativePath": "prefab\\slider.prefab" }, "c25b9d50-c8fc-4d27-beeb-6e7c1f2e5c0f": { - "asset": 1748260441157, - "meta": 1748512139784, + "asset": 1750905745198, + "meta": 1750920529118, "relativePath": "image\\default_toggle_disabled.png" }, "d8afc78c-4eac-4a9f-83dd-67bc70344d33": { - "asset": 1748260441342, - "meta": 1748512139391, + "asset": 1750905745446, + "meta": 1750920528667, "relativePath": "resources" }, "96083d03-c332-4a3f-9386-d03e2d19e8ee": { - "asset": 1748260441285, - "meta": 1748512139787, + "asset": 1750905745350, + "meta": 1750920529089, "relativePath": "prefab\\sprite.prefab" }, "73a0903d-d80e-4e3c-aa67-f999543c08f5": { - "asset": 1748260441154, - "meta": 1748512139792, + "asset": 1750905745198, + "meta": 1750920529097, "relativePath": "image\\default_toggle_checkmark.png" }, "294c1663-4adf-4a1e-a795-53808011a38a": { - "asset": 1748260441339, - "meta": 1748512139786, + "asset": 1750905745446, + "meta": 1750920529097, "relativePath": "resources\\effects" }, "bbee2217-c261-49bd-a8ce-708d6bcc3500": { - "asset": 1748260441367, - "meta": 1748512139788, + "asset": 1750905745466, + "meta": 1750920529097, "relativePath": "resources\\materials" }, "b181c1e4-0a72-4a91-bfb0-ae6f36ca60bd": { - "asset": 1748260441163, - "meta": 1748512139795, + "asset": 1750905745215, + "meta": 1750920529107, "relativePath": "image\\default_toggle_pressed.png" }, "30682f87-9f0d-4f17-8a44-72863791461b": { - "asset": 1748260441317, - "meta": 1748512139814, + "asset": 1750905745397, + "meta": 1750920529113, "relativePath": "resources\\effects\\builtin-2d-graphics.effect" }, "144c3297-af63-49e8-b8ef-1cfa29b3be28": { - "asset": 1748260441319, - "meta": 1748512139821, + "asset": 1750905745397, + "meta": 1750920529124, "relativePath": "resources\\effects\\builtin-2d-gray-sprite.effect" }, "f18742d7-56d2-4eb5-ae49-2d9d710b37c8": { - "asset": 1748260441320, - "meta": 1748512139830, + "asset": 1750905745397, + "meta": 1750920529129, "relativePath": "resources\\effects\\builtin-2d-label.effect" }, "0e93aeaa-0b53-4e40-b8e0-6268b4e07bd7": { - "asset": 1748260441323, - "meta": 1748512139838, + "asset": 1750905745397, + "meta": 1750920529134, "relativePath": "resources\\effects\\builtin-2d-spine.effect" }, "2874f8dd-416c-4440-81b7-555975426e93": { - "asset": 1748260441325, - "meta": 1748512139846, + "asset": 1750905745397, + "meta": 1750920529140, "relativePath": "resources\\effects\\builtin-2d-sprite.effect" }, "1f55e3be-b89b-4b79-88de-47fd31018044": { - "asset": 1748260441287, - "meta": 1748512139793, + "asset": 1750905745352, + "meta": 1750920529103, "relativePath": "prefab\\sprite_splash.prefab" }, "8a96b965-2dc0-4e03-aa90-3b79cb93b5b4": { - "asset": 1748260441218, - "meta": 1748512139796, + "asset": 1750905745263, + "meta": 1750920529100, "relativePath": "obsolete\\atom.png" }, "829a282c-b049-4019-bd38-5ace8d8a6417": { - "asset": 1748260441329, - "meta": 1748512139893, + "asset": 1750905745397, + "meta": 1750920529185, "relativePath": "resources\\effects\\builtin-3d-particle.effect" }, "7de03a80-4457-438d-95a7-3e7cdffd6086": { - "asset": 1748260441289, - "meta": 1748512139799, + "asset": 1750905745353, + "meta": 1750920529103, "relativePath": "prefab\\tiledmap.prefab" }, "2a7c0036-e0b3-4fe1-8998-89a54b8a2bec": { - "asset": 1748260441333, - "meta": 1748512139914, + "asset": 1750905745429, + "meta": 1750920529206, "relativePath": "resources\\effects\\builtin-3d-trail.effect" }, "c0040c95-c57f-49cd-9cbc-12316b73d0d4": { - "asset": 1748260441335, - "meta": 1748512139921, + "asset": 1750905745446, + "meta": 1750920529211, "relativePath": "resources\\effects\\builtin-clear-stencil.effect" }, "6d91e591-4ce0-465c-809f-610ec95019c6": { - "asset": 1748260441338, - "meta": 1748512139932, + "asset": 1750905745446, + "meta": 1750920529221, "relativePath": "resources\\effects\\builtin-unlit.effect" }, "0e42ba95-1fa1-46aa-b2cf-143cd1bcee2c": { - "asset": 1748260441291, - "meta": 1748512139800, + "asset": 1750905745353, + "meta": 1750920529103, "relativePath": "prefab\\tiledtile.prefab" }, "0d784963-d024-4ea6-a7db-03be0ad63010": { - "asset": 1748260441294, - "meta": 1748512139804, + "asset": 1750905745377, + "meta": 1750920529107, "relativePath": "prefab\\toggle.prefab" }, "d0a82d39-bede-46c4-b698-c81ff0dedfff": { - "asset": 1748260441225, - "meta": 1748512139797, + "asset": 1750905745284, + "meta": 1750920529113, "relativePath": "particle\\atom.png" }, "d1b8be49-b0a0-435c-83b7-552bed4bbe35": { - "asset": 1748260441302, - "meta": 1748512139808, + "asset": 1750905745397, + "meta": 1750920529107, "relativePath": "prefab\\toggleGroup.prefab" }, "bf0a434c-84dd-4a8e-a08a-7a36f180cc75": { - "asset": 1748260441298, - "meta": 1748512139815, + "asset": 1750905745396, + "meta": 1750920529107, "relativePath": "prefab\\toggleContainer.prefab" }, "61906da3-7003-4bda-9abc-5769c76faee4": { - "asset": 1748260441257, - "meta": 1748512139950, + "asset": 1750905745327, + "meta": 1750920529237, "relativePath": "prefab\\light\\ambient.prefab" }, "8c5001fd-07ee-4a4b-a8a0-63e15195e94d": { - "asset": 1748260441307, - "meta": 1748512139900, + "asset": 1750905745397, + "meta": 1750920529190, "relativePath": "prefab\\webview.prefab" }, "232d2782-c4bd-4bb4-9e01-909f03d6d3b9": { - "asset": 1748260441305, - "meta": 1748512139806, + "asset": 1750905745397, + "meta": 1750920529107, "relativePath": "prefab\\videoplayer.prefab" }, "ddb99b39-7004-47cd-9705-751905c43c46": { - "asset": 1748260441261, - "meta": 1748512139949, + "asset": 1750905745330, + "meta": 1750920529239, "relativePath": "prefab\\light\\directional.prefab" }, "f5331fd2-bf42-4ee3-a3fd-3e1657600eff": { - "asset": 1748260441267, - "meta": 1748512139951, + "asset": 1750905745330, + "meta": 1750920529240, "relativePath": "prefab\\light\\spot.prefab" }, "0cf30284-9073-46bc-9eba-e62b69dbbff3": { - "asset": 1748260441265, - "meta": 1748512139952, + "asset": 1750905745330, + "meta": 1750920529239, "relativePath": "prefab\\light\\point.prefab" }, "6f801092-0c37-4f30-89ef-c8d960825b36": { - "asset": 1748260441344, - "meta": 1748512140043, + "asset": 1750905745446, + "meta": 1750920529319, "relativePath": "resources\\materials\\builtin-2d-base.mtl" }, "3a7bb79f-32fd-422e-ada2-96f518fed422": { - "asset": 1748260441351, - "meta": 1748512140044, + "asset": 1750905745463, + "meta": 1750920529327, "relativePath": "resources\\materials\\builtin-2d-gray-sprite.mtl" }, "a153945d-2511-4c14-be7b-05d242f47d57": { - "asset": 1748260441348, - "meta": 1748512140041, + "asset": 1750905745461, + "meta": 1750920529320, "relativePath": "resources\\materials\\builtin-2d-graphics.mtl" }, "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432": { - "asset": 1748260441358, - "meta": 1748512140045, + "asset": 1750905745466, + "meta": 1750920529321, "relativePath": "resources\\materials\\builtin-2d-sprite.mtl" }, "e02d87d4-e599-4d16-8001-e14891ac6506": { - "asset": 1748260441354, - "meta": 1748512140040, + "asset": 1750905745464, + "meta": 1750920529320, "relativePath": "resources\\materials\\builtin-2d-label.mtl" }, "7afd064b-113f-480e-b793-8817d19f63c3": { - "asset": 1748260441355, - "meta": 1748512140042, + "asset": 1750905745466, + "meta": 1750920529321, "relativePath": "resources\\materials\\builtin-2d-spine.mtl" }, "cf7e0bb8-a81c-44a9-ad79-d28d43991032": { - "asset": 1748260441366, - "meta": 1748512140048, + "asset": 1750905745466, + "meta": 1750920529327, "relativePath": "resources\\materials\\builtin-clear-stencil.mtl" }, "466d4f9b-e5f4-4ea8-85d5-3c6e9a65658a": { - "asset": 1748260441362, - "meta": 1748512140050, + "asset": 1750905745466, + "meta": 1750920529326, "relativePath": "resources\\materials\\builtin-3d-trail.mtl" }, "432fa09c-cf03-4cff-a186-982604408a07": { - "asset": 1748260441359, - "meta": 1748512140049, + "asset": 1750905745466, + "meta": 1750920529322, "relativePath": "resources\\materials\\builtin-3d-particle.mtl" }, "2a296057-247c-4a1c-bbeb-0548b6c98650": { - "asset": 1748260441367, - "meta": 1748512140049, + "asset": 1750905745466, + "meta": 1750920529326, "relativePath": "resources\\materials\\builtin-unlit.mtl" }, "b8223619-7e38-47c4-841f-9160c232495a": { - "asset": 1748260441216, - "meta": 1748512140111, + "asset": 1750905745263, + "meta": 1750920529361, "relativePath": "obsolete\\atom.plist" }, "b2687ac4-099e-403c-a192-ff477686f4f5": { - "asset": 1748260441222, - "meta": 1748512140111, + "asset": 1750905745280, + "meta": 1750920529362, "relativePath": "particle\\atom.plist" }, "954fec8b-cd16-4bb9-a3b7-7719660e7558": { - "asset": 1748260441209, - "meta": 1748512143543, + "asset": 1750905745263, + "meta": 1750920532445, "relativePath": "model\\primitives.fbx" }, "bb571474-49d3-4334-91c9-6c535fca4acc": { - "asset": 1748251951379, - "meta": 1748251955936, + "asset": 1750920400532, + "meta": 1750920536520, "relativePath": "resources\\Json\\level88.json" }, "f1883a57-ccc5-48a7-9fc0-4430167d9ee3": { - "asset": 1748253245269, - "meta": 1748253259364, + "asset": 1750920400219, + "meta": 1750920535228, "relativePath": "Script\\CollisionDetection.ts" }, "9f736ed8-71dc-43c5-9d96-bfbf81ade90d": { - "asset": 1748253682095, - "meta": 1748253683010, + "asset": 1750920400517, + "meta": 1750920536496, "relativePath": "resources\\Json\\level68.json" }, "f307257e-fd8b-4b22-88e1-40d22df34759": { - "asset": 1750750367905, - "meta": 1750750430439, + "asset": 1750920400383, + "meta": 1750920534748, "relativePath": "libs" }, "2cd54f87-8181-484e-915e-e902e5bea0c1": { - "asset": 1742460335692, - "meta": 1748437823762, + "asset": 1750920400342, + "meta": 1750920534763, "relativePath": "animation\\NewScript.js" }, "19d0cfc7-d042-4f1c-803a-556069623174": { - "asset": 1750750367776, - "meta": 1750750430454, + "asset": 1750920400347, + "meta": 1750920534764, "relativePath": "effect\\boom" }, "4848d7c0-2271-44f9-b68c-8af7c82e7d39": { - "asset": 1750750367784, - "meta": 1750750430454, + "asset": 1750920400349, + "meta": 1750920534764, "relativePath": "effect\\freeze" }, "515bdb91-ddae-43df-aa2d-c51b6c703979": { - "asset": 1750750367801, - "meta": 1750750430461, + "asset": 1750920400353, + "meta": 1750920534773, "relativePath": "effect\\good" }, "fb664eba-5060-4ce6-b405-1f291dbc4aef": { - "asset": 1750750367809, - "meta": 1750750430463, + "asset": 1750920400360, + "meta": 1750920534774, "relativePath": "effect\\load" }, "9ecf33ff-c969-4fec-abd0-12b243dc28a9": { - "asset": 1750750367826, - "meta": 1750750430466, + "asset": 1750920400364, + "meta": 1750920534774, "relativePath": "effect\\magic" }, "f3e6bd15-b228-457b-a153-3c060d0ed521": { - "asset": 1750750367847, - "meta": 1750750430468, + "asset": 1750920400370, + "meta": 1750920534779, "relativePath": "effect\\nianhe" }, "4521acf8-e934-426e-b598-0e3130cff6e4": { - "asset": 1750750367856, - "meta": 1750750430470, + "asset": 1750920400372, + "meta": 1750920534789, "relativePath": "effect\\star" }, "fb8c4ca9-3797-49ea-9e0b-aba6bf29a72c": { - "asset": 1750750367867, - "meta": 1750750430471, + "asset": 1750920400375, + "meta": 1750920534790, "relativePath": "effect\\touch" }, "6cbb4c39-cc05-40b9-ade7-d861892eec7d": { - "asset": 1750750367876, - "meta": 1750750430471, + "asset": 1750920400380, + "meta": 1750920534790, "relativePath": "effect\\tuowei" }, "c9ad1894-4c1d-4fca-a277-726b4c189df5": { - "asset": 1594224021434, - "meta": 1748437823831, + "asset": 1750920400385, + "meta": 1750920534821, "relativePath": "migration\\use_v2.1-2.2.1_cc.Toggle_event_1.js" }, "07f20dc4-bce8-41f5-94b8-896b4ab7fbaf": { - "asset": 1695644846000, - "meta": 1748437824495, + "asset": 1750920400383, + "meta": 1750920534859, "relativePath": "libs\\ThinkingAnalyticsSDK.d.ts" }, "19659ed7-1823-42a9-b8e8-1884c19df817": { - "asset": 1747050237066, - "meta": 1748437824554, + "asset": 1750929988198, + "meta": 1750929988204, "relativePath": "Scene\\New Scene.fire" }, "84e11f32-3c7c-4f05-8a5d-1777127f6370": { - "asset": 1747685960000, - "meta": 1748437824578, + "asset": 1750920400351, + "meta": 1750920535908, "relativePath": "effect\\good\\bang.anim" }, "59cd32c1-278f-4aba-a2b6-0e0c4f73e063": { - "asset": 1749037319744, - "meta": 1749037319747, + "asset": 1750920400352, + "meta": 1750920535910, "relativePath": "effect\\good\\bang.prefab" }, "1ac64874-02fc-4f77-861a-4886a752e380": { - "asset": 1747710233734, - "meta": 1748437824592, + "asset": 1750920400344, + "meta": 1750920535915, "relativePath": "effect\\boom\\zhandan.atlas" }, "9a528c07-9fc2-4096-a26c-ca35c67d20e9": { - "asset": 1748336555154, - "meta": 1748437824594, + "asset": 1750920400347, + "meta": 1750920535913, "relativePath": "effect\\freeze\\bingkuai.atlas" }, "ba473983-3802-46d5-965d-b3cd59b7f66e": { - "asset": 1747709904309, - "meta": 1748437824606, + "asset": 1750920400363, + "meta": 1750920535968, "relativePath": "effect\\magic\\mofabang_texiao.atlas" }, "94d219c4-f6f5-4afb-9a95-370850366448": { - "asset": 1747709651535, - "meta": 1748437824608, + "asset": 1750920400360, + "meta": 1750920535959, "relativePath": "effect\\magic\\mofabang_baozha.atlas" }, "85a570c7-dd1e-40cd-89ac-a5a0de5429c8": { - "asset": 1747685960000, - "meta": 1748437824621, + "asset": 1750920400353, + "meta": 1750920535936, "relativePath": "effect\\good\\太棒了-.png" }, "7edcbf54-d8ee-4027-950d-7d5e0086d76d": { - "asset": 1750750367880, - "meta": 1750750430502, + "asset": 1750920400376, + "meta": 1750920536013, "relativePath": "effect\\tuowei\\2D and UI trailing effects" }, "fe2e1147-b4a4-4f5d-885b-e2bac6b7b42e": { - "asset": 1748419489728, - "meta": 1748437824645, + "asset": 1750920400349, + "meta": 1750920535957, "relativePath": "effect\\freeze\\bingkuai.png" }, "71c185fc-f396-4366-8375-c40af9c2fd99": { - "asset": 1747710140423, - "meta": 1748437824668, + "asset": 1750920400369, + "meta": 1750920535980, "relativePath": "effect\\nianhe\\skeleton.atlas" }, "a13dd92f-bf7e-4b75-ab24-d443ea0a0221": { - "asset": 1748419386072, - "meta": 1748437824673, + "asset": 1750920400380, + "meta": 1750920536023, "relativePath": "effect\\tuowei\\tuowei1.prefab" }, "1c573e47-78cc-4fdb-a80b-970b2e06f16b": { - "asset": 1748336784077, - "meta": 1748437824676, + "asset": 1750920400371, + "meta": 1750920536013, "relativePath": "effect\\star\\taopao.atlas" }, "849d9729-23bc-455e-b9e5-f3bf7dc96375": { - "asset": 1748419489066, - "meta": 1748437824657, + "asset": 1750920400346, + "meta": 1750920535961, "relativePath": "effect\\boom\\zhandan.png" }, "8a50cadc-e025-4bd4-bf6e-9a8a87b63c36": { - "asset": 1748336647907, - "meta": 1748437824691, + "asset": 1750920400374, + "meta": 1750920536028, "relativePath": "effect\\touch\\fankui.atlas" }, "b11462e5-9624-4020-98f8-6418dfebaa5c": { - "asset": 1748419494362, - "meta": 1748437824696, + "asset": 1750920400364, + "meta": 1750920536013, "relativePath": "effect\\magic\\mofabang_texiao.png" }, "27f94295-c1af-4dae-a599-ec9e97060967": { - "asset": 1747710140422, - "meta": 1748437824710, + "asset": 1750920400370, + "meta": 1750920536018, "relativePath": "effect\\nianhe\\skeleton.png" }, "48588bbe-3361-44a5-b782-53ef975a9355": { - "asset": 1748419493339, - "meta": 1748437824726, + "asset": 1750920400362, + "meta": 1750920536053, "relativePath": "effect\\magic\\mofabang_baozha.png" }, "d853d588-0e29-4488-a9f9-8be43e2a8bd6": { - "asset": 1748419495069, - "meta": 1748437824730, + "asset": 1750920400372, + "meta": 1750920536058, "relativePath": "effect\\star\\taopao.png" }, "faeaa6a2-5e23-43cd-9acb-baa4eba7e32d": { - "asset": 1747710233511, - "meta": 1748437825653, + "asset": 1750920400344, + "meta": 1750920541093, "relativePath": "effect\\boom\\zhandan.json" }, "303417e6-891a-4bda-950c-4d2a04a1f4aa": { - "asset": 1747709650847, - "meta": 1748437825655, + "asset": 1750920400361, + "meta": 1750920541103, "relativePath": "effect\\magic\\mofabang_baozha.json" }, "0fb8590a-1468-4e6a-8ba6-c595642e4880": { - "asset": 1747709904145, - "meta": 1748437825660, + "asset": 1750920400363, + "meta": 1750920541114, "relativePath": "effect\\magic\\mofabang_texiao.json" }, "b98ab73e-af9c-47fa-862c-144da3071249": { - "asset": 1748336554901, - "meta": 1748437825662, + "asset": 1750920400348, + "meta": 1750920541095, "relativePath": "effect\\freeze\\bingkuai.json" }, "90e4657e-f478-47b1-91df-c5ac8b836069": { - "asset": 1748336783830, - "meta": 1748437825665, + "asset": 1750920400371, + "meta": 1750920541137, "relativePath": "effect\\star\\taopao.json" }, "4e6cd31e-a247-42dd-bae5-376b5be4059d": { - "asset": 1748336647861, - "meta": 1748437825667, + "asset": 1750920400374, + "meta": 1750920541169, "relativePath": "effect\\touch\\fankui.json" }, "e47e7785-a214-441f-8ecb-dfbec124ab29": { - "asset": 1747710140407, - "meta": 1748437825670, + "asset": 1750920400369, + "meta": 1750920541136, "relativePath": "effect\\nianhe\\skeleton.json" }, "e5b945cf-640c-4249-87eb-0c07aead8b86": { - "asset": 1745742957504, - "meta": 1748437825781, + "asset": 1750920400423, + "meta": 1750920541404, "relativePath": "res\\spine\\破碎_1.plist" }, "10b3c05c-cb90-4a2e-8872-2a8b3e890ab5": { - "asset": 1748336647906, - "meta": 1748437824774, + "asset": 1750920400375, + "meta": 1750920536076, "relativePath": "effect\\touch\\fankui.png" }, "89eea05d-23f3-4c5b-a6ce-28a491b1ed8b": { - "asset": 1747341686000, - "meta": 1748437824776, + "asset": 1750920400379, + "meta": 1750920536079, "relativePath": "effect\\tuowei\\bang.png" }, "ed1b749f-7091-4610-a494-425bb9686d4f": { - "asset": 1747047159947, - "meta": 1748437825790, + "asset": 1750920400418, + "meta": 1750920541367, "relativePath": "res\\effect\\New Material_1.mtl" }, "a43f913e-6184-42e9-bb9e-3deb36d8bcbc": { - "asset": 1744962657274, - "meta": 1748437824822, + "asset": 1750920400422, + "meta": 1750920536215, "relativePath": "res\\spine\\star_1.png" }, "e04b3e89-8b08-4014-9e5e-d36b3cf8d5a0": { - "asset": 1746008540669, - "meta": 1748437824909, + "asset": 1750920400498, + "meta": 1750920536467, "relativePath": "resources\\Json\\level42_1.json" }, "67768a91-f989-4ae1-aa68-3302f9e3cc53": { - "asset": 1746685761000, - "meta": 1748437825844, + "asset": 1750920400552, + "meta": 1750920541800, "relativePath": "resources\\Particle\\bot_3_1_1.plist" }, "7cf74208-27a8-4df5-9258-870a2746868e": { - "asset": 1746686024000, - "meta": 1748437825844, + "asset": 1750920400557, + "meta": 1750920541888, "relativePath": "resources\\Particle\\left_1_1_1.plist" }, "12306819-582e-4ee1-9e35-c24b0b935bc5": { - "asset": 1746685509000, - "meta": 1748437825845, + "asset": 1750920400543, + "meta": 1750920541780, "relativePath": "resources\\Particle\\bot_1_1_1.plist" }, "c7650af3-4db3-4d9f-a502-e0c0fce90eea": { - "asset": 1746686810000, - "meta": 1748437825846, + "asset": 1750920400549, + "meta": 1750920541785, "relativePath": "resources\\Particle\\bot_2_2_1.plist" }, "adb713c6-0fe0-4631-9c9b-adec61911be9": { - "asset": 1746696424000, - "meta": 1748437825846, + "asset": 1750920400554, + "meta": 1750920541800, "relativePath": "resources\\Particle\\bot_3_2_1.plist" }, "f8a9dd4c-54ba-48d6-bac6-38624a421af3": { - "asset": 1746685566000, - "meta": 1748437825847, + "asset": 1750920400546, + "meta": 1750920541793, "relativePath": "resources\\Particle\\bot_1_3_1.plist" }, "b6763ed3-58ec-4788-8c2c-a425e5f35f8a": { - "asset": 1746685740000, - "meta": 1748437825848, + "asset": 1750920400550, + "meta": 1750920541792, "relativePath": "resources\\Particle\\bot_2_3_1.plist" }, "52e04d9a-add5-4d61-8aed-2a2576c268eb": { - "asset": 1746686056000, - "meta": 1748437825848, + "asset": 1750920400558, + "meta": 1750920541883, "relativePath": "resources\\Particle\\left_1_2_1.plist" }, "7aef84fa-1599-4e26-9f9f-f03c57555402": { - "asset": 1746686907000, - "meta": 1748437825849, + "asset": 1750920400561, + "meta": 1750920541898, "relativePath": "resources\\Particle\\left_2_1_1.plist" }, "613e8900-5acd-4d64-af09-04e3a3bcd4b1": { - "asset": 1747376177553, - "meta": 1748437824984, + "asset": 1750920400541, + "meta": 1750920536535, "relativePath": "resources\\Json\\level97_1.json" }, "a96e9590-d76b-46a9-bc22-78fabd5f5074": { - "asset": 1746685533000, - "meta": 1748437825849, + "asset": 1750920400544, + "meta": 1750920541771, "relativePath": "resources\\Particle\\bot_1_2_1.plist" }, "e7bf65df-6953-437a-9551-5c4e7b6f1b5e": { - "asset": 1746686397000, - "meta": 1748437825851, + "asset": 1750920400559, + "meta": 1750920541873, "relativePath": "resources\\Particle\\left_1_3_1.plist" }, "9f9ed084-4b2f-470c-af4c-da9fe4685238": { - "asset": 1746687083000, - "meta": 1748437825852, + "asset": 1750920400556, + "meta": 1750920541873, "relativePath": "resources\\Particle\\bot_3_3_1.plist" }, "f6b05315-94c5-41a5-a0f1-187fca3c0f04": { - "asset": 1746685589000, - "meta": 1748437825852, + "asset": 1750920400547, + "meta": 1750920541779, "relativePath": "resources\\Particle\\bot_2_1_1.plist" }, "5949d3bc-f476-4f63-b038-22fa8cba4e62": { - "asset": 1746686875000, - "meta": 1748437825853, + "asset": 1750920400562, + "meta": 1750920541898, "relativePath": "resources\\Particle\\left_2_2_1.plist" }, "8312f0f9-6f26-423d-aaa2-ff9ee5122ca2": { - "asset": 1748338955455, - "meta": 1748437824993, + "asset": 1750920400438, + "meta": 1750920536542, "relativePath": "resources\\Json\\NEW_LEVEL.json" }, "369304fd-101d-46ed-92be-ecbd8fad18ec": { - "asset": 1746686844000, - "meta": 1748437825855, + "asset": 1750920400564, + "meta": 1750920541904, "relativePath": "resources\\Particle\\left_2_3_1.plist" }, "1413285e-fbb4-449b-aae6-ed678dfc570d": { - "asset": 1746687038000, - "meta": 1748437825855, + "asset": 1750920400565, + "meta": 1750920541909, "relativePath": "resources\\Particle\\left_3_1_1.plist" }, "aefab8fc-93d1-46a4-bcad-37868e23ed88": { - "asset": 1746687507000, - "meta": 1748437825873, + "asset": 1750920400571, + "meta": 1750920541988, "relativePath": "resources\\Particle\\right_1_1_1.plist" }, "4785d85b-8f9b-4bda-a3e6-db6fda98448d": { - "asset": 1746687098000, - "meta": 1748437825873, + "asset": 1750920400570, + "meta": 1750920541985, "relativePath": "resources\\Particle\\left_3_3_1.plist" }, "12e1b849-ce38-42b3-ad4c-afc5ecc39f53": { - "asset": 1746693333000, - "meta": 1748437825874, + "asset": 1750920400572, + "meta": 1750920541993, "relativePath": "resources\\Particle\\right_1_2_1.plist" }, "72db9548-9c2d-44a5-9b20-b2e1bc503bde": { - "asset": 1746687057000, - "meta": 1748437825874, + "asset": 1750920400567, + "meta": 1750920541978, "relativePath": "resources\\Particle\\left_3_2_1.plist" }, "e9fa150a-0934-49b2-8ff1-7a3731a51ef5": { - "asset": 1746693940000, - "meta": 1748437825876, + "asset": 1750920400574, + "meta": 1750920542008, "relativePath": "resources\\Particle\\right_2_1_1.plist" }, "91939f84-461f-4e10-8fc6-9d5d1c0a755f": { - "asset": 1746693363000, - "meta": 1748437825877, + "asset": 1750920400573, + "meta": 1750920542003, "relativePath": "resources\\Particle\\right_1_3_1.plist" }, - "c8878cfa-dda2-45ac-9204-7b3c4da0d5c4": { - "asset": 1748420676403, - "meta": 1748437824996, - "relativePath": "resources\\prefab\\prop" - }, "3ca8a558-0473-46b4-bf9e-8219bd053d31": { - "asset": 1746695306000, - "meta": 1748437825879, + "asset": 1750920400579, + "meta": 1750920542075, "relativePath": "resources\\Particle\\right_3_2_1.plist" }, "4f669477-e069-48c9-8ac4-3a78a906acdc": { - "asset": 1746694419000, - "meta": 1748437825880, + "asset": 1750920400577, + "meta": 1750920542068, "relativePath": "resources\\Particle\\right_3_1_1.plist" }, "7cd70a8a-d647-4879-bb5d-581af7354952": { - "asset": 1746695341000, - "meta": 1748437825881, + "asset": 1750920400580, + "meta": 1750920542077, "relativePath": "resources\\Particle\\right_3_3_1.plist" }, "ce0d2338-8b1e-46ac-b938-9e2e78bec2c4": { - "asset": 1746694123000, - "meta": 1748437825881, + "asset": 1750920400576, + "meta": 1750920542023, "relativePath": "resources\\Particle\\right_2_3_1.plist" }, "08e0f120-6617-416b-8415-9d1e8df99eac": { - "asset": 1746696176000, - "meta": 1748437825885, + "asset": 1750920400575, + "meta": 1750920542013, "relativePath": "resources\\Particle\\right_2_2_1.plist" }, "a2c01fb9-38c6-4c61-90ae-ebf10eb9ed97": { - "asset": 1746695524000, - "meta": 1748437825885, + "asset": 1750920400597, + "meta": 1750920542084, "relativePath": "resources\\Particle\\top_1_2_1.plist" }, "cd676662-9e94-4ce6-a646-75e290df3035": { - "asset": 1746695365000, - "meta": 1748437825886, + "asset": 1750920400595, + "meta": 1750920542079, "relativePath": "resources\\Particle\\top_1_1_1.plist" }, "acf7e102-5bfb-43d0-baba-dc86655425c7": { - "asset": 1746696103000, - "meta": 1748437825896, + "asset": 1750920400598, + "meta": 1750920542090, "relativePath": "resources\\Particle\\top_1_3_1.plist" }, "7ac2cc5d-cb5e-46e6-b8fd-a0d0fab58f94": { - "asset": 1746696154000, - "meta": 1748437825896, + "asset": 1750920400600, + "meta": 1750920542092, "relativePath": "resources\\Particle\\top_2_1_1.plist" }, "9b32ae82-e69e-4dd1-a8fa-5dcbc2f557d6": { - "asset": 1746696263000, - "meta": 1748437825908, + "asset": 1750920400602, + "meta": 1750920542094, "relativePath": "resources\\Particle\\top_2_2_1.plist" }, "904fab90-af16-403d-ae7d-92cda0ffdf88": { - "asset": 1746696287000, - "meta": 1748437825933, + "asset": 1750920400604, + "meta": 1750920542166, "relativePath": "resources\\Particle\\top_2_3_1.plist" }, "5efe1712-3acb-4700-a318-3f851110e111": { - "asset": 1746696323000, - "meta": 1748437825939, + "asset": 1750920400605, + "meta": 1750920542163, "relativePath": "resources\\Particle\\top_3_1_1.plist" }, "c86193d7-6eb3-416b-bc19-43fd0106e56e": { - "asset": 1746696349000, - "meta": 1748437825940, + "asset": 1750920400606, + "meta": 1750920542171, "relativePath": "resources\\Particle\\top_3_2_1.plist" }, "ff5bc8e1-d5a7-4667-9a01-6eb1173dee63": { - "asset": 1746696368000, - "meta": 1748437825940, + "asset": 1750920400607, + "meta": 1750920542192, "relativePath": "resources\\Particle\\top_3_3_1.plist" }, "a31899db-3035-4aa4-a9fe-7fded073dd86": { - "asset": 1747037900273, - "meta": 1748437825076, + "asset": 1750920400582, + "meta": 1750920536578, "relativePath": "resources\\Particle\\sp10_1.png" }, "939ebf75-c659-407b-9c0f-d7076254b88f": { - "asset": 1747037900654, - "meta": 1748437825084, + "asset": 1750920400593, + "meta": 1750920536676, "relativePath": "resources\\Particle\\sp8_1.png" }, "d3490b80-4d19-4947-813e-0bcc1befc7c8": { - "asset": 1747037900326, - "meta": 1748437825092, + "asset": 1750920400583, + "meta": 1750920536589, "relativePath": "resources\\Particle\\sp1_1.png" }, "5b2973a1-a163-4dc2-819f-2b5e6857af9c": { - "asset": 1747037900515, - "meta": 1748437825093, + "asset": 1750920400589, + "meta": 1750920536630, "relativePath": "resources\\Particle\\sp5_1.png" }, "c4aa25d1-758f-43cd-a8ee-a3dbacc15789": { - "asset": 1747037900560, - "meta": 1748437825106, + "asset": 1750920400591, + "meta": 1750920536630, "relativePath": "resources\\Particle\\sp6_1.png" }, "613e4638-41b7-425b-a51a-6b79fa173623": { - "asset": 1747037900420, - "meta": 1748437825107, + "asset": 1750920400587, + "meta": 1750920536605, "relativePath": "resources\\Particle\\sp3_1.png" }, "7c24de34-6445-4eb1-8e25-e67099420921": { - "asset": 1747037900607, - "meta": 1748437825111, + "asset": 1750920400592, + "meta": 1750920536666, "relativePath": "resources\\Particle\\sp7_1.png" }, "a6a556b5-3b8d-4783-b187-5c19590004c4": { - "asset": 1747037900699, - "meta": 1748437825113, + "asset": 1750920400594, + "meta": 1750920536671, "relativePath": "resources\\Particle\\sp9_1.png" }, "e70e4bb3-725c-48ca-a6ff-be6a51cecab6": { - "asset": 1747037900468, - "meta": 1748437825115, + "asset": 1750920400588, + "meta": 1750920536627, "relativePath": "resources\\Particle\\sp4_1.png" }, "13185b79-88d9-48ff-95ad-2f6cb45b602a": { - "asset": 1747037900374, - "meta": 1748437825116, + "asset": 1750920400585, + "meta": 1750920536573, "relativePath": "resources\\Particle\\sp2_1.png" }, "b7dfc157-1e68-4278-a452-23541de3bab7": { - "asset": 1750750367884, - "meta": 1750750430536, + "asset": 1750920400377, + "meta": 1750920538265, "relativePath": "effect\\tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x" }, "9d39798c-3312-4cfe-b597-73c0057c8e99": { - "asset": 1750750367888, - "meta": 1750750430542, + "asset": 1750920400377, + "meta": 1750920540723, "relativePath": "effect\\tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures" }, "e0b3973d-fd82-4d03-a0db-8ec2dd56271a": { - "asset": 1750750367897, - "meta": 1750750430547, + "asset": 1750920400379, + "meta": 1750920540735, "relativePath": "effect\\tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures\\particle" }, "05875bd1-0240-40cc-b2d9-0166038382ba": { - "asset": 1747341686000, - "meta": 1748437825544, + "asset": 1750920400378, + "meta": 1750920540843, "relativePath": "effect\\tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures\\particle\\circle_00.png" }, "b706673f-e777-40bc-af87-422aec7626a4": { - "asset": 1747341686000, - "meta": 1748437825551, + "asset": 1750920400379, + "meta": 1750920540839, "relativePath": "effect\\tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures\\particle\\flash.png" }, "4728bb0d-1617-4105-b140-fcfc14969a6b": { - "asset": 1747341686000, - "meta": 1748437825559, + "asset": 1750920400377, + "meta": 1750920540846, "relativePath": "effect\\tuowei\\2D and UI trailing effects\\2D和UI的拖尾效果3.x\\textures\\particle\\LiZi1.png" }, "6c53e21f-0dfa-4273-b08a-951f6792467b": { - "asset": 1749539953146, - "meta": 1749539953150, + "asset": 1750920400646, + "meta": 1750920538508, "relativePath": "resources\\prefab\\block\\block4.prefab" }, "6413d7ad-bfc3-4b8c-bc1c-c1d819e9d892": { - "asset": 1750750368870, - "meta": 1750750430508, + "asset": 1750920400232, + "meta": 1750920536700, "relativePath": "Script\\lq_base\\data" }, "0432403f-8c23-4a3e-813a-1a9a1d88aeed": { - "asset": 1750750368886, - "meta": 1750750430508, + "asset": 1750920400236, + "meta": 1750920536702, "relativePath": "Script\\lq_base\\util" }, "c22a3c1c-53fb-4174-9fea-8e7fd0eaeb80": { - "asset": 1748499413325, - "meta": 1748513630748, + "asset": 1750920400237, + "meta": 1750920536815, "relativePath": "Script\\lq_collide_system\\lq_collide_base.ts" }, "81314984-dc17-444a-bf3b-48014af5caaf": { - "asset": 1748499413326, - "meta": 1748513630950, + "asset": 1750920400239, + "meta": 1750920537013, "relativePath": "Script\\lq_collide_system\\lq_collide_system.js" }, "ad6beb84-3361-4f58-ac42-8c77980b3384": { - "asset": 1748499413326, - "meta": 1748513631114, + "asset": 1750920400238, + "meta": 1750920537671, "relativePath": "Script\\lq_collide_system\\lq_collide_system.d.ts" }, "a5470d94-355f-4d03-ba58-81077a780e7f": { - "asset": 1748499413804, - "meta": 1748513631012, + "asset": 1750920400231, + "meta": 1750920538608, "relativePath": "Script\\lq_base\\data\\lq_data.ts" }, "41e4557a-fef0-4dcf-97ed-8070a81667a2": { - "asset": 1748499413804, - "meta": 1748513631014, + "asset": 1750920400232, + "meta": 1750920538613, "relativePath": "Script\\lq_base\\data\\lq_interface.ts" }, "9830980f-5d4c-4417-acc1-7bd7bbe4a9db": { - "asset": 1748499413804, - "meta": 1748513630993, + "asset": 1750920400231, + "meta": 1750920538573, "relativePath": "Script\\lq_base\\data\\lq_const.ts" }, "cd21fb93-658e-4b3a-8897-b4deba47bc31": { - "asset": 1748499414034, - "meta": 1748513631049, + "asset": 1750920400233, + "meta": 1750920538684, "relativePath": "Script\\lq_base\\util\\lq_base_util.ts" }, "98488d9e-d9da-43d7-b2ef-0909d30f2904": { - "asset": 1748499414034, - "meta": 1748513631107, + "asset": 1750920400236, + "meta": 1750920538864, "relativePath": "Script\\lq_base\\util\\lq_pool_util.ts" }, "997fce7c-cb7f-4e14-b7e5-87a4f9f1f643": { - "asset": 1748499414034, - "meta": 1748513631064, + "asset": 1750920400235, + "meta": 1750920538778, "relativePath": "Script\\lq_base\\util\\lq_math_util.ts" }, "63c53081-f5d8-4bfe-9845-38fb537ae17b": { - "asset": 1748513423363, - "meta": 1748513475485, + "asset": 1750920400234, + "meta": 1750920538743, "relativePath": "Script\\lq_base\\util\\lq_game_util.ts" }, "b6fd3869-f3bc-4fcb-9660-e4cbe0824ad3": { - "asset": 1750750368874, - "meta": 1750750430489, + "asset": 1750920400232, + "meta": 1750920535491, "relativePath": "Script\\lq_base" }, "7262f828-3947-4d61-ab6b-0c5ef01a6473": { - "asset": 1750750368903, - "meta": 1750750430490, + "asset": 1750920400239, + "meta": 1750920535491, "relativePath": "Script\\lq_collide_system" }, "92f23179-46e7-4f6c-8d1f-3b68910937db": { - "asset": 1749539958392, - "meta": 1749539958401, + "asset": 1750920400647, + "meta": 1750920538521, "relativePath": "resources\\prefab\\block\\block5.prefab" }, "4bd218bc-f09f-4a7e-8581-e9faa4ee85b5": { - "asset": 1748518631814, - "meta": 1748518632693, + "asset": 1750920400238, + "meta": 1750920536822, "relativePath": "Script\\lq_collide_system\\lq_collide_config.ts" }, "e1e1fde9-4548-4234-97c0-b571d29d6964": { - "asset": 1749539941348, - "meta": 1749539941353, + "asset": 1750920400636, + "meta": 1750920538352, "relativePath": "resources\\prefab\\block\\block1.prefab" }, "92586008-06b8-4305-818c-ab9e69997bd3": { - "asset": 1748946820858, - "meta": 1748946822183, + "asset": 1750920400541, + "meta": 1750920536537, "relativePath": "resources\\Json\\level98.json" }, "4ecec063-d01a-4047-a6bf-2af9daa39c0e": { - "asset": 1749006904091, - "meta": 1749007053259, + "asset": 1750920400528, + "meta": 1750920536515, "relativePath": "resources\\Json\\level83.json" }, "3c71c961-6f67-4945-8fc8-4423bde5a407": { - "asset": 1750750369224, - "meta": 1750750430533, + "asset": 1750920400341, + "meta": 1750920538249, "relativePath": "UI\\UI\\start" }, "e1b9ccf5-5ce0-4f3a-98b3-be03da8aa0b1": { - "asset": 1744703447500, - "meta": 1749019355803, + "asset": 1750920400340, + "meta": 1750920540813, "relativePath": "UI\\UI\\start\\jiazai3.png" }, "a599dccc-d5a2-4fff-86ea-f3a03ce9b7b8": { - "asset": 1744703447383, - "meta": 1749019355803, + "asset": 1750920400339, + "meta": 1750920540823, "relativePath": "UI\\UI\\start\\jiazai1.png" }, "c8d5d71b-f258-4537-9490-86e913376bf6": { - "asset": 1744703447686, - "meta": 1749019355819, + "asset": 1750920400341, + "meta": 1750920540807, "relativePath": "UI\\UI\\start\\logo.png" }, "5446346a-3fb9-4f57-bd44-4858f8fd3af2": { - "asset": 1747986063424, - "meta": 1749019355851, + "asset": 1750920400338, + "meta": 1750920540907, "relativePath": "UI\\UI\\start\\bg.jpg" }, "4ef763e2-6a9f-4632-8dd6-5f6394e2c593": { - "asset": 1744703594000, - "meta": 1749019355867, + "asset": 1750920400339, + "meta": 1750920540875, "relativePath": "UI\\UI\\start\\bg_1.jpg" }, "707d9e1d-7462-4b68-abd1-ae01b980fde2": { - "asset": 1749022072739, - "meta": 1749022347427, + "asset": 1750920400326, + "meta": 1750920538439, "relativePath": "UI\\UI\\ice2.png" }, "07fe1d60-1325-4d4f-8cb6-0ef546f3bfe9": { - "asset": 1749022073336, - "meta": 1749022347433, + "asset": 1750920400321, + "meta": 1750920538339, "relativePath": "UI\\UI\\gx1.png" }, "e823ecf2-4cd3-49b7-ad41-785d1977e9f9": { - "asset": 1749022075753, - "meta": 1749022347498, + "asset": 1750920400325, + "meta": 1750920538688, "relativePath": "UI\\UI\\ice1.png" }, "a8367177-3aba-42cd-9f77-1f1ad166b0ac": { - "asset": 1750750369099, - "meta": 1750750430451, + "asset": 1750920400276, + "meta": 1750920534753, "relativePath": "TextureBg" }, "89c216a8-80c9-4e97-a06f-864e5640fcc8": { - "asset": 1750750369116, - "meta": 1750750430500, + "asset": 1750920400286, + "meta": 1750920535900, "relativePath": "TextureBg\\pop_Bg" }, "22bce3a4-1d59-4e46-a06c-530039f813b8": { - "asset": 1749022080209, - "meta": 1749022636401, + "asset": 1750920400286, + "meta": 1750920538103, "relativePath": "TextureBg\\pop_Bg\\yinYing.png" }, "46fd55f0-7f2d-444c-ad65-9dfff081c008": { - "asset": 1749022082580, - "meta": 1749022636409, + "asset": 1750920400277, + "meta": 1750920538047, "relativePath": "TextureBg\\pop_Bg\\pauseBg.png" }, "669a5a6c-68ca-412c-9321-a0af32085234": { - "asset": 1749022078056, - "meta": 1749022636418, + "asset": 1750920400281, + "meta": 1750920538243, "relativePath": "TextureBg\\pop_Bg\\result_bg2.png" }, "cf67e4b5-6705-4eb0-809f-69efa4a5883e": { - "asset": 1749022085336, - "meta": 1749022636427, + "asset": 1750920400279, + "meta": 1750920538247, "relativePath": "TextureBg\\pop_Bg\\result_bg1.png" }, "8ac53103-5eab-4857-b56c-2d055f0be6e3": { - "asset": 1749022079508, - "meta": 1749022636451, + "asset": 1750920400285, + "meta": 1750920538433, "relativePath": "TextureBg\\pop_Bg\\tanchuang1.png" }, "6d618c9c-dc6d-48d0-a203-3304725f885b": { - "asset": 1744703447453, - "meta": 1749022882221, + "asset": 1750920400340, + "meta": 1750920540803, "relativePath": "UI\\UI\\start\\jiazai2.png" }, "3c749884-1309-4030-a3f2-8c6124c14da5": { - "asset": 1749026725983, - "meta": 1749026770270, + "asset": 1750920400252, + "meta": 1750920537155, "relativePath": "Script\\prop\\Boom.ts" }, "41cb8ba0-2d20-47ff-968d-867b09e655fb": { - "asset": 1749026745970, - "meta": 1749026770305, + "asset": 1750920400253, + "meta": 1750920537228, "relativePath": "Script\\prop\\Lock.ts" }, "669f44ae-4a5f-4e46-a6b0-05c6f008da46": { - "asset": 1749027220793, - "meta": 1749027222141, + "asset": 1750920400225, + "meta": 1750920535733, "relativePath": "Script\\NumberToImage.ts" }, "3890fe43-f2f3-4d6e-acfa-07ba7794f7b6": { - "asset": 1749035384566, - "meta": 1749035454458, + "asset": 1750920400521, + "meta": 1750920536498, "relativePath": "resources\\Json\\level70.json" }, "bf502854-8e31-40c1-9d27-ac480682b4c4": { - "asset": 1750236731095, - "meta": 1750236731100, + "asset": 1750920400415, + "meta": 1750920536145, "relativePath": "prefab\\prop\\star.prefab" }, "ad8cb6f3-0a88-4247-9ba2-7ecb1d4537fe": { - "asset": 1749038829891, - "meta": 1749038830504, + "asset": 1750920400252, + "meta": 1750920537186, "relativePath": "Script\\prop\\Freeze.ts" }, "7b34e903-ce39-4cc8-bb62-11e9068ad7a0": { - "asset": 1745303526000, - "meta": 1749094519908, + "asset": 1750920400314, + "meta": 1750920538233, "relativePath": "TextureBlock\\block\\lianjie_1.png" }, "bee79baf-7ab4-4603-bd5f-9b7b367bb87f": { - "asset": 1745303526000, - "meta": 1749094519909, + "asset": 1750920400316, + "meta": 1750920538305, "relativePath": "TextureBlock\\block\\lianjie_2.png" }, "25bab75a-d0a5-42a2-b0d4-f1aca4ac8d80": { - "asset": 1749535522491, - "meta": 1749535522498, + "asset": 1750920400411, + "meta": 1750920536068, "relativePath": "prefab\\prop\\adhesive.prefab" }, "d1e47425-52fd-46a4-b2e0-ca7eb4035219": { - "asset": 1749111459159, - "meta": 1749111531179, + "asset": 1750920400365, + "meta": 1750920535973, "relativePath": "effect\\nianhe\\jiekou_heng.atlas" }, "4811f779-3bd2-4074-b313-6b217df626ad": { - "asset": 1749111459158, - "meta": 1749111531194, + "asset": 1750920400367, + "meta": 1750920535993, "relativePath": "effect\\nianhe\\jiekou_heng.png" }, "8b100987-aed3-4feb-ba02-557888c6784e": { - "asset": 1749111459120, - "meta": 1749111531210, + "asset": 1750920400366, + "meta": 1750920541098, "relativePath": "effect\\nianhe\\jiekou_heng.json" }, "d2add891-a975-4a43-8604-a7ab0ae5de91": { - "asset": 1749181658130, - "meta": 1749181658566, + "asset": 1750920400237, + "meta": 1750920536802, "relativePath": "Script\\lq_collide_system\\lq_collide.ts" }, "b5a3ac74-65d0-495a-a1ca-fa356fa27044": { - "asset": 1749193070000, - "meta": 1749195518139, + "asset": 1750920400503, + "meta": 1750920536473, "relativePath": "resources\\Json\\level48.json" }, "f12e967c-5941-4412-aec3-a0f685bbd348": { - "asset": 1749183226000, - "meta": 1749195518140, + "asset": 1750920400481, + "meta": 1750920536440, "relativePath": "resources\\Json\\level21.json" }, "92a55f0e-c363-4a6c-8f90-184e94ab3627": { - "asset": 1749182307000, - "meta": 1749195518143, + "asset": 1750920400479, + "meta": 1750920536435, "relativePath": "resources\\Json\\level19.json" }, "529f3c90-8582-4ee9-ad0e-a03537b58dbe": { - "asset": 1749189827000, - "meta": 1749195518145, + "asset": 1750920400485, + "meta": 1750920536445, "relativePath": "resources\\Json\\level26.json" }, "b8cbb874-456c-45e9-a26d-bcf67373d057": { - "asset": 1749006686343, - "meta": 1749201359103, + "asset": 1750920400355, + "meta": 1750920535920, "relativePath": "effect\\load\\skeleton.atlas" }, "904053d8-a235-4912-a613-9c55b49a1fcf": { - "asset": 1749201299713, - "meta": 1749201359262, + "asset": 1750920400360, + "meta": 1750920536136, "relativePath": "effect\\load\\skeleton.png" }, "83fdf834-580f-49fa-ab44-3f234c89d1c2": { - "asset": 1749006685475, - "meta": 1749201359280, + "asset": 1750920400355, + "meta": 1750920541111, "relativePath": "effect\\load\\skeleton.json" }, "dc0c1cff-b811-45ac-a0bb-85669ed178f7": { - "asset": 1748402748000, - "meta": 1749203150848, + "asset": 1750920400457, + "meta": 1750920536389, "relativePath": "resources\\Json\\level125.json" }, "2eb31c5e-4f7a-42d8-a961-3b5e60583d3e": { - "asset": 1748413842000, - "meta": 1749203150849, + "asset": 1750920400460, + "meta": 1750920536398, "relativePath": "resources\\Json\\level130.json" }, "510edcae-1f66-45f1-8bb4-3db4986cfa22": { - "asset": 1748411907000, - "meta": 1749203150851, + "asset": 1750920400459, + "meta": 1750920536390, "relativePath": "resources\\Json\\level128.json" }, "5080d509-53d2-44d1-90c4-349c2e006a19": { - "asset": 1748420393000, - "meta": 1749203150852, + "asset": 1750920400463, + "meta": 1750920536400, "relativePath": "resources\\Json\\level135.json" }, "fa10390d-fc46-4025-b791-04d326c1f013": { - "asset": 1748419328000, - "meta": 1749203150854, + "asset": 1750920400461, + "meta": 1750920536403, "relativePath": "resources\\Json\\level133.json" }, "abae2d80-f428-4585-870a-295a24697637": { - "asset": 1748416596000, - "meta": 1749203150856, + "asset": 1750920400462, + "meta": 1750920536402, "relativePath": "resources\\Json\\level134.json" }, "a0412d3a-5dcc-4671-af2e-aa9794f7e08f": { - "asset": 1748403832000, - "meta": 1749203150857, + "asset": 1750920400458, + "meta": 1750920536387, "relativePath": "resources\\Json\\level126.json" }, "4bd2d099-e112-49c5-b0ec-680470952c3e": { - "asset": 1748487887000, - "meta": 1749203150859, + "asset": 1750920400465, + "meta": 1750920536406, "relativePath": "resources\\Json\\level140.json" }, "f6714297-00e0-44fb-b706-e3fbef1f486d": { - "asset": 1748487286000, - "meta": 1749203150860, + "asset": 1750920400464, + "meta": 1750920536404, "relativePath": "resources\\Json\\level138.json" }, "f539cbbc-12a9-42a4-9a80-05013ba69d0b": { - "asset": 1748489625000, - "meta": 1749203150861, + "asset": 1750920400467, + "meta": 1750920536409, "relativePath": "resources\\Json\\level143.json" }, "407bfb1e-6181-40c6-8b1f-6bd368cb9507": { - "asset": 1748488631000, - "meta": 1749203150861, + "asset": 1750920400466, + "meta": 1750920536408, "relativePath": "resources\\Json\\level141.json" }, "5417765e-1eff-4053-9572-b1d1197db88a": { - "asset": 1749004853000, - "meta": 1749203150863, + "asset": 1750920400468, + "meta": 1750920536413, "relativePath": "resources\\Json\\level144.json" }, "dfae9728-10ae-4338-9000-1844255e36d6": { - "asset": 1748400420000, - "meta": 1749203150864, + "asset": 1750920400457, + "meta": 1750920536385, "relativePath": "resources\\Json\\level124.json" }, "87a1f7e1-e195-4224-9223-90f9bfcf81c8": { - "asset": 1749005652000, - "meta": 1749203150866, + "asset": 1750920400469, + "meta": 1750920536410, "relativePath": "resources\\Json\\level145.json" }, "c23a8d9a-37a2-4ee6-b9e3-3adf2f1d82be": { - "asset": 1749116284000, - "meta": 1749203150869, + "asset": 1750920400475, + "meta": 1750920536427, "relativePath": "resources\\Json\\level152.json" }, "892e12ad-70db-468f-b4bd-a2cd65677298": { - "asset": 1749114485000, - "meta": 1749203150870, + "asset": 1750920400475, + "meta": 1750920536430, "relativePath": "resources\\Json\\level151.json" }, "dc754672-6abb-4801-910e-98ba5a873885": { - "asset": 1749017386000, - "meta": 1749203150871, + "asset": 1750920400474, + "meta": 1750920536427, "relativePath": "resources\\Json\\level150.json" }, "3b669f8e-12ad-4d16-9561-6fd9ace64638": { - "asset": 1749119877000, - "meta": 1749203150872, + "asset": 1750920400476, + "meta": 1750920536433, "relativePath": "resources\\Json\\level156.json" }, "a81ff75b-b73d-433f-abf4-18849599cdff": { - "asset": 1749117900000, - "meta": 1749203150872, + "asset": 1750920400476, + "meta": 1750920536430, "relativePath": "resources\\Json\\level154.json" }, "b97dfffc-df55-4efa-a2b5-66c748fa8992": { - "asset": 1749178609000, - "meta": 1749203150873, + "asset": 1750920400477, + "meta": 1750920536433, "relativePath": "resources\\Json\\level157.json" }, "0f9aab89-5e08-423d-8030-259fe54c4d74": { - "asset": 1749207306943, - "meta": 1749207335877, + "asset": 1750920400276, + "meta": 1750920538103, "relativePath": "TextureBg\\pop_Bg\\loadBg.jpg" }, "75b4f368-70b5-452d-9afd-ca7a6f1e2e60": { - "asset": 1749208553577, - "meta": 1749208583656, + "asset": 1750920400404, + "meta": 1750920536635, "relativePath": "music\\main_bgm.mp3" }, "41760d65-2f00-4cc3-9b87-00d2592e91dd": { - "asset": 1749459335413, - "meta": 1749459340526, + "asset": 1750920400492, + "meta": 1750920536457, "relativePath": "resources\\Json\\level34.json" }, "358754f4-96c4-4bde-bce1-36451d5f8fc6": { - "asset": 1749460616755, - "meta": 1749460861066, + "asset": 1750920400236, + "meta": 1750920538817, "relativePath": "Script\\lq_base\\util\\lq_platform_util.ts" }, "8a024faa-e4af-4cae-9c5c-693bee7120c1": { - "asset": 1723104058083, - "meta": 1749467157753, + "asset": 1750920400227, + "meta": 1750920537267, "relativePath": "Script\\Sdk\\DouyinEntranceView.ts" }, "24976052-1e2b-4093-8a2f-ea8a6de66515": { - "asset": 1749470251684, - "meta": 1749470252921, + "asset": 1750920400632, + "meta": 1750920534866, "relativePath": "resources\\level51.json" }, "f6dd9161-ac72-46f4-b977-9943277a79b9": { - "asset": 1749470323688, - "meta": 1749470324880, + "asset": 1750920400506, + "meta": 1750920536473, "relativePath": "resources\\Json\\level51.json" }, "5fc5bcf5-695e-4f28-8049-421f7d8e99b6": { - "asset": 1749537069914, - "meta": 1749537221099, + "asset": 1750920400251, + "meta": 1750920537115, "relativePath": "Script\\prop\\Adhesive.ts" }, "92dfa35c-14f5-48b7-8f57-583c7a23d434": { - "asset": 1749539899772, - "meta": 1749539936458, + "asset": 1750920400635, + "meta": 1750920538323, "relativePath": "resources\\prefab\\block\\block0.prefab" }, "a57bdbd8-3153-459e-b71c-9dc08d255d09": { - "asset": 1747987602221, - "meta": 1749543933648, + "asset": 1750920400619, + "meta": 1750920537735, "relativePath": "resources\\Window_Prop\\daoju9.png" }, "6c12637c-2bb7-4e7f-881b-96809e32c6cb": { - "asset": 1749543513675, - "meta": 1749543933658, + "asset": 1750920400618, + "meta": 1750920537704, "relativePath": "resources\\Window_Prop\\daoju8.png" }, "454ad829-851a-40ea-8ab9-941e828357ca": { - "asset": 1749544806827, - "meta": 1749544834281, + "asset": 1750920400222, + "meta": 1750920535490, "relativePath": "Script\\Load.ts" }, "0d272a57-5428-450e-a8b9-1574c3d89951": { - "asset": 1749718336723, - "meta": 1749720601981, + "asset": 1750920400227, + "meta": 1750920537333, "relativePath": "Script\\Sdk\\MiniGameManager.ts" }, "38201fb6-580d-498d-818a-9b513cd981ea": { - "asset": 1749726700055, - "meta": 1749726721742, + "asset": 1750920400473, + "meta": 1750920536421, "relativePath": "resources\\Json\\level149.json" }, "6ee6ccc9-e1e5-4d6f-815e-8aaa6ce5221a": { - "asset": 1749794722170, - "meta": 1749794724280, + "asset": 1750933271781, + "meta": 1750987168162, "relativePath": "Script\\btnControl.ts" }, "b3fc0972-de1d-4a54-a194-62f91a766878": { - "asset": 1749798858423, - "meta": 1749798860525, + "asset": 1750920400320, + "meta": 1750920538311, "relativePath": "UI\\UI\\btn_yellow.png" }, "8a5504e1-4ecb-4d59-b9ec-5351a09d7442": { - "asset": 1749798858307, - "meta": 1749798860527, + "asset": 1750920400319, + "meta": 1750920538323, "relativePath": "UI\\UI\\btn_blue.png" }, "46fd7fa0-2fd8-4c2d-96ef-4df704c27b9b": { - "asset": 1749798858124, - "meta": 1749799000111, + "asset": 1750920400341, + "meta": 1750920538398, "relativePath": "UI\\UI\\tanchuang1.png" }, "f0797bd4-cc39-44cf-84d7-c7ce8ae1c9e6": { - "asset": 1749798858194, - "meta": 1749799072039, + "asset": 1750920400342, + "meta": 1750920538433, "relativePath": "UI\\UI\\tanchuang2.png" }, "fa9a438e-1f24-47fe-bbcd-b75abcff2ea8": { - "asset": 1749799335535, - "meta": 1749799360542, + "asset": 1750920400419, + "meta": 1750920541184, "relativePath": "res\\font\\font.plist" }, "f8d067a0-98d0-4a97-8159-506946262d4b": { - "asset": 1749799346569, - "meta": 1749799360477, + "asset": 1750920400420, + "meta": 1750920536207, "relativePath": "res\\font\\font.png" }, "4b15a631-612d-4c2a-8507-96df5812ec08": { - "asset": 1749807157281, - "meta": 1749809683377, + "asset": 1750920400334, + "meta": 1750920538376, "relativePath": "UI\\UI\\result_btn1.png" }, "ba2b6483-46df-41a9-b5f8-76ad05164bf3": { - "asset": 1749807157095, - "meta": 1749809683378, + "asset": 1750920400336, + "meta": 1750920538418, "relativePath": "UI\\UI\\result_btn3.png" }, "62e825ca-bd6a-4e05-8b08-cba467c91243": { - "asset": 1749807156752, - "meta": 1749809683379, + "asset": 1750920400335, + "meta": 1750920538392, "relativePath": "UI\\UI\\result_btn2.png" }, "eb639914-71d8-4def-a989-c4469533754d": { - "asset": 1749809077518, - "meta": 1749809093984, + "asset": 1750920400333, + "meta": 1750920540704, "relativePath": "UI\\UI\\publicUI.png" }, "d2adfa00-68ea-4d63-97a0-44fca153a2d7": { - "asset": 1749809059537, - "meta": 1749809094033, + "asset": 1750920400328, + "meta": 1750920542955, "relativePath": "UI\\UI\\publicUI.plist" }, "4eaf518b-35ec-4262-928d-4d497c3f2830": { - "asset": 1750848806469, - "meta": 1750848806484, + "asset": 1750992706714, + "meta": 1750992706723, "relativePath": "Scene\\GameScene.fire" }, - "87a449b9-7ffa-4f00-a22b-b3202b4abfd5": { - "asset": 1750042387657, - "meta": 1750042389357, - "relativePath": "Script\\Wall.ts" - }, "c58de376-bb53-4664-bf27-270be7bb53d1": { - "asset": 1750042622364, - "meta": 1750042623994, + "asset": 1750920400219, + "meta": 1750920535195, "relativePath": "Script\\Block.ts" }, "aabd80cb-b51f-44d9-b9db-0bd736acd045": { - "asset": 1750143645587, - "meta": 1750143648746, + "asset": 1750920400439, + "meta": 1750920536308, "relativePath": "resources\\Json\\level1.json" }, "71910b3b-2542-4863-8a81-cec3f15bbb41": { - "asset": 1750145338230, - "meta": 1750145376877, + "asset": 1750920400318, + "meta": 1750920538280, "relativePath": "TextureBlock\\block\\star.png" }, "7c245d33-7161-42a1-a713-d944b39d83fa": { - "asset": 1750145321392, - "meta": 1750145376899, + "asset": 1750920400316, + "meta": 1750920542820, "relativePath": "TextureBlock\\block\\star.plist" }, "31479c6e-5626-4598-97ab-f94303e9efe7": { - "asset": 1746785313569, - "meta": 1750153005864, + "asset": 1750920400427, + "meta": 1750920541363, "relativePath": "res\\texture_Block\\down.plist" }, "418b4767-01bf-4ac2-823b-9880f2a79215": { - "asset": 1748243270783, - "meta": 1750153342399, + "asset": 1750920400427, + "meta": 1750920536219, "relativePath": "res\\texture_Block\\door.png" }, "66281f32-0047-4af8-8237-90c93fc4b0e8": { - "asset": 1750755483755, - "meta": 1750755483762, + "asset": 1751252099360, + "meta": 1751252099366, "relativePath": "Scene\\HomeScene.fire" }, "76cfa326-3d21-4ca5-8ecf-d35cf4bd383b": { - "asset": 1750230727856, - "meta": 1750231085016, + "asset": 1750920400480, + "meta": 1750920536435, "relativePath": "resources\\Json\\level2.json" }, "2b67b348-a49b-45af-b4d2-690221b03a93": { - "asset": 1750233736819, - "meta": 1750233737936, + "asset": 1750920400489, + "meta": 1750920536450, "relativePath": "resources\\Json\\level3.json" }, "998a24bd-ffa0-4f96-bc39-a9789f42bd9b": { - "asset": 1750233817725, - "meta": 1750233918742, + "asset": 1750920400406, + "meta": 1750920536425, "relativePath": "music\\zhuan2.mp3" }, "7fe14751-1506-4a48-a280-a049f84bb394": { - "asset": 1750234866736, - "meta": 1750234867380, + "asset": 1750920400224, + "meta": 1750920535723, "relativePath": "Script\\NewMode.ts" }, "a5518b0f-7ed3-46f0-aa78-93f02f4579cc": { - "asset": 1750239223593, - "meta": 1750239320969, + "asset": 1750920400386, + "meta": 1750920536417, "relativePath": "music\\anniu_little.mp3" }, "7362cac7-12b5-4704-af6d-5b110c5e9fcf": { - "asset": 1750239222626, - "meta": 1750239320971, + "asset": 1750920400385, + "meta": 1750920536420, "relativePath": "music\\anniu_Big.mp3" }, "e4d2f16e-7663-4ee5-a479-06ae0eae91d5": { - "asset": 1750239221409, - "meta": 1750239320971, + "asset": 1750920400406, + "meta": 1750920536425, "relativePath": "music\\zhuan1.mp3" }, "f3f0dece-8b63-488c-92b9-3a0a93554ed0": { - "asset": 1749196521000, - "meta": 1750242263606, + "asset": 1750920400254, + "meta": 1750920535855, "relativePath": "Script\\tdanalytics.mg.cocoscreator.min.js" }, "aca4abad-df73-42bc-80b4-ca0dc9998d21": { - "asset": 1750412679731, - "meta": 1750412716128, + "asset": 1750920400225, + "meta": 1750920535754, "relativePath": "Script\\Pause.ts" }, "58403fe7-d7a2-426b-9b19-84d3236731a8": { - "asset": 1750412803083, - "meta": 1750412804914, + "asset": 1750920400243, + "meta": 1750920539985, "relativePath": "Script\\module\\Music\\AudioManager.ts" }, "c5692be7-8703-45e4-9f67-23b54d290356": { - "asset": 1750752541531, - "meta": 1750753878689, + "asset": 1750920400240, + "meta": 1750920539121, "relativePath": "Script\\module\\Config\\GameConfig.ts" }, "a790b6e5-b51f-4d1a-aa85-2832e8fcfc9f": { - "asset": 1750755345320, - "meta": 1750755469968, + "asset": 1750920400463, + "meta": 1750920536399, "relativePath": "resources\\Json\\level137.json" }, - "809984f5-0183-4d45-9751-c6c56f5d1eb9": { - "asset": 1750759139580, - "meta": 1750760972407, - "relativePath": "Script\\SceneManager.ts" - }, "f41d602c-b8df-4067-a88a-16c4ba168356": { - "asset": 1750389088000, - "meta": 1750820043751, + "asset": 1750920400454, + "meta": 1750920536375, "relativePath": "resources\\Json\\level120.json" }, "96acc152-cb32-45fb-806d-dbda87fd435b": { - "asset": 1750395879000, - "meta": 1750820043754, + "asset": 1750920400455, + "meta": 1750920536384, "relativePath": "resources\\Json\\level122.json" }, "8b4fe7f9-ceba-43bb-bb53-6ae24b9d9244": { - "asset": 1750403988000, - "meta": 1750820043756, + "asset": 1750920400461, + "meta": 1750920536401, "relativePath": "resources\\Json\\level132.json" }, "1f01b045-4882-4eae-9c4d-37103df09d36": { - "asset": 1750407621000, - "meta": 1750820043759, + "asset": 1750920400470, + "meta": 1750920536412, "relativePath": "resources\\Json\\level146.json" }, "cfddd1e3-dca7-4b95-9892-46a6948315ca": { - "asset": 1750402528000, - "meta": 1750820043765, + "asset": 1750920400460, + "meta": 1750920536397, "relativePath": "resources\\Json\\level131.json" }, "301e6610-6a5d-46db-a4d0-3b707a3e6bb9": { - "asset": 1750397654000, - "meta": 1750820043769, + "asset": 1750920400456, + "meta": 1750920536383, "relativePath": "resources\\Json\\level123.json" }, "2af3d18b-c59a-483c-ac3a-ec6056ba053e": { - "asset": 1750416138000, - "meta": 1750820043771, + "asset": 1750920400471, + "meta": 1750920536418, "relativePath": "resources\\Json\\level147.json" }, "7d884300-fa5a-466c-8a20-6acdbe42ceda": { - "asset": 1750818540000, - "meta": 1750820043775, + "asset": 1750920400472, + "meta": 1750920536419, "relativePath": "resources\\Json\\level148.json" }, "4ae3e51b-8215-4c9f-b09c-e1632c85bd7d": { - "asset": 1750390723000, - "meta": 1750820043782, + "asset": 1750920400455, + "meta": 1750920536381, "relativePath": "resources\\Json\\level121.json" }, "1e896a42-b9b2-4865-afaa-6aabd7f7a627": { - "asset": 1750400534000, - "meta": 1750820043789, + "asset": 1750920400458, + "meta": 1750920536388, "relativePath": "resources\\Json\\level127.json" }, - "2234ab2c-a7b4-48be-90e0-ae7aa58e9d91": { - "asset": 1750839815897, - "meta": 1750848888371, - "relativePath": "Script\\Map.ts" + "c1af99dd-ee03-40f7-9609-d3887d0dd357": { + "asset": 1750920400228, + "meta": 1750920537650, + "relativePath": "Script\\Sdk\\MiniGameSdk.ts" }, - "1dc936f8-7de8-4eae-91a0-4e48a1047e20": { - "asset": 1750848051026, - "meta": 1750848888061, - "relativePath": "Script\\JiaZai.ts" - }, - "43bfc27a-ff6e-45b3-87c7-504d0f781397": { - "asset": 1750847473264, - "meta": 1750848888494, - "relativePath": "Script\\module\\Tool\\GameTool.ts" + "9df3aaf8-59bc-4eff-aa56-554ab3d4d2cb": { + "asset": 1750923547582, + "meta": 1750923547584, + "relativePath": "TextureBlock\\block\\AutoAtlas.pac" }, "df248952-2e59-4e66-9087-c06a90e587b7": { - "asset": 1750848525693, - "meta": 1750848751177, + "asset": 1750925358418, + "meta": 1750925641846, "relativePath": "Script\\GameManager.ts" }, - "c1af99dd-ee03-40f7-9609-d3887d0dd357": { - "asset": 1750848799605, - "meta": 1750848800986, - "relativePath": "Script\\Sdk\\MiniGameSdk.ts" + "28d9b746-520c-4ddc-95f8-401692d28ffc": { + "asset": 1750928978747, + "meta": 1750933783901, + "relativePath": "shop" + }, + "e4b11ec6-5712-4dba-ba33-eb23129e396a": { + "asset": 1750993864940, + "meta": 1751249638014, + "relativePath": "shop\\img" + }, + "ac030bb2-163b-4609-8553-0d6e7e662d03": { + "asset": 1750994492622, + "meta": 1751249638015, + "relativePath": "shop\\prefab" + }, + "c35d8611-3d61-4523-8ec7-3e961e2c46ab": { + "asset": 1750932889591, + "meta": 1750987168164, + "relativePath": "shop\\script" + }, + "6c076da3-bb21-4e43-9e7e-d88b44bd01f4": { + "asset": 1750302976000, + "meta": 1750929752972, + "relativePath": "shop\\img\\coins_sz10.png" + }, + "e9077dbb-d18e-45d5-aae4-9f46b103ed05": { + "asset": 1750302976000, + "meta": 1750929752974, + "relativePath": "shop\\img\\coins_sz3.png" + }, + "852ff94f-f07c-447b-93fa-a9adcb1a069b": { + "asset": 1750302976000, + "meta": 1750929752977, + "relativePath": "shop\\img\\coins_sz11.png" + }, + "0734a70a-118d-4d9d-9a9f-9a61c11641d2": { + "asset": 1750302976000, + "meta": 1750929752994, + "relativePath": "shop\\img\\coins_sz0.png" + }, + "76467e5a-9a87-4d17-afae-777d7ff638a1": { + "asset": 1750302976000, + "meta": 1750929752996, + "relativePath": "shop\\img\\coins_sz4.png" + }, + "1217c0be-cc7e-41be-b105-7c26baf444ff": { + "asset": 1750302976000, + "meta": 1750929752999, + "relativePath": "shop\\img\\coins_sz2.png" + }, + "58481a2a-4229-43d2-bd30-69e4f09cfe4b": { + "asset": 1750302976000, + "meta": 1750929753009, + "relativePath": "shop\\img\\coins_sz1.png" + }, + "774d1aad-d081-44e1-9d68-9a3fd767aba3": { + "asset": 1750302976000, + "meta": 1750929753019, + "relativePath": "shop\\img\\coins_sz5.png" + }, + "74db3129-e7a8-4b0b-baf9-e271bdfab9ba": { + "asset": 1750302976000, + "meta": 1750929753021, + "relativePath": "shop\\img\\coins_sz8.png" + }, + "efc62fa5-f8bc-4661-8eb9-f6e2cb5b4ad7": { + "asset": 1750302976000, + "meta": 1750929753023, + "relativePath": "shop\\img\\coins_sz13.png" + }, + "47d4dd52-9152-4724-ab77-4e9d15e14c2e": { + "asset": 1750302976000, + "meta": 1750929753027, + "relativePath": "shop\\img\\coins_sz7.png" + }, + "08a0b3cf-1219-46ba-8171-206dfe24151b": { + "asset": 1750302976000, + "meta": 1750929753035, + "relativePath": "shop\\img\\coins_sz6.png" + }, + "6112faa1-3935-48de-a5a8-3369a63cead8": { + "asset": 1750302976000, + "meta": 1750929753036, + "relativePath": "shop\\img\\coins_sz12.png" + }, + "3b8e0a01-7634-402d-a8d2-349fbbc809f6": { + "asset": 1750302976000, + "meta": 1750929753063, + "relativePath": "shop\\img\\coins_sz9.png" + }, + "b6cc00c9-4bc9-48a7-b075-af04e0f8cfe8": { + "asset": 1750302744000, + "meta": 1750929753094, + "relativePath": "shop\\img\\cost_1.png" + }, + "12c63ed2-bf61-4b5b-8d37-781d02f4386c": { + "asset": 1750302744000, + "meta": 1750929753096, + "relativePath": "shop\\img\\cost_0.png" + }, + "d8bf615a-752c-47ba-84e3-8ef47d9c4de1": { + "asset": 1750302214000, + "meta": 1750929753097, + "relativePath": "shop\\img\\鍟嗗煄.jpg" + }, + "76a01e2d-248a-494c-a56c-c14e4f26a3b0": { + "asset": 1750302744000, + "meta": 1750929753114, + "relativePath": "shop\\img\\cost_10.png" + }, + "1019c0e2-cc2c-4dde-93e4-86b676bc69cd": { + "asset": 1750302744000, + "meta": 1750929753132, + "relativePath": "shop\\img\\cost_11.png" + }, + "227db116-a70e-4157-b553-bfe8d6d18a6a": { + "asset": 1750302744000, + "meta": 1750929753146, + "relativePath": "shop\\img\\cost_2.png" + }, + "db683201-2fb0-4753-bf65-3ae7ef314627": { + "asset": 1750302744000, + "meta": 1750929753148, + "relativePath": "shop\\img\\cost_3.png" + }, + "c8b66182-996c-4377-8d0a-024d8b17e581": { + "asset": 1750302744000, + "meta": 1750929753160, + "relativePath": "shop\\img\\cost_6.png" + }, + "9ffc3971-f097-4de5-b88a-2e5e6d78104a": { + "asset": 1750302744000, + "meta": 1750929753163, + "relativePath": "shop\\img\\cost_5.png" + }, + "f1cd9c7b-a0b7-41fc-94c2-db60d6a51281": { + "asset": 1750302744000, + "meta": 1750929753165, + "relativePath": "shop\\img\\cost_4.png" + }, + "f0c1b219-0608-4a6c-aef0-59fc9db4955e": { + "asset": 1750302744000, + "meta": 1750929753166, + "relativePath": "shop\\img\\cost_7.png" + }, + "c6022e1d-b8c5-498b-a3c1-740387f6d647": { + "asset": 1750302744000, + "meta": 1750929753186, + "relativePath": "shop\\img\\cost_8.png" + }, + "621ae85f-f4e4-48a1-9e97-1cdfd769677d": { + "asset": 1750302744000, + "meta": 1750929753190, + "relativePath": "shop\\img\\cost_9.png" + }, + "6b7f9211-7903-45b4-b2e2-d388ba17e935": { + "asset": 1750302744000, + "meta": 1750929753192, + "relativePath": "shop\\img\\cost_yuan.png" + }, + "06097023-184a-44ab-be97-104b5b23de45": { + "asset": 1750302244000, + "meta": 1750929753202, + "relativePath": "shop\\img\\txt2.png" + }, + "a81d74d9-943b-4d0e-aad5-2999276d3447": { + "asset": 1750994963207, + "meta": 1750994963212, + "relativePath": "shop\\prefab\\item.prefab" + }, + "b01ef5c5-2755-455d-acb4-ba3818f5e331": { + "asset": 1751009041876, + "meta": 1751009041879, + "relativePath": "shop\\prefab\\shop.prefab" + }, + "267f6a1d-6833-4412-9b85-df929fcb2d9d": { + "asset": 1750991660965, + "meta": 1750991691256, + "relativePath": "shop\\img\\texture_atlas-0.png" + }, + "779cfcd5-4697-4641-83eb-340dd9bc5986": { + "asset": 1750991660974, + "meta": 1750991691261, + "relativePath": "shop\\img\\texture_atlas-1.png" + }, + "ad450c22-24c1-4352-a09f-151cb9f3ab8a": { + "asset": 1750991660968, + "meta": 1750991691266, + "relativePath": "shop\\img\\texture_atlas-0.plist" + }, + "47589a11-b9e5-45cb-b50d-398e1e8b3843": { + "asset": 1750991660974, + "meta": 1750991691271, + "relativePath": "shop\\img\\texture_atlas-1.plist" + }, + "e1cda82d-d022-47f6-9a4f-a7d1989ef7de": { + "asset": 1750993845025, + "meta": 1750993864955, + "relativePath": "shop\\img\\coin-0.png" + }, + "7aef6fef-1f14-4aeb-ba2e-3738a437eb63": { + "asset": 1750993845025, + "meta": 1750993864961, + "relativePath": "shop\\img\\coin-0.plist" + }, + "4466b8d6-b468-4cb5-bc57-7a2bd3df12e4": { + "asset": 1750994492617, + "meta": 1750994492622, + "relativePath": "shop\\prefab\\Tops.prefab" + }, + "1dc936f8-7de8-4eae-91a0-4e48a1047e20": { + "asset": 1750997218893, + "meta": 1750997246301, + "relativePath": "Script\\JiaZai.ts" + }, + "809984f5-0183-4d45-9751-c6c56f5d1eb9": { + "asset": 1750997225859, + "meta": 1750997246378, + "relativePath": "Script\\SceneManager.ts" + }, + "48bfe66e-6056-44da-a9a0-c5b5b6222801": { + "asset": 1751009016793, + "meta": 1751009018212, + "relativePath": "shop\\script\\shop.ts" + }, + "87a449b9-7ffa-4f00-a22b-b3202b4abfd5": { + "asset": 1751011463220, + "meta": 1751011525151, + "relativePath": "Script\\Wall.ts" + }, + "e0e349ff-f854-45e4-9764-50b9babdd4f4": { + "asset": 1751011954456, + "meta": 1751012012245, + "relativePath": "Script\\position.ts" + }, + "90c37607-5145-4fb1-8d26-94d9a89baeee": { + "asset": 1751012894344, + "meta": 1751012895628, + "relativePath": "Script\\Barrier.ts" + }, + "de906884-fc75-47a4-8e95-3bb20cbca688": { + "asset": 1751012865566, + "meta": 1751012895637, + "relativePath": "shop\\script\\item.ts" + }, + "2234ab2c-a7b4-48be-90e0-ae7aa58e9d91": { + "asset": 1751013628239, + "meta": 1751013676535, + "relativePath": "Script\\Map.ts" + }, + "c31c74ba-a2b0-4b6f-ac21-5c87b44aea4a": { + "asset": 1751016612169, + "meta": 1751016612171, + "relativePath": "UI\\UI\\set" + }, + "fcaa412a-64a2-4cdc-937f-1f4fbc527dfc": { + "asset": 1750931972000, + "meta": 1751016612234, + "relativePath": "UI\\UI\\set\\tiaodik.png" + }, + "f5f584ca-c27f-40a2-96e6-6bc312eb3c21": { + "asset": 1750932144000, + "meta": 1751016612236, + "relativePath": "UI\\UI\\set\\闊充箰01.png" + }, + "964de756-e8ea-44b4-9371-ea2af234714a": { + "asset": 1750932156000, + "meta": 1751016612241, + "relativePath": "UI\\UI\\set\\闊充箰00.png" + }, + "dfa1190c-5129-4775-b495-d2aca6a3a5bf": { + "asset": 1750932132000, + "meta": 1751016612242, + "relativePath": "UI\\UI\\set\\闊虫晥01.png" + }, + "306b721d-bd6d-4dc2-9c7e-0d42021be3b3": { + "asset": 1750932108000, + "meta": 1751016612243, + "relativePath": "UI\\UI\\set\\闇囧姩00.png" + }, + "f8ebdf98-79f3-41fd-8663-8abd3225fa66": { + "asset": 1750932098000, + "meta": 1751016612245, + "relativePath": "UI\\UI\\set\\闇囧姩01.png" + }, + "ea182daa-7a43-48b5-9a08-f20f71980deb": { + "asset": 1750932120000, + "meta": 1751016612251, + "relativePath": "UI\\UI\\set\\闊虫晥00.png" + }, + "50c01dd8-431f-43cc-820e-abb2a859d031": { + "asset": 1751019455152, + "meta": 1751019455156, + "relativePath": "animation\\set.anim" + }, + "43bfc27a-ff6e-45b3-87c7-504d0f781397": { + "asset": 1751251435227, + "meta": 1751252071537, + "relativePath": "Script\\module\\Tool\\GameTool.ts" } } \ No newline at end of file diff --git a/local/layout.editor.json b/local/layout.editor.json index b0f0a69..26dc73a 100644 --- a/local/layout.editor.json +++ b/local/layout.editor.json @@ -5,21 +5,21 @@ "main": true, "url": "app://editor/index.html", "windowType": "dockable", - "x": 0, - "y": 0, - "width": 1280, - "height": 676, + "x": -8, + "y": -8, + "width": 1296, + "height": 688, "layout": { "type": "dock-h", "children": [ { - "width": 204.8541717529297, - "height": 553.8333740234375, + "width": 396, + "height": 568.5, "type": "dock-v", "children": [ { - "width": 204.8541717529297, - "height": 323.90625, + "width": 396, + "height": 319.28125, "type": "panel", "active": 0, "children": [ @@ -27,8 +27,8 @@ ] }, { - "width": 204.8541717529297, - "height": 226.92709350585938, + "width": 396, + "height": 246.21875, "type": "panel", "active": 0, "children": [ @@ -38,8 +38,8 @@ ] }, { - "width": 751.1458740234375, - "height": 553.8333740234375, + "width": 557, + "height": 568.5, "type": "panel", "active": 0, "children": [ @@ -47,8 +47,8 @@ ] }, { - "width": 304, - "height": 556, + "width": 321, + "height": 568.5, "type": "panel", "active": 0, "children": [ @@ -81,10 +81,10 @@ "height": 688 }, "console": { - "x": 6, - "y": 50, - "width": 1292, - "height": 700 + "x": -270, + "y": 31, + "width": 1301, + "height": 707 }, "store": { "x": -8, @@ -115,6 +115,12 @@ "y": 2, "width": 380, "height": 954 + }, + "timeline": { + "x": 175, + "y": 330, + "width": 1095, + "height": 643 } }, "panelLabelWidth": {} diff --git a/local/local.json b/local/local.json index 35661fc..151e11d 100644 --- a/local/local.json +++ b/local/local.json @@ -1,8 +1,6 @@ { - "last-edit": "4eaf518b-35ec-4262-928d-4d497c3f2830", + "last-edit": "66281f32-0047-4af8-8237-90c93fc4b0e8", "recent-items": [ - "badb56f7-1c07-4fbb-87e6-5bfd805fe81b", - "a264c8df-80f6-474f-9fe5-28b7ae529d95", "47657f05-243e-4f2a-a32d-200631f1c252", "7a90e76c-37f8-4f8c-84e9-f05b34afe481", "9e91c351-bd17-446b-b773-3b715fe6ba48", @@ -48,20 +46,11 @@ "8ee785c4-83f8-41d0-89ab-846c2cb4decc", "29d83020-5c48-42f4-899e-f8e1de2963f3", "f5037fa2-99f5-4e8e-9baf-3874ab215f45", - "19659ed7-1823-42a9-b8e8-1884c19df817", "2435886f-bb3e-499b-b10c-501be670130a", "9a3fd471-26c7-4910-8e23-84a783b3358f", "59cd32c1-278f-4aba-a2b6-0e0c4f73e063", - "1c619601-a6ae-4c45-be2c-20b0d95e950f", - "e98498e1-12bf-4280-8def-6f8e543fb934", - "5ed13d95-5b93-4407-b770-0dedeb674b0f", - "a496b103-90e1-421c-94c5-500167b26227", - "725f6dd5-18b0-44f9-997a-d89b23ac1fc0", - "2ad95b5e-51fe-4864-ad40-6743b8fac9d5", - "b5a00886-b32d-4185-a4a6-fd9f7a8dbe90", "ec5b9995-a54c-47bd-adb5-27ec0160146e", "e1e1fde9-4548-4234-97c0-b571d29d6964", - "90a9eb51-3d7f-4094-add0-ad20f9379337", "6c53e21f-0dfa-4273-b08a-951f6792467b", "92f23179-46e7-4f6c-8d1f-3b68910937db", "b38991fe-2e45-431c-8f23-974e7905dfaa", @@ -82,24 +71,35 @@ "bc027956-4f24-4f96-b705-359a19cccb53", "59a8c009-6f37-4960-b842-18f457d55412", "eec86efa-7642-410f-934a-7af388c0311a", - "6023e99b-9806-44e9-8325-487a6cfdf3e5", - "75a77063-a5a9-456a-8b4f-bfde10c137e8", - "a99d5bb3-6216-4c6e-bfb6-f793289870df", - "25bab75a-d0a5-42a2-b0d4-f1aca4ac8d80", - "0cf46635-8a58-4196-b24e-d075875778d0", - "92dfa35c-14f5-48b7-8f57-583c7a23d434", "503530e7-cfb4-4bcb-ac38-d4dd3ce3d1af", - "b6ab43fe-8e9a-48ac-9dc9-9107a47de661", - "f0da65e3-27d4-43c7-9945-ace5c5d815e5", - "8600d9b3-b4ad-4c84-b458-42b4f31addcd", + "25bab75a-d0a5-42a2-b0d4-f1aca4ac8d80", + "92dfa35c-14f5-48b7-8f57-583c7a23d434", + "90a9eb51-3d7f-4094-add0-ad20f9379337", + "19659ed7-1823-42a9-b8e8-1884c19df817", + "6023e99b-9806-44e9-8325-487a6cfdf3e5", + "e98498e1-12bf-4280-8def-6f8e543fb934", + "a81d74d9-943b-4d0e-aad5-2999276d3447", + "9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d", + "b01ef5c5-2755-455d-acb4-ba3818f5e331", + "2ad95b5e-51fe-4864-ad40-6743b8fac9d5", + "725f6dd5-18b0-44f9-997a-d89b23ac1fc0", + "a496b103-90e1-421c-94c5-500167b26227", + "a99d5bb3-6216-4c6e-bfb6-f793289870df", + "5ed13d95-5b93-4407-b770-0dedeb674b0f", + "0cf46635-8a58-4196-b24e-d075875778d0", + "bf502854-8e31-40c1-9d27-ac480682b4c4", + "b5a00886-b32d-4185-a4a6-fd9f7a8dbe90", + "1c619601-a6ae-4c45-be2c-20b0d95e950f", + "75a77063-a5a9-456a-8b4f-bfde10c137e8", "a710c09b-ab49-4276-9660-b882fcff8b24", "a63ade2f-c476-4f26-84e6-b978db27c435", + "b6ab43fe-8e9a-48ac-9dc9-9107a47de661", + "8600d9b3-b4ad-4c84-b458-42b4f31addcd", + "f0da65e3-27d4-43c7-9945-ace5c5d815e5", "1024689e-c2b8-4ef4-91de-02732703334f", "fc41ae6e-8743-4057-86fa-bff2f8ff171b", "cef92b6b-13fd-44c8-a4af-848b55a7ba57", - "bf502854-8e31-40c1-9d27-ac480682b4c4", - "9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d", - "66281f32-0047-4af8-8237-90c93fc4b0e8", - "4eaf518b-35ec-4262-928d-4d497c3f2830" + "4eaf518b-35ec-4262-928d-4d497c3f2830", + "66281f32-0047-4af8-8237-90c93fc4b0e8" ] } diff --git a/local/node-tree-state.json b/local/node-tree-state.json index d398205..e547fa6 100644 --- a/local/node-tree-state.json +++ b/local/node-tree-state.json @@ -1,446 +1,5 @@ { "nodeFoldStates": [ - "47lrY92iRGip1jLAj3HJMJ", - "d1P2P9ZpxIb7LGkUbDusBf", - "c4jTeZS3xNo5yzq75a9iuH", - "83Z2UibrBLEJ4MPbwZRG5R", - "bduGrKwyNCio+x5K6dFs9v", - "13bcnAr9pGkZTePmaMSsVe", - "a8YKids/pBo7a6DhcKC/x6", - "2dETzylNRCQqKpL2ZTQgkQ", - "73C9Kx3DVLIauCEDxAkpJQ", - "97sKS5ee1EMIiiO2r4hqKk", - "d9M2KCmcdGbJN9OkXY9vWH", - "8b7j5v2t9Mvqj+quZ+lsEf", - "8ctWtsTtlHGbnvVpSzZomt", - "2fKJx1aQBBi4ORJdbjzeLl", - "b6UFO3Jr9NlIdwDS8B/h2H", - "91ysp8zHlDGaVf4Sj2DLkj", - "22Ntp+x31JVYx8NXr2hd7a", - "4ageW6mt5DCoall3D43DGb", - "98LmihmtNMspeChAahwVGH", - "69b94rRhxMKLFvNQUJQioS", - "84oGLDFOxCKoYLqlSdhDnN", - "142gkmsDhC55cLQTra/tql", - "b2Apl6fq5ECprQK79hReWY", - "070osvNaBKkYTMd3oePPnZ", - "25F70aGLtDkoh9PCVQDjbf", - "d8I6uforVAxKtRFGWR0VN1", - "d5223BVQtNVZqGZK8LH+RP", - "8ftoIQupFPvbdyI30WTWu+", - "8d2CPUrWZG9riW8RKy1kPG", - "42vBVEncNHob+lzhZN2h12", - "57U1lGn7FGKoyq+G7x2GR+", - "14pOInL1tDGrmGJMiVb75s", - "dc0dx4w8tKpJ38i0Vrfnkd", - "35d/+GtYVNYrapY0UV8HWm", - "26sqM0yt5Jq59B42mpqTow", - "b1OQU+IaFP+KUi5zSgeN2J", - "176T0mvwVI0oIohksK8VQ4", - "a7U02I4SdI/44Ea9axEc1O", - "b8BIsBxkZOarWWxZ0aa5tD", - "51rBFzrR1Cd4PK5gRmTg3l", - "25QUVZ+FJKMZBwwBRNJVWG", - "05Xhl4XeFHGLad2i00tXF+", - "657sQmSTNPoIEpLHjBEgJr", - "d49qUG/RVHG6Y03LNzsNqx", - "afc9//40BDtovWmW0+o6YD", - "fcJJ/zX5BBDJKx3pw8b+h0", - "36y428bz1PkqFETFmHr++a", - "5eClwAlVdJvoYVmu9F9yC/", - "b9a6vDg59N/K7O8NwW9JyS", - "46nmdHkLZCVJYY76R7Hu/K", - "20ZQrEUtFG1q1JYM7uvSab", - "34+K2c3hxIv4LudzpWJvck", - "5dTDGrUT9GNZgZMK+cpqup", - "1f+2y/Qi1Ev5BWlnl5Pu5N", - "e4lqwiNZhC6rvsMxj+DejU", - "f3Zkjoy8VBZacKF0t/H6v0", - "82SkEwGvBAr7SnARdiQu+r", - "be++5Zar5BYb6spnYh8eQe", - "deF+w7F+dOCqsUCBJqXit9", - "7c2RGR/idIP6Wj6IJFl/5J", - "9eHuFPW01Ia69TlTRr+Zb8", - "c2XxSShVlEUbfanY0Mj935", - "386XXm/ZNOhJifw94bx6wO", - "39TsGpOghGfpVOh07aBe4k", - "848By9tFJEu4nHhcMOZiqn", - "b7KnNRoIlIf5H2EJ7ERzi7", - "6bW3sz8dRD96OBixVQYaGA", - "adJ2ifk95AgrTFqhneoaFU", - "87h9dIh7VNr5If4rHVQcjE", - "a8gANv7ntBGp+HWPZtNqlm", - "a6rWw99aNPC5Hsb8gHsKAM", - "85T9FzNCdAcqsvAPLkqntZ", - "9aox+zMhBJ4ZRAo1/1N811", - "66MBA+TW9IGJRoC3TK8l8t", - "c4XFaGqrpB+b5M1jw8Oh8x", - "efBYhe3q1A8oCWBa90X4lt", - "f1gGuLR3NDV6BhJhtbvJaU", - "9dTNkOGABCtbqQYZWgwIk2", - "baxBqiGxFLR7GfVIgcLsZ6", - "36q8qXB7pO+LD8jzPc1tVB", - "e3WCpXxWhGW7eVW55RXlcD", - "29VNkHTapHsIZgt+CWou6j", - "a6LB3YgY5MAqIDUJ7iYjzt", - "e2iITY4PJMRYtGWEF1naMU", - "ffygMh7ZNOKaXM2tAmsAkb", - "0c/lRG6yNFs4bpB4hSZKbL", - "e7CHRxziFIbrPONNezXTFZ", - "b1QLmr4etNc7wYO/GZtfB7", - "d84SixDhlJQ6H9RifaBKP4", - "cd2t92j65NXoED2KfNQapf", - "7aQWv8CNlGIaLtQRyg1yF9", - "b6VSIei0FGqbHW0lBodN9N", - "66Rp7KRtVKaL5kfyBTWpeu", - "eaQrk9yMxED5lkExXZO0R1", - "c3nipMhuRO8pDkJ+gSghLb", - "6euovT6vpH3IdUmx4Sb4t9", - "860bFd63RGyK0mgicNVZ/V", - "cf7RKFcOlAqpKPtSICzE6+", - "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", - "94qHBBnDFHMYp+pW4NOmpa", - "afmiJbtnlLzJIOA09LiJZT", - "168oWYBU9L25c2/xGgtETD", - "adcj/n3nJFMILqVpocigzL", - "deklSuDzxEPLvK7jbYCgFd", - "59J7nMtYVPMoXYlUR2JOxG", - "280JExWxNHg4+upDvyxzY8", - "72i6OFaOlNm6efocehPRqb", - "79klPl0Q1JU45wqvYcaOnA", - "8dILhgsn1BbqfjJ3lqgM59", - "25z9ttBdlDnoXqdnNmjcw8", - "cdtqvpaW5Ej5lYK4O0xojt", - "fbHsGvc0FCvbbTvl03vjol", - "dfor2mzxRNypRP8EJo6DYH", - "51XrAhnEpEl5GfwyTId5fC", - "4dIBi9E79K7KHrQb2uD0Z+", - "743u+zaItM3Z+muLmfiAjZ", - "01rJspUU1BZpy+oox+GP42", - "53lgXL+91NWIcfNn6re51s", - "97w/vaN7VMvpjFW4U+ykv7", - "3ahQBP5F9Fpp4t+Ft4wDnl", - "2bxgZHEZ9CHZxBuEeVcaom", - "32seCJOvlLWbi9L0oKNiVS", - "58xyYv0M5N+oBi6LkD4jnU", - "378WwFUJdPs588xioxcaSI", - "69mHOkNKBGebWXQxrkBFEh", - "693yWA+NZJBLmma3WP33/9", - "fcZaVLir9OTY8Ur2M2086/", - "cd74LvMylJjZEg88+aKbcz", - "a3z7XCFZdBjaDpcdn53cj+", - "3aK8aOq7BIOL/sKXA4+t8p", - "5bdyr0eK1NZ79KLcbGtJoB", - "a9YgkzQH9FSJ8e3LQw7nJT", - "780X9FL4lEyIaQS44947om", - "95MCLgzoJOR6L8CuYPGpmd", - "92joD2qtBIfrHkDUjHTB32", - "79Yr3PSrRA4LQl/HqMJTnG", - "9bLt9mQ65ITYf0OSXSXL/J", - "b94h5zpH5JMqCYuaLkTsub", - "1e7wMBdlFI67+PYwgM+SaY", - "30gXB2GcxAhLj8fFIDVDvu", - "b22Jrm1kpLIJcvPysjbCxv", - "7cms2TXWZJQ7uHvrhl2nVR", - "e7VeEPd49LFpWTDVoYdVTc", - "ae57rIqSFFhLPzjtXo9HeN", - "e9VPTWEDZPMKHpUjz4nWFD", - "afiVIJYxJHTb822zoH4hX2", - "72Mm6X6aBL3ao2SAe0RlRr", - "a8dXBswhNGCZ27uAr35Qv0", - "85QinLMwdBS7nMz0oCRyDe", - "c6xqjx0/hOqK2DDw7IcpO3", - "9bLQGdvyJFAYJ8m2/w29gv", - "a5sm9n+Z9CvaLpM0gekTvz", - "4eDx/9mOpKmo8Ptr7/yUDg", - "86vNUgzl5Ha5GhF7nNQDBy", - "fa6Ze/+pxBGY/JgYy1IOVB", - "75TeavcixBtr2rKUI9Rsj9", - "2b9NpvdaFFQquKUFiN7U8+", - "d6T6uNdmVOFbdz88Nu5vVz", - "bceq4cMQhKpqkYRgc47TfU", - "087Rdl1VNI/p7vz2d4mm8P", - "08BW+mpSFAx4VhXcYTd2R4", - "bbgWFlTo5N1L6d8R0MCkE4", - "c6mUuKEAFOMrr8fdkhhuf8", - "1a09i+wvlNE4fi0k+dk58Q", - "a5R7mkYPVFir6aXnOyeYmJ", - "34B1olNGdITI21jZo6g9qy", - "7ay0I6HidMG7td6buOtzwe", - "8e/TnKdllPSL8++Jk2oQDe", - "d0tbTU9KlDTLA+Ava31rh4", - "48UQoGSXZBnoSw9mIZbSVw", - "7aKh7xPtlBM69haCC682Sm", - "dbFtTtNg5BM4oxxoDpmvxe", - "81IqHUsK1D053VFTp/W8Ei", - "64qHBiS91AZ4YNkhDc2pkQ", - "6b/Alezx9L64CbKgo+oyUW", - "5aNaH+dN1Hr4J+AHkFDiBF", - "e7YQu79GtEMqTOr9blzInP", - "a8u8yiXOlHoIb9eyzOI+JS", - "e143JT6MxPhJbH4wEeMNQd", - "61vLYgJpNLEqBRBpmt1COo", - "4cJ9sFndRGhqDSutw3OYA6", - "7bK5n2weVNJqWZnjeP8Pw9", - "faL5Vd7pRGp6YfFneSgz+F", - "a7+MeNnU1PPqlpugl1VaVw", - "29Q4xBBV1H9q30C1YlHo18", - "19aiwEzYJAb45SCiDGst1J", - "0aZuRvXPdLRYQ7NeZO0FbC", - "72nrk+vjVHNLpY2/mpUkfC", - "beZKY3vQ5LV4ZL9naqjS/6", - "64N3btYZpIUo0dEsBgokmw", - "a1DbBn7J5NJYCT5TPcSdfd", - "a0c1Eu7ylOKooBUff4kI6Y", - "3fmW9mtiVKCr4pABzMTA3w", - "dfux5vGKBIKqSY30Y4zy6s", - "29jQt0cuVJp4Di5fEP17H5", - "d7O5aF6Y5L5ZmUCAh2kfMK", - "d2sVTIUJdEXLBBpD8Ki073", - "a39bPiIPZC96bzrpiaFOrT", - "1f5cIu88ZPH5OsMywN1SsE", - "43TnUo9ztCPKArTrXrrqy4", - "21MHLEyUBI2Ko5EHi7EZVa", - "c4pdW54u1N87ZeQkVUZjWg", - "933AG71Q5OwLhQebnb2i0J", - "eeJvWMQhZFMLr0bqby1xp4", - "93FqWEAOJE2InETs2tfhL2", - "fe8ZE5qoZMOLPLlWinmCUR", - "67BO3jpXRDv4IOJ8hhKbvY", - "a4orJ67q5PlaZr0SJnZCq5", - "fdi/iHnAtC0r75wAnlbeZH", - "833eY/qXRBwqfeiToiVh5b", - "c1SGePAtlDypxUdnp3GJk2", - "596Hu+Mz1O/KOzK82laAhP", - "4acJYktfdLJYI1ppu+dFNE", - "0fSKaNrepGVY/IssjLQVqA", - "9ct+ooeeJMI5n8grxBPeBm", - "785MqrED5Lvq3MHrNIApjZ", - "05YlsLwkxCDogBfbGgKxoQ", - "29qKoobmJOKoLdXHuCc/F2", - "99GWDBgP5OELIxOZa/nGcX", - "857IgXprVMRLCab0sAVM1B", - "aaVMmdsMdJWZnEz5lP7DdG", - "faVgzDyotI17CFuVAOWpS/", - "51tFUoaiVJBrp68BXSNVFk", - "5disS1RFhD27L1ld13I3+7", - "86+cRX3S1LLajyNkk1T0+p", - "a4k1+VM8dB/J2plM7cchMl", - "9bI1vWtddAfr7s1Necw9dc", - "1b1phdF+NBtJYoPkWEh3Cx", - "58DrYIsfZDwZNCyJDN5tBj", - "aecbiSSk1EbYux1jW3/8w3", - "64WSbypsZGOJFz1lG5L8yf", - "f9FK38zRBNtKR4Dx11Y/kQ", - "8daBMRG6pIu4rtznmd5JbJ", - "167CiTVE5GVY76kRDFmPTy", - "40LmIXyWFPf5qZ7iSaQ0Tx", - "e8YWmkByZNoasv7LQpNdmn", - "428TthBeFFEYPXO48t1XiO", - "59F9PF6WpLIZPwoqcCq8I3", - "dfZDf7s+5HVojGb8mkhm06", - "3dS8/amWdCNa7QAhtBqU5d", - "1flckdzlRH7rIFMfDX4iNs", - "abkvsRHFhORqhFv2/QR/T5", - "e0ORD8/sdBwqG9gAeJuDpG", - "f9X0c91i1FXoxeusTx3oRn", - "fe+yNDfyROvqZKsYRPBtiH", - "6ckY+nboJG07Mss/7SorQF", - "98cKRFVitDWquvIfIcEwZ4", - "45h3OpIPZK5IuBG45EbmaJ", - "b9OYSBu8BMib3r0AlIu62u", - "e8IfXBVkJK26xbtCyW2VTo", - "8764RzOpNFopO0QTXbG3Fd", - "eaJVIwoEZEQaUiWt8YBULd", - "487Iu7l1BNaaEOnti+lsxy", - "7dB53BtcFMH4leMJuPjIou", - "7enTlO3ApLXo7GrYleLgXZ", - "9eKbEs2JRM8aP/oo7BxUg+", - "58c5ycgo1LeZhKcqDbj2FA", - "a5gN8NIgpLt5CaocooP8Td", - "f5kPwEYQZKh75/J8SOCntI", - "83uVw2vbROc4TmYORwbhSN", - "16ATqZnRNL/pCSqDpf44nC", - "cfB6CPR09JWLayP2psn8Tz", - "3cv9tqZ19N5o+Fxx1UeOpZ", - "b9520Ty/NAf7TkVsITA4c4", - "2dpkdeHmZPP6QzIaU1GPVM", - "adnN8R+i9NB67vLogq43G9", - "26dFaS6MRAVJ0OR2EbPWym", - "f7tRmEIeRP3JgKmhs4LhQ8", - "7fAkcMNI5L+5cAZ3QnPSnK", - "37LafFDfdAeaU2j/3aBYZX", - "0bS47D8VpELLj2JY/l7Ody", - "23Mby+tolPL4QQq84I/lkJ", - "b16QbUGudKqa+soG7TbwD0", - "78KaeoFFdN/rXsEAs1Lz6t", - "e2dhZtaBRAgaPSLmLhpDmv", - "60ohztsKZAyKQd/c6dihG9", - "48SuIXIbhGJKAjz08bBCFt", - "2arcd3a5ZNHZ2ruuGi9Yx1", - "76Wbk9IeRB5b52GhEBOcos", - "cezIxmNxRO6JVpiC2ekT1U", - "22F0XLwFlA4JWo/+rK/2Ak", - "a43Sm9ElpAKLoLaNRkLTKT", - "52m0+B99tBDI20UvzW7VQW", - "6dkjCDyy1GmYo+C/bfAkuG", - "07rGkrMItJdYm/4n6fajTj", - "1ban2/GwVEB4jihybbCmH8", - "dbW0X0+7pJgbkyZDs+7fI/", - "1eIbvJOkhDK6lcCkLK5oHg", - "7boAIpytNE4ooFmTjvxc8M", - "4cMUwbADBMzaVLbhnekvHc", - "f2QsYmYZJE6J1jJXpBqwhq", - "19CyeznGFMj6EWRTmvczp1", - "c9xsa+IohG05IR93MFsh8W", - "8bGH4AS8pOno3jKtKwZrKl", - "56GiNWXM9N5aLSZR50PICk", - "72aqqiLwRHI4Uaq9YpXWAD", - "561jtMzsZEr62dTckCeceQ", - "bef65nR9ZBI66AL8MHfFDH", - "32obSeZX5Aoqaq22Fl7QI0", - "2agRe6+V5JA5/dfB6Y09dJ", - "92CnjXosZGioey+twaqnyR", - "3fcF0SS6tINbYzjR+Nn2Dj", - "fbIOPMMa1Bfrg3b+kmAl3G", - "b5RPgfCRRKwaNon+VgoiBc", - "24h0JcDd5EzLVfgQNQCsSB", - "9fILNQiCFJaYZ5zTR0crlT", - "02VyVvumBGMKY57IzaomAo", - "3dOeZdjq5AcJ2kq/GisnnS", - "d6DtFmUwlMhKlP8PGed9nI", - "21zN0Kt8lKMIUaZ2GQ2RSF", - "32ejbxNhFOaqRP9aa5PbG8", - "bbqli31MZIp7/+29SZo7Ij", - "d0tw7nxfFHkpa8GES8uo9O", - "45NVjwO61KIqJnYK8F/3S3", "37HXz6Ex5L87Rtb/0KvWlY", "554jhi1U1C7b+xpkH9T4po", "2ewVkYkn9A8bzo2ZCXhrsq", @@ -454,19 +13,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", @@ -488,17 +35,454 @@ "ac5KpKiZ9FOZM7xeVnT0gM", "3fmK7vjpRGrZbzW1qimReD", "dddVUK6TBKo6QFOrmmDU7m", - "1eERHUg2hDxZesih/09x+A", - "75/8o7Uo5GK5UOksSb0Vaf", - "faTUOwCO9I+5u+/Z51XIk/", "8cioaWxzdBwaC5lZHRaEyQ", - "b2/1NmDPVCXovcyHPoKEHX", - "cbuzoJCRZOuo5AU8opcyOt", - "2a7fKXbxNM+7oVc5ylGZS3", "bbsXTvcuBLUr67DsG2oE8g", "39zlXmZYZOXKpd5NRIFb8h", "349IYUpJ9GgqafnciDCl3J", + "53+9Bo4+pHvb4nnQ5uISDT", + "01TURmMI1JzaK0C/mxNNK1", + "cfwDZMVTRA9rByB3Q33b6/", + "abIjiE8WJGnYsqW6MBvVvK", + "63wJUV++BM5aYO8jbi3g5s", + "3a4XRZitZGp6oGx/HxpOep", + "63TvetoX1DGLo7v7mCPTcR", + "7aI1kRnMlO2L6SyFOAeNqB", + "cdTuY63pVCQZUoAwkXr7yY", + "39BBg+6S9CsZV62K3azhzx", + "e8fPs/U2pPFLcjDAGVvF2P", + "e0llqvSDBJz4+r0yAVo1d5", + "64khbP/qxDooMtxbTMnAt5", + "7enhUdF45MyqpI9fR1TsmR", + "29OYK6wfdNMqik6fsgL59I", + "57yNzHRHhPfq4DrH/zHDmI", + "c7KgEVudFBFb8M70n3w6MN", + "a5HoJq/B5KQZ42QFNePWQU", + "12l+PkbrlDqp3PVOwJnEXC", + "4dlDYqOxtGB6ZqdsJsLGPK", + "b9pRPxsPxDdKF+yHTOeWNn", + "2eJl28NW1EKYN/U2LpLc/y", + "033Ir6avtDQ5Ma9XtTRaTN", + "19vhlwjHRBM6+l0pTCfUEk", + "d2ieJ0E/JL25Mp8n3ciufe", + "fd+IY4d7FGxI8bkdn0Uc2f", + "a6lTkgwCFNoacomXx3nS7h", + "81N6GDADpKabHHTxRhd31p", + "90SNqBh5RKcrbrgXVvXKRO", + "a3C3ez6X9BIKmvs26iydXX", + "768yk/OidPmpj5bV9NOtgR", + "c26CFCPj1BjoeR1Iw5JUjV", + "e3ijIpcBBEpb14h1VoA13m", + "a2ihBeQA9L5btrl5qQXyyB", + "a5mzuVGg9Azbo0iTbtKt/u", + "68qkPD3W9CV5FfsXqM8amb", + "11W3FBcPNPLJa20TCk0gJN", + "14EdwKldBHLYePXC7Ia/Gx", + "9d0mhbZqtAoa3Ju7h9IhuO", + "2dRdqXawlKDYKGZd9CC0X2", + "f1dQ7dukROna8Fon2m0nja", + "29r6GiFA5MVrKkYATjKfst", + "a6nlXFSqRGfaRBzmf+2lL2", + "855GACMqdHQbQihZpmF829", + "63WhTquflKfZjTlGOhtWFd", + "d8kkGhpsNFPYYfJt809vhY", + "38YttGXnlCuoRMpfwLQHzD", + "deuiS/TTdAapsNc1IvBK22", + "7aEogOJDtPR699wAh0vZvN", + "f1QCQX5yBD5au3Abs6PQax", + "37MqiBHplKXK/eB84r/GQA", + "bbQSKi9iFI/bmBpY/MvPSy", + "c3VLiZmHxHuojeVr3bcC27", + "7c2f00g9hK5a9Y0xdN/UUJ", + "99GU9T155AWbkUgaGaLmCP", + "b53zz0y0FKEav8EXN5Moaw", + "d6aLrDGiRPEKhzYT0kxYFE", + "602Hs0X/9K34mGukYaBLvg", + "37eq5LBAZKjr9TPVGoqiXO", + "00KHPJoehJ3YjJewJUhNIH", + "98JMvkkr5NFZSr1AC8dYk6", + "29+up7oz1KOJdF1NDrQKbQ", + "ecD6UM8bBBH6E+fSlvo+jZ", + "d7L/j+qrNJm4i9ya/nezGZ", + "18A+/FiWxBf7wBIycfy2W6", + "31f9UeJfxNur9i3jObe7Nj", + "7f86O+EhJOAILEuR8SMgPZ", + "056u7zB7BKDJZ388YYOMPQ", + "e4tysHynVBIbMmn7pS2jkG", + "feeZsYndJBXaq6oCOejf4h", + "c1fRbqgnFLFYhbqkVhqYFj", + "dauM1qek1GrJ/dx6XP+WnS", + "1akrcNr3dDmLoKIkoL10Sh", + "de+eU3PshOY7sqzyB9bw6v", + "c1EeN28E1J5oH72cHgXmz3", + "61fziBLPNNNZV+C8t7Z7KX", + "04vdkrriJD276xJ4JYBBfg", + "70NnybEZRBHYKac/WGTLRa", + "b4CptA6YxCXL8QZSny0CYe", + "ef3WKyecVADKGZJMoErOy/", + "ecuqOHnx5Np5TKkHitYoEP", + "90hNDkOJBL4q/8BkxJ9BEv", + "e102CthglJDLzDXWDvJhXO", + "84a+/JsSRPf5VjQHADLbi5", + "f637CRJcRCOaCr7WN5EFaH", + "b43iJ+LzRFeJHNGyuFFh7v", + "9cyDdhF3RGbJLPSaCSbDus", + "caniOumohLNqxLGYkcPlOI", + "5fcF05qUVAPY/Ax06+JL3G", + "08G5fTXtZP4J6IbqIM3Mf8", + "ddCb82Eq1K67wOCecUkhae", + "32e3AZLLdMq4+KlRvjEVkp", + "caePjyWvlM36sqvVbTj2Xi", + "95uF2748hKO5cdNA0sEDw4", + "c2KyqNTLdPwKVTmkfIxCzp", + "20upEUBspD46w40cvEySPN", + "7cyAGFkG1OFqS9QpbK3ac1", + "52EAT59GJAb42Wtv8f1Q3O", + "08CNWu0ihEAqxPhgmM3FlB", + "5a2P8r9hpNPpLyZWUa9Y2v", + "d9c0+4Z61Di58PznH/lg0P", + "c3/GyR8w9ATbCA26pS+Gt6", + "32uxEeslVJ4rOOQRVXTgYd", + "8a6uffvmpNLZpYCneoKhZo", + "3cVfvNE4RC55jIrkMt4sc1", + "4d50EgBTNHkqS8Csi+Az1u", + "faAQa+y1ZFUpDM3Uwaew19", + "d0/km/3GJOXI53FxKXMbz4", + "6438k/PItLhLj6+nIDsiZN", + "5aqjjItFlIUYVqMHy2y/K1", + "08iRnQGktCkbJWMdxdM/gC", + "a1a1i3caVCDLfkhGmI5lUB", + "19CaBwn2pEU6Bm3FEP9KVN", + "1acSEDdDlNx41gP8V/c34j", + "eaT7KFI8NGgK9hECZfr6me", + "8dL5xKlQhG4pP4GyYgpZPE", + "a7wXRxpClDEbmk+rvt9uSc", + "1fvxF5HV5Kc5yLKhcLJazx", + "e5ovyMXpVFE7UgwtjaLY8D", + "45qPlMJf9FxqlLZVrJThxi", + "9a2qdRPCxBWLolu4QKv7a/", + "0bnMLYNYlFPJIPJ6URAGjM", + "e6g2Y+qNlNV6rfEtA4XqAL", + "14Vm+ri+JEOpxjr21zKrmG", + "7fnirLiIVF5rfUVY+NUao0", + "9adUWmbT1ODbwnBle/iJu9", + "90pR1RRwdEfIIddFE1sDvE", + "51Qo7ypyBP3Yh/QF5eBvpu", + "13UqxjknJGpJ6o7JNgrgzE", + "01rokaM6lBj5vEMr8SAO3M", + "50mgGCr2NMDoQCCKuWg/W5", + "afvVUWduxBmYa9YAawFVkv", + "c40/PIfmVH054PMj3A0fnD", + "88aBPKtipIf7BhdR4Rue+I", + "9ffI8As0JDfpKXIsPbtJPr", + "58htUBKPZMt6MynoZYS/4W", + "acwZ08ATNIWJhyY8rtHvZv", + "achHqEi2pBwqoBL7AREONK", + "e2xwcmjXxNAIOdt4JP00o6", + "0bkpDfUZtIxrE68enOTwV2", + "065r5ZRfxE77zDWB3T18I/", + "6800PNI+9Ej5RnPUveGv4g", + "03dtT02OREnqFe873M3SZg", + "b7tCLhvo9IO4AGgGAORdil", + "9bovlAZXhH4YZw+2/VsyyL", + "ad5wvjn6lIkLmuUTzeI80j", + "f6RpguDqNE8rYz1FAJZk3A", + "f1WWG6F5tOoaVgNCyeK99Q", + "deKdXa4ZZJXLCq7OitOFvU", + "91ppc9KxBJsp0QYNk4O1RT", + "caVBinP9RJPpSUUp5vwpZo", + "a75P9+9V5K7JWsKBOQh8Ry", + "eel61R48hNeJi0SPCeG+he", + "b1KGist7ZNubSpFYO5MD3S", + "7aHGf2oZVEJarSkJt4mwFS", + "7cmIp2i39HjaxlJxOglA9v", + "b1PeAyCkhGd6JoOB6W1UZn", + "dcn8H2PjpAtaXr0FCokI7s", + "bd5kvAzXBKxKFRv3Mm9bLF", + "58jDzGX85CVJmRXrl1k+cv", + "70OyTDnPhL9pLyyEUuLCwJ", + "db4wQVG/NICYGfzMuKVonB", + "d8BL+dmRNJ+ZoB/rDL5a9d", + "1b8/V7DFJFa4gRp+tLkwo9", + "b6DgBAHEdI/LFmFHxVxFU+", + "8cba6CiNZBOYJNzQ5iBA7N", + "a4423XXQdP9JejDnitZ7O1", + "f7QSxhAStH84NuNBQ3LFmY", + "a0epO+Ji9MyKerWylYBxc9", + "5b7iyGowNLtYqvV+g6uzZY", + "47MCk7WrFJKa3GrMdsobnR", + "66kxHPHj9GUJ8+zsh+qBp4", + "b29VDX9zJF+5D0/7njLm0M", + "adyuVylOFFCpaJQExdHIvI", + "f3YrL/fyRPjqyiCMgWGmWJ", + "f9cr3EW4REYp7P+9PnyIW7", + "baZ4GvhQZCuI/uHrQCX/OA", + "36MeIWHWtFVKuLx82OqP64", + "8fgylxxONGbqG1NRMWc05e", + "7974Tgw2lB6KlX1vt8p5AA", + "12XZGSCOtOIZUow3qZiflX", + "baZxbx0n5AHLR3MhnpxIDj", + "86+0c7slBKRpVSlwo7X2JX", + "88kfElCixIXL1cv6gGFWeb", + "4acsgwji9HrZyNWt8ytpmg", + "1cTarwVkxA2rMFL1h7Y8bZ", + "c20R7/GrJP3oOtw95sIr+5", + "b3vriXu+ZEiI4REJv30tyB", + "6bklhXqjRI+Z2UxwCGz7fP", + "946ToFzkJEKp8Voi3M6Te/", + "2dewxMvSFPwbv5wItdmQEd", + "a4GjEapg9A16ZyRBsWWnCa", + "dfsRbNr/FMybE+d1KajrT2", + "6atkbwqPBGqoWGwuXD2LFn", + "333mzQabdJ4rQjCmcmFsXZ", + "7cla6T78VCOqYBC5K21CYR", + "36qTAdtolAk70J4XdtoWTr", + "d1tBFBmdFBjYq3JSwOWZq0", + "87Wjhs8yNOurPgfA/pFGXJ", + "b6Ndgcjc5A44HmSslhFNe5", + "f537J7vjlNL46XeGXbCoAT", + "68IZg/GbdC5LogtMfOXdXN", + "1etnknvBhBY7m4lAa403DZ", + "6anhTm/6tOsrejQuO1TgXc", + "435gbTUfxBApmQ3l2kalve", + "98Kke/dIBC8p2elnXAgn1t", + "9bc54O+odNpa+XyPCkbaTq", + "9f78Dw+dhGxIw8IyAjIYNy", + "5bwDrB0V5EQ4wJ33ZkV9xm", + "5aYCUL1MNDhJtBMYLihDzJ", + "e6us4NgLdP4Jiyk68pcHP1", + "2fkAG9iZxGpo+B1tpZBdqO", + "60m1uBEXdOSpiKWAIqEetK", + "51sIEAfPpJGrTz41mp0cg0", + "90Db2M8DVJFa4MtkD9uQgG", + "edyEUuOJ9EKJdrjwgFYJyV", + "275MRBntRE85lK3EUq718s", + "b3loBRbZxEA7dZ3m+NCpnX", + "1aI+elTmJIiZrfGdWq/SpQ", + "96RGjTuYNOp4SKb/ope0B1", + "f4OD2Px5lI3ZMXBDUjTeqX", + "96Cjc1pzxELqmCeTSfsfKd", + "4cxZxZ4vxDtLmkycG4+7yE", + "bbLQd6xE1LPJQuFPQ7ISjw", + "ackio8sQ5PC459e9dkZNGe", + "c4wxXxBRVHxr+j1uXCRbUm", + "74RDII609EipDFXECxW1cC", + "3cIkC7PPVC3JElGsOKlTQB", + "0deJbCn39OO72pTFLBNjbV", + "b3fb/y4v5P/K7buXl4h/im", + "9e/2EkHuBLHYJdovtx99Vz", + "ccR66TgmFGhLSzfiGw/ddY", + "2anJjKsP9EKbloFEb7gPFl", + "e1XkN+H4JPQJKdD8e3PYs9", + "74ifLN5GpFTph+9Fz/tIDC", + "b3cCOZh8RJ/JuFe96Nt5zr", + "0bJ2pdJw1I6J1dtG1QR6DV", + "c8B1Dy/IpIKovEMJOxje5X", + "39VLCWuzRAOa8ygLKjqbRo", + "62m0l2EHVEuLlWyHouRyzH", + "f2gwRIMw5O0YrZ63zplK0u", + "2f+B9609VDML1BDNvvUEON", + "2ahk3QuM5JuKON8NxBhw0G", + "94T+smFQhBr47hIKoec9SC", + "99POCdRrpD+bOzyDlT+qEw", + "bfF6oqslBE848qilknxMbg", + "8dXYzDgnFKHoqsKWed9/+W", + "38eoOOIwVDEpwxW7JpnKwH", + "edGku/mxZPxJszZ+KWAxf0", + "b0VHqWWqlJ4qVyuwnLGCWw", + "07afITpORHfqPONAypAM0J", + "d0UzByGLlHhZBro9lAsDtj", + "2815t66ENIBbMKekyuNztH", + "20S5a4AntF7bQMioy3DQ5W", + "af5gW0TTdD4Itn7//ex/Py", + "e6aPbMYBRJFrmKxQqHlWGo", + "29yzpDdCVO0bwXn3gxV4r8", + "06QwEECpxEUq4YhPB+9y0p", + "05nqhrJzpEt7DuCenZsPoI", + "82Jt4S2qdHYZMMldq9zZbZ", + "1334deGtNHoJv2OUhIFG1z", + "21CBGRIrFDVZL6iWk1q1xp", + "4d20lTFktAWbFIVakFkTqr", + "8bS/yFRV5OaZOyOudFSRLm", + "383wJWC0dJuop5Q5/zNTG3", + "cezIxmNxRO6JVpiC2ekT1U", + "9b5vl6YSJCV4KJSug+nQjT", + "92TMdAzkxLV7OMfVwPKRcc", + "92YD+h90NJhp8U6bJYnT/u", + "2a7fKXbxNM+7oVc5ylGZS3", + "dfWlPEN7RFR6XchLehCcdE", + "44blZFeNdFYaDafI+ABKyL", + "67LZTVWmpEAYT6hpcfFqx4", "366Lx63TdOsbhMMswe7QCc", - "1100mE3D9NOZt7Z7LNDlJY" + "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", + "98zKsnQv5KlZnu3BRVezhS", + "b0RzOCbnNGmK/JZG0iv6WK", + "c2EO192dJGGZ0+Bn8A7FXb", + "c8ff1b/ZNFsK3k3TU6vor+", + "81v6t1y/pIV4wqNM6kk9/h", + "c5gS/+ExpFpJfhfKzLmjak", + "c3TLYogSVGpYB58j30givw", + "083oeCFpZEO5zFxRJKACZ2", + "beKOIuQo5HNZdeQU4g2cqN", + "0bKd6MhBhPYpeYkPEonI5d", + "03r2IPEXdEooEbPUVnYOi+", + "38CCyWV49GS6ZiQyU/cmW5", + "e8s4MAZS9IfIstdDeaHmsr", + "89Eik2rlhAHKhZnmOu6LZy", + "589KOByitPi4lP33TEE3jt", + "3dmhQWC11Dr7ShVgwaZE0V", + "65176niLBJV7d05bpaFt0L", + "d8vzX4uiVKL5N82jGxAI2D", + "6bD8zyDtZEDoGeTKXqaY/4", + "b2NAsT56JAqqxiHiZhAVQD", + "3bN7vrqm9K6b5qi7vjHyXG", + "f5lREP7JpBcpT/OgA53J+e", + "99VP30SnpOaINJWXErpmey", + "b7rwfpMHtPZJ2JJfKX9nkY", + "37DvOClOFHSq7FghkSUmfw", + "394FO5TkJKq5oFbdhF3pa7", + "25cBRYpupFKJVjit03WeC1", + "e9rYdVkX5BHIP6kU07p682", + "4cWzxSXOJH/pmK3Kyh+O9V", + "05hpUoqtNPFrGWbQNCw0G+", + "f2nWfGtllLXrf4MiDEbnQx", + "26iwQkBudH7Zr4geUHqlFq", + "85nrq4guxGbpjWSLKkH6P+", + "741LA4r7ZBe4H8hhsJeS7A", + "1fJFIdsSdPG4vUQM3kNiZH", + "e6AMz2Oq5HmrP7i1Ue/fvu", + "c4p0q7ovNJqYBsc4LwVIll", + "e32VfzbBZHmIWIYEhvY/mp", + "990IgEk4RPnL+uMnWKShE+", + "fcEbhgfyNNmpRBSfNObkne", + "5bygU22UFO9brKYQ+eNzC1", + "b1KKqFm9hMtpLUtxEY0uFW", + "5e/vqIjVNG8rD7fZi+6ZNQ", + "93bDTD4opNW52RBb7mjd99", + "eeJicNA0NIObnsBUDm2Rhf", + "00AOzuP/pGpYODxF+MwBOK", + "963hDdB59HJaC/k5Nu/Rz5", + "6eIl60RrBKgLuEpLH1vCUR", + "5fqrXuPkFM3KzLVSZCjE/x", + "a751BimHtKroMIKV1crwE5", + "6a1STCubhHpY/nOP1qcPG/", + "14VGk0GaNHEpo+mEMiHh/a", + "6azBxfOfNE/LmJUEuncIfg", + "6akmXWrvFI/JDFGxxlO9t8", + "74/5j851NKN6cCHsZ2DAPF", + "f4fodrgjNPGIKVhZInkAqo", + "2fDv+Jab5CcZ0D376t5cwM", + "40TFpsl+FMR4bmCo+l6D4H", + "95ZqMGkShM44r+2nGKKoix", + "37whVgoSNOfLrDnAj3rvtr", + "dbvOZsQuhHBaCr5lGBQyZ4", + "1flYPFnQ5DArPH0zVCviJX", + "55xM1wU1xL/ICUkQGjJtCw", + "09Be2amSxKMIaFSmWPBhVl", + "4crLE4PZpIErMk6rulmdrR", + "10dZqzxFhKHaz8Hd46AYnX", + "08biakwtJJbpAZx9rZCEL/", + "b0cmDdbDBHmp+Mt3zhLxhd", + "8frQCpSgpGs4fZOgGBqvW6", + "f1i1q9JdZB26wn6FrPP9am", + "d5CxhxRHFLj466aBmRlj3n", + "3d/HNRuY9LxI8kfYCLsZW4", + "caCQ0E9wZO/LKVCMZ0cdDH", + "318oTGJOlKfIDdMZYM/YrB", + "6bZRJZ0DNKHb1pVefbJQx5", + "93eZEKNK5IeKFfZ8l26U/a", + "54Ba5jta5EkrrZ5TbNDPd/", + "7c7l7msHZNbratos9DrJ+b", + "c5czyWq29CmKZexd6/o9w5", + "49NeFbKudFpp/7zC6U4Wt/", + "9bsHzek95FoaJrAaIEGohJ", + "30ieG3aZ1Ps5w5FsRPsc8B", + "6fbwciWd5IjZZg0gzZfOj0", + "25EpeQG0VNP4ixgII4/Xox", + "07cFnfz2hK4b6lLVfwNS4M", + "7bnf3aikFA470Kjizj0iQn", + "efgaftUfFM0oJHC1+1mBxj", + "40l6P+FGBCfpULy1TVSXtZ", + "88Y2Bz3OpAW4F/IWHiuZJw", + "c0ViNfjFNAurrBXhThXJLV", + "26CvLoGhtIh5lUSWs1YVKU", + "d4M3FYeHVBmaiYDmDW8Jky", + "58EKTRbHJJ/JXoUDPIs8+L", + "b6eS2eegtBjL27YfckNs7a", + "begebo5hRIiLBWgduYPXVv", + "be33UvBWtM4YlUNkFutqja", + "4cVDLdyfFOi6QACibrZWei", + "3aa8zU9o5AFJLqwp2py0L8", + "2f6gRiC+lN97p1cjU+15Oz", + "e9+OpdE35KD79c8ebmTsJ/", + "7fYvTwTKBEC7/us0g75ii2", + "7bXSMa2eRDEoo/Bj2fop8G", + "55fNt4P4pIfIgWGgTyaBeP", + "d0FV1zCQ9E1r0ceghyEYq0", + "4c/XswSg5NFIsuiipaiIQD", + "05JyaeNyxB9oC8kQMSfhpO", + "dbhJ7mC2dA3aatMTOunxGA", + "c5LJRTzhJAL4aemIj7LOQZ", + "0e2dMtxkhJoquLqH3lWhiq", + "f8SbAoe/JL9ovG25DMvbFl", + "4b041MIrxGCYO0WmQaCKmN", + "61VrtK3exHsq/p2HX9hX8V", + "86em4ylBtP159JvKxMLvRr", + "782BbR3QhGBaiuJINvWQY5", + "fdC8YNxhVMbYejAOzN0flH", + "beCk62MM9PiLQwGJwGaKpL", + "9bhxXu579E/YLP1plKq/kz", + "0fiCvyKO9IlITodi0Wx08J", + "44XSkRO71BLaqR2eqsE1Dy", + "b1AF6QF4FA9oMCAZIk+rhR", + "16aEeaXTNA76uv+qTrW7wN", + "68wkGS/LJCMqjHJxJig6ew", + "322jElgRJCjpE1m2rFVFUi", + "6eZ8Dt/ZpC3L1Hi2ZmMEtq", + "ecAj8O2BZIL6JvWUfRBdQ/", + "60oLVaHLZEHrf0mFOS5PLx", + "5bVTFF1X5FUagXwzcC62Er", + "a8sg97Ie5Ew4oR8ZyMGBbj", + "9cq3HT0thNSZryJdso/jt5", + "35xMp71txI+bV/h42eOB72", + "71FHzLnqFJPJrIhOWMTqjA", + "cfUWcQ2LxLhqbYo4k7xq6a", + "e1QEqvBNdJzaZNTGcHzbTe", + "75l526l/5E7Ineo+1wstLG", + "b2zRy4LEZPvpMoBXeR4GHH", + "9eMhPSY35LP6BvV2vKnzxK", + "92bnWXuABGGpaatxOca2SK", + "41hoNRAbRKwLwOjpJ2atUY", + "e1HwyvE5VIsYOtfdOarvuO", + "0e5UriBM5M9ZTolO4Nyptn", + "d41P4C9UZJbrTcwZLXB956", + "d7SVfveQRGCYyYfPAxNTUS", + "b92CZ90S9PQL/swR+/AUm+", + "afWjoGjJtDq76qJgBigmMr", + "a5esZu+45LA5mBpvttspPD", + "b2/1NmDPVCXovcyHPoKEHX", + "6dqgv+aKdPoakjPzpvDNA5", + "01N1oAxMtFlatBhgv2WzYs", + "71cNsfALdAbJ6TMbqIMEDs" ] } diff --git a/temp/BackupAssets/assets/Scene/GameScene.fire b/temp/BackupAssets/assets/Scene/GameScene.fire index 1f17aba..daca74d 100644 --- a/temp/BackupAssets/assets/Scene/GameScene.fire +++ b/temp/BackupAssets/assets/Scene/GameScene.fire @@ -75,28 +75,28 @@ "__id__": 5 }, { - "__id__": 66 + "__id__": 74 }, { - "__id__": 342 + "__id__": 350 }, { - "__id__": 392 + "__id__": 400 } ], "_active": true, "_components": [ { - "__id__": 395 + "__id__": 403 }, { - "__id__": 396 + "__id__": 404 }, { - "__id__": 397 + "__id__": 405 }, { - "__id__": 398 + "__id__": 406 } ], "_prefab": null, @@ -260,22 +260,22 @@ "__id__": 9 }, { - "__id__": 155 + "__id__": 163 }, { - "__id__": 176 + "__id__": 184 }, { - "__id__": 196 + "__id__": 204 }, { - "__id__": 68 + "__id__": 76 } ], "_active": true, "_components": [ { - "__id__": 341 + "__id__": 349 } ], "_prefab": null, @@ -465,19 +465,19 @@ "__id__": 13 }, { - "__id__": 130 + "__id__": 138 }, { "__id__": 20 }, { - "__id__": 151 + "__id__": 159 } ], "_active": true, "_components": [ { - "__id__": 154 + "__id__": 162 } ], "_prefab": null, @@ -962,10 +962,10 @@ "__id__": 36 }, "mask": { - "__id__": 66 + "__id__": 74 }, "iceLabel": { - "__id__": 62 + "__id__": 70 }, "hammerLabel": { "__id__": 25 @@ -983,7 +983,7 @@ "__id__": 49 }, "coinPop": { - "__id__": 68 + "__id__": 76 }, "_id": "1e+NpmfM1ClafoWSY4VNW+" }, @@ -1001,7 +1001,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 65 + "__id__": 73 } ], "_N$interactable": true, @@ -1070,22 +1070,22 @@ }, "_children": [ { - "__id__": 59 + "__id__": 67 }, { - "__id__": 61 + "__id__": 69 } ], "_active": true, "_components": [ { - "__id__": 63 + "__id__": 71 }, { "__id__": 18 }, { - "__id__": 64 + "__id__": 72 } ], "_prefab": null, @@ -1167,12 +1167,15 @@ }, { "__id__": 55 + }, + { + "__id__": 58 } ], "_active": true, "_components": [ { - "__id__": 58 + "__id__": 66 } ], "_prefab": null, @@ -2776,6 +2779,391 @@ "_enabled": true, "_id": "e8zuQH36BBZaL/1k13rbss" }, + { + "__type__": "cc.Node", + "_name": "shop", + "_objFlags": 0, + "_parent": { + "__id__": 20 + }, + "_children": [ + { + "__id__": 59 + } + ], + "_active": true, + "_components": [ + { + "__id__": 64 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -480, + 130, + 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": "07afITpORHfqPONAypAM0J" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 512, + "_parent": { + "__id__": 58 + }, + "_children": [ + { + "__id__": 60 + } + ], + "_active": true, + "_components": [ + { + "__id__": 62 + }, + { + "__id__": 63 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_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, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "d0UzByGLlHhZBro9lAsDtj" + }, + { + "__type__": "cc.Node", + "_name": "Label", + "_objFlags": 512, + "_parent": { + "__id__": 59 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 61 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_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": "44E7SWYWZAYKloRxH+TqQ2" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 60 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "shop", + "_N$string": "shop", + "_fontSize": 20, + "_lineHeight": 40, + "_enableWrapText": false, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 1, + "_N$cacheMode": 1, + "_id": "54N4oUcYBDMo13P1rEyD3d" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 59 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "63/cc4uTFGpo5Bmsy0O9gg" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 59 + }, + "_enabled": true, + "alignMode": 0, + "_target": null, + "_alignFlags": 45, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 100, + "_originalHeight": 40, + "_id": "c5a8DznRRM+4vL+BCxPXZZ" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 58 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 65 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 230, + "g": 230, + "b": 230, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "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": 120, + "g": 120, + "b": 120, + "a": 200 + }, + "_N$normalSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "_N$hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$disabledSprite": { + "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e" + }, + "_N$target": { + "__id__": 59 + }, + "_id": "111w+INMtEeL+/wHpeYLTf" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 2 + }, + "component": "", + "_componentId": "80998T1AYNNRZdRxsVvXR65", + "handler": "openShop", + "customEventData": "" + }, { "__type__": "cc.Widget", "_name": "", @@ -2814,7 +3202,7 @@ "_active": true, "_components": [ { - "__id__": 60 + "__id__": 68 } ], "_prefab": null, @@ -2870,7 +3258,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 59 + "__id__": 67 }, "_enabled": true, "_materials": [ @@ -2910,7 +3298,7 @@ "_active": true, "_components": [ { - "__id__": 62 + "__id__": 70 } ], "_prefab": null, @@ -2966,7 +3354,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 61 + "__id__": 69 }, "_enabled": true, "_materials": [ @@ -3059,7 +3447,7 @@ "_active": false, "_components": [ { - "__id__": 67 + "__id__": 75 } ], "_prefab": null, @@ -3115,7 +3503,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 66 + "__id__": 74 }, "_enabled": true, "_materials": [ @@ -3150,41 +3538,41 @@ "__id__": 5 }, "_children": [ - { - "__id__": 69 - }, - { - "__id__": 73 - }, - { - "__id__": 75 - }, { "__id__": 77 }, - { - "__id__": 79 - }, { "__id__": 81 }, { - "__id__": 90 + "__id__": 83 }, { - "__id__": 99 + "__id__": 85 }, { - "__id__": 108 + "__id__": 87 }, { - "__id__": 125 + "__id__": 89 + }, + { + "__id__": 98 + }, + { + "__id__": 107 + }, + { + "__id__": 116 + }, + { + "__id__": 133 } ], "_active": false, "_components": [ { - "__id__": 129 + "__id__": 137 } ], "_prefab": null, @@ -3240,19 +3628,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 70 + "__id__": 78 }, { - "__id__": 71 + "__id__": 79 }, { - "__id__": 72 + "__id__": 80 } ], "_prefab": null, @@ -3308,7 +3696,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 69 + "__id__": 77 }, "_enabled": true, "_materials": [ @@ -3340,7 +3728,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 69 + "__id__": 77 }, "_enabled": true, "alignMode": 1, @@ -3367,7 +3755,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 69 + "__id__": 77 }, "_enabled": true, "_id": "7ck1YZHrVNgK0sTsx/E/46" @@ -3377,13 +3765,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 74 + "__id__": 82 } ], "_prefab": null, @@ -3439,7 +3827,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 73 + "__id__": 81 }, "_enabled": true, "_materials": [ @@ -3471,13 +3859,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 76 + "__id__": 84 } ], "_prefab": null, @@ -3533,7 +3921,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 75 + "__id__": 83 }, "_enabled": true, "_materials": [ @@ -3567,13 +3955,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 78 + "__id__": 86 } ], "_prefab": null, @@ -3629,7 +4017,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 77 + "__id__": 85 }, "_enabled": true, "_materials": [ @@ -3663,13 +4051,13 @@ "_name": "light", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 80 + "__id__": 88 } ], "_prefab": null, @@ -3725,7 +4113,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 79 + "__id__": 87 }, "_enabled": true, "_materials": [ @@ -3757,20 +4145,20 @@ "_name": "freeze", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [ { - "__id__": 82 + "__id__": 90 }, { - "__id__": 84 + "__id__": 92 }, { - "__id__": 86 + "__id__": 94 }, { - "__id__": 88 + "__id__": 96 } ], "_active": false, @@ -3828,13 +4216,13 @@ "_name": "freeze_Label", "_objFlags": 0, "_parent": { - "__id__": 81 + "__id__": 89 }, "_children": [], "_active": true, "_components": [ { - "__id__": 83 + "__id__": 91 } ], "_prefab": null, @@ -3890,7 +4278,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 82 + "__id__": 90 }, "_enabled": true, "_materials": [ @@ -3924,13 +4312,13 @@ "_name": "freeze_Icon", "_objFlags": 0, "_parent": { - "__id__": 81 + "__id__": 89 }, "_children": [], "_active": true, "_components": [ { - "__id__": 85 + "__id__": 93 } ], "_prefab": null, @@ -3986,7 +4374,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 84 + "__id__": 92 }, "_enabled": true, "_materials": [ @@ -4020,13 +4408,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 81 + "__id__": 89 }, "_children": [], "_active": true, "_components": [ { - "__id__": 87 + "__id__": 95 } ], "_prefab": null, @@ -4082,7 +4470,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 86 + "__id__": 94 }, "_enabled": true, "_materials": [ @@ -4116,13 +4504,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 81 + "__id__": 89 }, "_children": [], "_active": true, "_components": [ { - "__id__": 89 + "__id__": 97 } ], "_prefab": null, @@ -4178,7 +4566,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 88 + "__id__": 96 }, "_enabled": true, "_materials": [ @@ -4212,20 +4600,20 @@ "_name": "hammer", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [ { - "__id__": 91 + "__id__": 99 }, { - "__id__": 93 + "__id__": 101 }, { - "__id__": 95 + "__id__": 103 }, { - "__id__": 97 + "__id__": 105 } ], "_active": false, @@ -4283,13 +4671,13 @@ "_name": "hammer_Label", "_objFlags": 0, "_parent": { - "__id__": 90 + "__id__": 98 }, "_children": [], "_active": true, "_components": [ { - "__id__": 92 + "__id__": 100 } ], "_prefab": null, @@ -4345,7 +4733,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 91 + "__id__": 99 }, "_enabled": true, "_materials": [ @@ -4379,13 +4767,13 @@ "_name": "hammer_Icon", "_objFlags": 0, "_parent": { - "__id__": 90 + "__id__": 98 }, "_children": [], "_active": true, "_components": [ { - "__id__": 94 + "__id__": 102 } ], "_prefab": null, @@ -4441,7 +4829,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 93 + "__id__": 101 }, "_enabled": true, "_materials": [ @@ -4475,13 +4863,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 90 + "__id__": 98 }, "_children": [], "_active": true, "_components": [ { - "__id__": 96 + "__id__": 104 } ], "_prefab": null, @@ -4537,7 +4925,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 95 + "__id__": 103 }, "_enabled": true, "_materials": [ @@ -4571,13 +4959,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 90 + "__id__": 98 }, "_children": [], "_active": true, "_components": [ { - "__id__": 98 + "__id__": 106 } ], "_prefab": null, @@ -4633,7 +5021,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 97 + "__id__": 105 }, "_enabled": true, "_materials": [ @@ -4667,20 +5055,20 @@ "_name": "magic", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [ { - "__id__": 100 + "__id__": 108 }, { - "__id__": 102 + "__id__": 110 }, { - "__id__": 104 + "__id__": 112 }, { - "__id__": 106 + "__id__": 114 } ], "_active": false, @@ -4738,13 +5126,13 @@ "_name": "magic_Label", "_objFlags": 0, "_parent": { - "__id__": 99 + "__id__": 107 }, "_children": [], "_active": true, "_components": [ { - "__id__": 101 + "__id__": 109 } ], "_prefab": null, @@ -4800,7 +5188,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 100 + "__id__": 108 }, "_enabled": true, "_materials": [ @@ -4834,13 +5222,13 @@ "_name": "magic_Icon", "_objFlags": 0, "_parent": { - "__id__": 99 + "__id__": 107 }, "_children": [], "_active": true, "_components": [ { - "__id__": 103 + "__id__": 111 } ], "_prefab": null, @@ -4896,7 +5284,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 110 }, "_enabled": true, "_materials": [ @@ -4930,13 +5318,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 99 + "__id__": 107 }, "_children": [], "_active": true, "_components": [ { - "__id__": 105 + "__id__": 113 } ], "_prefab": null, @@ -4992,7 +5380,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 104 + "__id__": 112 }, "_enabled": true, "_materials": [ @@ -5026,13 +5414,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 99 + "__id__": 107 }, "_children": [], "_active": true, "_components": [ { - "__id__": 107 + "__id__": 115 } ], "_prefab": null, @@ -5088,7 +5476,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 106 + "__id__": 114 }, "_enabled": true, "_materials": [ @@ -5122,38 +5510,38 @@ "_name": "buy_Btn", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [ - { - "__id__": 109 - }, - { - "__id__": 111 - }, - { - "__id__": 113 - }, - { - "__id__": 115 - }, { "__id__": 117 }, { "__id__": 119 + }, + { + "__id__": 121 + }, + { + "__id__": 123 + }, + { + "__id__": 125 + }, + { + "__id__": 127 } ], "_active": true, "_components": [ { - "__id__": 121 + "__id__": 129 }, { - "__id__": 122 + "__id__": 130 }, { - "__id__": 124 + "__id__": 132 } ], "_prefab": null, @@ -5209,13 +5597,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 110 + "__id__": 118 } ], "_prefab": null, @@ -5271,7 +5659,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 109 + "__id__": 117 }, "_enabled": true, "_materials": [ @@ -5305,13 +5693,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 112 + "__id__": 120 } ], "_prefab": null, @@ -5367,7 +5755,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 111 + "__id__": 119 }, "_enabled": true, "_materials": [ @@ -5401,13 +5789,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 114 + "__id__": 122 } ], "_prefab": null, @@ -5463,7 +5851,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 113 + "__id__": 121 }, "_enabled": true, "_materials": [ @@ -5497,13 +5885,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 116 + "__id__": 124 } ], "_prefab": null, @@ -5559,7 +5947,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 115 + "__id__": 123 }, "_enabled": true, "_materials": [ @@ -5593,13 +5981,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 118 + "__id__": 126 } ], "_prefab": null, @@ -5655,7 +6043,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 117 + "__id__": 125 }, "_enabled": true, "_materials": [ @@ -5689,13 +6077,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 108 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 120 + "__id__": 128 } ], "_prefab": null, @@ -5751,7 +6139,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 119 + "__id__": 127 }, "_enabled": true, "_materials": [ @@ -5785,7 +6173,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 108 + "__id__": 116 }, "_enabled": true, "_materials": [ @@ -5819,7 +6207,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 108 + "__id__": 116 }, "_enabled": true, "_normalMaterial": null, @@ -5828,7 +6216,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 123 + "__id__": 131 } ], "_N$interactable": true, @@ -5884,7 +6272,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 108 + "__id__": 116 }, "_id": "3dIBlmgnFLIKI+Rx3mWLiH" }, @@ -5903,7 +6291,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 108 + "__id__": 116 }, "_enabled": true, "_id": "f9YC9UOyxPc4DLFd+bNIec" @@ -5913,16 +6301,16 @@ "_name": "close", "_objFlags": 0, "_parent": { - "__id__": 68 + "__id__": 76 }, "_children": [], "_active": true, "_components": [ { - "__id__": 126 + "__id__": 134 }, { - "__id__": 127 + "__id__": 135 } ], "_prefab": null, @@ -5978,7 +6366,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 125 + "__id__": 133 }, "_enabled": true, "_materials": [ @@ -6012,7 +6400,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 125 + "__id__": 133 }, "_enabled": true, "_normalMaterial": null, @@ -6021,7 +6409,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 128 + "__id__": 136 } ], "_N$interactable": true, @@ -6077,7 +6465,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 125 + "__id__": 133 }, "_id": "e2r0BmMa5MrIsk8JJmyNf3" }, @@ -6096,7 +6484,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 68 + "__id__": 76 }, "_enabled": true, "alignMode": 1, @@ -6126,24 +6514,9 @@ "__id__": 9 }, "_children": [ - { - "__id__": 131 - }, - { - "__id__": 133 - }, - { - "__id__": 135 - }, - { - "__id__": 137 - }, { "__id__": 139 }, - { - "__id__": 140 - }, { "__id__": 141 }, @@ -6152,12 +6525,27 @@ }, { "__id__": 145 + }, + { + "__id__": 147 + }, + { + "__id__": 148 + }, + { + "__id__": 149 + }, + { + "__id__": 151 + }, + { + "__id__": 153 } ], "_active": true, "_components": [ { - "__id__": 150 + "__id__": 158 } ], "_prefab": null, @@ -6213,13 +6601,13 @@ "_name": "topBg", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, "_components": [ { - "__id__": 132 + "__id__": 140 } ], "_prefab": null, @@ -6275,7 +6663,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 131 + "__id__": 139 }, "_enabled": true, "_materials": [ @@ -6309,13 +6697,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, "_components": [ { - "__id__": 134 + "__id__": 142 } ], "_prefab": null, @@ -6371,7 +6759,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 133 + "__id__": 141 }, "_enabled": true, "_materials": [ @@ -6405,13 +6793,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, "_components": [ { - "__id__": 136 + "__id__": 144 } ], "_prefab": null, @@ -6467,7 +6855,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 135 + "__id__": 143 }, "_enabled": true, "_materials": [ @@ -6501,13 +6889,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, "_components": [ { - "__id__": 138 + "__id__": 146 } ], "_prefab": null, @@ -6563,7 +6951,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 137 + "__id__": 145 }, "_enabled": true, "_materials": [ @@ -6597,7 +6985,7 @@ "_name": "level", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, @@ -6655,7 +7043,7 @@ "_name": "time", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": true, @@ -6713,13 +7101,13 @@ "_name": "Ice", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": false, "_components": [ { - "__id__": 142 + "__id__": 150 } ], "_prefab": null, @@ -6775,7 +7163,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 141 + "__id__": 149 }, "_enabled": true, "_materials": [ @@ -6807,13 +7195,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [], "_active": false, "_components": [ { - "__id__": 144 + "__id__": 152 } ], "_prefab": null, @@ -6869,7 +7257,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 143 + "__id__": 151 }, "_enabled": true, "_materials": [ @@ -6902,17 +7290,17 @@ "_name": "returnBtn", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 138 }, "_children": [ { - "__id__": 146 + "__id__": 154 } ], "_active": false, "_components": [ { - "__id__": 148 + "__id__": 156 } ], "_prefab": null, @@ -6968,13 +7356,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 145 + "__id__": 153 }, "_children": [], "_active": true, "_components": [ { - "__id__": 147 + "__id__": 155 } ], "_prefab": null, @@ -7030,7 +7418,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 146 + "__id__": 154 }, "_enabled": true, "_materials": [ @@ -7064,7 +7452,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 145 + "__id__": 153 }, "_enabled": true, "_normalMaterial": null, @@ -7073,7 +7461,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 149 + "__id__": 157 } ], "_N$interactable": true, @@ -7129,7 +7517,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 145 + "__id__": 153 }, "_id": "34Z6b/IgpOtKrGQXG1ECg6" }, @@ -7148,7 +7536,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 130 + "__id__": 138 }, "_enabled": true, "alignMode": 1, @@ -7181,10 +7569,10 @@ "_active": false, "_components": [ { - "__id__": 152 + "__id__": 160 }, { - "__id__": 153 + "__id__": 161 } ], "_prefab": null, @@ -7240,7 +7628,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 151 + "__id__": 159 }, "_enabled": true, "_materials": [ @@ -7272,7 +7660,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 151 + "__id__": 159 }, "_enabled": true, "alignMode": 1, @@ -7329,32 +7717,32 @@ "__id__": 5 }, "_children": [ - { - "__id__": 156 - }, - { - "__id__": 160 - }, - { - "__id__": 162 - }, { "__id__": 164 }, { - "__id__": 166 + "__id__": 168 + }, + { + "__id__": 170 }, { "__id__": 172 + }, + { + "__id__": 174 + }, + { + "__id__": 180 } ], "_active": false, "_components": [ { - "__id__": 174 + "__id__": 182 }, { - "__id__": 175 + "__id__": 183 } ], "_prefab": null, @@ -7410,19 +7798,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [], "_active": true, "_components": [ { - "__id__": 157 + "__id__": 165 }, { - "__id__": 158 + "__id__": 166 }, { - "__id__": 159 + "__id__": 167 } ], "_prefab": null, @@ -7478,7 +7866,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 156 + "__id__": 164 }, "_enabled": true, "_materials": [ @@ -7510,7 +7898,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 156 + "__id__": 164 }, "_enabled": true, "alignMode": 1, @@ -7537,7 +7925,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 156 + "__id__": 164 }, "_enabled": true, "_id": "1e62ukhsJObKLFucCNzfwm" @@ -7547,13 +7935,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [], "_active": true, "_components": [ { - "__id__": 161 + "__id__": 169 } ], "_prefab": null, @@ -7609,7 +7997,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 160 + "__id__": 168 }, "_enabled": true, "_materials": [ @@ -7641,13 +8029,13 @@ "_name": "light", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [], "_active": true, "_components": [ { - "__id__": 163 + "__id__": 171 } ], "_prefab": null, @@ -7703,7 +8091,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 162 + "__id__": 170 }, "_enabled": true, "_materials": [ @@ -7735,13 +8123,13 @@ "_name": "icon", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [], "_active": true, "_components": [ { - "__id__": 165 + "__id__": 173 } ], "_prefab": null, @@ -7797,7 +8185,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 164 + "__id__": 172 }, "_enabled": true, "_materials": [ @@ -7827,20 +8215,20 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [ { - "__id__": 167 + "__id__": 175 } ], "_active": true, "_components": [ { - "__id__": 169 + "__id__": 177 }, { - "__id__": 170 + "__id__": 178 } ], "_prefab": null, @@ -7896,13 +8284,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 174 }, "_children": [], "_active": true, "_components": [ { - "__id__": 168 + "__id__": 176 } ], "_prefab": null, @@ -7958,7 +8346,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 167 + "__id__": 175 }, "_enabled": true, "_materials": [ @@ -7990,7 +8378,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 166 + "__id__": 174 }, "_enabled": true, "_materials": [ @@ -8022,7 +8410,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 166 + "__id__": 174 }, "_enabled": true, "_normalMaterial": null, @@ -8031,7 +8419,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 171 + "__id__": 179 } ], "_N$interactable": true, @@ -8087,14 +8475,14 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 166 + "__id__": 174 }, "_id": "2bhrCpcRxImqyWzBaIVVCd" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 155 + "__id__": 163 }, "component": "", "_componentId": "7fe14dRFQZKSKKAoEn4S7OU", @@ -8106,13 +8494,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 155 + "__id__": 163 }, "_children": [], "_active": true, "_components": [ { - "__id__": 173 + "__id__": 181 } ], "_prefab": null, @@ -8168,7 +8556,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 172 + "__id__": 180 }, "_enabled": true, "_materials": [ @@ -8200,7 +8588,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 155 + "__id__": 163 }, "_enabled": true, "alignMode": 1, @@ -8227,7 +8615,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 155 + "__id__": 163 }, "_enabled": true, "label": null, @@ -8243,22 +8631,22 @@ }, "_children": [ { - "__id__": 177 - }, - { - "__id__": 181 - }, - { - "__id__": 183 + "__id__": 185 }, { "__id__": 189 + }, + { + "__id__": 191 + }, + { + "__id__": 197 } ], "_active": false, "_components": [ { - "__id__": 195 + "__id__": 203 } ], "_prefab": null, @@ -8314,19 +8702,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 176 + "__id__": 184 }, "_children": [], "_active": true, "_components": [ { - "__id__": 178 + "__id__": 186 }, { - "__id__": 179 + "__id__": 187 }, { - "__id__": 180 + "__id__": 188 } ], "_prefab": null, @@ -8382,7 +8770,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 177 + "__id__": 185 }, "_enabled": true, "_materials": [ @@ -8414,7 +8802,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 177 + "__id__": 185 }, "_enabled": true, "alignMode": 1, @@ -8441,7 +8829,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 177 + "__id__": 185 }, "_enabled": true, "_id": "7aMdyhm41AyqFZMnIAtTUY" @@ -8451,13 +8839,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 176 + "__id__": 184 }, "_children": [], "_active": true, "_components": [ { - "__id__": 182 + "__id__": 190 } ], "_prefab": null, @@ -8513,7 +8901,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 181 + "__id__": 189 }, "_enabled": true, "_materials": [ @@ -8545,20 +8933,20 @@ "_name": "nextBtn", "_objFlags": 0, "_parent": { - "__id__": 176 + "__id__": 184 }, "_children": [ { - "__id__": 184 + "__id__": 192 } ], "_active": true, "_components": [ { - "__id__": 186 + "__id__": 194 }, { - "__id__": 187 + "__id__": 195 } ], "_prefab": null, @@ -8614,13 +9002,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 183 + "__id__": 191 }, "_children": [], "_active": true, "_components": [ { - "__id__": 185 + "__id__": 193 } ], "_prefab": null, @@ -8676,7 +9064,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 184 + "__id__": 192 }, "_enabled": true, "_materials": [ @@ -8710,7 +9098,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 183 + "__id__": 191 }, "_enabled": true, "_materials": [ @@ -8742,7 +9130,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 183 + "__id__": 191 }, "_enabled": true, "_normalMaterial": null, @@ -8751,7 +9139,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 188 + "__id__": 196 } ], "_N$interactable": true, @@ -8807,7 +9195,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 183 + "__id__": 191 }, "_id": "02dmnqIIhNA7gNoxAqWnCT" }, @@ -8826,20 +9214,20 @@ "_name": "homeBtn", "_objFlags": 0, "_parent": { - "__id__": 176 + "__id__": 184 }, "_children": [ { - "__id__": 190 + "__id__": 198 } ], "_active": true, "_components": [ { - "__id__": 192 + "__id__": 200 }, { - "__id__": 193 + "__id__": 201 } ], "_prefab": null, @@ -8895,13 +9283,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 189 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 191 + "__id__": 199 } ], "_prefab": null, @@ -8957,7 +9345,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 190 + "__id__": 198 }, "_enabled": true, "_materials": [ @@ -8991,7 +9379,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 189 + "__id__": 197 }, "_enabled": true, "_materials": [ @@ -9023,7 +9411,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 189 + "__id__": 197 }, "_enabled": true, "_normalMaterial": null, @@ -9032,7 +9420,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 194 + "__id__": 202 } ], "_N$interactable": true, @@ -9088,7 +9476,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 189 + "__id__": 197 }, "_id": "340osYA4tCpJlhedNAxg8f" }, @@ -9107,7 +9495,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 176 + "__id__": 184 }, "_enabled": true, "alignMode": 1, @@ -9138,28 +9526,28 @@ }, "_children": [ { - "__id__": 197 + "__id__": 205 }, { - "__id__": 201 + "__id__": 209 }, { - "__id__": 203 + "__id__": 211 }, { - "__id__": 275 + "__id__": 283 }, { - "__id__": 296 + "__id__": 304 }, { - "__id__": 319 + "__id__": 327 } ], "_active": false, "_components": [ { - "__id__": 340 + "__id__": 348 } ], "_prefab": null, @@ -9215,19 +9603,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [], "_active": true, "_components": [ { - "__id__": 198 + "__id__": 206 }, { - "__id__": 199 + "__id__": 207 }, { - "__id__": 200 + "__id__": 208 } ], "_prefab": null, @@ -9283,7 +9671,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 197 + "__id__": 205 }, "_enabled": true, "_materials": [ @@ -9315,7 +9703,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 197 + "__id__": 205 }, "_enabled": true, "alignMode": 1, @@ -9342,7 +9730,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 197 + "__id__": 205 }, "_enabled": true, "_id": "c22Pk+4yZHHaEcGiym9WxK" @@ -9352,13 +9740,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [], "_active": true, "_components": [ { - "__id__": 202 + "__id__": 210 } ], "_prefab": null, @@ -9414,7 +9802,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 201 + "__id__": 209 }, "_enabled": true, "_materials": [ @@ -9446,21 +9834,9 @@ "_name": "Time", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [ - { - "__id__": 204 - }, - { - "__id__": 206 - }, - { - "__id__": 208 - }, - { - "__id__": 210 - }, { "__id__": 212 }, @@ -9468,10 +9844,22 @@ "__id__": 214 }, { - "__id__": 230 + "__id__": 216 }, { - "__id__": 269 + "__id__": 218 + }, + { + "__id__": 220 + }, + { + "__id__": 222 + }, + { + "__id__": 238 + }, + { + "__id__": 277 } ], "_active": true, @@ -9529,13 +9917,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [], "_active": true, "_components": [ { - "__id__": 205 + "__id__": 213 } ], "_prefab": null, @@ -9591,7 +9979,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 204 + "__id__": 212 }, "_enabled": true, "_materials": [ @@ -9625,13 +10013,13 @@ "_name": "result_Label1", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [], "_active": true, "_components": [ { - "__id__": 207 + "__id__": 215 } ], "_prefab": null, @@ -9687,7 +10075,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 206 + "__id__": 214 }, "_enabled": true, "_materials": [ @@ -9721,13 +10109,13 @@ "_name": "time_show", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [], "_active": false, "_components": [ { - "__id__": 209 + "__id__": 217 } ], "_prefab": null, @@ -9783,7 +10171,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 208 + "__id__": 216 }, "_enabled": true, "_materials": [ @@ -9817,13 +10205,13 @@ "_name": "label", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [], "_active": false, "_components": [ { - "__id__": 211 + "__id__": 219 } ], "_prefab": null, @@ -9879,7 +10267,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 210 + "__id__": 218 }, "_enabled": true, "_materials": [ @@ -9912,13 +10300,13 @@ "_name": "time_hide", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [], "_active": true, "_components": [ { - "__id__": 213 + "__id__": 221 } ], "_prefab": null, @@ -9974,7 +10362,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 212 + "__id__": 220 }, "_enabled": true, "_materials": [ @@ -10008,35 +10396,35 @@ "_name": "timeBtn", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [ - { - "__id__": 215 - }, - { - "__id__": 217 - }, - { - "__id__": 219 - }, - { - "__id__": 221 - }, { "__id__": 223 }, { "__id__": 225 + }, + { + "__id__": 227 + }, + { + "__id__": 229 + }, + { + "__id__": 231 + }, + { + "__id__": 233 } ], "_active": false, "_components": [ { - "__id__": 227 + "__id__": 235 }, { - "__id__": 228 + "__id__": 236 } ], "_prefab": null, @@ -10092,13 +10480,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": true, "_components": [ { - "__id__": 216 + "__id__": 224 } ], "_prefab": null, @@ -10154,7 +10542,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 215 + "__id__": 223 }, "_enabled": true, "_materials": [ @@ -10188,13 +10576,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": true, "_components": [ { - "__id__": 218 + "__id__": 226 } ], "_prefab": null, @@ -10250,7 +10638,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 217 + "__id__": 225 }, "_enabled": true, "_materials": [ @@ -10284,13 +10672,13 @@ "_name": "number2", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": true, "_components": [ { - "__id__": 220 + "__id__": 228 } ], "_prefab": null, @@ -10346,7 +10734,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 219 + "__id__": 227 }, "_enabled": true, "_materials": [ @@ -10380,13 +10768,13 @@ "_name": "number1", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": false, "_components": [ { - "__id__": 222 + "__id__": 230 } ], "_prefab": null, @@ -10442,7 +10830,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 221 + "__id__": 229 }, "_enabled": true, "_materials": [ @@ -10476,13 +10864,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": true, "_components": [ { - "__id__": 224 + "__id__": 232 } ], "_prefab": null, @@ -10538,7 +10926,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 223 + "__id__": 231 }, "_enabled": true, "_materials": [ @@ -10572,13 +10960,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 214 + "__id__": 222 }, "_children": [], "_active": true, "_components": [ { - "__id__": 226 + "__id__": 234 } ], "_prefab": null, @@ -10634,7 +11022,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 225 + "__id__": 233 }, "_enabled": true, "_materials": [ @@ -10668,7 +11056,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 214 + "__id__": 222 }, "_enabled": true, "_materials": [ @@ -10702,7 +11090,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 214 + "__id__": 222 }, "_enabled": true, "_normalMaterial": null, @@ -10711,7 +11099,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 229 + "__id__": 237 } ], "_N$interactable": true, @@ -10767,7 +11155,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 214 + "__id__": 222 }, "_id": "f26wyaXk1ODqKTicGneesK" }, @@ -10784,41 +11172,41 @@ "_name": "buyBtn", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [ - { - "__id__": 231 - }, - { - "__id__": 233 - }, - { - "__id__": 235 - }, - { - "__id__": 237 - }, { "__id__": 239 }, { - "__id__": 246 + "__id__": 241 }, { - "__id__": 255 + "__id__": 243 }, { - "__id__": 264 + "__id__": 245 + }, + { + "__id__": 247 + }, + { + "__id__": 254 + }, + { + "__id__": 263 + }, + { + "__id__": 272 } ], "_active": true, "_components": [ { - "__id__": 266 + "__id__": 274 }, { - "__id__": 267 + "__id__": 275 } ], "_prefab": null, @@ -10874,13 +11262,13 @@ "_name": "btn_zi_xhongshi", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [], "_active": true, "_components": [ { - "__id__": 232 + "__id__": 240 } ], "_prefab": null, @@ -10936,7 +11324,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 231 + "__id__": 239 }, "_enabled": true, "_materials": [ @@ -10970,13 +11358,13 @@ "_name": "coins_+", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [], "_active": true, "_components": [ { - "__id__": 234 + "__id__": 242 } ], "_prefab": null, @@ -11032,7 +11420,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 233 + "__id__": 241 }, "_enabled": true, "_materials": [ @@ -11066,13 +11454,13 @@ "_name": "coins2", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [], "_active": true, "_components": [ { - "__id__": 236 + "__id__": 244 } ], "_prefab": null, @@ -11128,7 +11516,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 235 + "__id__": 243 }, "_enabled": true, "_materials": [ @@ -11162,13 +11550,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [], "_active": true, "_components": [ { - "__id__": 238 + "__id__": 246 } ], "_prefab": null, @@ -11224,7 +11612,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 237 + "__id__": 245 }, "_enabled": true, "_materials": [ @@ -11258,17 +11646,17 @@ "_name": "coin1", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [ { - "__id__": 240 + "__id__": 248 }, { - "__id__": 242 + "__id__": 250 }, { - "__id__": 244 + "__id__": 252 } ], "_active": false, @@ -11326,13 +11714,13 @@ "_name": "coins5", "_objFlags": 0, "_parent": { - "__id__": 239 + "__id__": 247 }, "_children": [], "_active": true, "_components": [ { - "__id__": 241 + "__id__": 249 } ], "_prefab": null, @@ -11388,7 +11776,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 240 + "__id__": 248 }, "_enabled": true, "_materials": [ @@ -11422,13 +11810,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 239 + "__id__": 247 }, "_children": [], "_active": true, "_components": [ { - "__id__": 243 + "__id__": 251 } ], "_prefab": null, @@ -11484,7 +11872,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 242 + "__id__": 250 }, "_enabled": true, "_materials": [ @@ -11518,13 +11906,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 239 + "__id__": 247 }, "_children": [], "_active": true, "_components": [ { - "__id__": 245 + "__id__": 253 } ], "_prefab": null, @@ -11580,7 +11968,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 244 + "__id__": 252 }, "_enabled": true, "_materials": [ @@ -11614,20 +12002,20 @@ "_name": "coin2", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [ { - "__id__": 247 + "__id__": 255 }, { - "__id__": 249 + "__id__": 257 }, { - "__id__": 251 + "__id__": 259 }, { - "__id__": 253 + "__id__": 261 } ], "_active": false, @@ -11685,13 +12073,13 @@ "_name": "coins1", "_objFlags": 0, "_parent": { - "__id__": 246 + "__id__": 254 }, "_children": [], "_active": true, "_components": [ { - "__id__": 248 + "__id__": 256 } ], "_prefab": null, @@ -11747,7 +12135,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 247 + "__id__": 255 }, "_enabled": true, "_materials": [ @@ -11781,13 +12169,13 @@ "_name": "coins5", "_objFlags": 0, "_parent": { - "__id__": 246 + "__id__": 254 }, "_children": [], "_active": true, "_components": [ { - "__id__": 250 + "__id__": 258 } ], "_prefab": null, @@ -11843,7 +12231,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 249 + "__id__": 257 }, "_enabled": true, "_materials": [ @@ -11877,13 +12265,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 246 + "__id__": 254 }, "_children": [], "_active": true, "_components": [ { - "__id__": 252 + "__id__": 260 } ], "_prefab": null, @@ -11939,7 +12327,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 251 + "__id__": 259 }, "_enabled": true, "_materials": [ @@ -11973,13 +12361,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 246 + "__id__": 254 }, "_children": [], "_active": true, "_components": [ { - "__id__": 254 + "__id__": 262 } ], "_prefab": null, @@ -12035,7 +12423,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 253 + "__id__": 261 }, "_enabled": true, "_materials": [ @@ -12069,20 +12457,20 @@ "_name": "coin3", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [ { - "__id__": 256 + "__id__": 264 }, { - "__id__": 258 + "__id__": 266 }, { - "__id__": 260 + "__id__": 268 }, { - "__id__": 262 + "__id__": 270 } ], "_active": false, @@ -12140,13 +12528,13 @@ "_name": "coins1", "_objFlags": 0, "_parent": { - "__id__": 255 + "__id__": 263 }, "_children": [], "_active": true, "_components": [ { - "__id__": 257 + "__id__": 265 } ], "_prefab": null, @@ -12202,7 +12590,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 256 + "__id__": 264 }, "_enabled": true, "_materials": [ @@ -12236,13 +12624,13 @@ "_name": "coins5", "_objFlags": 0, "_parent": { - "__id__": 255 + "__id__": 263 }, "_children": [], "_active": true, "_components": [ { - "__id__": 259 + "__id__": 267 } ], "_prefab": null, @@ -12298,7 +12686,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 258 + "__id__": 266 }, "_enabled": true, "_materials": [ @@ -12332,13 +12720,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 255 + "__id__": 263 }, "_children": [], "_active": true, "_components": [ { - "__id__": 261 + "__id__": 269 } ], "_prefab": null, @@ -12394,7 +12782,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 260 + "__id__": 268 }, "_enabled": true, "_materials": [ @@ -12428,13 +12816,13 @@ "_name": "coins0", "_objFlags": 0, "_parent": { - "__id__": 255 + "__id__": 263 }, "_children": [], "_active": true, "_components": [ { - "__id__": 263 + "__id__": 271 } ], "_prefab": null, @@ -12490,7 +12878,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 262 + "__id__": 270 }, "_enabled": true, "_materials": [ @@ -12524,13 +12912,13 @@ "_name": "coins", "_objFlags": 0, "_parent": { - "__id__": 230 + "__id__": 238 }, "_children": [], "_active": true, "_components": [ { - "__id__": 265 + "__id__": 273 } ], "_prefab": null, @@ -12586,7 +12974,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 264 + "__id__": 272 }, "_enabled": true, "_materials": [ @@ -12620,7 +13008,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 230 + "__id__": 238 }, "_enabled": true, "_materials": [ @@ -12652,7 +13040,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 230 + "__id__": 238 }, "_enabled": true, "_normalMaterial": null, @@ -12661,7 +13049,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 268 + "__id__": 276 } ], "_N$interactable": true, @@ -12717,7 +13105,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 230 + "__id__": 238 }, "_id": "d9X6reFQ5ElIF/oEEoTwvB" }, @@ -12736,20 +13124,20 @@ "_name": "homeBtn", "_objFlags": 0, "_parent": { - "__id__": 203 + "__id__": 211 }, "_children": [ { - "__id__": 270 + "__id__": 278 } ], "_active": true, "_components": [ { - "__id__": 272 + "__id__": 280 }, { - "__id__": 273 + "__id__": 281 } ], "_prefab": null, @@ -12805,13 +13193,13 @@ "_name": "btn_zi_xhongshi", "_objFlags": 0, "_parent": { - "__id__": 269 + "__id__": 277 }, "_children": [], "_active": true, "_components": [ { - "__id__": 271 + "__id__": 279 } ], "_prefab": null, @@ -12867,7 +13255,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 270 + "__id__": 278 }, "_enabled": true, "_materials": [ @@ -12901,7 +13289,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 269 + "__id__": 277 }, "_enabled": true, "_materials": [ @@ -12933,7 +13321,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 269 + "__id__": 277 }, "_enabled": true, "_normalMaterial": null, @@ -12942,7 +13330,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 274 + "__id__": 282 } ], "_N$interactable": true, @@ -12998,7 +13386,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 269 + "__id__": 277 }, "_id": "48mz2WOYxOmpmmNFGfPFpu" }, @@ -13017,23 +13405,23 @@ "_name": "Boom", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [ { - "__id__": 276 + "__id__": 284 }, { - "__id__": 278 - }, - { - "__id__": 280 + "__id__": 286 }, { "__id__": 288 }, { - "__id__": 294 + "__id__": 296 + }, + { + "__id__": 302 } ], "_active": false, @@ -13091,13 +13479,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 275 + "__id__": 283 }, "_children": [], "_active": true, "_components": [ { - "__id__": 277 + "__id__": 285 } ], "_prefab": null, @@ -13153,7 +13541,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 276 + "__id__": 284 }, "_enabled": true, "_materials": [ @@ -13187,13 +13575,13 @@ "_name": "boom_show", "_objFlags": 0, "_parent": { - "__id__": 275 + "__id__": 283 }, "_children": [], "_active": true, "_components": [ { - "__id__": 279 + "__id__": 287 } ], "_prefab": null, @@ -13249,7 +13637,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 278 + "__id__": 286 }, "_enabled": true, "_materials": [ @@ -13283,23 +13671,23 @@ "_name": "boomBtn", "_objFlags": 0, "_parent": { - "__id__": 275 + "__id__": 283 }, "_children": [ { - "__id__": 281 + "__id__": 289 }, { - "__id__": 283 + "__id__": 291 } ], "_active": false, "_components": [ { - "__id__": 285 + "__id__": 293 }, { - "__id__": 286 + "__id__": 294 } ], "_prefab": null, @@ -13355,13 +13743,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 280 + "__id__": 288 }, "_children": [], "_active": true, "_components": [ { - "__id__": 282 + "__id__": 290 } ], "_prefab": null, @@ -13417,7 +13805,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 281 + "__id__": 289 }, "_enabled": true, "_materials": [ @@ -13451,13 +13839,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 280 + "__id__": 288 }, "_children": [], "_active": true, "_components": [ { - "__id__": 284 + "__id__": 292 } ], "_prefab": null, @@ -13513,7 +13901,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 283 + "__id__": 291 }, "_enabled": true, "_materials": [ @@ -13547,7 +13935,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 280 + "__id__": 288 }, "_enabled": true, "_materials": [ @@ -13581,7 +13969,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 280 + "__id__": 288 }, "_enabled": true, "_normalMaterial": null, @@ -13590,7 +13978,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 287 + "__id__": 295 } ], "_N$interactable": true, @@ -13646,7 +14034,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 280 + "__id__": 288 }, "_id": "fdZzVHD4hNAIg80rQMiVrL" }, @@ -13663,20 +14051,20 @@ "_name": "timeBtn", "_objFlags": 0, "_parent": { - "__id__": 275 + "__id__": 283 }, "_children": [ { - "__id__": 289 + "__id__": 297 } ], "_active": true, "_components": [ { - "__id__": 291 + "__id__": 299 }, { - "__id__": 292 + "__id__": 300 } ], "_prefab": null, @@ -13732,13 +14120,13 @@ "_name": "btn_zi_xhongshi", "_objFlags": 0, "_parent": { - "__id__": 288 + "__id__": 296 }, "_children": [], "_active": true, "_components": [ { - "__id__": 290 + "__id__": 298 } ], "_prefab": null, @@ -13794,7 +14182,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 289 + "__id__": 297 }, "_enabled": true, "_materials": [ @@ -13828,7 +14216,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 288 + "__id__": 296 }, "_enabled": true, "_materials": [ @@ -13860,7 +14248,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 288 + "__id__": 296 }, "_enabled": true, "_normalMaterial": null, @@ -13869,7 +14257,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 293 + "__id__": 301 } ], "_N$interactable": true, @@ -13925,7 +14313,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 288 + "__id__": 296 }, "_id": "55yv+R8WZJC6lx8Nc3Ql1k" }, @@ -13944,13 +14332,13 @@ "_name": "result_title4", "_objFlags": 0, "_parent": { - "__id__": 275 + "__id__": 283 }, "_children": [], "_active": true, "_components": [ { - "__id__": 295 + "__id__": 303 } ], "_prefab": null, @@ -14006,7 +14394,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 294 + "__id__": 302 }, "_enabled": true, "_materials": [ @@ -14040,20 +14428,20 @@ "_name": "Lock", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [ { - "__id__": 297 + "__id__": 305 }, { - "__id__": 299 + "__id__": 307 }, { - "__id__": 301 + "__id__": 309 }, { - "__id__": 303 + "__id__": 311 } ], "_active": false, @@ -14111,13 +14499,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 296 + "__id__": 304 }, "_children": [], "_active": true, "_components": [ { - "__id__": 298 + "__id__": 306 } ], "_prefab": null, @@ -14173,7 +14561,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 297 + "__id__": 305 }, "_enabled": true, "_materials": [ @@ -14207,13 +14595,13 @@ "_name": "label", "_objFlags": 0, "_parent": { - "__id__": 296 + "__id__": 304 }, "_children": [], "_active": true, "_components": [ { - "__id__": 300 + "__id__": 308 } ], "_prefab": null, @@ -14269,7 +14657,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 299 + "__id__": 307 }, "_enabled": true, "_materials": [ @@ -14302,13 +14690,13 @@ "_name": "boom_show", "_objFlags": 0, "_parent": { - "__id__": 296 + "__id__": 304 }, "_children": [], "_active": true, "_components": [ { - "__id__": 302 + "__id__": 310 } ], "_prefab": null, @@ -14364,7 +14752,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 301 + "__id__": 309 }, "_enabled": false, "_materials": [ @@ -14398,35 +14786,35 @@ "_name": "lockBtn", "_objFlags": 0, "_parent": { - "__id__": 296 + "__id__": 304 }, "_children": [ - { - "__id__": 304 - }, - { - "__id__": 306 - }, - { - "__id__": 308 - }, - { - "__id__": 310 - }, { "__id__": 312 }, { "__id__": 314 + }, + { + "__id__": 316 + }, + { + "__id__": 318 + }, + { + "__id__": 320 + }, + { + "__id__": 322 } ], "_active": true, "_components": [ { - "__id__": 316 + "__id__": 324 }, { - "__id__": 317 + "__id__": 325 } ], "_prefab": null, @@ -14482,13 +14870,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": true, "_components": [ { - "__id__": 305 + "__id__": 313 } ], "_prefab": null, @@ -14544,7 +14932,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 304 + "__id__": 312 }, "_enabled": true, "_materials": [ @@ -14578,13 +14966,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": true, "_components": [ { - "__id__": 307 + "__id__": 315 } ], "_prefab": null, @@ -14640,7 +15028,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 306 + "__id__": 314 }, "_enabled": true, "_materials": [ @@ -14674,13 +15062,13 @@ "_name": "number2", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": true, "_components": [ { - "__id__": 309 + "__id__": 317 } ], "_prefab": null, @@ -14736,7 +15124,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 308 + "__id__": 316 }, "_enabled": true, "_materials": [ @@ -14770,13 +15158,13 @@ "_name": "number1", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": false, "_components": [ { - "__id__": 311 + "__id__": 319 } ], "_prefab": null, @@ -14832,7 +15220,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 310 + "__id__": 318 }, "_enabled": true, "_materials": [ @@ -14866,13 +15254,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": true, "_components": [ { - "__id__": 313 + "__id__": 321 } ], "_prefab": null, @@ -14928,7 +15316,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 312 + "__id__": 320 }, "_enabled": true, "_materials": [ @@ -14962,13 +15350,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 303 + "__id__": 311 }, "_children": [], "_active": true, "_components": [ { - "__id__": 315 + "__id__": 323 } ], "_prefab": null, @@ -15024,7 +15412,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 314 + "__id__": 322 }, "_enabled": true, "_materials": [ @@ -15058,7 +15446,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 303 + "__id__": 311 }, "_enabled": true, "_materials": [ @@ -15092,7 +15480,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 303 + "__id__": 311 }, "_enabled": true, "_normalMaterial": null, @@ -15101,7 +15489,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 318 + "__id__": 326 } ], "_N$interactable": true, @@ -15157,7 +15545,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 303 + "__id__": 311 }, "_id": "655dVf4UVDOrfIwT5AEPmn" }, @@ -15174,23 +15562,23 @@ "_name": "Health", "_objFlags": 0, "_parent": { - "__id__": 196 + "__id__": 204 }, "_children": [ - { - "__id__": 320 - }, - { - "__id__": 322 - }, { "__id__": 328 }, { - "__id__": 332 + "__id__": 330 }, { - "__id__": 338 + "__id__": 336 + }, + { + "__id__": 340 + }, + { + "__id__": 346 } ], "_active": false, @@ -15248,13 +15636,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 319 + "__id__": 327 }, "_children": [], "_active": true, "_components": [ { - "__id__": 321 + "__id__": 329 } ], "_prefab": null, @@ -15310,7 +15698,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 320 + "__id__": 328 }, "_enabled": true, "_materials": [ @@ -15344,20 +15732,20 @@ "_name": "boom_show", "_objFlags": 0, "_parent": { - "__id__": 319 + "__id__": 327 }, "_children": [ { - "__id__": 323 + "__id__": 331 }, { - "__id__": 325 + "__id__": 333 } ], "_active": true, "_components": [ { - "__id__": 327 + "__id__": 335 } ], "_prefab": null, @@ -15413,13 +15801,13 @@ "_name": "hp_-", "_objFlags": 0, "_parent": { - "__id__": 322 + "__id__": 330 }, "_children": [], "_active": true, "_components": [ { - "__id__": 324 + "__id__": 332 } ], "_prefab": null, @@ -15475,7 +15863,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 323 + "__id__": 331 }, "_enabled": true, "_materials": [ @@ -15509,13 +15897,13 @@ "_name": "hp_1", "_objFlags": 0, "_parent": { - "__id__": 322 + "__id__": 330 }, "_children": [], "_active": true, "_components": [ { - "__id__": 326 + "__id__": 334 } ], "_prefab": null, @@ -15571,7 +15959,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 325 + "__id__": 333 }, "_enabled": true, "_materials": [ @@ -15605,7 +15993,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 322 + "__id__": 330 }, "_enabled": true, "_materials": [ @@ -15639,16 +16027,16 @@ "_name": "homeBtn", "_objFlags": 0, "_parent": { - "__id__": 319 + "__id__": 327 }, "_children": [], "_active": true, "_components": [ { - "__id__": 329 + "__id__": 337 }, { - "__id__": 330 + "__id__": 338 } ], "_prefab": null, @@ -15704,7 +16092,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 328 + "__id__": 336 }, "_enabled": true, "_materials": [ @@ -15738,7 +16126,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 328 + "__id__": 336 }, "_enabled": true, "_normalMaterial": null, @@ -15747,7 +16135,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 331 + "__id__": 339 } ], "_N$interactable": true, @@ -15803,7 +16191,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 328 + "__id__": 336 }, "_id": "e6+nQbfBJDk5i7aunx3eFh" }, @@ -15822,20 +16210,20 @@ "_name": "timeBtn", "_objFlags": 0, "_parent": { - "__id__": 319 + "__id__": 327 }, "_children": [ { - "__id__": 333 + "__id__": 341 } ], "_active": true, "_components": [ { - "__id__": 335 + "__id__": 343 }, { - "__id__": 336 + "__id__": 344 } ], "_prefab": null, @@ -15891,13 +16279,13 @@ "_name": "btn_zi_xhongshi", "_objFlags": 0, "_parent": { - "__id__": 332 + "__id__": 340 }, "_children": [], "_active": true, "_components": [ { - "__id__": 334 + "__id__": 342 } ], "_prefab": null, @@ -15953,7 +16341,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 333 + "__id__": 341 }, "_enabled": true, "_materials": [ @@ -15987,7 +16375,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 332 + "__id__": 340 }, "_enabled": true, "_materials": [ @@ -16019,7 +16407,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 332 + "__id__": 340 }, "_enabled": true, "_normalMaterial": null, @@ -16028,7 +16416,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 337 + "__id__": 345 } ], "_N$interactable": true, @@ -16084,7 +16472,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 332 + "__id__": 340 }, "_id": "bbSZLwLOdIJJ624BuB24QD" }, @@ -16103,13 +16491,13 @@ "_name": "result_title4", "_objFlags": 0, "_parent": { - "__id__": 319 + "__id__": 327 }, "_children": [], "_active": true, "_components": [ { - "__id__": 339 + "__id__": 347 } ], "_prefab": null, @@ -16165,7 +16553,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 338 + "__id__": 346 }, "_enabled": true, "_materials": [ @@ -16199,7 +16587,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 196 + "__id__": 204 }, "_enabled": true, "alignMode": 1, @@ -16257,22 +16645,13 @@ }, "_children": [ { - "__id__": 343 + "__id__": 351 }, { - "__id__": 346 + "__id__": 354 }, { - "__id__": 348 - }, - { - "__id__": 355 - }, - { - "__id__": 357 - }, - { - "__id__": 361 + "__id__": 356 }, { "__id__": 363 @@ -16280,9 +16659,6 @@ { "__id__": 365 }, - { - "__id__": 367 - }, { "__id__": 369 }, @@ -16292,9 +16668,15 @@ { "__id__": 373 }, + { + "__id__": 375 + }, { "__id__": 377 }, + { + "__id__": 379 + }, { "__id__": 381 }, @@ -16302,16 +16684,22 @@ "__id__": 385 }, { - "__id__": 387 + "__id__": 389 }, { - "__id__": 389 + "__id__": 393 + }, + { + "__id__": 395 + }, + { + "__id__": 397 } ], "_active": false, "_components": [ { - "__id__": 391 + "__id__": 399 } ], "_prefab": null, @@ -16367,16 +16755,16 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 344 + "__id__": 352 }, { - "__id__": 345 + "__id__": 353 } ], "_prefab": null, @@ -16432,7 +16820,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 343 + "__id__": 351 }, "_enabled": true, "_materials": [ @@ -16464,7 +16852,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 343 + "__id__": 351 }, "_enabled": true, "_id": "081I6vq85Jwqkph7MYgiJK" @@ -16474,13 +16862,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 347 + "__id__": 355 } ], "_prefab": null, @@ -16536,7 +16924,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 346 + "__id__": 354 }, "_enabled": true, "_materials": [ @@ -16568,23 +16956,23 @@ "_name": "btn", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [ { - "__id__": 349 + "__id__": 357 } ], "_active": true, "_components": [ { - "__id__": 351 + "__id__": 359 }, { - "__id__": 352 + "__id__": 360 }, { - "__id__": 354 + "__id__": 362 } ], "_prefab": null, @@ -16640,13 +17028,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 348 + "__id__": 356 }, "_children": [], "_active": true, "_components": [ { - "__id__": 350 + "__id__": 358 } ], "_prefab": null, @@ -16702,7 +17090,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 349 + "__id__": 357 }, "_enabled": true, "_materials": [ @@ -16736,7 +17124,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 348 + "__id__": 356 }, "_enabled": true, "_materials": [ @@ -16770,7 +17158,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 348 + "__id__": 356 }, "_enabled": true, "_normalMaterial": null, @@ -16779,7 +17167,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 353 + "__id__": 361 } ], "_N$interactable": true, @@ -16835,7 +17223,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 348 + "__id__": 356 }, "_id": "10Gq5GdVNFoaGKYCbUkdh0" }, @@ -16854,7 +17242,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 348 + "__id__": 356 }, "_enabled": true, "_id": "48L+wrOmdFHpjlTvLGv0eT" @@ -16864,13 +17252,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 356 + "__id__": 364 } ], "_prefab": null, @@ -16926,7 +17314,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 355 + "__id__": 363 }, "_enabled": true, "_materials": [ @@ -16960,16 +17348,16 @@ "_name": "closeBtn", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 358 + "__id__": 366 }, { - "__id__": 359 + "__id__": 367 } ], "_prefab": null, @@ -17025,7 +17413,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 357 + "__id__": 365 }, "_enabled": true, "_materials": [ @@ -17059,7 +17447,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 357 + "__id__": 365 }, "_enabled": true, "_normalMaterial": null, @@ -17068,7 +17456,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 360 + "__id__": 368 } ], "_N$interactable": true, @@ -17124,7 +17512,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 357 + "__id__": 365 }, "_id": "9cyVET3cdKsYjhCs6UcCZp" }, @@ -17143,13 +17531,13 @@ "_name": "musicOpen", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 362 + "__id__": 370 } ], "_prefab": null, @@ -17205,7 +17593,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 361 + "__id__": 369 }, "_enabled": true, "_materials": [ @@ -17239,13 +17627,13 @@ "_name": "effectOpen", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 364 + "__id__": 372 } ], "_prefab": null, @@ -17301,7 +17689,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 363 + "__id__": 371 }, "_enabled": true, "_materials": [ @@ -17335,13 +17723,13 @@ "_name": "vibrateOpen", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 366 + "__id__": 374 } ], "_prefab": null, @@ -17397,7 +17785,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 365 + "__id__": 373 }, "_enabled": true, "_materials": [ @@ -17431,13 +17819,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 368 + "__id__": 376 } ], "_prefab": null, @@ -17493,7 +17881,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 367 + "__id__": 375 }, "_enabled": true, "_materials": [ @@ -17527,13 +17915,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 370 + "__id__": 378 } ], "_prefab": null, @@ -17589,7 +17977,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 369 + "__id__": 377 }, "_enabled": true, "_materials": [ @@ -17623,13 +18011,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 372 + "__id__": 380 } ], "_prefab": null, @@ -17685,7 +18073,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 371 + "__id__": 379 }, "_enabled": true, "_materials": [ @@ -17719,16 +18107,16 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 374 + "__id__": 382 }, { - "__id__": 375 + "__id__": 383 } ], "_prefab": null, @@ -17779,372 +18167,6 @@ "groupIndex": 0, "_id": "0emiMlo39FNJtEsFI9D5v4" }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 373 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "a688098b-eb7a-4f82-b737-8cd50c9f6d8c" - }, - "_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": "e8fZCwg3hM77wGmFJ8O1mI" - }, - { - "__type__": "cc.Button", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 373 - }, - "_enabled": true, - "_normalMaterial": null, - "_grayMaterial": null, - "duration": 0.1, - "zoomScale": 1.2, - "clickEvents": [ - { - "__id__": 376 - } - ], - "_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__": 373 - }, - "_id": "f5jlj3QZFNUoLmIDeOTDNk" - }, - { - "__type__": "cc.ClickEvent", - "target": { - "__id__": 342 - }, - "component": "", - "_componentId": "aca4aut33NCvIC0yg3JmY0h", - "handler": "clickMusic", - "customEventData": "" - }, - { - "__type__": "cc.Node", - "_name": "bg", - "_objFlags": 0, - "_parent": { - "__id__": 342 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 378 - }, - { - "__id__": 379 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 264, - "height": 104 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 219.146, - 56.233, - 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": "a3lzmxFAhJYLYWX/fLFCYt" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 377 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "a688098b-eb7a-4f82-b737-8cd50c9f6d8c" - }, - "_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": "a0FWgB1tRLz6tYFfnw1vHU" - }, - { - "__type__": "cc.Button", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 377 - }, - "_enabled": true, - "_normalMaterial": null, - "_grayMaterial": null, - "duration": 0.1, - "zoomScale": 1.2, - "clickEvents": [ - { - "__id__": 380 - } - ], - "_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__": 377 - }, - "_id": "f7PV5tqLpANY2mQ5mNiG8G" - }, - { - "__type__": "cc.ClickEvent", - "target": { - "__id__": 342 - }, - "component": "", - "_componentId": "aca4aut33NCvIC0yg3JmY0h", - "handler": "clickEffect", - "customEventData": "" - }, - { - "__type__": "cc.Node", - "_name": "bg", - "_objFlags": 0, - "_parent": { - "__id__": 342 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 382 - }, - { - "__id__": 383 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 264, - "height": 104 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 219.146, - -182.765, - 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": "7ckpG8hpBFkqVlDj/UQ7KM" - }, { "__type__": "cc.Sprite", "_name": "", @@ -18177,7 +18199,7 @@ "_atlas": { "__uuid__": "d2adfa00-68ea-4d63-97a0-44fca153a2d7" }, - "_id": "f4myl5ioJMyIZT8XzdxYOh" + "_id": "e8fZCwg3hM77wGmFJ8O1mI" }, { "__type__": "cc.Button", @@ -18251,12 +18273,378 @@ "_N$target": { "__id__": 381 }, + "_id": "f5jlj3QZFNUoLmIDeOTDNk" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 350 + }, + "component": "", + "_componentId": "aca4aut33NCvIC0yg3JmY0h", + "handler": "clickMusic", + "customEventData": "" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 350 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 386 + }, + { + "__id__": 387 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 264, + "height": 104 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 219.146, + 56.233, + 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": "a3lzmxFAhJYLYWX/fLFCYt" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 385 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a688098b-eb7a-4f82-b737-8cd50c9f6d8c" + }, + "_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": "a0FWgB1tRLz6tYFfnw1vHU" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 385 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 388 + } + ], + "_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__": 385 + }, + "_id": "f7PV5tqLpANY2mQ5mNiG8G" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 350 + }, + "component": "", + "_componentId": "aca4aut33NCvIC0yg3JmY0h", + "handler": "clickEffect", + "customEventData": "" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 350 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 390 + }, + { + "__id__": 391 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 264, + "height": 104 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 219.146, + -182.765, + 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": "7ckpG8hpBFkqVlDj/UQ7KM" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 389 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a688098b-eb7a-4f82-b737-8cd50c9f6d8c" + }, + "_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": "f4myl5ioJMyIZT8XzdxYOh" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 389 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 392 + } + ], + "_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__": 389 + }, "_id": "f9Y6q5sbpGXrDTpVBgbvWY" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 342 + "__id__": 350 }, "component": "", "_componentId": "aca4aut33NCvIC0yg3JmY0h", @@ -18268,13 +18656,13 @@ "_name": "music", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 386 + "__id__": 394 } ], "_prefab": null, @@ -18330,7 +18718,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 385 + "__id__": 393 }, "_enabled": true, "_materials": [ @@ -18364,13 +18752,13 @@ "_name": "effct", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 388 + "__id__": 396 } ], "_prefab": null, @@ -18426,7 +18814,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 387 + "__id__": 395 }, "_enabled": true, "_materials": [ @@ -18460,13 +18848,13 @@ "_name": "vibrate", "_objFlags": 0, "_parent": { - "__id__": 342 + "__id__": 350 }, "_children": [], "_active": true, "_components": [ { - "__id__": 390 + "__id__": 398 } ], "_prefab": null, @@ -18522,7 +18910,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 389 + "__id__": 397 }, "_enabled": true, "_materials": [ @@ -18556,17 +18944,17 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 342 + "__id__": 350 }, "_enabled": true, "music": { - "__id__": 385 + "__id__": 393 }, "effect": { - "__id__": 387 + "__id__": 395 }, "vibrate": { - "__id__": 389 + "__id__": 397 }, "open": { "__uuid__": "562063eb-13eb-498c-8e63-d24e8c32d078" @@ -18587,10 +18975,10 @@ "_active": false, "_components": [ { - "__id__": 393 + "__id__": 401 }, { - "__id__": 394 + "__id__": 402 } ], "_prefab": null, @@ -18646,7 +19034,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 392 + "__id__": 400 }, "_enabled": true, "_materials": [ @@ -18688,7 +19076,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 392 + "__id__": 400 }, "_enabled": false, "_id": "00qpMLeBFNhYRX9r3QZvyP" diff --git a/temp/BackupAssets/assets/Scene/HomeScene.fire b/temp/BackupAssets/assets/Scene/HomeScene.fire index 92904c6..bad17b7 100644 --- a/temp/BackupAssets/assets/Scene/HomeScene.fire +++ b/temp/BackupAssets/assets/Scene/HomeScene.fire @@ -75,31 +75,31 @@ "__id__": 5 }, { - "__id__": 84 + "__id__": 115 }, { - "__id__": 128 + "__id__": 159 }, { - "__id__": 146 + "__id__": 177 }, { - "__id__": 166 + "__id__": 197 }, { - "__id__": 219 + "__id__": 250 } ], "_active": true, "_components": [ { - "__id__": 221 + "__id__": 252 }, { - "__id__": 222 + "__id__": 253 }, { - "__id__": 223 + "__id__": 254 } ], "_prefab": null, @@ -273,12 +273,18 @@ }, { "__id__": 78 + }, + { + "__id__": 101 + }, + { + "__id__": 106 } ], "_active": true, "_components": [ { - "__id__": 83 + "__id__": 114 } ], "_prefab": null, @@ -3733,7 +3739,7 @@ }, { "__type__": "cc.Node", - "_name": "shezhiBtn", + "_name": "tiaodik", "_objFlags": 0, "_parent": { "__id__": 5 @@ -3741,12 +3747,1232 @@ "_children": [ { "__id__": 79 + }, + { + "__id__": 81 + }, + { + "__id__": 87 + }, + { + "__id__": 93 } ], "_active": true, "_components": [ { - "__id__": 81 + "__id__": 99 + }, + { + "__id__": 100 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 154, + "height": 598 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 409.721, + -250.086, + 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": "6dqgv+aKdPoakjPzpvDNA5" + }, + { + "__type__": "cc.Node", + "_name": "tiaodik", + "_objFlags": 0, + "_parent": { + "__id__": 78 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 80 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 154, + "height": 598 + }, + "_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": "38J+7t9XZDb4WIhWVq750i" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 79 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "abe182b3-b936-4f20-ba7c-8d2456d35c89" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "86L4gO+JlM/bf6mEXs44/n" + }, + { + "__type__": "cc.Node", + "_name": "shengyin", + "_objFlags": 0, + "_parent": { + "__id__": 78 + }, + "_children": [ + { + "__id__": 82 + }, + { + "__id__": 84 + } + ], + "_active": true, + "_components": [ + { + "__id__": 86 + } + ], + "_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, + 213, + 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": "01N1oAxMtFlatBhgv2WzYs" + }, + { + "__type__": "cc.Node", + "_name": "闊充箰00", + "_objFlags": 0, + "_parent": { + "__id__": 81 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 83 + } + ], + "_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": "61RfAR37dGI5zVtfcXavG7" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 82 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "341042f4-0224-41f0-a6a3-91e723dbdce1" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "453TPzj9lFAJfI67H3x3FM" + }, + { + "__type__": "cc.Node", + "_name": "闊充箰01", + "_objFlags": 0, + "_parent": { + "__id__": 81 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 85 + } + ], + "_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": "53fDxKBwJMSbGuFjwFMZhh" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 84 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "e6f3c660-cfa7-4368-b36d-609458c5678b" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "a9hNzWp4xAqImydzVwg0GG" + }, + { + "__type__": "cc.Toggle", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 81 + }, + "_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__": 81 + }, + "_N$isChecked": false, + "toggleGroup": null, + "checkMark": { + "__id__": 85 + }, + "checkEvents": [], + "_id": "c09/yHVMJDoam/VbhBXxcH" + }, + { + "__type__": "cc.Node", + "_name": "yinyue", + "_objFlags": 0, + "_parent": { + "__id__": 78 + }, + "_children": [ + { + "__id__": 88 + }, + { + "__id__": 90 + } + ], + "_active": true, + "_components": [ + { + "__id__": 92 + } + ], + "_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, + 16, + 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": "71cNsfALdAbJ6TMbqIMEDs" + }, + { + "__type__": "cc.Node", + "_name": "闊虫晥00", + "_objFlags": 0, + "_parent": { + "__id__": 87 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 89 + } + ], + "_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__": 88 + }, + "_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__": 87 + }, + "_children": [], + "_active": false, + "_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": "2aCrXDpFlK1Y1LFC/H773f" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 90 + }, + "_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__": 87 + }, + "_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__": 87 + }, + "_N$isChecked": false, + "toggleGroup": null, + "checkMark": { + "__id__": 91 + }, + "checkEvents": [], + "_id": "b9cAW4AvdAXZdGsjzb8ZZf" + }, + { + "__type__": "cc.Node", + "_name": "zhendong", + "_objFlags": 0, + "_parent": { + "__id__": 78 + }, + "_children": [ + { + "__id__": 94 + }, + { + "__id__": 96 + } + ], + "_active": true, + "_components": [ + { + "__id__": 98 + } + ], + "_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__": 93 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 95 + } + ], + "_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__": 94 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "cadd896f-dd2c-43fa-8788-334576768186" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "fb9In1Ki5NRJoR+ASxwH6D" + }, + { + "__type__": "cc.Node", + "_name": "闇囧姩01", + "_objFlags": 0, + "_parent": { + "__id__": 93 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 97 + } + ], + "_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__": 96 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "6f871c8f-5b0f-4063-a6f6-290947cc7e44" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "b4FcAyEHpGjIYB1ndEaO5N" + }, + { + "__type__": "cc.Toggle", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 93 + }, + "_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__": 93 + }, + "_N$isChecked": false, + "toggleGroup": null, + "checkMark": { + "__id__": 97 + }, + "checkEvents": [], + "_id": "f9H3N/MqVI0ZJ6D1GMBA4u" + }, + { + "__type__": "cc.Layout", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 78 + }, + "_enabled": false, + "_layoutSize": { + "__type__": "cc.Size", + "width": 300, + "height": 200 + }, + "_resize": 0, + "_N$layoutType": 2, + "_N$cellSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_N$startAxis": 0, + "_N$paddingLeft": 0, + "_N$paddingRight": 0, + "_N$paddingTop": 25, + "_N$paddingBottom": 15, + "_N$spacingX": 0, + "_N$spacingY": 75, + "_N$verticalDirection": 1, + "_N$horizontalDirection": 0, + "_N$affectedByScale": false, + "_id": "d74wutOahLy60VTMTqn6zt" + }, + { + "__type__": "cc.Animation", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 78 + }, + "_enabled": true, + "_defaultClip": null, + "_clips": [ + { + "__uuid__": "50c01dd8-431f-43cc-820e-abb2a859d031" + } + ], + "playOnLoad": false, + "_id": "06zhlax2BIgq2BGFohNQeX" + }, + { + "__type__": "cc.Node", + "_name": "shezhiBtn", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [ + { + "__id__": 102 + } + ], + "_active": true, + "_components": [ + { + "__id__": 104 } ], "_prefab": null, @@ -3802,13 +5028,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 78 + "__id__": 101 }, "_children": [], "_active": true, "_components": [ { - "__id__": 80 + "__id__": 103 } ], "_prefab": null, @@ -3864,7 +5090,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 79 + "__id__": 102 }, "_enabled": true, "_materials": [ @@ -3898,7 +5124,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 78 + "__id__": 101 }, "_enabled": true, "_normalMaterial": null, @@ -3907,7 +5133,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 82 + "__id__": 105 } ], "_N$interactable": true, @@ -3963,7 +5189,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 78 + "__id__": 101 }, "_id": "02bgX7BW9KmbZ6ke3vsVWy" }, @@ -3977,6 +5203,391 @@ "handler": "openPause", "customEventData": "" }, + { + "__type__": "cc.Node", + "_name": "shop", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [ + { + "__id__": 107 + } + ], + "_active": true, + "_components": [ + { + "__id__": 112 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -400, + -650, + 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": "7fuhipepBHYpfdIqaFxgVg" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 512, + "_parent": { + "__id__": 106 + }, + "_children": [ + { + "__id__": 108 + } + ], + "_active": true, + "_components": [ + { + "__id__": 110 + }, + { + "__id__": 111 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_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, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "531BJn26hM+aG5nJ2Lj7hb" + }, + { + "__type__": "cc.Node", + "_name": "Label", + "_objFlags": 512, + "_parent": { + "__id__": 107 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 109 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_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": "a0MiAVCvxPD7RxY7rmqhdV" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 108 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "shop", + "_N$string": "shop", + "_fontSize": 20, + "_lineHeight": 40, + "_enableWrapText": false, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 1, + "_N$cacheMode": 1, + "_id": "73G/inpnlJNqatqG+8+q4q" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 107 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "a5vX0Ko7VLM4aBSZIAc+aU" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 107 + }, + "_enabled": true, + "alignMode": 0, + "_target": null, + "_alignFlags": 45, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 100, + "_originalHeight": 40, + "_id": "84zJXNFs5AU54kxE1JCeN3" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 106 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 113 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 230, + "g": 230, + "b": 230, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "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": 120, + "g": 120, + "b": 120, + "a": 200 + }, + "_N$normalSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "_N$hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$disabledSprite": { + "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e" + }, + "_N$target": { + "__id__": 107 + }, + "_id": "88UX+E3n9ImZvBg4tRwHFR" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 2 + }, + "component": "", + "_componentId": "1dc93b4fehOrpGgTkihBH4g", + "handler": "openShop", + "customEventData": "" + }, { "__type__": "cc.Widget", "_name": "", @@ -4013,25 +5624,25 @@ }, "_children": [ { - "__id__": 85 + "__id__": 116 }, { - "__id__": 89 + "__id__": 120 }, { - "__id__": 91 + "__id__": 122 }, { - "__id__": 119 + "__id__": 150 }, { - "__id__": 123 + "__id__": 154 } ], "_active": false, "_components": [ { - "__id__": 127 + "__id__": 158 } ], "_prefab": null, @@ -4087,19 +5698,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 84 + "__id__": 115 }, "_children": [], "_active": true, "_components": [ { - "__id__": 86 + "__id__": 117 }, { - "__id__": 87 + "__id__": 118 }, { - "__id__": 88 + "__id__": 119 } ], "_prefab": null, @@ -4155,7 +5766,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 85 + "__id__": 116 }, "_enabled": true, "_materials": [ @@ -4187,7 +5798,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 85 + "__id__": 116 }, "_enabled": true, "alignMode": 1, @@ -4214,7 +5825,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 85 + "__id__": 116 }, "_enabled": true, "_id": "dfDCcIpbVJQaLDWZH9iaPD" @@ -4224,13 +5835,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 84 + "__id__": 115 }, "_children": [], "_active": false, "_components": [ { - "__id__": 90 + "__id__": 121 } ], "_prefab": null, @@ -4286,7 +5897,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 89 + "__id__": 120 }, "_enabled": true, "_materials": [ @@ -4316,47 +5927,47 @@ "_name": "rank", "_objFlags": 0, "_parent": { - "__id__": 84 + "__id__": 115 }, "_children": [ { - "__id__": 92 + "__id__": 123 }, { - "__id__": 94 + "__id__": 125 }, { - "__id__": 96 + "__id__": 127 }, { - "__id__": 98 + "__id__": 129 }, { - "__id__": 100 + "__id__": 131 }, { - "__id__": 102 + "__id__": 133 }, { - "__id__": 104 + "__id__": 135 }, { - "__id__": 106 + "__id__": 137 }, { - "__id__": 108 + "__id__": 139 }, { - "__id__": 110 + "__id__": 141 }, { - "__id__": 112 + "__id__": 143 } ], "_active": true, "_components": [ { - "__id__": 118 + "__id__": 149 } ], "_prefab": null, @@ -4412,13 +6023,13 @@ "_name": "paihang1_1_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 93 + "__id__": 124 } ], "_prefab": null, @@ -4474,7 +6085,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 92 + "__id__": 123 }, "_enabled": true, "_materials": [ @@ -4504,13 +6115,13 @@ "_name": "paihang1_2_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 95 + "__id__": 126 } ], "_prefab": null, @@ -4566,7 +6177,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 94 + "__id__": 125 }, "_enabled": true, "_materials": [ @@ -4596,13 +6207,13 @@ "_name": "paihang1_3_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 97 + "__id__": 128 } ], "_prefab": null, @@ -4658,7 +6269,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 96 + "__id__": 127 }, "_enabled": true, "_materials": [ @@ -4688,13 +6299,13 @@ "_name": "paihang1_4_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 99 + "__id__": 130 } ], "_prefab": null, @@ -4750,7 +6361,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 98 + "__id__": 129 }, "_enabled": true, "_materials": [ @@ -4780,13 +6391,13 @@ "_name": "paihang1_4_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 101 + "__id__": 132 } ], "_prefab": null, @@ -4842,7 +6453,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 100 + "__id__": 131 }, "_enabled": true, "_materials": [ @@ -4872,13 +6483,13 @@ "_name": "paihang1_4_2", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 103 + "__id__": 134 } ], "_prefab": null, @@ -4934,7 +6545,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 133 }, "_enabled": true, "_materials": [ @@ -4964,13 +6575,13 @@ "_name": "icon", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 105 + "__id__": 136 } ], "_prefab": null, @@ -5026,7 +6637,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 104 + "__id__": 135 }, "_enabled": true, "_materials": [ @@ -5058,13 +6669,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 107 + "__id__": 138 } ], "_prefab": null, @@ -5120,7 +6731,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 106 + "__id__": 137 }, "_enabled": true, "_materials": [ @@ -5153,13 +6764,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 109 + "__id__": 140 } ], "_prefab": null, @@ -5215,7 +6826,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 108 + "__id__": 139 }, "_enabled": true, "_materials": [ @@ -5248,13 +6859,13 @@ "_name": "shuzi3_6", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [], "_active": true, "_components": [ { - "__id__": 111 + "__id__": 142 } ], "_prefab": null, @@ -5310,7 +6921,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 110 + "__id__": 141 }, "_enabled": true, "_materials": [ @@ -5340,20 +6951,20 @@ "_name": "btn", "_objFlags": 0, "_parent": { - "__id__": 91 + "__id__": 122 }, "_children": [ { - "__id__": 113 + "__id__": 144 } ], "_active": true, "_components": [ { - "__id__": 115 + "__id__": 146 }, { - "__id__": 116 + "__id__": 147 } ], "_prefab": null, @@ -5409,13 +7020,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 112 + "__id__": 143 }, "_children": [], "_active": true, "_components": [ { - "__id__": 114 + "__id__": 145 } ], "_prefab": null, @@ -5471,7 +7082,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 113 + "__id__": 144 }, "_enabled": true, "_materials": [ @@ -5505,7 +7116,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 112 + "__id__": 143 }, "_enabled": true, "_materials": [ @@ -5539,7 +7150,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 112 + "__id__": 143 }, "_enabled": true, "_normalMaterial": null, @@ -5548,7 +7159,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 117 + "__id__": 148 } ], "_N$interactable": true, @@ -5604,7 +7215,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 112 + "__id__": 143 }, "_id": "0b4hiJfolDCqERI+qJ8NNt" }, @@ -5621,7 +7232,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 91 + "__id__": 122 }, "_enabled": true, "_materials": [ @@ -5651,17 +7262,17 @@ "_name": "logo", "_objFlags": 0, "_parent": { - "__id__": 84 + "__id__": 115 }, "_children": [ { - "__id__": 120 + "__id__": 151 } ], "_active": false, "_components": [ { - "__id__": 122 + "__id__": 153 } ], "_prefab": null, @@ -5717,13 +7328,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 119 + "__id__": 150 }, "_children": [], "_active": true, "_components": [ { - "__id__": 121 + "__id__": 152 } ], "_prefab": null, @@ -5779,7 +7390,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 120 + "__id__": 151 }, "_enabled": true, "_materials": [ @@ -5812,7 +7423,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 119 + "__id__": 150 }, "_enabled": true, "_materials": [ @@ -5846,16 +7457,16 @@ "_name": "closeBtn", "_objFlags": 0, "_parent": { - "__id__": 84 + "__id__": 115 }, "_children": [], "_active": true, "_components": [ { - "__id__": 124 + "__id__": 155 }, { - "__id__": 125 + "__id__": 156 } ], "_prefab": null, @@ -5911,7 +7522,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 123 + "__id__": 154 }, "_enabled": true, "_materials": [ @@ -5945,7 +7556,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 123 + "__id__": 154 }, "_enabled": true, "_normalMaterial": null, @@ -5954,7 +7565,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 126 + "__id__": 157 } ], "_N$interactable": true, @@ -6010,7 +7621,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 123 + "__id__": 154 }, "_id": "aeOKxuEtVBQ76OAxASWQGP" }, @@ -6029,7 +7640,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 84 + "__id__": 115 }, "_enabled": true, "alignMode": 1, @@ -6060,13 +7671,13 @@ }, "_children": [ { - "__id__": 129 + "__id__": 160 }, { - "__id__": 132 + "__id__": 163 }, { - "__id__": 134 + "__id__": 165 } ], "_active": false, @@ -6124,16 +7735,16 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 128 + "__id__": 159 }, "_children": [], "_active": true, "_components": [ { - "__id__": 130 + "__id__": 161 }, { - "__id__": 131 + "__id__": 162 } ], "_prefab": null, @@ -6189,7 +7800,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 129 + "__id__": 160 }, "_enabled": true, "_materials": [ @@ -6221,7 +7832,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 129 + "__id__": 160 }, "_enabled": true, "_id": "6eAfAN7PxP8LBtlAPfR/Ia" @@ -6231,13 +7842,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 128 + "__id__": 159 }, "_children": [], "_active": false, "_components": [ { - "__id__": 133 + "__id__": 164 } ], "_prefab": null, @@ -6293,7 +7904,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 132 + "__id__": 163 }, "_enabled": true, "_materials": [ @@ -6323,20 +7934,20 @@ "_name": "reward", "_objFlags": 0, "_parent": { - "__id__": 128 + "__id__": 159 }, "_children": [ { - "__id__": 135 + "__id__": 166 }, { - "__id__": 139 + "__id__": 170 } ], "_active": true, "_components": [ { - "__id__": 145 + "__id__": 176 } ], "_prefab": null, @@ -6392,16 +8003,16 @@ "_name": "closeBtn", "_objFlags": 0, "_parent": { - "__id__": 134 + "__id__": 165 }, "_children": [], "_active": true, "_components": [ { - "__id__": 136 + "__id__": 167 }, { - "__id__": 137 + "__id__": 168 } ], "_prefab": null, @@ -6457,7 +8068,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 135 + "__id__": 166 }, "_enabled": true, "_materials": [ @@ -6491,7 +8102,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 135 + "__id__": 166 }, "_enabled": true, "_normalMaterial": null, @@ -6500,7 +8111,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 138 + "__id__": 169 } ], "_N$interactable": true, @@ -6556,7 +8167,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 135 + "__id__": 166 }, "_id": "8697ar7LREtafp+rIsxcSE" }, @@ -6575,20 +8186,20 @@ "_name": "btn", "_objFlags": 0, "_parent": { - "__id__": 134 + "__id__": 165 }, "_children": [ { - "__id__": 140 + "__id__": 171 } ], "_active": true, "_components": [ { - "__id__": 142 + "__id__": 173 }, { - "__id__": 143 + "__id__": 174 } ], "_prefab": null, @@ -6644,13 +8255,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 139 + "__id__": 170 }, "_children": [], "_active": true, "_components": [ { - "__id__": 141 + "__id__": 172 } ], "_prefab": null, @@ -6706,7 +8317,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 140 + "__id__": 171 }, "_enabled": true, "_materials": [ @@ -6740,7 +8351,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 139 + "__id__": 170 }, "_enabled": true, "_materials": [ @@ -6774,7 +8385,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 139 + "__id__": 170 }, "_enabled": true, "_normalMaterial": null, @@ -6783,7 +8394,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 144 + "__id__": 175 } ], "_N$interactable": true, @@ -6839,7 +8450,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 139 + "__id__": 170 }, "_id": "a99do5CqxGB7rnced8tB+I" }, @@ -6856,7 +8467,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 134 + "__id__": 165 }, "_enabled": true, "_materials": [ @@ -6890,25 +8501,25 @@ }, "_children": [ { - "__id__": 147 + "__id__": 178 }, { - "__id__": 151 + "__id__": 182 }, { - "__id__": 153 + "__id__": 184 }, { - "__id__": 155 + "__id__": 186 }, { - "__id__": 159 + "__id__": 190 } ], "_active": false, "_components": [ { - "__id__": 165 + "__id__": 196 } ], "_prefab": null, @@ -6964,19 +8575,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 146 + "__id__": 177 }, "_children": [], "_active": true, "_components": [ { - "__id__": 148 + "__id__": 179 }, { - "__id__": 149 + "__id__": 180 }, { - "__id__": 150 + "__id__": 181 } ], "_prefab": null, @@ -7032,7 +8643,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 147 + "__id__": 178 }, "_enabled": true, "_materials": [ @@ -7064,7 +8675,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 147 + "__id__": 178 }, "_enabled": true, "alignMode": 1, @@ -7091,7 +8702,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 147 + "__id__": 178 }, "_enabled": true, "_id": "d3WO2KgvBHxZSuuuiocs4j" @@ -7101,13 +8712,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 146 + "__id__": 177 }, "_children": [], "_active": true, "_components": [ { - "__id__": 152 + "__id__": 183 } ], "_prefab": null, @@ -7163,7 +8774,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 151 + "__id__": 182 }, "_enabled": true, "_materials": [ @@ -7193,13 +8804,13 @@ "_name": "Stamina", "_objFlags": 0, "_parent": { - "__id__": 146 + "__id__": 177 }, "_children": [], "_active": true, "_components": [ { - "__id__": 154 + "__id__": 185 } ], "_prefab": null, @@ -7255,7 +8866,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 153 + "__id__": 184 }, "_enabled": true, "_materials": [ @@ -7285,16 +8896,16 @@ "_name": "closeBtn", "_objFlags": 0, "_parent": { - "__id__": 146 + "__id__": 177 }, "_children": [], "_active": true, "_components": [ { - "__id__": 156 + "__id__": 187 }, { - "__id__": 157 + "__id__": 188 } ], "_prefab": null, @@ -7350,7 +8961,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 155 + "__id__": 186 }, "_enabled": true, "_materials": [ @@ -7384,7 +8995,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 155 + "__id__": 186 }, "_enabled": true, "_normalMaterial": null, @@ -7393,7 +9004,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 158 + "__id__": 189 } ], "_N$interactable": true, @@ -7449,7 +9060,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 155 + "__id__": 186 }, "_id": "4fx9FNHrVMm7QEtzYiJ4Ca" }, @@ -7468,20 +9079,20 @@ "_name": "btn", "_objFlags": 0, "_parent": { - "__id__": 146 + "__id__": 177 }, "_children": [ { - "__id__": 160 + "__id__": 191 } ], "_active": true, "_components": [ { - "__id__": 162 + "__id__": 193 }, { - "__id__": 163 + "__id__": 194 } ], "_prefab": null, @@ -7537,13 +9148,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 159 + "__id__": 190 }, "_children": [], "_active": true, "_components": [ { - "__id__": 161 + "__id__": 192 } ], "_prefab": null, @@ -7599,7 +9210,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 160 + "__id__": 191 }, "_enabled": true, "_materials": [ @@ -7633,7 +9244,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 159 + "__id__": 190 }, "_enabled": true, "_materials": [ @@ -7667,7 +9278,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 159 + "__id__": 190 }, "_enabled": true, "_normalMaterial": null, @@ -7676,7 +9287,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 164 + "__id__": 195 } ], "_N$interactable": true, @@ -7732,7 +9343,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 159 + "__id__": 190 }, "_id": "6f5W0gZq1NG4kBoigH1HP7" }, @@ -7749,7 +9360,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 146 + "__id__": 177 }, "_enabled": true, "alignMode": 1, @@ -7780,67 +9391,67 @@ }, "_children": [ { - "__id__": 167 + "__id__": 198 }, { - "__id__": 170 + "__id__": 201 }, { - "__id__": 172 + "__id__": 203 }, { - "__id__": 178 + "__id__": 209 }, { - "__id__": 180 + "__id__": 211 }, { - "__id__": 184 + "__id__": 215 }, { - "__id__": 186 + "__id__": 217 }, { - "__id__": 188 + "__id__": 219 }, { - "__id__": 190 + "__id__": 221 }, { - "__id__": 192 + "__id__": 223 }, { - "__id__": 194 + "__id__": 225 }, { - "__id__": 196 + "__id__": 227 }, { - "__id__": 200 + "__id__": 231 }, { - "__id__": 204 + "__id__": 235 }, { - "__id__": 208 + "__id__": 239 }, { - "__id__": 210 + "__id__": 241 }, { - "__id__": 212 + "__id__": 243 }, { - "__id__": 214 + "__id__": 245 }, { - "__id__": 216 + "__id__": 247 } ], "_active": false, "_components": [ { - "__id__": 218 + "__id__": 249 } ], "_prefab": null, @@ -7896,16 +9507,16 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 168 + "__id__": 199 }, { - "__id__": 169 + "__id__": 200 } ], "_prefab": null, @@ -7961,7 +9572,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 167 + "__id__": 198 }, "_enabled": true, "_materials": [ @@ -7993,7 +9604,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 167 + "__id__": 198 }, "_enabled": true, "_id": "22/vLI0+hBZrCrug3svOux" @@ -8003,13 +9614,13 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 171 + "__id__": 202 } ], "_prefab": null, @@ -8065,7 +9676,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 170 + "__id__": 201 }, "_enabled": true, "_materials": [ @@ -8097,20 +9708,20 @@ "_name": "btn", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [ { - "__id__": 173 + "__id__": 204 } ], "_active": true, "_components": [ { - "__id__": 175 + "__id__": 206 }, { - "__id__": 176 + "__id__": 207 } ], "_prefab": null, @@ -8166,13 +9777,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 172 + "__id__": 203 }, "_children": [], "_active": true, "_components": [ { - "__id__": 174 + "__id__": 205 } ], "_prefab": null, @@ -8228,7 +9839,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 173 + "__id__": 204 }, "_enabled": true, "_materials": [ @@ -8262,7 +9873,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 172 + "__id__": 203 }, "_enabled": true, "_materials": [ @@ -8296,7 +9907,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 172 + "__id__": 203 }, "_enabled": true, "_normalMaterial": null, @@ -8305,7 +9916,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 177 + "__id__": 208 } ], "_N$interactable": true, @@ -8361,7 +9972,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 172 + "__id__": 203 }, "_id": "b8Y9x+dpZGKKCgiAzSbF2w" }, @@ -8380,13 +9991,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 179 + "__id__": 210 } ], "_prefab": null, @@ -8442,7 +10053,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 178 + "__id__": 209 }, "_enabled": true, "_materials": [ @@ -8476,16 +10087,16 @@ "_name": "closeBtn", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 181 + "__id__": 212 }, { - "__id__": 182 + "__id__": 213 } ], "_prefab": null, @@ -8541,7 +10152,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 180 + "__id__": 211 }, "_enabled": true, "_materials": [ @@ -8575,7 +10186,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 180 + "__id__": 211 }, "_enabled": true, "_normalMaterial": null, @@ -8584,7 +10195,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 183 + "__id__": 214 } ], "_N$interactable": true, @@ -8640,7 +10251,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 180 + "__id__": 211 }, "_id": "3fEch1YYZH6oMgUJ5+mat/" }, @@ -8659,13 +10270,13 @@ "_name": "musicOpen", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 185 + "__id__": 216 } ], "_prefab": null, @@ -8721,7 +10332,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 184 + "__id__": 215 }, "_enabled": true, "_materials": [ @@ -8755,13 +10366,13 @@ "_name": "effectOpen", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 187 + "__id__": 218 } ], "_prefab": null, @@ -8817,7 +10428,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 186 + "__id__": 217 }, "_enabled": true, "_materials": [ @@ -8851,13 +10462,13 @@ "_name": "vibrateOpen", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 189 + "__id__": 220 } ], "_prefab": null, @@ -8913,7 +10524,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 188 + "__id__": 219 }, "_enabled": true, "_materials": [ @@ -8947,13 +10558,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 191 + "__id__": 222 } ], "_prefab": null, @@ -9009,7 +10620,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 190 + "__id__": 221 }, "_enabled": true, "_materials": [ @@ -9043,13 +10654,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 193 + "__id__": 224 } ], "_prefab": null, @@ -9105,7 +10716,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 192 + "__id__": 223 }, "_enabled": true, "_materials": [ @@ -9139,13 +10750,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 195 + "__id__": 226 } ], "_prefab": null, @@ -9201,7 +10812,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 194 + "__id__": 225 }, "_enabled": true, "_materials": [ @@ -9235,16 +10846,16 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 197 + "__id__": 228 }, { - "__id__": 198 + "__id__": 229 } ], "_prefab": null, @@ -9300,7 +10911,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 196 + "__id__": 227 }, "_enabled": true, "_materials": [ @@ -9334,7 +10945,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 196 + "__id__": 227 }, "_enabled": true, "_normalMaterial": null, @@ -9343,7 +10954,7 @@ "zoomScale": 1.2, "clickEvents": [ { - "__id__": 199 + "__id__": 230 } ], "_N$interactable": true, @@ -9399,14 +11010,14 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 196 + "__id__": 227 }, "_id": "625dakXShD7bgpaU3SIzV2" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 166 + "__id__": 197 }, "component": "", "_componentId": "aca4aut33NCvIC0yg3JmY0h", @@ -9418,16 +11029,16 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 201 + "__id__": 232 }, { - "__id__": 202 + "__id__": 233 } ], "_prefab": null, @@ -9483,7 +11094,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 200 + "__id__": 231 }, "_enabled": true, "_materials": [ @@ -9517,7 +11128,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 200 + "__id__": 231 }, "_enabled": true, "_normalMaterial": null, @@ -9526,7 +11137,7 @@ "zoomScale": 1.2, "clickEvents": [ { - "__id__": 203 + "__id__": 234 } ], "_N$interactable": true, @@ -9582,14 +11193,14 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 200 + "__id__": 231 }, "_id": "72VsvwUtxAD6Hj+ox2n5Ez" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 166 + "__id__": 197 }, "component": "", "_componentId": "aca4aut33NCvIC0yg3JmY0h", @@ -9601,16 +11212,16 @@ "_name": "bg", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 205 + "__id__": 236 }, { - "__id__": 206 + "__id__": 237 } ], "_prefab": null, @@ -9666,7 +11277,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 204 + "__id__": 235 }, "_enabled": true, "_materials": [ @@ -9700,7 +11311,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 204 + "__id__": 235 }, "_enabled": true, "_normalMaterial": null, @@ -9709,7 +11320,7 @@ "zoomScale": 1.2, "clickEvents": [ { - "__id__": 207 + "__id__": 238 } ], "_N$interactable": true, @@ -9765,14 +11376,14 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 204 + "__id__": 235 }, "_id": "efSi0dlVNIXJRT6hEV1IpJ" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 166 + "__id__": 197 }, "component": "", "_componentId": "aca4aut33NCvIC0yg3JmY0h", @@ -9784,13 +11395,13 @@ "_name": "music", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 209 + "__id__": 240 } ], "_prefab": null, @@ -9846,7 +11457,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 208 + "__id__": 239 }, "_enabled": true, "_materials": [ @@ -9880,13 +11491,13 @@ "_name": "effct", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 211 + "__id__": 242 } ], "_prefab": null, @@ -9942,7 +11553,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 210 + "__id__": 241 }, "_enabled": true, "_materials": [ @@ -9976,13 +11587,13 @@ "_name": "vibrate", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 213 + "__id__": 244 } ], "_prefab": null, @@ -10038,7 +11649,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 212 + "__id__": 243 }, "_enabled": true, "_materials": [ @@ -10072,13 +11683,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 215 + "__id__": 246 } ], "_prefab": null, @@ -10134,7 +11745,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 214 + "__id__": 245 }, "_enabled": true, "_materials": [ @@ -10167,13 +11778,13 @@ "_name": "openID", "_objFlags": 0, "_parent": { - "__id__": 166 + "__id__": 197 }, "_children": [], "_active": true, "_components": [ { - "__id__": 217 + "__id__": 248 } ], "_prefab": null, @@ -10229,7 +11840,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 216 + "__id__": 247 }, "_enabled": true, "_materials": [ @@ -10262,17 +11873,17 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 166 + "__id__": 197 }, "_enabled": true, "music": { - "__id__": 208 + "__id__": 239 }, "effect": { - "__id__": 210 + "__id__": 241 }, "vibrate": { - "__id__": 212 + "__id__": 243 }, "open": { "__uuid__": "562063eb-13eb-498c-8e63-d24e8c32d078" @@ -10293,7 +11904,7 @@ "_active": false, "_components": [ { - "__id__": 220 + "__id__": 251 } ], "_prefab": null, @@ -10349,7 +11960,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 219 + "__id__": 250 }, "_enabled": true, "_materials": [ diff --git a/temp/BackupAssets/assets/Scene/New Scene.fire b/temp/BackupAssets/assets/Scene/New Scene.fire new file mode 100644 index 0000000..27a2126 --- /dev/null +++ b/temp/BackupAssets/assets/Scene/New Scene.fire @@ -0,0 +1,585 @@ +[ + { + "__type__": "cc.SceneAsset", + "_name": "", + "_objFlags": 0, + "_native": "", + "scene": { + "__id__": 1 + } + }, + { + "__type__": "cc.Scene", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + } + ], + "_active": true, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "autoReleaseAssets": false, + "_id": "19659ed7-1823-42a9-b8e8-1884c19df817" + }, + { + "__type__": "cc.Node", + "_name": "Canvas", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 3 + }, + { + "__id__": 5 + } + ], + "_active": true, + "_components": [ + { + "__id__": 14 + }, + { + "__id__": 15 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 960, + "height": 640 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 480, + 320, + 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": "a5esZu+45LA5mBpvttspPD" + }, + { + "__type__": "cc.Node", + "_name": "Main Camera", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 4 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 960, + "height": 640 + }, + "_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": "e1WoFrQ79G7r4ZuQE3HlNb" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "_cullingMask": 4294967295, + "_clearFlags": 7, + "_backgroundColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": -1, + "_zoomRatio": 1, + "_targetTexture": null, + "_fov": 60, + "_orthoSize": 10, + "_nearClip": 1, + "_farClip": 4096, + "_ortho": true, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_renderStages": 1, + "_alignWithScreen": true, + "_id": "81GN3uXINKVLeW4+iKSlim" + }, + { + "__type__": "cc.Node", + "_name": "freeze", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 6 + }, + { + "__id__": 9 + } + ], + "_active": true, + "_components": [ + { + "__id__": 11 + }, + { + "__id__": 12 + } + ], + "_prefab": { + "__id__": 13 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 362, + "height": 372 + }, + "_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": "49jqxRUXRAxLDFbbRcou72" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 7 + } + ], + "_prefab": { + "__id__": 8 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 36 + }, + "_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": "eeUUfaX31G+q5appAMitqJ" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "40mhRhU0tLcoWPMyDYKqzK" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 5 + }, + "asset": { + "__uuid__": "5ed13d95-5b93-4407-b770-0dedeb674b0f" + }, + "fileId": "48vFumJApBjb/xUEZIhVH6", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "time", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 10 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -25, + 8, + 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": "d2GpI/cSZNx5Pr2/sDPzho" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 5 + }, + "asset": { + "__uuid__": "5ed13d95-5b93-4407-b770-0dedeb674b0f" + }, + "fileId": "afr7mnXGdMXZMpTDxTmfms", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "2661e9df-d4da-4dcc-ac8d-cb16fcad7ea8" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "8b6fd107-6aa0-4523-8fd3-c0f064524b0c" + }, + "_id": "5dcrLbiJhPCJwgmPSI4pkE" + }, + { + "__type__": "ad8cbbzCohCR5uifssdRTf+", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "freeze": { + "__uuid__": "fff54feb-03db-4d8a-b079-57eedca8a644" + }, + "_id": "a1NSNhhglGsI9I3Fvp6Hmx" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 5 + }, + "asset": { + "__uuid__": "5ed13d95-5b93-4407-b770-0dedeb674b0f" + }, + "fileId": "", + "sync": false + }, + { + "__type__": "cc.Canvas", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_designResolution": { + "__type__": "cc.Size", + "width": 960, + "height": 640 + }, + "_fitWidth": false, + "_fitHeight": true, + "_id": "59Cd0ovbdF4byw5sbjJDx7" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 45, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_id": "29zXboiXFBKoIV4PQ2liTe" + } +] \ No newline at end of file diff --git a/temp/BackupAssets/assets/animation/set.anim b/temp/BackupAssets/assets/animation/set.anim new file mode 100644 index 0000000..76b099a --- /dev/null +++ b/temp/BackupAssets/assets/animation/set.anim @@ -0,0 +1,69 @@ +{ + "__type__": "cc.AnimationClip", + "_name": "set", + "_objFlags": 0, + "_native": "", + "_duration": 0.43333333333333335, + "sample": 60, + "speed": 1, + "wrapMode": 1, + "curveData": { + "paths": { + "shengyin": { + "props": { + "x": [ + { + "frame": 0.11666666666666667, + "value": 210 + }, + { + "frame": 0.23333333333333334, + "value": 49.411764705882334 + }, + { + "frame": 0.43333333333333335, + "value": 0 + } + ] + } + }, + "zhendong": { + "props": { + "x": [ + { + "frame": 0, + "value": 210 + }, + { + "frame": 0.11666666666666667, + "value": 23.333333333333336 + }, + { + "frame": 0.3333333333333333, + "value": 0 + } + ] + } + }, + "yinyue": { + "props": { + "x": [ + { + "frame": 0.06666666666666667, + "value": 210 + }, + { + "frame": 0.18333333333333332, + "value": 83.99999999999999 + }, + { + "frame": 0.38333333333333336, + "value": 0 + } + ] + } + } + } + }, + "events": [] +} \ No newline at end of file diff --git a/temp/BackupAssets/assets/prefab/map/wall.prefab b/temp/BackupAssets/assets/prefab/map/wall.prefab new file mode 100644 index 0000000..c624363 --- /dev/null +++ b/temp/BackupAssets/assets/prefab/map/wall.prefab @@ -0,0 +1,273 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "wall", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + } + ], + "_active": true, + "_components": [ + { + "__id__": 5 + }, + { + "__id__": 6 + }, + { + "__id__": 7 + } + ], + "_prefab": { + "__id__": 8 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 128, + "g": 128, + "b": 128, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 120, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -60, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "num", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 22.25, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 50, + 25, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "0", + "_N$string": "0", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "fe8lcc4B1Gyoyzbvq6k3jP", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "87a44m5f/pPAKIrsyArSr/V", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "number": null, + "type": 4, + "special": 0, + "color": 0, + "wall_SpriteFrames": null, + "_id": "" + }, + { + "__type__": "cc.BoxCollider", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "tag": 0, + "_offset": { + "__type__": "cc.Vec2", + "x": 50, + "y": 25 + }, + "_size": { + "__type__": "cc.Size", + "width": 100, + "height": 50 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/temp/BackupAssets/assets/resources/prefab/block/block3.prefab b/temp/BackupAssets/assets/resources/prefab/block/block3.prefab index b466c79..7ec4198 100644 --- a/temp/BackupAssets/assets/resources/prefab/block/block3.prefab +++ b/temp/BackupAssets/assets/resources/prefab/block/block3.prefab @@ -31,22 +31,19 @@ }, { "__id__": 17 - }, - { - "__id__": 21 } ], "_active": true, "_components": [ { - "__id__": 23 + "__id__": 21 }, { - "__id__": 24 + "__id__": 22 } ], "_prefab": { - "__id__": 25 + "__id__": 23 }, "_opacity": 255, "_color": { @@ -772,77 +769,6 @@ "fileId": "87m7vzA7pAgYHkEJ/xO+tL", "sync": false }, - { - "__type__": "cc.Node", - "_name": "adhesive", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [], - "_prefab": { - "__id__": 22 - }, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_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": "" - }, - { - "__type__": "cc.PrefabInfo", - "root": { - "__id__": 1 - }, - "asset": { - "__id__": 0 - }, - "fileId": "eaVniixyBGt4ta+hgZ3z2b", - "sync": false - }, { "__type__": "c58deN2u1NGZL8nJwvnu1PR", "_name": "", diff --git a/temp/BackupAssets/assets/shop/prefab/item.prefab b/temp/BackupAssets/assets/shop/prefab/item.prefab new file mode 100644 index 0000000..aec3995 --- /dev/null +++ b/temp/BackupAssets/assets/shop/prefab/item.prefab @@ -0,0 +1,573 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + }, + { + "__id__": 8 + } + ], + "_active": true, + "_components": [ + { + "__id__": 12 + }, + { + "__id__": 13 + }, + { + "__id__": 15 + } + ], + "_prefab": { + "__id__": 16 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8cdb44ac-a3f6-449f-b354-7cd48cf84061" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 6 + } + ], + "_prefab": { + "__id__": 7 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 106.74, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "100元", + "_N$string": "100元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 9 + }, + { + "__id__": 10 + } + ], + "_prefab": { + "__id__": 11 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 110.74, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "450万", + "_N$string": "450万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "2b96122d-4b72-42e7-b60b-3f59f93a564a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 14 + } + ], + "_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__": 1 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/temp/BackupAssets/assets/shop/prefab/shop.prefab b/temp/BackupAssets/assets/shop/prefab/shop.prefab new file mode 100644 index 0000000..04e4ee6 --- /dev/null +++ b/temp/BackupAssets/assets/shop/prefab/shop.prefab @@ -0,0 +1,7763 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "shop", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 6 + }, + { + "__id__": 10 + }, + { + "__id__": 14 + }, + { + "__id__": 20 + }, + { + "__id__": 27 + }, + { + "__id__": 48 + }, + { + "__id__": 62 + }, + { + "__id__": 208 + }, + { + "__id__": 212 + } + ], + "_active": true, + "_components": [ + { + "__id__": 216 + } + ], + "_prefab": { + "__id__": 217 + }, + "_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": "" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + }, + { + "__id__": 4 + } + ], + "_prefab": { + "__id__": 5 + }, + "_opacity": 150, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 2340 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.BlockInputEvents", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "37yYMxbm9Ch6mSwwX/Tozs", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "shop_2", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 7 + }, + { + "__id__": 8 + } + ], + "_prefab": { + "__id__": 9 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 2340 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "24a3a948-d370-492b-a604-772db3e9092d" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "ad450c22-24c1-4352-a09f-151cb9f3ab8a" + }, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "alignMode": 1, + "_target": { + "__id__": 1 + }, + "_alignFlags": 45, + "_left": 0, + "_right": 0, + "_top": -210, + "_bottom": -210, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 1080, + "_originalHeight": 2340, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d7kf1rnZdB6KTrT4E+bvIo", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "shop_1", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 11 + }, + { + "__id__": 12 + } + ], + "_prefab": { + "__id__": 13 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 436 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 949.9650000000001, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "9745d59d-e668-40ca-a540-c4ee007a9b8b" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "alignMode": 1, + "_target": { + "__id__": 1 + }, + "_alignFlags": 41, + "_left": 0, + "_right": 0, + "_top": -207.96500000000003, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 1080, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "90DrGs6xtHo4tHMIZiqLcb", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "btn1", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 15 + }, + { + "__id__": 16 + }, + { + "__id__": 17 + } + ], + "_prefab": { + "__id__": 19 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 99, + "height": 531 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 466.1360000000001, + 909.3890000000001, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a278a94d-ca26-4f4b-83fb-5d1058d39304" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "alignMode": 1, + "_target": { + "__id__": 1 + }, + "_alignFlags": 33, + "_left": 0, + "_right": 24.36399999999992, + "_top": -214.889, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 18 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 14 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 1 + }, + "component": "", + "_componentId": "48bfeZuYFZE2qmgxbW2IigB", + "handler": "closeShop", + "customEventData": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "a2ox7Ov9ZOB6iBpRQMSCCo", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "tx", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 21 + } + ], + "_active": true, + "_components": [ + { + "__id__": 24 + }, + { + "__id__": 25 + } + ], + "_prefab": { + "__id__": 26 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 188, + "height": 207 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -396.283, + 792.312, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 20 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 22 + } + ], + "_prefab": { + "__id__": 23 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 731, + "height": 946 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 7.769, + 0, + 0, + 0, + 0, + 1, + 0.15, + 0.15, + 0.15 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 21 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "46896dd3-d3de-4947-b2dd-eb2b1b69bef1" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d0cu9Nk4dKAZm9+TEr1h++", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b2bc9ecc-be9e-42f3-abe3-8d684cdc362a" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "alignMode": 1, + "_target": { + "__id__": 1 + }, + "_alignFlags": 9, + "_left": 49.716999999999985, + "_right": 327.573, + "_top": 64.18799999999999, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 188, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "3ckQl/Tq5GbrsTP7UO38K3", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Stamina", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 28 + }, + { + "__id__": 31 + }, + { + "__id__": 34 + }, + { + "__id__": 37 + }, + { + "__id__": 40 + }, + { + "__id__": 42 + } + ], + "_active": true, + "_components": [ + { + "__id__": 45 + } + ], + "_prefab": { + "__id__": 47 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 350, + "height": 150 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -81.953, + 843.354, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 29 + } + ], + "_prefab": { + "__id__": 30 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 382, + "height": 85 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 28 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c3063f58-52e1-4552-8660-fe0b4fbc6036" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "6aVfqR99lM8b6s1IfFRYgi", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 32 + } + ], + "_prefab": { + "__id__": 33 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 63, + "height": 56 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -120.21, + -1.322, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 31 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c00afd58-6ef6-4674-a68a-373015c8d376" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "acxWLwLgNPM5VDtDzhPjtp", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 35 + } + ], + "_prefab": { + "__id__": 36 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 70, + "height": 69 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 147.114, + 0.31, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 34 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d13e982d-fed1-454a-b4c4-c92e5bbdfd2d" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d0UvPpwplBxaQVyjLRxNG1", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "man", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 38 + } + ], + "_prefab": { + "__id__": 39 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 94, + "height": 47 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -1.951, + 0.13, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 37 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "24643945-c61a-4dce-b2c0-6de0c11ae435" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "2dvYFmzLRBJaIsm94hfDMQ", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "health", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": false, + "_components": [], + "_prefab": { + "__id__": 41 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -61.628, + 1.821, + 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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "88IgQBjH1Jo6ZZInXvN0ae", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "time", + "_objFlags": 0, + "_parent": { + "__id__": 27 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 43 + } + ], + "_prefab": { + "__id__": 44 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 109, + "g": 70, + "b": 70, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100.1, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 72.788, + -4.433, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 42 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "00:00", + "_N$string": "00:00", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 0, + "_N$verticalAlign": 0, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "5eVwMMS0VEuK9KkGYaVfU8", + "sync": false + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 27 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + { + "__id__": 46 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 27 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "1dc93b4fehOrpGgTkihBH4g", + "handler": "openStamina", + "customEventData": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "cfwKYUzqBBtYvOE6xeCswl", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Coin", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 49 + }, + { + "__id__": 52 + }, + { + "__id__": 55 + }, + { + "__id__": 58 + } + ], + "_active": true, + "_components": [ + { + "__id__": 60 + } + ], + "_prefab": { + "__id__": 61 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 350, + "height": 150 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 335.588, + 843.354, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 48 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 50 + } + ], + "_prefab": { + "__id__": 51 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 382, + "height": 85 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 49 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c3063f58-52e1-4552-8660-fe0b4fbc6036" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "ecYhqIPwNJX5efs88/AoQx", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 48 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 53 + } + ], + "_prefab": { + "__id__": 54 + }, + "_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": [ + -120.21, + -1.322, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 52 + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "57LSY16pBJD6eBAcvkUnBv", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 48 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 56 + } + ], + "_prefab": { + "__id__": 57 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 70, + "height": 69 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 147.114, + 0.31, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 55 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d13e982d-fed1-454a-b4c4-c92e5bbdfd2d" + }, + "_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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "efsl7ltxZA56KA2MUqzwPk", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Coin", + "_objFlags": 0, + "_parent": { + "__id__": 48 + }, + "_children": [], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 59 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 200, + "height": 200 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -0.255, + 1.584, + 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": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "6bzgOXQXtJzr+SvxqA0HSq", + "sync": false + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 48 + }, + "_enabled": false, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + null + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_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__": 48 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "dbTBrfJ3pF26e9bPbIoOkH", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "itemcontent", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 63 + }, + { + "__id__": 70 + } + ], + "_active": true, + "_components": [ + { + "__id__": 68 + } + ], + "_prefab": { + "__id__": 207 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 1500 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -103.383, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "scrollBar", + "_objFlags": 0, + "_parent": { + "__id__": 62 + }, + "_children": [ + { + "__id__": 64 + } + ], + "_active": false, + "_components": [ + { + "__id__": 67 + }, + { + "__id__": 205 + } + ], + "_prefab": { + "__id__": 206 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 12, + "height": 1500 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 540, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "bar", + "_objFlags": 0, + "_parent": { + "__id__": 63 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 65 + } + ], + "_prefab": { + "__id__": 66 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 10, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -1, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 64 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "5c3bb932-6c3c-468f-88a9-c8c61d458641" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d14edZvsdIGLew5wSDs6B8", + "sync": false + }, + { + "__type__": "cc.Scrollbar", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 63 + }, + "_enabled": true, + "_scrollView": { + "__id__": 68 + }, + "_touching": false, + "_opacity": 255, + "enableAutoHide": true, + "autoHideTime": 1, + "_N$handle": { + "__id__": 65 + }, + "_N$direction": 1, + "_id": "" + }, + { + "__type__": "cc.ScrollView", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 62 + }, + "_enabled": true, + "horizontal": false, + "vertical": true, + "inertia": true, + "brake": 0.75, + "elastic": true, + "bounceDuration": 0.23, + "scrollEvents": [], + "cancelInnerEvents": true, + "_N$content": { + "__id__": 69 + }, + "content": { + "__id__": 69 + }, + "_N$horizontalScrollBar": null, + "_N$verticalScrollBar": { + "__id__": 67 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "content", + "_objFlags": 0, + "_parent": { + "__id__": 70 + }, + "_children": [ + { + "__id__": 73 + }, + { + "__id__": 76 + }, + { + "__id__": 92 + }, + { + "__id__": 108 + }, + { + "__id__": 124 + }, + { + "__id__": 140 + }, + { + "__id__": 156 + }, + { + "__id__": 172 + }, + { + "__id__": 188 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 204 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 2340 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 1 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 750.47, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "view", + "_objFlags": 0, + "_parent": { + "__id__": 62 + }, + "_children": [ + { + "__id__": 69 + } + ], + "_active": true, + "_components": [ + { + "__id__": 71 + } + ], + "_prefab": { + "__id__": 72 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 1500 + }, + "_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": "" + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 70 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 0, + "_segments": 64, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "7eaCjkUUtJholSqbUUNrQb", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "txt1", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 74 + } + ], + "_prefab": { + "__id__": 75 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 907, + "height": 62 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 8.5, + -27, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 73 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "760f4de0-8da0-4f0a-b3cb-5b6fe8b0b611" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "99poj1KG1LJ6aqPTcYloJk", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 77 + }, + { + "__id__": 80 + }, + { + "__id__": 83 + } + ], + "_active": true, + "_components": [ + { + "__id__": 87 + }, + { + "__id__": 88 + }, + { + "__id__": 90 + } + ], + "_prefab": { + "__id__": 91 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -346.5, + -319, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 78 + } + ], + "_prefab": { + "__id__": 79 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 77 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "c725d7a9-6d3f-481d-8dbc-dcd5fa68db99" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 76 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 81 + } + ], + "_prefab": { + "__id__": 82 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 106.74, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 80 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "100元", + "_N$string": "100元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 76 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 84 + }, + { + "__id__": 85 + } + ], + "_prefab": { + "__id__": 86 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 110.74, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 83 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "450万", + "_N$string": "450万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 83 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 76 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 76 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 76 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 89 + } + ], + "_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__": 76 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 76 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 76 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "afI23KGK1LbZzVXNadOcOh", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 93 + }, + { + "__id__": 96 + }, + { + "__id__": 99 + } + ], + "_active": true, + "_components": [ + { + "__id__": 103 + }, + { + "__id__": 104 + }, + { + "__id__": 106 + } + ], + "_prefab": { + "__id__": 107 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -4.5, + -319, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 92 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 94 + } + ], + "_prefab": { + "__id__": 95 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 93 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d5b945ef-6a0b-46b0-8a2a-51581517d407" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 92 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 92 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 97 + } + ], + "_prefab": { + "__id__": 98 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 106.74, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 96 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "200元", + "_N$string": "200元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 92 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 92 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 100 + }, + { + "__id__": 101 + } + ], + "_prefab": { + "__id__": 102 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 110.74, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 99 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "550万", + "_N$string": "550万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 99 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 92 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 92 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 92 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 105 + } + ], + "_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__": 92 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 92 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 92 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "d729gzZw1CebBIrDC0zVvp", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 109 + }, + { + "__id__": 112 + }, + { + "__id__": 115 + } + ], + "_active": true, + "_components": [ + { + "__id__": 119 + }, + { + "__id__": 120 + }, + { + "__id__": 122 + } + ], + "_prefab": { + "__id__": 123 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 337.5, + -319, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 108 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 110 + } + ], + "_prefab": { + "__id__": 111 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 109 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "cfa73259-f87a-4e91-b391-96f0f0872993" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 108 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 108 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 113 + } + ], + "_prefab": { + "__id__": 114 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 106.74, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 112 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "300元", + "_N$string": "300元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 108 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 108 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 116 + }, + { + "__id__": 117 + } + ], + "_prefab": { + "__id__": 118 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 110.74, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 115 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "700万", + "_N$string": "700万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 115 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 108 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 108 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 108 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 121 + } + ], + "_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__": 108 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 108 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 108 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "f5iPfzyF1LDLpvRXmkUoer", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 125 + }, + { + "__id__": 128 + }, + { + "__id__": 131 + } + ], + "_active": true, + "_components": [ + { + "__id__": 135 + }, + { + "__id__": 136 + }, + { + "__id__": 138 + } + ], + "_prefab": { + "__id__": 139 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -346.5, + -803, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 124 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 126 + } + ], + "_prefab": { + "__id__": 127 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 125 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "927ccbda-a1dc-4ee0-a38a-a3ab66e81d9f" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 124 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 124 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 129 + } + ], + "_prefab": { + "__id__": 130 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 106.74, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 128 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "500元", + "_N$string": "500元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 124 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 124 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 132 + }, + { + "__id__": 133 + } + ], + "_prefab": { + "__id__": 134 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 110.74, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 131 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "800万", + "_N$string": "800万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 131 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 124 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 124 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 124 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 137 + } + ], + "_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__": 124 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 124 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 124 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "66+qsnLwJF0LkQjTqG9Xpt", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 141 + }, + { + "__id__": 144 + }, + { + "__id__": 147 + } + ], + "_active": true, + "_components": [ + { + "__id__": 151 + }, + { + "__id__": 152 + }, + { + "__id__": 154 + } + ], + "_prefab": { + "__id__": 155 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -4.5, + -803, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 140 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 142 + } + ], + "_prefab": { + "__id__": 143 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 141 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "319350a2-b9b5-4967-aab8-0e192088a665" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 140 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 140 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 145 + } + ], + "_prefab": { + "__id__": 146 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 128.98, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 144 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "1000元", + "_N$string": "1000元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 140 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 140 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 148 + }, + { + "__id__": 149 + } + ], + "_prefab": { + "__id__": 150 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 132.98, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 147 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "1000万", + "_N$string": "1000万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 147 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 140 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 140 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 140 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 153 + } + ], + "_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__": 140 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 140 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 140 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "48YmE9K01FpaVYgaSxME1L", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 157 + }, + { + "__id__": 160 + }, + { + "__id__": 163 + } + ], + "_active": true, + "_components": [ + { + "__id__": 167 + }, + { + "__id__": 168 + }, + { + "__id__": 170 + } + ], + "_prefab": { + "__id__": 171 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 337.5, + -803, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 156 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 158 + } + ], + "_prefab": { + "__id__": 159 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 157 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "be3accec-ceea-4b09-af1d-982fcd3879e8" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 156 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 156 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 161 + } + ], + "_prefab": { + "__id__": 162 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 128.98, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 160 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "1500元", + "_N$string": "1500元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 156 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 156 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 164 + }, + { + "__id__": 165 + } + ], + "_prefab": { + "__id__": 166 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 132.98, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 163 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "1500万", + "_N$string": "1500万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 163 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 156 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 156 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 156 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 169 + } + ], + "_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__": 156 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 156 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 156 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "f6mohWehlEx5/9GXtk15qJ", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 173 + }, + { + "__id__": 176 + }, + { + "__id__": 179 + } + ], + "_active": true, + "_components": [ + { + "__id__": 183 + }, + { + "__id__": 184 + }, + { + "__id__": 186 + } + ], + "_prefab": { + "__id__": 187 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -346.5, + -1287, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 172 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 174 + } + ], + "_prefab": { + "__id__": 175 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 173 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "25612630-24db-43ef-a7a9-0a56c98dc21e" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 172 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 172 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 177 + } + ], + "_prefab": { + "__id__": 178 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 128.98, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 176 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "2000元", + "_N$string": "2000元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 172 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 172 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 180 + }, + { + "__id__": 181 + } + ], + "_prefab": { + "__id__": 182 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 132.98, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 179 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "2000万", + "_N$string": "2000万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 179 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 172 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 172 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 172 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 185 + } + ], + "_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__": 172 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 172 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 172 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "d5kpPO81xADLw8urE8HYwZ", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "item", + "_objFlags": 0, + "_parent": { + "__id__": 69 + }, + "_children": [ + { + "__id__": 189 + }, + { + "__id__": 192 + }, + { + "__id__": 195 + } + ], + "_active": true, + "_components": [ + { + "__id__": 199 + }, + { + "__id__": 200 + }, + { + "__id__": 202 + } + ], + "_prefab": { + "__id__": 203 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 327, + "height": 454 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -4.5, + -1287, + 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": "" + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 188 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 190 + } + ], + "_prefab": { + "__id__": 191 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 189 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "67ab3632-96c7-4db0-b1d9-1dcf80e62ce4" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 188 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "87gjIEW31HkZhCTJjiObXe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "price", + "_objFlags": 0, + "_parent": { + "__id__": 188 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 193 + } + ], + "_prefab": { + "__id__": 194 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 128.98, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -162.477, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 192 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "6000元", + "_N$string": "6000元", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 188 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "6eErwIc4JKyL//Z8c2JRnP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 188 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 196 + }, + { + "__id__": 197 + } + ], + "_prefab": { + "__id__": 198 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 132.98, + "height": 54.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 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": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 195 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "5000万", + "_N$string": "5000万", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.LabelOutline", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 195 + }, + "_enabled": true, + "_color": { + "__type__": "cc.Color", + "r": 228, + "g": 255, + "b": 27, + "a": 255 + }, + "_width": 2, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 188 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "50ucvSzR1LUJ4TQMdow0vG", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 188 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "b07b3564-ce23-49f8-9891-2001cb80a72a" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "47589a11-b9e5-45cb-b50d-398e1e8b3843" + }, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 188 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 201 + } + ], + "_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__": 188 + }, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": null, + "component": "", + "_componentId": "", + "handler": "", + "customEventData": "" + }, + { + "__type__": "de906iE/HVHpI6VO7IMvKaI", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 188 + }, + "_enabled": true, + "label": null, + "text": "hello", + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 188 + }, + "asset": { + "__uuid__": "a81d74d9-943b-4d0e-aad5-2999276d3447" + }, + "fileId": "f6NMyq3+ZJfrCbT4XAJ1Mh", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "7bpN5qjjpDYqndxZBdfWFN", + "sync": false + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 63 + }, + "_enabled": true, + "alignMode": 0, + "_target": null, + "_alignFlags": 37, + "_left": 1068, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 12, + "_originalHeight": 237, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "9aNMp065ZLTryhmf8DtMA1", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "3aLsaRTllN04hhnLouRCo2", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 209 + }, + { + "__id__": 210 + } + ], + "_prefab": { + "__id__": 211 + }, + "_opacity": 150, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 200 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 1062.507, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 208 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.BlockInputEvents", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 208 + }, + "_enabled": true, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "9dgIB3VNlAC4rOLKR63X1h", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 213 + }, + { + "__id__": 214 + } + ], + "_prefab": { + "__id__": 215 + }, + "_opacity": 150, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1080, + "height": 200 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -1059.951, + 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": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 212 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.BlockInputEvents", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 212 + }, + "_enabled": true, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "c5IbgSqWhDerwgA0hdz30t", + "sync": false + }, + { + "__type__": "48bfeZuYFZE2qmgxbW2IigB", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "shop": { + "__id__": 1 + }, + "itemList": { + "__id__": 69 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/assets/LoadScene.meta b/temp/RemovedMetas/LoadScene.meta similarity index 100% rename from assets/LoadScene.meta rename to temp/RemovedMetas/LoadScene.meta diff --git a/assets/font.meta b/temp/RemovedMetas/font.meta similarity index 100% rename from assets/font.meta rename to temp/RemovedMetas/font.meta diff --git a/assets/level.meta b/temp/RemovedMetas/level.meta similarity index 100% rename from assets/level.meta rename to temp/RemovedMetas/level.meta diff --git a/assets/prefab/alert.meta b/temp/RemovedMetas/prefab/alert.meta similarity index 100% rename from assets/prefab/alert.meta rename to temp/RemovedMetas/prefab/alert.meta diff --git a/assets/res/music.meta b/temp/RemovedMetas/res/music.meta similarity index 100% rename from assets/res/music.meta rename to temp/RemovedMetas/res/music.meta diff --git a/assets/resources/prefab/prop.meta b/temp/RemovedMetas/resources/prefab/prop.meta similarity index 100% rename from assets/resources/prefab/prop.meta rename to temp/RemovedMetas/resources/prefab/prop.meta diff --git a/temp/quick-scripts/dst/__file_stats__.json b/temp/quick-scripts/dst/__file_stats__.json index da083f1..fdff278 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:/Work/Project/cb/temp/quick-scripts/src/__qc_index__.js":"2025-06-26T01:57:19.781Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Sdk/DouyinEntranceView.js":"2025-06-26T01:57:19.480Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Crypto/HttpUtil.js":"2025-06-26T01:57:19.406Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/util/lq_game_util.js":"2025-06-26T01:57:19.353Z","C:/Work/Project/cb/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoAssembler.js":"2025-06-26T01:57:19.188Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/CollisionDetection.js":"2025-06-26T01:57:19.712Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_base.js":"2025-06-26T01:57:19.543Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Boom.js":"2025-06-26T01:57:19.261Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js":"2025-06-26T01:57:19.417Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/animation/NewScript.js":"2025-06-26T01:57:19.209Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/effect/融化.js":"2025-06-26T01:57:19.248Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/data/lq_const.js":"2025-06-26T01:57:19.495Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js":"2025-06-26T01:57:19.316Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js":"2025-06-26T01:57:19.343Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js":"2025-06-26T01:57:19.321Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Share/share.js":"2025-06-26T01:57:19.401Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js":"2025-06-26T01:57:19.172Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js":"2025-06-26T01:57:19.321Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/RankList/List.js":"2025-06-26T01:57:19.622Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/ControlManager.js":"2025-06-26T01:57:19.655Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js":"2025-06-26T01:57:19.273Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Config/GameConfig.js":"2025-06-26T01:57:19.560Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/GameOver.js":"2025-06-26T01:57:19.444Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/GameScene.js":"2025-06-26T01:57:19.702Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Load.js":"2025-06-26T01:57:19.292Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/GameManager.js":"2025-06-26T01:57:19.654Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/JiaZai.js":"2025-06-26T01:57:19.197Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/MapBlock.js":"2025-06-26T01:57:19.307Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Reduce.js":"2025-06-26T01:57:19.607Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/NumberToImage.js":"2025-06-26T01:57:19.353Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/NewMode.js":"2025-06-26T01:57:19.432Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/SceneManager.js":"2025-06-26T01:57:19.448Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/RankManager.js":"2025-06-26T01:57:19.686Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Window.js":"2025-06-26T01:57:19.261Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Wall.js":"2025-06-26T01:57:19.464Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Sdk/MiniGameManager.js":"2025-06-26T01:57:19.172Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/position.js":"2025-06-26T01:57:19.655Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_config.js":"2025-06-26T01:57:19.294Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/peizhi.js":"2025-06-26T01:57:19.429Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Barrier.js":"2025-06-26T01:57:19.492Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/btnControl.js":"2025-06-26T01:57:19.379Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Map.js":"2025-06-26T01:57:19.204Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Lock.js":"2025-06-26T01:57:19.269Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Pause.js":"2025-06-26T01:57:19.527Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Freeze.js":"2025-06-26T01:57:19.543Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js":"2025-06-26T01:57:19.543Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide.js":"2025-06-26T01:57:19.622Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Adhesive.js":"2025-06-26T01:57:19.321Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js":"2025-06-26T01:57:19.591Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_system.js":"2025-06-26T01:57:19.458Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Key.js":"2025-06-26T01:57:19.495Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/prop/Star.js":"2025-06-26T01:57:19.638Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/util/lq_pool_util.js":"2025-06-26T01:57:19.511Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/data/lq_data.js":"2025-06-26T01:57:19.527Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/data/lq_interface.js":"2025-06-26T01:57:19.273Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/util/lq_platform_util.js":"2025-06-26T01:57:19.252Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/Block.js":"2025-06-26T01:57:19.575Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/util/lq_math_util.js":"2025-06-26T01:57:19.521Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/lq_base/util/lq_base_util.js":"2025-06-26T01:57:19.613Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js":"2025-06-26T01:57:19.670Z","C:/Work/Project/cb/temp/quick-scripts/src/assets/Script/module/RankList/ItemRender.js":"2025-06-26T01:57:19.591Z","C:/Work/Project/cb/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoSprite.js":"2025-06-26T01:57:19.307Z","C:/Work/Project/cb/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledLayer.js":"2025-06-26T01:57:19.636Z","C:/Work/Project/cb/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledMap.js":"2025-06-26T01:57:19.163Z","C:/Work/Project/cb/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoObjectGroup.js":"2025-06-26T01:57:19.230Z"}} +{"version":"1.0.8","stats":{"C:/colorBlock/temp/quick-scripts/src/__qc_index__.js":"2025-06-30T02:13:58.526Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js":"2025-06-30T02:13:58.423Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js":"2025-06-30T02:13:58.382Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/lq_base/data/lq_interface.js":"2025-06-30T02:13:58.367Z","C:/colorBlock/temp/quick-scripts/src/assets/shop/script/shop.js":"2025-06-30T02:13:58.372Z","C:/colorBlock/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledLayer.js":"2025-06-30T02:13:58.433Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/CollisionDetection.js":"2025-06-30T02:13:58.446Z","C:/colorBlock/temp/quick-scripts/src/assets/animation/NewScript.js":"2025-06-30T02:13:58.357Z","C:/colorBlock/temp/quick-scripts/src/assets/effect/融化.js":"2025-06-30T02:13:58.364Z","C:/colorBlock/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js":"2025-06-30T02:13:58.396Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/prop/Lock.js":"2025-06-30T02:13:58.367Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_base.js":"2025-06-30T02:13:58.423Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/lq_base/util/lq_math_util.js":"2025-06-30T02:13:58.418Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js":"2025-06-30T02:13:58.381Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/module/RankList/ItemRender.js":"2025-06-30T02:13:58.430Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js":"2025-06-30T02:13:58.352Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/module/Crypto/HttpUtil.js":"2025-06-30T02:13:58.393Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/GameScene.js":"2025-06-30T02:13:58.446Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/ControlManager.js":"2025-06-30T02:13:58.441Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js":"2025-06-30T02:13:58.382Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js":"2025-06-30T02:13:58.382Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js":"2025-06-30T02:13:58.372Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/MapBlock.js":"2025-06-30T02:13:58.379Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/RankManager.js":"2025-06-30T02:13:58.443Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/GameOver.js":"2025-06-30T02:13:58.402Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/Load.js":"2025-06-30T02:13:58.372Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/module/Config/GameConfig.js":"2025-06-30T02:13:58.423Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/Map.js":"2025-06-30T02:13:58.357Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/Reduce.js":"2025-06-30T02:13:58.430Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/SceneManager.js":"2025-06-30T02:13:58.402Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/btnControl.js":"2025-06-30T02:13:58.388Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/NewMode.js":"2025-06-30T02:13:58.400Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/module/Share/share.js":"2025-06-30T02:13:58.393Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/GameManager.js":"2025-06-30T02:13:58.438Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/Pause.js":"2025-06-30T02:13:58.420Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/peizhi.js":"2025-06-30T02:13:58.398Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/Window.js":"2025-06-30T02:13:58.367Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/JiaZai.js":"2025-06-30T02:13:58.357Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/NumberToImage.js":"2025-06-30T02:13:58.388Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/Wall.js":"2025-06-30T02:13:58.407Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_config.js":"2025-06-30T02:13:58.377Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/position.js":"2025-06-30T02:13:58.438Z","C:/colorBlock/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js":"2025-06-30T02:13:58.428Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/Sdk/MiniGameManager.js":"2025-06-30T02:13:58.352Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/Barrier.js":"2025-06-30T02:13:58.412Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/prop/Freeze.js":"2025-06-30T02:13:58.420Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/prop/Key.js":"2025-06-30T02:13:58.413Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide_system.js":"2025-06-30T02:13:58.402Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/Block.js":"2025-06-30T02:13:58.423Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/prop/Adhesive.js":"2025-06-30T02:13:58.382Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/Sdk/DouyinEntranceView.js":"2025-06-30T02:13:58.409Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/prop/Star.js":"2025-06-30T02:13:58.437Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/lq_collide_system/lq_collide.js":"2025-06-30T02:13:58.433Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/lq_base/data/lq_data.js":"2025-06-30T02:13:58.419Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/lq_base/util/lq_game_util.js":"2025-06-30T02:13:58.387Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/lq_base/util/lq_pool_util.js":"2025-06-30T02:13:58.416Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/lq_base/util/lq_platform_util.js":"2025-06-30T02:13:58.364Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/module/RankList/List.js":"2025-06-30T02:13:58.433Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/prop/Boom.js":"2025-06-30T02:13:58.367Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/lq_base/util/lq_base_util.js":"2025-06-30T02:13:58.430Z","C:/colorBlock/temp/quick-scripts/src/assets/shop/script/item.js":"2025-06-30T02:13:58.438Z","C:/colorBlock/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoObjectGroup.js":"2025-06-30T02:13:58.363Z","C:/colorBlock/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoSprite.js":"2025-06-30T02:13:58.378Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js":"2025-06-30T02:13:58.441Z","C:/colorBlock/temp/quick-scripts/src/assets/Script/lq_base/data/lq_const.js":"2025-06-30T02:13:58.415Z","C:/colorBlock/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoAssembler.js":"2025-06-30T02:13:58.352Z","C:/colorBlock/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledMap.js":"2025-06-30T02:13:58.346Z"}} diff --git a/temp/quick-scripts/dst/__qc_bundle__.js b/temp/quick-scripts/dst/__qc_bundle__.js index c2ccf48..f6817ee 100644 --- a/temp/quick-scripts/dst/__qc_bundle__.js +++ b/temp/quick-scripts/dst/__qc_bundle__.js @@ -69,6 +69,8 @@ require('./assets/animation/NewScript'); require('./assets/effect/融化'); require('./assets/migration/use_v2.1-2.2.1_cc.Toggle_event'); require('./assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1'); +require('./assets/shop/script/item'); +require('./assets/shop/script/shop'); require('./tiledmap-optimize-resource/Script/TmoAssembler'); require('./tiledmap-optimize-resource/Script/TmoObjectGroup'); require('./tiledmap-optimize-resource/Script/TmoSprite'); @@ -90,7 +92,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/Sdk/DouyinEntranceView.js'; + var __filename = 'preview-scripts/assets/Script/Sdk/MiniGameSdk.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -98,8 +100,1340 @@ 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, '8a024+q5K9MrpxcaTvucSDB', 'DouyinEntranceView'); -// Script/Sdk/DouyinEntranceView.ts +cc._RF.push(module, 'c1af9nd7gNA95YJ04h9DdNX', 'MiniGameSdk'); +// Script/Sdk/MiniGameSdk.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MiniGameSdk = void 0; +/** + * 小游戏平台SDK工具封装,目前只支持微信和抖音平台 + */ +var MiniGameSdk; +(function (MiniGameSdk) { + function isWechat() { + //@ts-ignore + return window.wx !== null && window.wx !== undefined; + } + MiniGameSdk.isWechat = isWechat; + function isBytedance() { + //@ts-ignore + return window.tt !== null && window.tt !== undefined; + } + MiniGameSdk.isBytedance = isBytedance; + function getSysWinSize() { + var sys; + if (isWechat()) { + // @ts-ignore + sys = wx.getSystemInfoSync(); + } + else if (isBytedance()) { + // @ts-ignore + sys = tt.getSystemInfoSync(); + } + var size = { width: 0, height: 0 }; + if (sys) { + size.width = sys.windowWidth; + size.height = sys.windowHeight; + } + return size; + } + /** + * 插屏广告。微信抖音都支持! + */ + var ADInterstitial = /** @class */ (function () { + function ADInterstitial(adUid) { + this._adUid = adUid; + } + Object.defineProperty(ADInterstitial.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + ADInterstitial.prototype.show = function () { + var _this = this; + var _a, _b; + // @ts-ignore + if (isWechat() && !wx.createInterstitialAd) { + console.warn('wechat unsupport interstitial AD!'); + this._interstitial = null; + return; + } + // @ts-ignore + if (isBytedance() && !tt.createInterstitialAd) { + console.warn('bytedance unsupport interstitial AD!'); + this._interstitial = null; + return; + } + if (this._interstitial) { + this._interstitial.load(); + } + else { + if (isWechat()) { + // @ts-ignore + this._interstitial = wx.createInterstitialAd({ adUnitId: this._adUid }); + } + else if (isBytedance()) { + // @ts-ignore + this._interstitial = tt.createInterstitialAd({ adUnitId: this._adUid }); + } + else { + this._interstitial = null; + } + (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.onLoad(function () { + console.log('load interstitial ad success'); + _this._interstitial.show().catch(function (err) { + console.log('catch interstitial ad error:', err); + }); + }); + (_b = this._interstitial) === null || _b === void 0 ? void 0 : _b.onError(function (err) { + console.log('interstitial ad on error:', err); + }); + } + }; + ADInterstitial.prototype.destory = function () { + var _a; + (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return ADInterstitial; + }()); + var ADBanner = /** @class */ (function () { + /** + * 抖音和微信都支持 + * 横幅广告。预估宽度默认为300,预估高度为140。如果你不确定就按默认值来。 + * @param adUid 广告UID,后端配置 + * @param isTop 是否在屏幕顶部展示。内部会自动居中计算位置。 + * @param bannerWidth 横幅广告的预估宽度。默认300 + * @param autoShow 广告加载完成后是否立刻显示,默认为不显示 + */ + function ADBanner(adUid, param, bannerWidth, autoShow) { + if (bannerWidth === void 0) { bannerWidth = 300; } + if (autoShow === void 0) { autoShow = false; } + this._adUid = adUid; + this.create(autoShow, bannerWidth, param); // 默认300比较合适 + } + Object.defineProperty(ADBanner.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + ADBanner.prototype.create = function (autoShow, bannerWidth, param) { + var _this = this; + var _a, _b; + if (!isWechat() && !isBytedance()) { + this._banner = null; + return; + } + this.destroy(); + var winSize = getSysWinSize(); + var height = bannerWidth * 0.4; + var top = 0, left = 0; + if (typeof param === "boolean") { + left = (winSize.width - bannerWidth) / 2; + top = param ? 5 : (winSize.height - height); + } + else { + left = param.left; + top = param.top; + } + var params = { + adUnitId: this._adUid, + adIntervals: 30, + style: { left: left, top: top, width: bannerWidth } + }; + if (isWechat()) { + // @ts-ignore + this._banner = wx.createBannerAd(params); + } + else if (isBytedance()) { + // @ts-ignore + this._banner = tt.createBannerAd(params); + } + else { + this._banner = null; + } + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.onError(function (err) { + console.log('ad banner error:', err); + }); + (_b = this._banner) === null || _b === void 0 ? void 0 : _b.onLoad(function () { + autoShow && _this._banner.show(); + }); + }; + ADBanner.prototype.show = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.show(); + }; + ADBanner.prototype.hide = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.hide(); + }; + ADBanner.prototype.destroy = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return ADBanner; + }()); + var ADCustom = /** @class */ (function () { + /** + * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持! + * @param adUid 广告UID,后端配置 + * @param top 从左上角开始,距离屏幕顶部的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。 + * @param left 从左上角开始,距离屏幕最左边的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。 + * @param scale 原生模板广告的尺寸,默认为1,即100%。此值在微信服务后端广告中获得,默认为100%,目前有100%,90%,80%三种,一般情况不用修改。若有修改,记得传入值,例如90%就传入0.9。 + */ + function ADCustom(adUid, top, left, scale) { + if (top === void 0) { top = 0; } + if (left === void 0) { left = 0; } + if (scale === void 0) { scale = 1.0; } + this._adUid = adUid; + this.createCustomAd(top, left, scale); + } + Object.defineProperty(ADCustom.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + ADCustom.prototype.createCustomAd = function (top, left, scale) { + var _a; + if (!isWechat()) { // only wechat support custom ad + this._adCustom = null; + console.log('Only wechat support Custom Ad'); + return; + } + this.destroy(); + // 原生模板5个应用宽度为375,若设置了缩放比例,则宽度也需要设置 + // let width = 375 * this._scale; + // let newLeft = (sys.windowWidth - width) / 2; + // let newTop = sys.windowHeight / 2; // 120是预估高度 + // @ts-ignore + this._adCustom = wx.createCustomAd({ + adUnitId: this._adUid, + //@ts-ignore + style: { left: left, top: top, fixed: true } + }); + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.onError(function (err) { + console.log('ad custom error:', err); + }); + }; + ADCustom.prototype.show = function () { + var _a; + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.show(); + }; + ADCustom.prototype.hide = function () { + var _a; + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.hide(); + }; + ADCustom.prototype.destroy = function () { + var _a; + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return ADCustom; + }()); + /** + * 视频广告用户点击行为结果 + */ + var EAdVideoResult; + (function (EAdVideoResult) { + /** + * 用户看完了广告,游戏可发放奖励。 + */ + EAdVideoResult[EAdVideoResult["ACCEPT"] = 0] = "ACCEPT"; + /** + * 用户中途关闭了广告,即未看完状态。不可发放奖励。 + */ + EAdVideoResult[EAdVideoResult["REJECT"] = 1] = "REJECT"; + /** + * 广告组件内部发生了错误。不可发放奖励。 + */ + EAdVideoResult[EAdVideoResult["ERROR"] = 2] = "ERROR"; + })(EAdVideoResult = MiniGameSdk.EAdVideoResult || (MiniGameSdk.EAdVideoResult = {})); + var ADVideo = /** @class */ (function () { + function ADVideo(adUid) { + this._adVideo = null; + this._adUid = adUid; + } + Object.defineProperty(ADVideo.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + /** + * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount + * @param onResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 + * @param target onResult的拥有者 + * @param maxVideoCount 可以连续看最大视频个数,可最大化商业效率。默认为3个。 + * @returns + */ + ADVideo.prototype.show = function (onResult, target, maxVideoCount) { + var _this = this; + var _a, _b, _c, _d, _e; + if (maxVideoCount === void 0) { maxVideoCount = 3; } + var callback = function (state, count) { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, state, count); + }; + if (!isWechat() && !isBytedance()) { + callback(EAdVideoResult.ACCEPT, 1); + this._adVideo = null; + return; + } + var onAdVideoClosed = function (res) { + var _a; + (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.offClose(onAdVideoClosed); + if (isWechat()) { + if (res && res.isEnded || res === undefined) { + callback(EAdVideoResult.ACCEPT, 1); + } + else { + callback(EAdVideoResult.REJECT, 0); + } + } + else if (isBytedance()) { + var resConverted = res; + if (resConverted && resConverted.count > 0) { + callback(EAdVideoResult.ACCEPT, resConverted.count); + } + else { + callback(EAdVideoResult.REJECT, 0); + } + } + }; + (_a = this._adVideo) === null || _a === void 0 ? void 0 : _a.offClose(onAdVideoClosed); + if (isWechat()) { + // @ts-ignore + this._adVideo = wx.createRewardedVideoAd({ + adUnitId: this._adUid + }); + } + else if (isBytedance()) { + // @ts-ignore + this._adVideo = tt.createRewardedVideoAd({ + adUnitId: this._adUid, + multiton: true, + multitonRewardMsg: ['多1次奖励', '再多一次奖励', '再多一次奖励'], + multitonRewardTimes: maxVideoCount, + }); + } + else { + this._adVideo = null; + } + (_b = this._adVideo) === null || _b === void 0 ? void 0 : _b.onLoad(function () { + console.log('Ad load success'); + }); + (_c = this._adVideo) === null || _c === void 0 ? void 0 : _c.onError(function (err) { + console.log('Ad video error:', err); + callback(EAdVideoResult.ERROR, 0); + }); + (_d = this._adVideo) === null || _d === void 0 ? void 0 : _d.onClose(onAdVideoClosed); + (_e = this._adVideo) === null || _e === void 0 ? void 0 : _e.show().catch(function () { + var _a; + (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.load().then(function () { var _a; return (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.show(); }).catch(function (err) { + console.log('Catch video ad error:', err); + callback(EAdVideoResult.ERROR, 0); + }); + }); + }; + ADVideo.prototype.destory = function () { + var _a; + (_a = this._adVideo) === null || _a === void 0 ? void 0 : _a.destory(); + }; + return ADVideo; + }()); + var EAdBannerLocation; + (function (EAdBannerLocation) { + /** + * 屏幕顶部 + */ + EAdBannerLocation[EAdBannerLocation["TOP"] = 0] = "TOP"; + /** + * 屏幕底部 + */ + EAdBannerLocation[EAdBannerLocation["BOTTOM"] = 1] = "BOTTOM"; + })(EAdBannerLocation = MiniGameSdk.EAdBannerLocation || (MiniGameSdk.EAdBannerLocation = {})); + var AdvertManager = /** @class */ (function () { + function AdvertManager() { + this._customs = {}; + } + Object.defineProperty(AdvertManager, "instance", { + get: function () { + if (!AdvertManager._instance) { + AdvertManager._instance = new AdvertManager(); + } + return AdvertManager._instance; + }, + enumerable: false, + configurable: true + }); + /** + * 预加载横幅广告,不会显示。只有你在调用showBanner时才会显示。 + * 可重复调用,但是会销毁上一次的实例。一般情况,全局有一个就行了,太多占用内存,而且没必要。 + * @param adUid 广告UID + * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置 + * @param scale 默认为跟屏幕一样的宽度,可以通过设置缩放比例来调整大小。当然,平台有规定最大或最小宽度,函数内部会自动计算。 + */ + AdvertManager.prototype.loadBanner = function (adUid, location, scale) { + var _a; + if (location === void 0) { location = EAdBannerLocation.TOP; } + if (scale === void 0) { scale = 1.0; } + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); + var size = getSysWinSize(); + // 当 style.width 小于 300 时,会取作 300。 当 style.width 大于屏幕宽度时,会取作屏幕宽度。 + var width = size.width * scale; + width = width < 300 ? 300 : width; // 最小值矫正 + width = width > size.width ? size.width : width; //最大值矫正 + this._banner = typeof location === 'number' ? new ADBanner(adUid, location === EAdBannerLocation.TOP, width, false) : new ADBanner(adUid, location, width, false); + }; + /** + * 显示横幅广告 + */ + AdvertManager.prototype.showBanner = function () { + if (this._banner) { + this._banner.show(); + } + else { + console.warn('MiniGameSDK: banner is null, you must call loadBanner(...) first!'); + } + }; + /** + * 隐藏横幅广告 + */ + AdvertManager.prototype.hideBanner = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.hide(); + }; + /** + * 弹出插屏广告 + * @param adUid 广告单元id + */ + AdvertManager.prototype.showInterstitial = function (adUid) { + var _a; + if (this._interstitial && this._interstitial.aduid === adUid) { + this._interstitial.show(); + } + else { + (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.destory(); + this._interstitial = new ADInterstitial(adUid); + this._interstitial.show(); + } + }; + /** + * 加载原生模板广告,不会显示。只有你在调用showCustom时才会显示。 + * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持本函数,会调用无效! + * @param adUid 广告ID + * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置 + * @param scale 缩放比例,默认是1,即不缩放。这个缩放并不是自己填,而是根据微信MP后台你配置的原生模板广告的缩放比例填,目前有100%,90%,80%三种,一般情况不用修改。若有后台修改,记得传入值,例如90%就传入0.9。 + */ + AdvertManager.prototype.loadCustom = function (adUid, location, scale) { + if (location === void 0) { location = { top: 0, left: 0 }; } + if (scale === void 0) { scale = 1; } + // this._custom?.destroy(); + // this._custom = new ADCustom(adUid, location.top, location.left, scale); + if (this._customs[adUid]) { + console.log(adUid + " has been loaded."); + return; + } + this._customs[adUid] = new ADCustom(adUid, location.top, location.left, scale); + }; + /** + * 显示自定义广告。 + * @param adUid 广告的唯一标识符。使用此标识符来查找和显示特定的自定义广告。 + * + * 此方法尝试根据提供的adUid显示一个自定义广告。如果给定的adUid对应的自定义广告已加载, + * 则调用该广告的显示方法。如果广告未加载,则在控制台输出警告信息。 + */ + AdvertManager.prototype.showCustom = function (adUid) { + if (this._customs[adUid]) { + this._customs[adUid].show(); + } + else { + console.warn("You have not load " + adUid + " of Custom AD, can not show!"); + } + }; + /** + * 隐藏指定的自定义广告单元 + * + * 此方法用于隐藏通过广告单元标识符(adUid)指定的自定义广告。如果指定的广告单元已加载并显示, + * 则将其隐藏;如果广告单元未加载,则在控制台输出警告信息。 + * + * @param adUid 广告单元标识符,用于唯一标识一个自定义广告单元。 + */ + AdvertManager.prototype.hideCustom = function (adUid) { + if (this._customs[adUid]) { + this._customs[adUid].hide(); + } + else { + console.warn("You have not load " + adUid + " of Custom AD, can not hide!"); + } + }; + /** + * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount + * @param adUid 广告ID。如果与上一次UID不同,则内部会重新创建实例。开发者完全不用关心这个细节。 + * @param onVideoResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 + * @param target onVideoResult的拥有者 + * @param maxVideoCount 最大视频个数。默认是3,仅对抖音平台生效。微信平台看完视频count的结果永远是1或0 + */ + AdvertManager.prototype.showVideo = function (adUid, onVideoResult, target, maxVideoCount) { + var _a; + if (maxVideoCount === void 0) { maxVideoCount = 3; } + if (this._video && this._video.aduid === adUid) { + this._video.show(onVideoResult, target, maxVideoCount); + } + else { + (_a = this._video) === null || _a === void 0 ? void 0 : _a.destory(); + this._video = new ADVideo(adUid); + this._video.show(onVideoResult, target, maxVideoCount); + } + }; + /** + * 销毁内部所有实例,清空内存 + */ + AdvertManager.prototype.destroyAll = function () { + var _a, _b, _c, _d; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); + this._banner = null; + (_b = this._interstitial) === null || _b === void 0 ? void 0 : _b.destory(); + this._interstitial = null; + (_c = this._video) === null || _c === void 0 ? void 0 : _c.destory(); + this._video = null; + if (this._customs) { + for (var val in this._customs) { + (_d = this._customs[val]) === null || _d === void 0 ? void 0 : _d.destroy(); + } + this._customs = {}; + } + }; + return AdvertManager; + }()); + MiniGameSdk.AdvertManager = AdvertManager; + var EGameClubIcon; + (function (EGameClubIcon) { + /** 绿色图标 */ + EGameClubIcon["GREEN"] = "green"; + /** 红色图标 */ + EGameClubIcon["WHITE"] = "white"; + /** 有黑色圆角背景的白色图标 */ + EGameClubIcon["DARK"] = "dark"; + /** 有白色圆角背景的绿色图标 */ + EGameClubIcon["LIGHT"] = "light"; + })(EGameClubIcon = MiniGameSdk.EGameClubIcon || (MiniGameSdk.EGameClubIcon = {})); + var GameClub = /** @class */ (function () { + function GameClub() { + } + Object.defineProperty(GameClub, "instance", { + get: function () { + if (!this._instance) { + this._instance = new GameClub(); + } + return this._instance; + }, + enumerable: false, + configurable: true + }); + /** + * 创建游戏圈按钮 + * @param icon + * @param position + * @param size + * @param openLink + */ + GameClub.prototype.create = function (icon, position, size, openLink) { + if (icon === void 0) { icon = EGameClubIcon.GREEN; } + if (position === void 0) { position = { top: 0, left: 0 }; } + if (size === void 0) { size = { width: 40, height: 40 }; } + if (isWechat()) { + // @ts-ignore + this._club = wx.createGameClubButton({ + icon: icon, + style: { + left: position.left, + top: position.top, + width: size.width, + height: size.height + }, + openlink: openLink + }); + } + }; + GameClub.prototype.show = function () { + var _a; + (_a = this._club) === null || _a === void 0 ? void 0 : _a.show(); + }; + GameClub.prototype.hide = function () { + var _a; + (_a = this._club) === null || _a === void 0 ? void 0 : _a.hide(); + }; + GameClub.prototype.destory = function () { + var _a; + (_a = this._club) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return GameClub; + }()); + MiniGameSdk.GameClub = GameClub; + /** + * 振动类型 + */ + var EVirbrateType; + (function (EVirbrateType) { + /** + * 短振动 + */ + EVirbrateType[EVirbrateType["SHORT"] = 0] = "SHORT"; + /** + * 长振动 + */ + EVirbrateType[EVirbrateType["LONG"] = 1] = "LONG"; + })(EVirbrateType = MiniGameSdk.EVirbrateType || (MiniGameSdk.EVirbrateType = {})); + /** + * 抖音侧边栏专属接口 + */ + var BytedanceSidebar = /** @class */ (function () { + function BytedanceSidebar() { + } + /** + * 本游戏在抖音环境下启动监控,需要放在全局环境中,保证能第一时间启动。因为可能监听抖音失败(抖音小游戏官方的说明)! + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + */ + BytedanceSidebar.listenFromSidebar = function (onResult, target) { + if (!isBytedance()) { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + return; + } + // @ts-ignore + tt.onShow(function (res) { + console.log('onShow launch res:', res); + if (res.scene === '021036') { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); + console.log('launch from sidebar'); + } + else { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + console.log('NOT launch from douyin sidebar!'); + } + }); + // @ts-ignore + var options = tt.getLaunchOptionsSync(); + if (options && options.scene === '021036') { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); + } + }; + /** + * 检测抖音侧边栏是否存在 + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + * @returns + */ + BytedanceSidebar.checkSideBar = function (onResult, target) { + if (!isBytedance()) { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + return; + } + //@ts-ignore + tt.checkScene({ + scene: "sidebar", + success: function (res) { + console.log("check scene success: ", res.isExist); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, res.isExist); + }, + fail: function (res) { + console.log("check scene fail:", res); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + } + }); + }; + /** + * 跳转到抖音侧边栏 + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + * @returns + */ + BytedanceSidebar.navigateToSidebar = function (onResult, target) { + if (!isBytedance()) { + console.log("not douyin platform!"); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + return; + } + // @ts-ignore + tt.navigateToScene({ + scene: "sidebar", + success: function () { + console.log("navigate success"); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); + }, + fail: function (res) { + console.log("navigate failed reason:", res); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + }, + }); + }; + return BytedanceSidebar; + }()); + MiniGameSdk.BytedanceSidebar = BytedanceSidebar; + /** + * 平台常用API合集 + */ + var API = /** @class */ (function () { + function API() { + } + /** + * 分享app给朋友,微信小游戏分享是没有onSuccess回调的。 + * @param title 标题 + * @param description 细节描述信息 + * @param imageUrl 图片地址 + * @param query 查询信息 + * @param onSuccess 抖音会回调,微信不会回调 + */ + API.shareAppToFriends = function (title, description, imageUrl, query, onSuccess) { + if (description === void 0) { description = ''; } + if (isWechat()) { + try { + //@ts-ignore + wx.shareAppMessage({ + title: title, + imageUrl: imageUrl, + query: query, + }); + } + catch (err) { + console.log("share faild: " + err); + } + } + if (isBytedance()) { + //@ts-ignore + tt.shareAppMessage({ + title: title, + desc: description, + imageUrl: imageUrl !== null && imageUrl !== void 0 ? imageUrl : '', + query: query !== null && query !== void 0 ? query : '', + success: function (res) { + console.log('share success:', res); + onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); + }, + fail: function (res) { + console.log('share fail:', res); + } + }); + } + }; + /** + * 显示提示信息 + * @param title 标题 + * @param duration 时长(单位:秒) + * @returns + */ + API.showToast = function (title, duration) { + if (duration === void 0) { duration = 2; } + if (isWechat()) { + // @ts-ignore + wx.showToast({ + title: title, + icon: 'none', + duration: duration * 500 + }); + } + }; + /** + * 设备震动效果,默认为短震动。注意:可能一些机型不会生效,具体看平台方的说明 + * @param type MiniGameSdk.API.EVirbrateType + */ + API.vibrate = function (type) { + if (type === void 0) { type = EVirbrateType.SHORT; } + if (isWechat()) { + switch (type) { + case EVirbrateType.SHORT: + //@ts-ignore + wx.vibrateShort({ + success: function (res) { + console.log('vibrate success:', res); + }, + fail: function (res) { + console.log('vibrateShort failed', res); + }, + }); + break; + case EVirbrateType.LONG: + //@ts-ignore + wx.vibrateLong({ + success: function (res) { + console.log('vibrate success', res); + }, + fail: function (res) { + console.log("vibrateLong failed", res); + }, + }); + break; + default: + break; + } + } + if (isBytedance()) { + switch (type) { + case EVirbrateType.SHORT: + //@ts-ignore + tt.vibrateShort({ + success: function (res) { + console.log('vibrate success:', res); + }, + fail: function (res) { + console.log('vibrateShort failed', res); + }, + }); + break; + case EVirbrateType.LONG: + //@ts-ignore + tt.vibrateLong({ + success: function (res) { + console.log('vibrate success', res); + }, + fail: function (res) { + console.log("vibrateLong failed", res); + }, + }); + break; + default: + break; + } + } + }; + /** + * 重启小游戏 + */ + API.reboot = function () { + if (isWechat()) { + //@ts-ignore + wx.restartMiniProgram({ + success: function () { + console.log('restart success'); + }, + fail: function () { + console.log('restart failed'); + } + }); + } + if (isBytedance()) { + try { + // @ts-ignore + tt.restartMiniProgramSync(); + } + catch (error) { + console.log("restartMiniProgramSync", error); + } + } + }; + /** + * 退出小游戏 + */ + API.exit = function () { + if (isWechat()) { + //@ts-ignore + wx.exitMiniProgram({ + success: function () { + console.log('exit success'); + }, + fail: function () { + console.log('exit failed'); + } + }); + } + if (isBytedance()) { + // @ts-ignore + tt.exitMiniProgram({ + success: function (res) { + console.log("exit success:", res === null || res === void 0 ? void 0 : res.data); + }, + fail: function (res) { + console.log("exit fail:", res === null || res === void 0 ? void 0 : res.errMsg); + }, + }); + } + }; + /** + * 显示转发按钮。通常在刚进入游戏的时候调用。 + * 主要是打开平台“...”这个按钮里面的分享菜单,一般默认是关闭的,需要调用这个函数打开。可以让用户分享你的游戏入口。 + */ + API.showShareMenu = function () { + if (isWechat()) { + //@ts-ignore + wx.showShareMenu({ + withShareTicket: true, + menus: ['shareAppMessage', 'shareTimeline'], + success: function () { }, + fail: function () { }, + complete: function () { } + }); + } + }; + /** + * 微信小游戏:跳转到另外一款小游戏 + * 抖音小游戏:跳转到指定的视频界面 + * @param targetId 微信小游戏appid或者视频界面 + */ + API.navigateTo = function (targetId, onSuccess) { + if (isWechat()) { + // @ts-ignore + wx.navigateToMiniProgram({ + appId: targetId, + extraData: { + foo: 'bar' + }, + envVersion: 'develop', + success: function (res) { + onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); + } + }); + } + if (isBytedance()) { + // @ts-ignore + tt.navigateToVideoView({ + videoId: targetId, + success: function (res) { + onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); + }, + fail: function (err) { + console.log("bytedance navigateToVideoView fail", err); + }, + }); + } + }; + /** + * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session + * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null + */ + API.login = function (callback) { + var loginPlatform = function () { + if (isWechat()) { + //@ts-ignore + wx.login({ + success: function (res) { + if (res.code) { + API._loginCode = res.code; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + } + else { + console.log('login error:', res.errMsg); + } + }, + fail: function () { + API._loginCode = null; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + console.log('login fail'); + } + }); + } + else if (isBytedance()) { + //@ts-ignore + tt.login({ + force: true, + success: function (res) { + var _a, _b; + console.log("login " + res.code + " " + res.anonymousCode); + if (res.code) { + API._loginCode = (_a = res.code) === null || _a === void 0 ? void 0 : _a.toString(); + API._loginAnonymousCode = (_b = res.anonymousCode) === null || _b === void 0 ? void 0 : _b.toString(); + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + } + else { + console.log('login error:', res.errMsg); + } + }, + fail: function (res) { + API._loginCode = null; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + console.log("login fail", res); + }, + }); + } + else { + API._loginCode = null; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + console.log('not mini game platform, login codes are all null'); + } + }; + if (!API._loginCode) { + loginPlatform(); + } + else { + if (isWechat()) { + //@ts-ignore + wx.checkSession({ + success: function () { + console.log("session is valid, use current code:", API._loginCode); + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + }, + fail: function () { + console.log("session expired"); + loginPlatform(); + } + }); + } + else if (isBytedance()) { + //@ts-ignore + tt.checkSession({ + success: function () { + console.log("session is valid, user current code: " + API._loginCode + ", " + API._loginAnonymousCode); + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + }, + fail: function () { + console.log("session expired"); + loginPlatform(); + }, + }); + } + else { + console.log('not mini game platform, login null'); + callback === null || callback === void 0 ? void 0 : callback(null, null); + } + } + }; + /** + * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session + * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null + */ + API.getUserInfo = function (callback) { + //@ts-ignore + tt.getUserInfo({ + withCredentials: true, + success: function (res) { + API._userInfo = res; + callback(API._userInfo); + }, + fail: function (err) { + callback(err); + } + }); + }; + /** + * 调用微信云函数。由于参数需要自定义,所以为any,需要自行解释。函数只完成通道和处理一场的作用 + * @param callback 返回云函数调用结果。需要检查返回参数是否为空,失败的时候为空 + * @param name 云函数的名字 + * @param data 云函数的内容 + */ + API.callWechatCloudFunction = function (callback, name, data) { + if (!isWechat()) { + console.log('Not wechat platform, not support callWechatCloudFunction'); + return; + } + this.login(function (code, anonymousCode) { + if (!API._hasInitWechatCloudFunction) { + //@ts-ignore + wx.cloud.init(); + API._hasInitWechatCloudFunction = true; + } + //@ts-ignore + wx.cloud.callFunction({ + name: name, + data: data, + success: function (res) { return callback === null || callback === void 0 ? void 0 : callback(res); }, + fail: function (err) { + console.log('wechat cloud function error:', err); + callback === null || callback === void 0 ? void 0 : callback(null); + } + }); + }); + }; + /** + * 存储用户信息,数据量不能大。可以考虑用于分数排行榜。用户之间可共享排行数据。 + * @param key + * @param value + */ + API.setUserCloudStorage = function (key, value) { + if (isWechat()) { + // @ts-ignore + wx.setUserCloudStorage({ + KVDataList: [{ key: key, value: value }], + success: function () { return console.log("set cloud storage success:" + key + ", value:" + value); }, + fail: function (err) { return console.log('set cloud storage error:', err); } + }); + } + if (isBytedance()) { + // @ts-ignore + tt.setUserCloudStorage({ + KVDataList: [{ key: key, value: value, }], + success: function () { return console.log("set cloud storage success:" + key + ", value:" + value); }, + fail: function (err) { return console.log('set cloud storage error:', err); } + }); + } + }; + /* + * 数数平台初始化以及登录 + */ + API.shushu_Init = function () { + if (typeof wx !== 'undefined' && wx !== null) { + console.log("开始接入数数平台"); + //getWechatGameVersion + var appId = "121591378fc1423893deb12041413eb3"; + var test = cc.fx.GameTool.getWechatGameVersion(); + if (test == "正式版") { + appId = "87d18958cea145f29d3265470ecd3486"; + } + var config = { + // appId: "73e1ec654f15b47a1a7354fbabec05ad", // 项目 APP ID + appId: appId, + serverUrl: "https://data.nika4fun.com", + autoTrack: { + appShow: true, + appHide: true // 自动采集 ta_mg_hide + } + }; + // 创建 TA 实例 + API._ta = new ThinkingAnalyticsAPI(config); + //var deviceId = API._ta.getDeviceId(); + 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) { + if (typeof wx !== 'undefined' && wx !== null) { + console.log("设置用户注册属性"); + API._ta.userSet({ register_time: time }); + } + }; + /* + * 数数平台设置动态公共属性 + */ + API.shushu_SetSuperProperties = function () { + if (typeof wx !== 'undefined' && wx !== null && API._ta) { + var versionData = "1.3"; + // API._ta.userSetOnce({ register_time:time}); + var superProperties = { + current_level: (cc.fx.GameConfig.GM_INFO.level + 1), + current_health: cc.fx.GameConfig.GM_INFO.hp, + tmp_coin: cc.fx.GameConfig.GM_INFO.coin, + version: versionData + }; + API._ta.setSuperProperties(superProperties); //设置公共事件属性 + } + }; + API.getWechatGameVersion = function () { + if (typeof wx !== 'undefined' && wx !== null) { + // @ts-ignore + var accountInfo = wx.getAccountInfoSync(); + return accountInfo.miniProgram.version; + } + }; + /* + * 数数平台具体埋点 + */ + API.shushu_Track = function (name, data, callback) { + if (typeof wx !== 'undefined' && wx !== null) { + if (API._ta) { + // 假设 track 方法返回一个 Promise + API._ta.track(name, // 事件名称 + data // 事件属性 + ); + } + } + }; + API._loginCode = null; + API._loginAnonymousCode = null; + API._hasInitWechatCloudFunction = false; + API._userInfo = null; + API._ta = null; + return API; + }()); + MiniGameSdk.API = API; +})(MiniGameSdk = exports.MiniGameSdk || (exports.MiniGameSdk = {})); + +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,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== +//------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/Script/lq_base/data/lq_interface.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, '41e45V6/vBNz5ftgHCoFmei', 'lq_interface'); +// Script/lq_base/data/lq_interface.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFxkYXRhXFxscV9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBWZWMyID0gY2MuVmVjMjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVBvcyB7XHJcbiAgICB4OiBudW1iZXI7XHJcbiAgICB5OiBudW1iZXI7XHJcblxyXG4gICAgc3ViKHBvczogSVBvcyk6IFZlYzI7XHJcblxyXG4gICAgYWRkKHBvczogSVBvcyk6IFZlYzI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJlY3Qge1xyXG4gICAgeDogbnVtYmVyO1xyXG4gICAgeTogbnVtYmVyO1xyXG4gICAgd2lkdGg6IG51bWJlcjtcclxuICAgIGhlaWdodDogbnVtYmVyO1xyXG4gICAgaGFsZl93aWR0aDogbnVtYmVyO1xyXG4gICAgaGFsZl9oZWlnaHQ6IG51bWJlcjtcclxuXHJcbiAgICBzdWIocG9zOiBJUG9zKTogVmVjMjtcclxuXHJcbiAgICBhZGQocG9zOiBJUG9zKTogVmVjMjtcclxufSJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/shop/script/shop.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, '48bfeZuYFZE2qmgxbW2IigB', 'shop'); +// shop/script/shop.ts "use strict"; var __extends = (this && this.__extends) || (function () { @@ -122,37 +1456,68 @@ 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 DouyinEntranceView = /** @class */ (function (_super) { - __extends(DouyinEntranceView, _super); - function DouyinEntranceView() { - return _super !== null && _super.apply(this, arguments) || this; +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) {} } - DouyinEntranceView.prototype.start = function () { + // onLoad () {} + NewClass.prototype.start = function () { + this.openShop(); }; - 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('跳转成功'); + //打开商店界面 + 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 } - else { - console.log('跳转失败'); + if (price && product) { + price.string = (product.price / 100).toString() + "元"; } - }); + if (title && product) { + title.string = product.name; + } + } }; - DouyinEntranceView = __decorate([ + //关闭商店界面 + 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 - ], DouyinEntranceView); - return DouyinEntranceView; + ], NewClass); + return NewClass; }(cc.Component)); -exports.DouyinEntranceView = DouyinEntranceView; +exports.default = NewClass; cc._RF.pop(); } @@ -165,7 +1530,1092 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXERvdXlpbkVudHJhbmNlVmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTRDO0FBQ3RDLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBSTVDO0lBQXdDLHNDQUFZO0lBQXBEOztJQXVCQSxDQUFDO0lBdEJHLGtDQUFLLEdBQUw7SUFFQSxDQUFDO0lBRUQsbUNBQU0sR0FBTixVQUFPLFNBQWlCO0lBRXhCLENBQUM7SUFFRCx5Q0FBWSxHQUFaO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxvREFBdUIsR0FBdkI7UUFFSSx5QkFBVyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLFVBQUMsT0FBZ0I7WUFDNUQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2QjtpQkFBTTtnQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3ZCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBdEJRLGtCQUFrQjtRQUQ5QixPQUFPO09BQ0ssa0JBQWtCLENBdUI5QjtJQUFELHlCQUFDO0NBdkJELEFBdUJDLENBdkJ1QyxFQUFFLENBQUMsU0FBUyxHQXVCbkQ7QUF2QlksZ0RBQWtCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWluaUdhbWVTZGsgfSBmcm9tIFwiLi9NaW5pR2FtZVNka1wiO1xyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBjbGFzcyBEb3V5aW5FbnRyYW5jZVZpZXcgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhcnQoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZShkZWx0YVRpbWU6IG51bWJlcikge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBvbkNsb3NlQ2xpY2soKSB7XHJcbiAgICAgICAgdGhpcy5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTmF2aWdhdGVUb0RvdXlpbkNsaWNrKCkge1xyXG5cclxuICAgICAgICBNaW5pR2FtZVNkay5CeXRlZGFuY2VTaWRlYmFyLm5hdmlnYXRlVG9TaWRlYmFyKChzdWNjZXNzOiBib29sZWFuKSA9PiB7IC8vIOi3s+i9rOWIsOaKlumfs+S+p+i+ueagj1xyXG4gICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+i3s+i9rOaIkOWKnycpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+i3s+i9rOWksei0pScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2hvcFxcc2NyaXB0XFxzaG9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVNLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBa0RDO1FBakRHLE1BQU07UUFFTixVQUFJLEdBQVksSUFBSSxDQUFDO1FBQ3JCLE1BQU07UUFFTixjQUFRLEdBQVksSUFBSSxDQUFDOztRQTJDekIsaUJBQWlCO0lBQ3JCLENBQUM7SUEzQ0csZUFBZTtJQUVmLHdCQUFLLEdBQUw7UUFDSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELFFBQVE7SUFDUiwyQkFBUSxHQUFSO1FBQ0ksU0FBUztRQUNULElBQU0sUUFBUSxHQUFHO1lBQ2IsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3pFLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNuRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDbkUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3BFLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNwRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDcEUsRUFBRSxVQUFVLEVBQUUsMkJBQTJCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDM0YsRUFBRSxVQUFVLEVBQUUsMkJBQTJCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7U0FDeEYsQ0FBQztRQUNGLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM5RCxJQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRixJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRSxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRSxJQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksVUFBVSxJQUFJLE9BQU8sRUFBRTtnQkFDdkIsdURBQXVEO2FBQzFEO1lBQ0QsSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFO2dCQUNsQixLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLENBQUM7YUFDekQ7WUFDRCxJQUFJLEtBQUssSUFBSSxPQUFPLEVBQUU7Z0JBQ2xCLEtBQUssQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQzthQUMvQjtTQUNKO0lBQ0wsQ0FBQztJQUdELFFBQVE7SUFDUiw0QkFBUyxHQUFUO1FBQ0ksT0FBTztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQTVDRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzBDQUNHO0lBR3JCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7OENBQ087SUFOUixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBa0Q1QjtJQUFELGVBQUM7Q0FsREQsQUFrREMsQ0FsRHFDLEVBQUUsQ0FBQyxTQUFTLEdBa0RqRDtrQkFsRG9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGlzdCBmcm9tIFwiLi4vLi4vU2NyaXB0L21vZHVsZS9SYW5rTGlzdC9MaXN0XCI7XG5cbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XG5cbkBjY2NsYXNzXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XG4gICAgLy/llYblupfnlYzpnaJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcbiAgICBzaG9wOiBjYy5Ob2RlID0gbnVsbDtcbiAgICAvL+WVhuWTgeWIl+ihqFxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxuICAgIGl0ZW1MaXN0OiBjYy5Ob2RlID0gbnVsbDtcbiAgICAvLyBvbkxvYWQgKCkge31cblxuICAgIHN0YXJ0KCkge1xuICAgICAgICB0aGlzLm9wZW5TaG9wKCk7XG4gICAgfVxuICAgIC8v5omT5byA5ZWG5bqX55WM6Z2iXG4gICAgb3BlblNob3AoKSB7XG4gICAgICAgIC8vIOWVhuWTgeaVsOaNruaVsOe7hFxuICAgICAgICBjb25zdCBwcm9kdWN0cyA9IFtcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJnb2xkX3BhY2tfMVwiLCBuYW1lOiBcIumHkeW4geWMhTFcIiwgcHJpY2U6IDYwMCwgdGl0bGU6IFwiM3gy5YWt5qGj6YeR5biBXCIgfSxcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJnb2xkX3BhY2tfMlwiLCBuYW1lOiBcIumHkeW4geWMhTJcIiwgcHJpY2U6IDM2MDAsIHRpdGxlOiBcIlwiIH0sXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwiZ29sZF9wYWNrXzNcIiwgbmFtZTogXCLph5HluIHljIUzXCIsIHByaWNlOiA2ODAwLCB0aXRsZTogXCJcIiB9LFxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja180XCIsIG5hbWU6IFwi6YeR5biB5YyFNFwiLCBwcmljZTogMTI4MDAsIHRpdGxlOiBcIlwiIH0sXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwiZ29sZF9wYWNrXzVcIiwgbmFtZTogXCLph5HluIHljIU1XCIsIHByaWNlOiAzMjgwMCwgdGl0bGU6IFwiXCIgfSxcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJnb2xkX3BhY2tfNlwiLCBuYW1lOiBcIumHkeW4geWMhTZcIiwgcHJpY2U6IDY0ODAwLCB0aXRsZTogXCJcIiB9LFxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcInVubGltaXRlZF9oZWFsdGhfYnVuZGxlXzFcIiwgbmFtZTogXCLml6DpmZDkvZPlipvnu4TlkIjljIUxXCIsIHByaWNlOiAxODAwLCB0aXRsZTogXCIz5Liq5qiq54mI56S85YyFXCIgfSxcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJ1bmxpbWl0ZWRfaGVhbHRoX2J1bmRsZV8yXCIsIG5hbWU6IFwi5peg6ZmQ5L2T5Yqb57uE5ZCI5YyFMlwiLCBwcmljZTogNjYwMCwgdGl0bGU6IFwiXCIgfVxuICAgICAgICBdO1xuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSA4ICYmIGkgPCB0aGlzLml0ZW1MaXN0LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBzcHJpdGVDb21wID0gdGhpcy5pdGVtTGlzdC5jaGlsZHJlbltpXS5jaGlsZHJlblswXS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKTtcbiAgICAgICAgICAgIGNvbnN0IHByaWNlID0gdGhpcy5pdGVtTGlzdC5jaGlsZHJlbltpXS5jaGlsZHJlblsxXS5nZXRDb21wb25lbnQoY2MuTGFiZWwpO1xuICAgICAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLml0ZW1MaXN0LmNoaWxkcmVuW2ldLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChjYy5MYWJlbCk7XG4gICAgICAgICAgICBjb25zdCBwcm9kdWN0ID0gcHJvZHVjdHNbaSAtIDFdO1xuICAgICAgICAgICAgaWYgKHNwcml0ZUNvbXAgJiYgcHJvZHVjdCkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IOagueaNriBwcm9kdWN0X2lkIOaIliBuYW1lIOiuvue9riBzcHJpdGVDb21wLnNwcml0ZUZyYW1lXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHJpY2UgJiYgcHJvZHVjdCkge1xuICAgICAgICAgICAgICAgIHByaWNlLnN0cmluZyA9IChwcm9kdWN0LnByaWNlIC8gMTAwKS50b1N0cmluZygpICsgXCLlhYNcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aXRsZSAmJiBwcm9kdWN0KSB7XG4gICAgICAgICAgICAgICAgdGl0bGUuc3RyaW5nID0gcHJvZHVjdC5uYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvL+WFs+mXreWVhuW6l+eVjOmdolxuICAgIGNsb3NlU2hvcCgpIHtcbiAgICAgICAgLy/plIDmr4HpooTliLbkvZNcbiAgICAgICAgdGhpcy5zaG9wLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxufVxuIl19 +//------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"; + +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 _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"]; + +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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vVGlsZWRMYXllci5qcyJdLCJuYW1lcyI6WyJfbWF0NF90ZW1wIiwiY2MiLCJtYXQ0IiwiX3ZlYzJfdGVtcCIsInYyIiwiX3ZlYzJfdGVtcDIiLCJfZGVmYXVsdCIsIkNsYXNzIiwiVGlsZWRMYXllciIsIl9pbml0IiwibGF5ZXJJbmZvIiwibWFwSW5mbyIsInRpbGVzZXRzIiwidGV4dHVyZXMiLCJ0ZXhHcmlkcyIsInRpbGVkTWFwIiwiZmlyc3RUbXhMYXllciIsIl9jdWxsaW5nRGlydHkiLCJfbGF5ZXJJbmZvIiwiX21hcEluZm8iLCJfZmlyc3RUbXhMYXllciIsIl90aWxlZE1hcCIsInNpemUiLCJfbGF5ZXJTaXplIiwiX2xheWVyTmFtZSIsIm5hbWUiLCJfdGlsZXMiLCJfcHJvcGVydGllcyIsInByb3BlcnRpZXMiLCJfbWluR0lEIiwiX21heEdJRCIsIl9vcGFjaXR5IiwiX3JlbmRlck9yZGVyIiwicmVuZGVyT3JkZXIiLCJfc3RhZ2dlckF4aXMiLCJnZXRTdGFnZ2VyQXhpcyIsIl9zdGFnZ2VySW5kZXgiLCJnZXRTdGFnZ2VySW5kZXgiLCJfaGV4U2lkZUxlbmd0aCIsImdldEhleFNpZGVMZW5ndGgiLCJfYW5pbWF0aW9ucyIsImdldFRpbGVBbmltYXRpb25zIiwiX3RpbGVzZXRzIiwiX3RleHR1cmVzIiwiX3RleEdyaWRzIiwiX2xheWVyT3JpZW50YXRpb24iLCJvcmllbnRhdGlvbiIsIl9tYXBUaWxlU2l6ZSIsImdldFRpbGVTaXplIiwibWFwdHciLCJ3aWR0aCIsIm1hcHRoIiwiaGVpZ2h0IiwibGF5ZXJXIiwibGF5ZXJIIiwiVGlsZWRNYXAiLCJPcmllbnRhdGlvbiIsIkhFWCIsIlN0YWdnZXJBeGlzIiwiU3RhZ2dlckluZGV4IiwiX29kZF9ldmVuIiwiU1RBR0dFUklOREVYX09ERCIsIlNUQUdHRVJBWElTX1giLCJfZGlmZlgxIiwiX2RpZmZZMSIsIk1hdGgiLCJmbG9vciIsIm5vZGUiLCJzZXRDb250ZW50U2l6ZSIsIklTTyIsIndoIiwiX29mZnNldCIsIm9mZnNldCIsIngiLCJ5IiwiX3VzZUF1dG9tYXRpY1ZlcnRleFoiLCJfdmVydGV4WnZhbHVlIiwiX3N5bmNBbmNob3JQb2ludCIsIl9wcmVwYXJlVG9SZW5kZXIiLCJfdXBkYXRlQ3VsbGluZyIsIkNDX0VESVRPUiIsImVuYWJsZUN1bGxpbmciLCJfZW5hYmxlQ3VsbGluZyIsIl9jdWxsaW5nUmVjdCIsIl9jYWNoZUN1bGxpbmdEaXJ0eSIsIl91cGRhdGVXb3JsZE1hdHJpeCIsIk1hdDQiLCJpbnZlcnQiLCJfd29ybGRNYXRyaXgiLCJyZWN0IiwidmlzaWJsZVJlY3QiLCJjYW1lcmEiLCJDYW1lcmEiLCJmaW5kQ2FtZXJhIiwiZ2V0U2NyZWVuVG9Xb3JsZFBvaW50IiwiVmVjMiIsInRyYW5zZm9ybU1hdDQiLCJfdXBkYXRlVmlld1BvcnQiLCJfdHJhdmVyc2VBbGxHcmlkIiwidGlsZXMiLCJ0aWxlc2V0SW5kZXhBcnIiLCJfdGlsZXNldEluZGV4QXJyIiwidGlsZXNldEluZGV4VG9BcnJJbmRleCIsIl90aWxlc2V0SW5kZXhUb0FyckluZGV4IiwiVGlsZUZsYWciLCJGTElQUEVEX01BU0siLCJzaW5nbGVUZXh0dXJlIiwiaXNTaW5nbGVUZXh0dXJlIiwibGVuZ3RoIiwiaSIsImdpZCIsImdyaWQiLCJlcnJvciIsInRpbGVzZXRJZHgiLCJ0ZXhJZCIsInVuZGVmaW5lZCIsInB1c2giLCJleHBvcnRzIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQUlBLFVBQVUsR0FBR0MsRUFBRSxDQUFDQyxJQUFJLEVBQUU7QUFDMUIsSUFBSUMsVUFBVSxHQUFHRixFQUFFLENBQUNHLEVBQUUsRUFBRTtBQUN4QixJQUFJQyxXQUFXLEdBQUdKLEVBQUUsQ0FBQ0csRUFBRSxFQUFFO0FBQUMsSUFBQUUsUUFBQSxHQUVY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QUFBL0csUUFBQTtBQUFBZ0gsTUFBQSxDQUFBRCxPQUFBLEdBQUFBLE9BQUEiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxubGV0IF9tYXQ0X3RlbXAgPSBjYy5tYXQ0KCk7XHJcbmxldCBfdmVjMl90ZW1wID0gY2MudjIoKTtcclxubGV0IF92ZWMyX3RlbXAyID0gY2MudjIoKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNjLkNsYXNzKHtcclxuICAgIGV4dGVuZHM6IGNjLlRpbGVkTGF5ZXIsXHJcblxyXG4gICAgLy8g5q2k5aSE5L+u5pS5IOWinuWKoGZpcnN0VG14TGF5ZXLlj4LmlbBcclxuICAgIF9pbml0KGxheWVySW5mbywgbWFwSW5mbywgdGlsZXNldHMsIHRleHR1cmVzLCB0ZXhHcmlkcywgdGlsZWRNYXAsIGZpcnN0VG14TGF5ZXIpIHtcclxuICAgICAgICAvLyDkv67mlLnnu5PmnZ9cclxuICAgICAgICB0aGlzLl9jdWxsaW5nRGlydHkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2xheWVySW5mbyA9IGxheWVySW5mbztcclxuICAgICAgICB0aGlzLl9tYXBJbmZvID0gbWFwSW5mbztcclxuICAgICAgICAvLyDmraTlpITkv67mlLkg5L+d5a2YZmlyc3RUbXhMYXllcuWPguaVsFxyXG4gICAgICAgIHRoaXMuX2ZpcnN0VG14TGF5ZXIgPSBmaXJzdFRteExheWVyO1xyXG4gICAgICAgIHRoaXMuX3RpbGVkTWFwID0gdGlsZWRNYXA7XHJcbiAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcblxyXG4gICAgICAgIGxldCBzaXplID0gbGF5ZXJJbmZvLl9sYXllclNpemU7XHJcblxyXG4gICAgICAgIC8vIGxheWVySW5mb1xyXG4gICAgICAgIHRoaXMuX2xheWVyTmFtZSA9IGxheWVySW5mby5uYW1lO1xyXG4gICAgICAgIHRoaXMuX3RpbGVzID0gbGF5ZXJJbmZvLl90aWxlcztcclxuICAgICAgICB0aGlzLl9wcm9wZXJ0aWVzID0gbGF5ZXJJbmZvLnByb3BlcnRpZXM7XHJcbiAgICAgICAgdGhpcy5fbGF5ZXJTaXplID0gc2l6ZTtcclxuICAgICAgICB0aGlzLl9taW5HSUQgPSBsYXllckluZm8uX21pbkdJRDtcclxuICAgICAgICB0aGlzLl9tYXhHSUQgPSBsYXllckluZm8uX21heEdJRDtcclxuICAgICAgICB0aGlzLl9vcGFjaXR5ID0gbGF5ZXJJbmZvLl9vcGFjaXR5O1xyXG4gICAgICAgIHRoaXMuX3JlbmRlck9yZGVyID0gbWFwSW5mby5yZW5kZXJPcmRlcjtcclxuICAgICAgICB0aGlzLl9zdGFnZ2VyQXhpcyA9IG1hcEluZm8uZ2V0U3RhZ2dlckF4aXMoKTtcclxuICAgICAgICB0aGlzLl9zdGFnZ2VySW5kZXggPSBtYXBJbmZvLmdldFN0YWdnZXJJbmRleCgpO1xyXG4gICAgICAgIHRoaXMuX2hleFNpZGVMZW5ndGggPSBtYXBJbmZvLmdldEhleFNpZGVMZW5ndGgoKTtcclxuICAgICAgICB0aGlzLl9hbmltYXRpb25zID0gbWFwSW5mby5nZXRUaWxlQW5pbWF0aW9ucygpO1xyXG5cclxuICAgICAgICAvLyB0aWxlc2V0c1xyXG4gICAgICAgIHRoaXMuX3RpbGVzZXRzID0gdGlsZXNldHM7XHJcbiAgICAgICAgLy8gdGV4dHVyZXNcclxuICAgICAgICB0aGlzLl90ZXh0dXJlcyA9IHRleHR1cmVzO1xyXG4gICAgICAgIC8vIGdyaWQgdGV4dHVyZVxyXG4gICAgICAgIHRoaXMuX3RleEdyaWRzID0gdGV4R3JpZHM7XHJcblxyXG4gICAgICAgIC8vIG1hcEluZm9cclxuICAgICAgICB0aGlzLl9sYXllck9yaWVudGF0aW9uID0gbWFwSW5mby5vcmllbnRhdGlvbjtcclxuICAgICAgICB0aGlzLl9tYXBUaWxlU2l6ZSA9IG1hcEluZm8uZ2V0VGlsZVNpemUoKTtcclxuXHJcbiAgICAgICAgbGV0IG1hcHR3ID0gdGhpcy5fbWFwVGlsZVNpemUud2lkdGg7XHJcbiAgICAgICAgbGV0IG1hcHRoID0gdGhpcy5fbWFwVGlsZVNpemUuaGVpZ2h0O1xyXG4gICAgICAgIGxldCBsYXllclcgPSB0aGlzLl9sYXllclNpemUud2lkdGg7XHJcbiAgICAgICAgbGV0IGxheWVySCA9IHRoaXMuX2xheWVyU2l6ZS5oZWlnaHQ7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9sYXllck9yaWVudGF0aW9uID09PSBjYy5UaWxlZE1hcC5PcmllbnRhdGlvbi5IRVgpIHtcclxuICAgICAgICAgICAgLy8gaGFuZGxlIGhleCBtYXBcclxuICAgICAgICAgICAgY29uc3QgVGlsZWRNYXAgPSBjYy5UaWxlZE1hcDtcclxuICAgICAgICAgICAgY29uc3QgU3RhZ2dlckF4aXMgPSBUaWxlZE1hcC5TdGFnZ2VyQXhpcztcclxuICAgICAgICAgICAgY29uc3QgU3RhZ2dlckluZGV4ID0gVGlsZWRNYXAuU3RhZ2dlckluZGV4O1xyXG4gICAgICAgICAgICBsZXQgd2lkdGggPSAwLCBoZWlnaHQgPSAwO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fb2RkX2V2ZW4gPSAodGhpcy5fc3RhZ2dlckluZGV4ID09PSBTdGFnZ2VySW5kZXguU1RBR0dFUklOREVYX09ERCkgPyAxIDogLTE7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9zdGFnZ2VyQXhpcyA9PT0gU3RhZ2dlckF4aXMuU1RBR0dFUkFYSVNfWCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGlmZlgxID0gKG1hcHR3IC0gdGhpcy5faGV4U2lkZUxlbmd0aCkgLyAyO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGlmZlkxID0gMDtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IG1hcHRoICogKGxheWVySCArIDAuNSk7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA9IChtYXB0dyArIHRoaXMuX2hleFNpZGVMZW5ndGgpICogTWF0aC5mbG9vcihsYXllclcgLyAyKSArIG1hcHR3ICogKGxheWVyVyAlIDIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGlmZlgxID0gMDtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZmZZMSA9IChtYXB0aCAtIHRoaXMuX2hleFNpZGVMZW5ndGgpIC8gMjtcclxuICAgICAgICAgICAgICAgIHdpZHRoID0gbWFwdHcgKiAobGF5ZXJXICsgMC41KTtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IChtYXB0aCArIHRoaXMuX2hleFNpZGVMZW5ndGgpICogTWF0aC5mbG9vcihsYXllckggLyAyKSArIG1hcHRoICogKGxheWVySCAlIDIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5zZXRDb250ZW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2xheWVyT3JpZW50YXRpb24gPT09IGNjLlRpbGVkTWFwLk9yaWVudGF0aW9uLklTTykge1xyXG4gICAgICAgICAgICBsZXQgd2ggPSBsYXllclcgKyBsYXllckg7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5zZXRDb250ZW50U2l6ZShtYXB0dyAqIDAuNSAqIHdoLCBtYXB0aCAqIDAuNSAqIHdoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuc2V0Q29udGVudFNpemUobGF5ZXJXICogbWFwdHcsIGxheWVySCAqIG1hcHRoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIG9mZnNldCAoYWZ0ZXIgbGF5ZXIgb3JpZW50YXRpb24gaXMgc2V0KTtcclxuICAgICAgICB0aGlzLl9vZmZzZXQgPSBjYy52MihsYXllckluZm8ub2Zmc2V0LngsIC1sYXllckluZm8ub2Zmc2V0LnkpO1xyXG4gICAgICAgIHRoaXMuX3VzZUF1dG9tYXRpY1ZlcnRleFogPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl92ZXJ0ZXhadmFsdWUgPSAwO1xyXG4gICAgICAgIHRoaXMuX3N5bmNBbmNob3JQb2ludCgpO1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmVUb1JlbmRlcigpO1xyXG4gICAgfSxcclxuICAgIF91cGRhdGVDdWxsaW5nKCkge1xyXG4gICAgICAgIGlmIChDQ19FRElUT1IpIHtcclxuICAgICAgICAgICAgdGhpcy5lbmFibGVDdWxsaW5nKGZhbHNlKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2VuYWJsZUN1bGxpbmcpIHtcclxuICAgICAgICAgICAgLy8g5q2k5aSE5L+u5pS5IOiLpeS4jeS4uummluS4qmxheWVyIOebtOaOpeWkjeeUqGZpcnN0TGF5ZXLnmoTnu5PmnpxcclxuICAgICAgICAgICAgLy8gdGhpcy5fZmlyc3RUbXhMYXllcuS4jeS4uuepuuaXtiDooajnpLrlvZPliY1sYXllcuS4jeaYr+mmluS4qmxheWVyXHJcbiAgICAgICAgICAgIGxldCBmaXJzdFRteExheWVyID0gdGhpcy5fZmlyc3RUbXhMYXllcjtcclxuICAgICAgICAgICAgaWYgKCEhZmlyc3RUbXhMYXllcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY3VsbGluZ1JlY3QgPSBmaXJzdFRteExheWVyLl9jdWxsaW5nUmVjdDtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2N1bGxpbmdEaXJ0eSA9IGZpcnN0VG14TGF5ZXIuX2NhY2hlQ3VsbGluZ0RpcnR5O1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOS/ruaUuee7k+adn1xyXG5cclxuICAgICAgICAgICAgdGhpcy5ub2RlLl91cGRhdGVXb3JsZE1hdHJpeCgpO1xyXG4gICAgICAgICAgICBjYy5NYXQ0LmludmVydChfbWF0NF90ZW1wLCB0aGlzLm5vZGUuX3dvcmxkTWF0cml4KTtcclxuICAgICAgICAgICAgbGV0IHJlY3QgPSBjYy52aXNpYmxlUmVjdDtcclxuICAgICAgICAgICAgbGV0IGNhbWVyYSA9IGNjLkNhbWVyYS5maW5kQ2FtZXJhKHRoaXMubm9kZSk7XHJcbiAgICAgICAgICAgIGlmIChjYW1lcmEpIHtcclxuICAgICAgICAgICAgICAgIF92ZWMyX3RlbXAueCA9IDA7XHJcbiAgICAgICAgICAgICAgICBfdmVjMl90ZW1wLnkgPSAwO1xyXG4gICAgICAgICAgICAgICAgX3ZlYzJfdGVtcDIueCA9IF92ZWMyX3RlbXAueCArIHJlY3Qud2lkdGg7XHJcbiAgICAgICAgICAgICAgICBfdmVjMl90ZW1wMi55ID0gX3ZlYzJfdGVtcC55ICsgcmVjdC5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBjYW1lcmEuZ2V0U2NyZWVuVG9Xb3JsZFBvaW50KF92ZWMyX3RlbXAsIF92ZWMyX3RlbXApO1xyXG4gICAgICAgICAgICAgICAgY2FtZXJhLmdldFNjcmVlblRvV29ybGRQb2ludChfdmVjMl90ZW1wMiwgX3ZlYzJfdGVtcDIpO1xyXG4gICAgICAgICAgICAgICAgY2MuVmVjMi50cmFuc2Zvcm1NYXQ0KF92ZWMyX3RlbXAsIF92ZWMyX3RlbXAsIF9tYXQ0X3RlbXApO1xyXG4gICAgICAgICAgICAgICAgY2MuVmVjMi50cmFuc2Zvcm1NYXQ0KF92ZWMyX3RlbXAyLCBfdmVjMl90ZW1wMiwgX21hdDRfdGVtcCk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVmlld1BvcnQoX3ZlYzJfdGVtcC54LCBfdmVjMl90ZW1wLnksIF92ZWMyX3RlbXAyLnggLSBfdmVjMl90ZW1wLngsIF92ZWMyX3RlbXAyLnkgLSBfdmVjMl90ZW1wLnkpO1xyXG4gICAgICAgICAgICAgICAgLy8g5q2k5aSE5L+u5pS5IOiLpeS4uummluS4qmxheWVyIOe8k+WtmF9jdWxsaW5nRGlydHnjgIJcclxuICAgICAgICAgICAgICAgIC8vIF9jdWxsaW5nRGlydHnkvJrlnKjloavlhYXmuLLmn5PmlbDmja7lkI7ooqvmlLnkuLpmYWxzZSDmiYDku6XpnIDopoHnvJPlrZjov5nph4znmoTnu5PmnpxcclxuICAgICAgICAgICAgICAgIGlmICghZmlyc3RUbXhMYXllcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlQ3VsbGluZ0RpcnR5ID0gdGhpcy5fY3VsbGluZ0RpcnR5O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgX3RyYXZlcnNlQWxsR3JpZCAoKSB7XHJcbiAgICAgICAgbGV0IHRpbGVzID0gdGhpcy5fdGlsZXM7XHJcbiAgICAgICAgbGV0IHRleEdyaWRzID0gdGhpcy5fdGV4R3JpZHM7XHJcbiAgICAgICAgbGV0IHRpbGVzZXRJbmRleEFyciA9IHRoaXMuX3RpbGVzZXRJbmRleEFycjtcclxuICAgICAgICBsZXQgdGlsZXNldEluZGV4VG9BcnJJbmRleCA9IHRoaXMuX3RpbGVzZXRJbmRleFRvQXJySW5kZXggPSB7fTtcclxuXHJcbiAgICAgICAgY29uc3QgVGlsZWRNYXAgPSBjYy5UaWxlZE1hcDtcclxuICAgICAgICBjb25zdCBUaWxlRmxhZyA9IFRpbGVkTWFwLlRpbGVGbGFnO1xyXG4gICAgICAgIGNvbnN0IEZMSVBQRURfTUFTSyA9IFRpbGVGbGFnLkZMSVBQRURfTUFTSztcclxuXHJcbiAgICAgICAgbGV0IHNpbmdsZVRleHR1cmUgPSB0aGlzLl90aWxlZE1hcC5pc1NpbmdsZVRleHR1cmUoKTtcclxuXHJcbiAgICAgICAgdGlsZXNldEluZGV4QXJyLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgZ2lkID0gdGlsZXNbaV07XHJcbiAgICAgICAgICAgIGlmIChnaWQgPT09IDApIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBnaWQgPSAoKGdpZCAmIEZMSVBQRURfTUFTSykgPj4+IDApO1xyXG4gICAgICAgICAgICBsZXQgZ3JpZCA9IHRleEdyaWRzW2dpZF07XHJcbiAgICAgICAgICAgIGlmICghZ3JpZCkge1xyXG4gICAgICAgICAgICAgICAgY2MuZXJyb3IoXCJDQ1RpbGVkTGF5ZXI6X3RyYXZlcnNlQWxsR3JpZCBncmlkIGlzIG51bGwsIGdpZCBpczpcIiwgZ2lkKTtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCB0aWxlc2V0SWR4ID0gZ3JpZC50ZXhJZDtcclxuICAgICAgICAgICAgaWYgKHRpbGVzZXRJbmRleFRvQXJySW5kZXhbdGlsZXNldElkeF0gIT09IHVuZGVmaW5lZCkgY29udGludWU7XHJcbiAgICAgICAgICAgIHRpbGVzZXRJbmRleFRvQXJySW5kZXhbdGlsZXNldElkeF0gPSB0aWxlc2V0SW5kZXhBcnIubGVuZ3RoO1xyXG4gICAgICAgICAgICB0aWxlc2V0SW5kZXhBcnIucHVzaCh0aWxlc2V0SWR4KTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIOatpOWkhOS/ruaUuSDlvZPlj6rmnInkuIDkuKrlm77pm4bml7Yg5Y+v5Lul55u05o6l5YGc5q2i6YGN5Y6GXHJcbiAgICAgICAgICAgIGlmIChzaW5nbGVUZXh0dXJlKSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDkv67mlLnnu5PmnZ9cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG59KTtcclxuIl19 +//------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/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/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/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/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/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/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/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/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/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() { @@ -316,7 +2766,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_base/util/lq_game_util.js'; + var __filename = 'preview-scripts/assets/Script/GameScene.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -324,149 +2774,57 @@ cc._RF.pop(); }; 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 +cc._RF.push(module, 'e8b235WjRBErajwLmN8xFUz', 'GameScene'); +// Script/GameScene.js + +// cc.Class({ +// extends: cc.Component, +// properties: { +// localTest: { +// default: false, +// tooltip: '本地测试时勾选,避免tz_url和Configure报错,提交前勾掉' +// }, +// clientTest: { +// default: false, +// tooltip: '客户端测试时勾选,展示版本标记方便测试区分,上线前勾掉' +// }, +// clientTestVersion: { +// default: '', +// tooltip: '版本标记' +// }, +// testVersion: cc.Label, +// score: cc.Label, +// double_hit: cc.Node, +// add: cc.Node, +// add2: cc.Node, +// double_title: cc.Node, +// count_time: cc.Node, +// beginNode: cc.Node, +// ball_nomal: [cc.SpriteFrame], +// bg_nomal: [cc.SpriteFrame], +// ball_light: [cc.SpriteFrame], +// kuang_Frame: [cc.SpriteFrame], +// daojishi: cc.Label, +// pause_anniu: cc.Sprite, +// mask: cc.Node, + +// flashUI: { +// default: null, +// type: cc.SpriteAtlas +// }, +// }, + +// onLoad() { + +// }, + +// update(dt) { + +// }, + +// }); "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(); } @@ -479,13 +2837,13 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9nYW1lX3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTyxRQUFRLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQztBQUM5QixJQUFPLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO0FBR3hCLElBQU8sV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7QUFDcEMsSUFBTyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztBQUd0QjtJQUFBO0lBeUlBLENBQUM7SUF0SWlCLG9CQUFTLEdBQXZCLFVBQXdCLEdBQVcsRUFBRSxRQUFpRSxFQUFFLEtBQVk7UUFBWixzQkFBQSxFQUFBLFlBQVk7UUFDaEgsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO1lBQ3BCLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDM0IsT0FBTztTQUNWO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE9BQU87U0FDVjtRQUNELGtCQUFrQjtRQUNsQiwrQkFBK0I7UUFDL0IseURBQXlEO1FBQ3pELHFCQUFxQjtRQUNyQiw4Q0FBOEM7UUFDOUMsMENBQTBDO1FBQzFDLHNCQUFzQjtRQUN0QixZQUFZO1FBQ1osa0RBQWtEO1FBQ2xELGlDQUFpQztRQUNqQyx1QkFBdUI7UUFDdkIsNkNBQTZDO1FBQzdDLFlBQVk7UUFDWixVQUFVO0lBQ2QsQ0FBQztJQUVhLHdCQUFhLEdBQTNCLFVBQTRCLENBQVMsRUFBRSxLQUFhLEVBQUUsTUFBYztRQUNoRSxhQUFhO1FBQ2IsSUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsS0FBSyxD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LGFBQWEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUM5QyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFNLENBQUMsQ0FBQyxFQUNqQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLFFBQU0sQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FDTCxDQUFDLENBQUMsQ0FBQztTQUNQO0lBQ0wsQ0FBQztJQXRJYyxzQkFBVyxHQUFtQyxFQUFFLENBQUM7SUF3SXBFLGlCQUFDO0NBeklELEFBeUlDLElBQUE7QUF6SVksZ0NBQVUiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3ByaXRlRnJhbWUgPSBjYy5TcHJpdGVGcmFtZTtcclxuaW1wb3J0IGRpcmVjdG9yID0gY2MuZGlyZWN0b3I7XHJcbmltcG9ydCB0d2VlbiA9IGNjLnR3ZWVuO1xyXG5pbXBvcnQgVGV4dHVyZTJEID0gY2MuVGV4dHVyZTJEO1xyXG5pbXBvcnQgQ2FudmFzID0gY2MuQ2FudmFzO1xyXG5pbXBvcnQgdmlzaWJsZVJlY3QgPSBjYy52aXNpYmxlUmVjdDtcclxuaW1wb3J0IGZpbmQgPSBjYy5maW5kO1xyXG5pbXBvcnQgTm9kZSA9IGNjLk5vZGU7XHJcblxyXG5leHBvcnQgY2xhc3MgTFFHYW1lVXRpbCB7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBpbWFnZV9jYWNoZTogeyBba2V5OiBzdHJpbmddOiBTcHJpdGVGcmFtZSB9ID0ge307XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXRfaW1hZ2UodXJsOiBzdHJpbmcsIGNhbGxiYWNrOiAoc3VjY2VzczogYm9vbGVhbiwgc2Y6IFNwcml0ZUZyYW1lIHwgdW5kZWZpbmVkKSA9PiB2b2lkLCBjYWNoZSA9IHRydWUpIHtcclxuICAgICAgICBpZiAoIXVybCB8fCB1cmwgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKGZhbHNlLCB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmltYWdlX2NhY2hlW3VybF0pIHtcclxuICAgICAgICAgICAgY2FsbGJhY2sodHJ1ZSwgdGhpcy5pbWFnZV9jYWNoZVt1cmxdKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjYy5sb2FkZXIubG9hZChcclxuICAgICAgICAvLyAgICAge3VybDogdXJsLCB0eXBlOiAncG5nJ30sXHJcbiAgICAgICAgLy8gICAgIChlcnI6IHN0cmluZywgdGV4dHVyZTogVGV4dHVyZTJEIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICAgICAgLy8gICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignZXJyOicgKyBlcnIpO1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIGNhbGxiYWNrKGZhbHNlLCB1bmRlZmluZWQpO1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAvLyAgICAgICAgIH1cclxuICAgICAgICAvLyAgICAgICAgIGNvbnN0IGZyYW1lID0gbmV3IFNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgIC8vICAgICAgICAgY2FsbGJhY2sodHJ1ZSwgZnJhbWUpO1xyXG4gICAgICAgIC8vICAgICAgICAgaWYgKGNhY2hlKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgdGhpcy5pbWFnZV9jYWNoZVt1cmxdID0gZnJhbWU7XHJcbiAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgLy8gICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgY2FudmFzX3BvbGljeShjOiBDYW52YXMsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIGNvbnN0IHJhdGlvID0gdmlzaWJsZVJlY3QuaGVpZ2h0IC8gdmlzaWJsZVJlY3Qud2lkdGg7XHJcbiAgICAgICAgaWYgKHJhdGlvID4gaGVpZ2h0IC8gd2lkdGgpIHtcclxuICAgICAgICAgICAgYy5maXRIZWlnaHQgPSBmYWxzZTtcclxuICAgICAgICAgICAgYy5maXRXaWR0aCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYy5maXRIZWlnaHQgPSB0cnVlO1xyXG4gICAgICAgICAgICBjLmZpdFdpZHRoID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjLmZpdEhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIHJlY3Vyc2lvbl9ub2RlX3Byb3BlcnR5KG5vZGU6IE5vZGUsIHA6IHsga2V5OiBzdHJpbmcsIHZhbHVlOiBudW1iZXIgfSkge1xyXG4gICAgICAgIGlmIChub2RlLnBhcmVudCkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHAudmFsdWUgKj0gbm9kZS5wYXJlbnRbcC5rZXldO1xyXG4gICAgICAgICAgICB0aGlzLnJlY3Vyc2lvbl9ub2RlX3Byb3BlcnR5KG5vZGUucGFyZW50LCBwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHBhdGhcclxuICAgICAqIGVnLidDYW52YXM+bm9kZV9tYWluPmJ0bl9zdGFydCdcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBmaW5kX25vZGUocGF0aDogc3RyaW5nKTogTm9kZSB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgaWYgKCFwYXRoIHx8IHBhdGgubGVuZ3RoIDw9IDApIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKCfot6/lvoTkuI3mraPnoa4nKTtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgYXJyID0gcGF0aC5zcGxpdCgnLycpO1xyXG4gICAgICAgIGNvbnN0IHJvb3QgPSBmaW5kKGFyclswXSk7XHJcbiAgICAgICAgaWYgKCFyb290KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybign5rKh5om+5Yiw6IqC54K5OicgKyBhcnJbMF0pO1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbm9kZSA9IHJvb3Q7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgdGVtcCA9IG5vZGUuZ2V0Q2hpbGRCeU5hbWUoYXJyW2ldKTtcclxuICAgICAgICAgICAgaWYgKCF0ZW1wKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ+ayoeaJvuWIsOiKgueCuTonICsgYXJyW2ldKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbm9kZSA9IHRlbXA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBub2RlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgd2FpdCh0aW1lOiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgICAgdHdlZW4oZGlyZWN0b3IuZ2V0U2NlbmUoKSkuZGVsYXkodGltZSkuY2FsbCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgICAgIH0pLnN0YXJ0KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBzZXRfY2xpcChjbGlwOiBjYy5BbmltYXRpb25DbGlwLCBvZmY6IGNjLlZlYzIsIGZsaXBfeDogYm9vbGVhbiwgZmxpcF95OiBib29sZWFuKSB7XHJcbiAgICAgICAgbGV0IHMgPSAoYXJyOiBudW1iZXJbXSkgPT4ge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGkgJSAyID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZsaXBfeCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcnJbaV0gPSAtYXJyW2ldO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBhcnJbaV0gKz0gb2ZmLng7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChmbGlwX3kpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJyW2ldID0gLWFycltpXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYXJyW2ldICs9IG9mZi55O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBwb3NfYXJyID0gY2xpcC5jdXJ2ZURhdGEucHJvcHMucG9zaXRpb247XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb3NfYXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vdGlvblBhdGggPSBwb3NfYXJyW2ldLm1vdGlvblBhdGg7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcG9zX2FycltpXS52YWx1ZTtcclxuICAgICAgICAgICAgaWYgKG1vdGlvblBhdGgpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW90aW9uUGF0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIHMobW90aW9uUGF0aFtpXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcyh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgc2Nyb2xsX2xheW91dChsYXlvdXQ6IGNjLkxheW91dCwgc3BlZWQ6IG51bWJlciA9IDUwKSB7XHJcbiAgICAgICAgbGF5b3V0LnVwZGF0ZUxheW91dCgpO1xyXG4gICAgICAgIGNvbnN0IGxlbiA9IGxheW91dC50eXBlID09PSBjYy5MYXlvdXQuVHlwZS5IT1JJWk9OVEFMID8gbGF5b3V0Lm5vZGUud2lkdGggOiBsYXlvdXQubm9kZS5oZWlnaHQ7XHJcbiAgICAgICAgY29uc3QgdGltZSA9IGxlbiAvIHNwZWVkO1xyXG4gICAgICAgIGlmIChsYXlvdXQudHlwZSA9PT0gY2MuTGF5b3V0LlR5cGUuSE9SSVpPTlRBTCkge1xyXG4gICAgICAgICAgICBsZXQgb2Zmc2V0ID0gbGF5b3V0Lm5vZGUuYW5jaG9yWCA9PT0gMSA/IGxheW91dC5ub2RlLndpZHRoICogMC41IDogLWxheW91dC5ub2RlLndpZHRoICogMC41O1xyXG4gICAgICAgICAgICBsYXlvdXQubm9kZS5ydW5BY3Rpb24oY2MucmVwZWF0Rm9yZXZlcihjYy5zZXF1ZW5jZShcclxuICAgICAgICAgICAgICAgIGNjLm1vdmVCeSh0aW1lLCBjYy52MihvZmZzZXQsIDApKSxcclxuICAgICAgICAgICAgICAgIGNjLmNhbGxGdW5jKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBsYXlvdXQubm9kZS54IC09IG9mZnNldDtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICkpKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGxheW91dC50eXBlID09PSBjYy5MYXlvdXQuVHlwZS5WRVJUSUNBTCB8fCBsYXlvdXQudHlwZSA9PT0gY2MuTGF5b3V0LlR5cGUuR1JJRCkge1xyXG4gICAgICAgICAgICBsZXQgb2Zmc2V0ID0gbGF5b3V0Lm5vZGUuYW5jaG9yWSA9PT0gMSA/IGxheW91dC5ub2RlLmhlaWdodCAqIDAuNSA6IC1sYXlvdXQubm9kZS5oZWlnaHQgKiAwLjU7XHJcbiAgICAgICAgICAgIGxheW91dC5ub2RlLnJ1bkFjdGlvbihjYy5yZXBlYXRGb3JldmVyKGNjLnNlcXVlbmNlKFxyXG4gICAgICAgICAgICAgICAgY2MubW92ZUJ5KHRpbWUsIGNjLnYyKDAsIG9mZnNldCkpLFxyXG4gICAgICAgICAgICAgICAgY2MuY2FsbEZ1bmMoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxheW91dC5ub2RlLnkgLT0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn0iXX0= +//# 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/tiledmap-optimize-resource/Script/TmoAssembler.js'; + var __filename = 'preview-scripts/assets/Script/ControlManager.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -493,395 +2851,8 @@ cc._RF.pop(); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '18d1c5ObBtCeaysyO5bMIgb', 'TmoAssembler'); -// Script/TmoAssembler.js - -"use strict"; - -exports.__esModule = true; -exports.TmoAssembler = void 0; - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -var gfx = cc.gfx; // 颜色去除 + 物件图集合批 - -var vfmtPosUvIndex = new gfx.VertexFormat([{ - name: gfx.ATTR_POSITION, - type: gfx.ATTR_TYPE_FLOAT32, - num: 2 -}, { - name: gfx.ATTR_UV0, - type: gfx.ATTR_TYPE_FLOAT32, - num: 2 -}, { - name: "a_texture_idx", - type: gfx.ATTR_TYPE_FLOAT32, - num: 1 -}]); // 仅物件图集合批 - -var vfmtPosUvColorIndex = new gfx.VertexFormat([{ - name: gfx.ATTR_POSITION, - type: gfx.ATTR_TYPE_FLOAT32, - num: 2 -}, { - name: gfx.ATTR_UV0, - type: gfx.ATTR_TYPE_FLOAT32, - num: 2 -}, { - name: "a_texture_idx", - type: gfx.ATTR_TYPE_FLOAT32, - num: 1 -}, { - name: gfx.ATTR_COLOR, - type: gfx.ATTR_TYPE_UINT8, - num: 4, - normalize: true -}]); - -var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { - _inheritsLoose(TmoAssembler, _cc$Assembler); - - function TmoAssembler() { - return _cc$Assembler.apply(this, arguments) || this; - } - - var _proto = TmoAssembler.prototype; - - _proto.init = function init(comp) { - _cc$Assembler.prototype.init.call(this, comp); - - this._noColor = comp.isNoColor(); - this.updateColor = this._noColor ? undefined : this.updateColorFunc; - this.uvOffset = 2; - this.colorOffset = 5; - this.textureIndexOffset = 4; - this.floatsPerVert = this._noColor ? 5 : 6; - this.indicesCount = 6; - this.verticesCount = 4; - this._renderData = new cc.RenderData(); - - this._renderData.init(this); - - this.initLocal(); - this.initData(); - }; - - _proto.initLocal = function initLocal() { - this._local = []; - this._local.length = 4; - }; - - _proto.initData = function initData() { - var data = this._renderData; - data.createFlexData(0, this.verticesCount, this.indicesCount, this.getVfmt()); // 填充顶点索引信息 - - var indices = data.iDatas[0]; - var count = indices.length / 6; - - for (var i = 0, idx = 0; i < count; i++) { - var vertextID = i * 4; - indices[idx++] = vertextID; - indices[idx++] = vertextID + 1; - indices[idx++] = vertextID + 2; - indices[idx++] = vertextID + 1; - indices[idx++] = vertextID + 3; - indices[idx++] = vertextID + 2; - } - }; - - _proto.getBuffer = function getBuffer() { - return cc.renderer._handle.getBuffer("mesh", this.getVfmt()); - }; - - _proto.getVfmt = function getVfmt() { - return this._noColor ? vfmtPosUvIndex : vfmtPosUvColorIndex; - }; - - _proto.updateRenderData = function updateRenderData(sprite) { - this.packToDynamicAtlas(sprite, sprite._spriteFrame); - - if (sprite._vertsDirty) { - this.updateUVs(sprite); - this.updateVerts(sprite); - this.updateTextureIdx(sprite); - sprite._vertsDirty = false; - } - } - /** - * 填充textureIndex数据 - * @param {cc.Sprite} sprite - */ - ; - - _proto.updateTextureIdx = function updateTextureIdx(sprite) { - var textureIdx = sprite._textureIdx; - var verts = this._renderData.vDatas[0]; - var verticesCount = this.verticesCount; - var floatsPerVert = this.floatsPerVert; - var textureIndexOffset = this.textureIndexOffset; - - for (var i = 0; i < verticesCount; i++) { - var index = i * floatsPerVert + textureIndexOffset; - verts[index] = textureIdx; - } - }; - - _proto.updateUVs = function updateUVs(sprite) { - var uv = sprite._spriteFrame.uv; - var uvOffset = this.uvOffset; - var floatsPerVert = this.floatsPerVert; - var verts = this._renderData.vDatas[0]; - - for (var i = 0; i < 4; i++) { - var srcOffset = i * 2; - var dstOffset = floatsPerVert * i + uvOffset; - verts[dstOffset] = uv[srcOffset]; - verts[dstOffset + 1] = uv[srcOffset + 1]; - } - }; - - _proto.updateVerts = function updateVerts(sprite) { - var node = sprite.node, - cw = node.width, - ch = node.height, - appx = node.anchorX * cw, - appy = node.anchorY * ch, - l, - b, - r, - t; - - if (sprite.trim) { - l = -appx; - b = -appy; - r = cw - appx; - t = ch - appy; - } else { - var frame = sprite.spriteFrame, - ow = frame._originalSize.width, - oh = frame._originalSize.height, - rw = frame._rect.width, - rh = frame._rect.height, - offset = frame._offset, - scaleX = cw / ow, - scaleY = ch / oh; - var trimLeft = offset.x + (ow - rw) / 2; - var trimRight = offset.x - (ow - rw) / 2; - var trimBottom = offset.y + (oh - rh) / 2; - var trimTop = offset.y - (oh - rh) / 2; - l = trimLeft * scaleX - appx; - b = trimBottom * scaleY - appy; - r = cw + trimRight * scaleX - appx; - t = ch + trimTop * scaleY - appy; - } - - var local = this._local; - local[0] = l; - local[1] = b; - local[2] = r; - local[3] = t; - this.updateWorldVerts(sprite); - }; - - _proto.updateColorFunc = function updateColorFunc(comp, color) { - var uintVerts = this._renderData.uintVDatas[0]; - if (!uintVerts) return; - color = color != null ? color : comp.node.color._val; - var floatsPerVert = this.floatsPerVert; - var colorOffset = this.colorOffset; - - for (var i = colorOffset, l = uintVerts.length; i < l; i += floatsPerVert) { - uintVerts[i] = color; - } - }; - - _proto.updateWorldVerts = function updateWorldVerts(comp) { - if (CC_NATIVERENDERER) { - // 原生平台兼容代码 复制于jsb-engine.js中的cc.Assembler2D.prototype.updateWorldVerts - var local = this._local; - var verts = this._renderData.vDatas[0]; - var vl = local[0], - vr = local[2], - vb = local[1], - vt = local[3]; - var floatsPerVert = this.floatsPerVert; - var vertexOffset = 0; // left bottom - - verts[vertexOffset] = vl; - verts[vertexOffset + 1] = vb; - vertexOffset += floatsPerVert; // right bottom - - verts[vertexOffset] = vr; - verts[vertexOffset + 1] = vb; - vertexOffset += floatsPerVert; // left top - - verts[vertexOffset] = vl; - verts[vertexOffset + 1] = vt; - vertexOffset += floatsPerVert; // right top - - verts[vertexOffset] = vr; - verts[vertexOffset + 1] = vt; - } else { - var _local = this._local; - var _verts = this._renderData.vDatas[0]; - var matrix = comp.node._worldMatrix; - var matrixm = matrix.m, - a = matrixm[0], - b = matrixm[1], - c = matrixm[4], - d = matrixm[5], - tx = matrixm[12], - ty = matrixm[13]; - var _vl = _local[0], - _vr = _local[2], - _vb = _local[1], - _vt = _local[3]; - var _floatsPerVert = this.floatsPerVert; - var _vertexOffset = 0; - var justTranslate = a === 1 && b === 0 && c === 0 && d === 1; - - if (justTranslate) { - // left bottom - _verts[_vertexOffset] = _vl + tx; - _verts[_vertexOffset + 1] = _vb + ty; - _vertexOffset += _floatsPerVert; // right bottom - - _verts[_vertexOffset] = _vr + tx; - _verts[_vertexOffset + 1] = _vb + ty; - _vertexOffset += _floatsPerVert; // left top - - _verts[_vertexOffset] = _vl + tx; - _verts[_vertexOffset + 1] = _vt + ty; - _vertexOffset += _floatsPerVert; // right top - - _verts[_vertexOffset] = _vr + tx; - _verts[_vertexOffset + 1] = _vt + ty; - } else { - var al = a * _vl, - ar = a * _vr, - bl = b * _vl, - br = b * _vr, - cb = c * _vb, - ct = c * _vt, - db = d * _vb, - dt = d * _vt; // left bottom - - _verts[_vertexOffset] = al + cb + tx; - _verts[_vertexOffset + 1] = bl + db + ty; - _vertexOffset += _floatsPerVert; // right bottom - - _verts[_vertexOffset] = ar + cb + tx; - _verts[_vertexOffset + 1] = br + db + ty; - _vertexOffset += _floatsPerVert; // left top - - _verts[_vertexOffset] = al + ct + tx; - _verts[_vertexOffset + 1] = bl + dt + ty; - _vertexOffset += _floatsPerVert; // right top - - _verts[_vertexOffset] = ar + ct + tx; - _verts[_vertexOffset + 1] = br + dt + ty; - } - } - }; - - _proto.fillBuffers = function fillBuffers(comp, renderer) { - if (renderer.worldMatDirty) { - this.updateWorldVerts(comp); - } - - var renderData = this._renderData; - var vData = renderData.vDatas[0]; - var iData = renderData.iDatas[0]; - var buffer = this.getBuffer(renderer); - var offsetInfo = buffer.request(this.verticesCount, this.indicesCount); // buffer data may be realloc, need get reference after request. - // fill vertices - - var vertexOffset = offsetInfo.byteOffset >> 2, - vbuf = buffer._vData; - - if (vData.length + vertexOffset > vbuf.length) { - vbuf.set(vData.subarray(0, vbuf.length - vertexOffset), vertexOffset); - } else { - vbuf.set(vData, vertexOffset); - } // fill indices - - - var ibuf = buffer._iData, - indiceOffset = offsetInfo.indiceOffset, - vertexId = offsetInfo.vertexOffset; - - for (var i = 0, l = iData.length; i < l; i++) { - ibuf[indiceOffset++] = vertexId + iData[i]; - } - }; - - _proto.packToDynamicAtlas = function packToDynamicAtlas(comp, frame) { - if (CC_TEST) return; - - if (!frame._original && cc.dynamicAtlasManager && frame._texture.packable) { - var packedFrame = cc.dynamicAtlasManager.insertSpriteFrame(frame); - - if (packedFrame) { - frame._setDynamicAtlasFrame(packedFrame); - } - } - - var material = comp._materials[0]; - if (!material) return; - - if (material.getProperty('texture') !== frame._texture) { - // texture was packed to dynamic atlas, should update uvs - comp._vertsDirty = true; - - comp._updateMaterial(); - } - }; - - _createClass(TmoAssembler, [{ - key: "verticesFloats", - get: function get() { - return this.verticesCount * this.floatsPerVert; - } - }]); - - return TmoAssembler; -}(cc.Assembler); - -exports.TmoAssembler = TmoAssembler; - -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vQXNzZW1ibGVyLmpzIl0sIm5hbWVzIjpbImdmeCIsImNjIiwidmZtdFBvc1V2SW5kZXgiLCJWZXJ0ZXhGb3JtYXQiLCJuYW1lIiwiQVRUUl9QT1NJVElPTiIsInR5cGUiLCJBVFRSX1RZUEVfRkxPQVQzMiIsIm51bSIsIkFUVFJfVVYwIiwidmZtdFBvc1V2Q29sb3JJbmRleCIsIkFUVFJfQ09MT1IiLCJBVFRSX1RZUEVfVUlOVDgiLCJub3JtYWxpemUiLCJUbW9Bc3NlbWJsZXIiLCJpbml0IiwiY29tcCIsIl9ub0NvbG9yIiwiaXNOb0NvbG9yIiwidXBkYXRlQ29sb3IiLCJ1bmRlZmluZWQiLCJ1cGRhdGVDb2xvckZ1bmMiLCJ1dk9mZnNldCIsImNvbG9yT2Zmc2V0IiwidGV4dHVyZUluZGV4T2Zmc2V0IiwiZmxvYXRzUGVyVmVydCIsImluZGljZXNDb3VudCIsInZlcnRpY2VzQ291bnQiLCJfcmVuZGVyRGF0YSIsIlJlbmRlckRhdGEiLCJpbml0TG9jYWwiLCJpbml0RGF0YSIsIl9sb2NhbCIsImxlbmd0aCIsImRhdGEiLCJjcmVhdGVGbGV4RGF0YSIsImdldFZmbXQiLCJpbmRpY2VzIiwiaURhdGFzIiwiY291bnQiLCJpIiwiaWR4IiwidmVydGV4dElEIiwiZ2V0QnVmZmVyIiwicmVuZGVyZXIiLCJfaGFuZGxlIiwidXBkYXRlUmVuZGVyRGF0YSIsInNwcml0ZSIsInBhY2tUb0R5bmFtaWNBdGxhcyIsIl9zcHJpdGVGcmFtZSIsIl92ZXJ0c0RpcnR5IiwidXBkYXRlVVZzIiwidXBkYXRlVmVydHMiLCJ1cGRhdGVUZXh0dXJlSWR4IiwidGV4dHVyZUlkeCIsIl90ZXh0dXJlSWR4IiwidmVydHMiLCJ2RGF0YXMiLCJpbmRleCIsInV2Iiwic3JjT2Zmc2V0IiwiZHN0T2Zmc2V0Iiwibm9kZSIsImN3Iiwid2lkdGgiLCJjaCIsImhlaWdodCIsImFwcHgiLCJhbmNob3JYIiwiYXBweSIsImFuY2hvclkiLCJsIiwiYiIsInIiLCJ0IiwidHJpbSIsImZyYW1lIiwic3ByaXRlRnJhbWUiLCJvdyIsIl9vcmlnaW5hbFNpemUiLCJvaCIsInJ3IiwiX3JlY3QiLCJyaCIsIm9mZnNldCIsIl9vZmZzZXQiLCJzY2FsZVgiLCJzY2FsZVkiLCJ0cmltTGVmdCIsIngiLCJ0cmltUmlnaHQiLCJ0cmltQm90dG9tIiwieSIsInRyaW1Ub3AiLCJsb2NhbCIsInVwZGF0ZVdvcmxkVmVydHMiLCJjb2xvciIsInVpbnRWZXJ0cyIsInVpbnRWRGF0YXMiLCJfdmFsIiwiQ0NfTkFUSVZFUkVOREVSRVIiLCJ2bCIsInZyIiwidmIiLCJ2dCIsInZlcnRleE9mZnNldCIsIm1hdHJpeCIsIl93b3JsZE1hdHJpeCIsIm1hdHJpeG0iLCJtIiwiYSIsImMiLCJkIiwidHgiLCJ0eSIsImp1c3RUcmFuc2xhdGUiLCJhbCIsImFyIiwiYmwiLCJiciIsImNiIiwiY3QiLCJkYiIsImR0IiwiZmlsbEJ1ZmZlcnMiLCJ3b3JsZE1hdERpcnR5IiwicmVuZGVyRGF0YSIsInZEYXRhIiwiaURhdGEiLCJidWZmZXIiLCJvZmZzZXRJbmZvIiwicmVxdWVzdCIsImJ5dGVPZmZzZXQiLCJ2YnVmIiwiX3ZEYXRhIiwic2V0Iiwic3ViYXJyYXkiLCJpYnVmIiwiX2lEYXRhIiwiaW5kaWNlT2Zmc2V0IiwidmVydGV4SWQiLCJDQ19URVNUIiwiX29yaWdpbmFsIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsIl90ZXh0dXJlIiwicGFja2FibGUiLCJwYWNrZWRGcmFtZSIsImluc2VydFNwcml0ZUZyYW1lIiwiX3NldER5bmFtaWNBdGxhc0ZyYW1lIiwibWF0ZXJpYWwiLCJfbWF0ZXJpYWxzIiwiZ2V0UHJvcGVydHkiLCJfdXBkYXRlTWF0ZXJpYWwiLCJBc3NlbWJsZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFJQSxHQUFHLEdBQUdDLEVBQUUsQ0FBQ0QsR0FBYixFQUNBOztBQUNBLElB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RSxFQUEyRTtBQUN2RSxVQUFJQyxXQUFXLEdBQUdqSixFQUFFLENBQUM4SSxtQkFBSCxDQUF1QkksaUJBQXZCLENBQXlDdkUsS0FBekMsQ0FBbEI7O0FBQ0EsVUFBSXNFLFdBQUosRUFBaUI7QUFDYnRFLFFBQUFBLEtBQUssQ0FBQ3dFLHFCQUFOLENBQTRCRixXQUE1QjtBQUNIO0FBQ0o7O0FBQ0QsUUFBSUcsUUFBUSxHQUFHckksSUFBSSxDQUFDc0ksVUFBTCxDQUFnQixDQUFoQixDQUFmO0FBQ0EsUUFBSSxDQUFDRCxRQUFMLEVBQWU7O0FBRWYsUUFBSUEsUUFBUSxDQUFDRSxXQUFULENBQXFCLFNBQXJCLE1BQW9DM0UsS0FBSyxDQUFDb0UsUUFBOUMsRUFBd0Q7QUFDcEQ7QUFDQWhJLE1BQUFBLElBQUksQ0FBQ2tDLFdBQUwsR0FBbUIsSUFBbkI7O0FBQ0FsQyxNQUFBQSxJQUFJLENBQUN3SSxlQUFMO0FBQ0g7QUFDSjs7OztTQXBKRCxlQUFxQjtBQUNqQixhQUFPLEtBQUs3SCxhQUFMLEdBQXFCLEtBQUtGLGFBQWpDO0FBQ0g7Ozs7RUFwSTZCeEIsRUFBRSxDQUFDd0oiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImxldCBnZnggPSBjYy5nZng7XHJcbi8vIOminOiJsuWOu+mZpCArIOeJqeS7tuWbvumbhuWQiOaJuVxyXG52YXIgdmZtdFBvc1V2SW5kZXggPSBuZXcgZ2Z4LlZlcnRleEZvcm1hdChbXHJcbiAgICB7IG5hbWU6IGdmeC5BVFRSX1BPU0lUSU9OLCB0eXBlOiBnZnguQVRUUl9UWVBFX0ZMT0FUMzIsIG51bTogMiB9LFxyXG4gICAgeyBuYW1lOiBnZnguQVRUUl9VVjAsIHR5cGU6IGdmeC5BVFRSX1RZUEVfRkxPQVQzMiwgbnVtOiAyIH0sXHJcbiAgICB7IG5hbWU6IFwiYV90ZXh0dXJlX2lkeFwiLCB0eXBlOiBnZnguQVRUUl9UWVBFX0ZMT0FUMzIsIG51bTogMSB9LFxyXG5dKTtcclxuXHJcbi8vIOS7heeJqeS7tuWbvumbhuWQiOaJuVxyXG52YXIgdmZtdFBvc1V2Q29sb3JJbmRleCA9IG5ldyBnZnguVmVydGV4Rm9ybWF0KFtcclxuICAgIHsgbmFtZTogZ2Z4LkFUVFJfUE9TSVRJT04sIHR5cGU6IGdmeC5BVFRSX1RZUEVfRkxPQVQzMiwgbnVtOiAyIH0sXHJcbiAgICB7IG5hbWU6IGdmeC5BVFRSX1VWMCwgdHlwZTogZ2Z4LkFUVFJfVFlQRV9GTE9BVDMyLCBudW06IDIgfSxcclxuICAgIHsgbmFtZTogXCJhX3RleHR1cmVfaWR4XCIsIHR5cGU6IGdmeC5BVFRSX1RZUEVfRkxPQVQzMiwgbnVtOiAxIH0sXHJcbiAgICB7IG5hbWU6IGdmeC5BVFRSX0NPTE9SLCB0eXBlOiBnZnguQVRUUl9UWVBFX1VJTlQ4LCBudW06IDQsIG5vcm1hbGl6ZTogdHJ1ZSB9LFxyXG5dKTtcclxuXHJcbmV4cG9ydCBjbGFzcyBUbW9Bc3NlbWJsZXIgZXh0ZW5kcyBjYy5Bc3NlbWJsZXIge1xyXG4gICAgaW5pdChjb21wKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdChjb21wKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbm9Db2xvciA9IGNvbXAuaXNOb0NvbG9yKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDb2xvciA9IHRoaXMuX25vQ29sb3IgPyB1bmRlZmluZWQgOiB0aGlzLnVwZGF0ZUNvbG9yRnVuYztcclxuXHJcbiAgICAgICAgdGhpcy51dk9mZnNldCA9IDI7XHJcbiAgICAgICAgdGhpcy5jb2xvck9mZnNldCA9IDU7XHJcbiAgICAgICAgdGhpcy50ZXh0dXJlSW5kZXhPZmZzZXQgPSA0O1xyXG4gICAgICAgIHRoaXMuZmxvYXRzUGVyVmVydCA9IHRoaXMuX25vQ29sb3IgPyA1IDogNjtcclxuXHJcbiAgICAgICAgdGhpcy5pbmRpY2VzQ291bnQgPSA2O1xyXG4gICAgICAgIHRoaXMudmVydGljZXNDb3VudCA9IDQ7XHJcblxyXG4gICAgICAgIHRoaXMuX3JlbmRlckRhdGEgPSBuZXcgY2MuUmVuZGVyRGF0YSgpO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlckRhdGEuaW5pdCh0aGlzKTtcclxuXHJcbiAgICAgICAgdGhpcy5pbml0TG9jYWwoKTtcclxuICAgICAgICB0aGlzLmluaXREYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdExvY2FsKCkge1xyXG4gICAgICAgIHRoaXMuX2xvY2FsID0gW107XHJcbiAgICAgICAgdGhpcy5fbG9jYWwubGVuZ3RoID0gNDtcclxuICAgIH1cclxuXHJcbiAgICBpbml0RGF0YSgpIHtcclxuICAgICAgICBsZXQgZGF0YSA9IHRoaXMuX3JlbmRlckRhdGE7XHJcbiAgICAgICAgZGF0YS5jcmVhdGVGbGV4RGF0YSgwLCB0aGlzLnZlcnRpY2VzQ291bnQsIHRoaXMuaW5kaWNlc0NvdW50LCB0aGlzLmdldFZmbXQoKSk7XHJcblxyXG4gICAgICAgIC8vIOWhq+WFhemhtueCuee0ouW8leS/oeaBr1xyXG4gICAgICAgIGxldCBpbmRpY2VzID0gZGF0YS5pRGF0YXNbMF07XHJcbiAgICAgICAgbGV0IGNvdW50ID0gaW5kaWNlcy5sZW5ndGggLyA2O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBpZHggPSAwOyBpIDwgY291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgdmVydGV4dElEID0gaSAqIDQ7XHJcbiAgICAgICAgICAgIGluZGljZXNbaWR4KytdID0gdmVydGV4dElEO1xyXG4gICAgICAgICAgICBpbmRpY2VzW2lkeCsrXSA9IHZlcnRleHRJRCArIDE7XHJcbiAgICAgICAgICAgIGluZGljZXNbaWR4KytdID0gdmVydGV4dElEICsgMjtcclxuICAgICAgICAgICAgaW5kaWNlc1tpZHgrK10gPSB2ZXJ0ZXh0SUQgKyAxO1xyXG4gICAgICAgICAgICBpbmRpY2VzW2lkeCsrXSA9IHZlcnRleHRJRCArIDM7XHJcbiAgICAgICAgICAgIGluZGljZXNbaWR4KytdID0gdmVydGV4dElEICsgMjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QnVmZmVyKCkge1xyXG4gICAgICAgIHJldHVybiBjYy5yZW5kZXJlci5faGFuZGxlLmdldEJ1ZmZlcihcIm1lc2hcIiwgdGhpcy5nZXRWZm10KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFZmbXQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vQ29sb3IgPyB2Zm10UG9zVXZJbmRleCA6IHZmbXRQb3NVdkNvbG9ySW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlUmVuZGVyRGF0YShzcHJpdGUpIHtcclxuICAgICAgICB0aGlzLnBhY2tUb0R5bmFtaWNBdGxhcyhzcHJpdGUsIHNwcml0ZS5fc3ByaXRlRnJhbWUpO1xyXG5cclxuICAgICAgICBpZiAoc3ByaXRlLl92ZXJ0c0RpcnR5KSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVVZzKHNwcml0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmVydHMoc3ByaXRlKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVUZXh0dXJlSWR4KHNwcml0ZSk7XHJcbiAgICAgICAgICAgIHNwcml0ZS5fdmVydHNEaXJ0eSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWhq+WFhXRleHR1cmVJbmRleOaVsOaNrlxyXG4gICAgICogQHBhcmFtIHtjYy5TcHJpdGV9IHNwcml0ZSBcclxuICAgICAqL1xyXG4gICAgdXBkYXRlVGV4dHVyZUlkeChzcHJpdGUpIHtcclxuICAgICAgICBsZXQgdGV4dHVyZUlkeCA9IHNwcml0ZS5fdGV4dHVyZUlkeDtcclxuICAgICAgICBsZXQgdmVydHMgPSB0aGlzLl9yZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuXHJcbiAgICAgICAgbGV0IHZlcnRpY2VzQ291bnQgPSB0aGlzLnZlcnRpY2VzQ291bnQ7XHJcbiAgICAgICAgbGV0IGZsb2F0c1BlclZlcnQgPSB0aGlzLmZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgbGV0IHRleHR1cmVJbmRleE9mZnNldCA9IHRoaXMudGV4dHVyZUluZGV4T2Zmc2V0O1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZlcnRpY2VzQ291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaW5kZXggPSBpICogZmxvYXRzUGVyVmVydCArIHRleHR1cmVJbmRleE9mZnNldDtcclxuICAgICAgICAgICAgdmVydHNbaW5kZXhdID0gdGV4dHVyZUlkeDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVVZzKHNwcml0ZSkge1xyXG4gICAgICAgIGxldCB1diA9IHNwcml0ZS5fc3ByaXRlRnJhbWUudXY7XHJcbiAgICAgICAgbGV0IHV2T2Zmc2V0ID0gdGhpcy51dk9mZnNldDtcclxuICAgICAgICBsZXQgZmxvYXRzUGVyVmVydCA9IHRoaXMuZmxvYXRzUGVyVmVydDtcclxuICAgICAgICBsZXQgdmVydHMgPSB0aGlzLl9yZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgc3JjT2Zmc2V0ID0gaSAqIDI7XHJcbiAgICAgICAgICAgIGxldCBkc3RPZmZzZXQgPSBmbG9hdHNQZXJWZXJ0ICogaSArIHV2T2Zmc2V0O1xyXG4gICAgICAgICAgICB2ZXJ0c1tkc3RPZmZzZXRdID0gdXZbc3JjT2Zmc2V0XTtcclxuICAgICAgICAgICAgdmVydHNbZHN0T2Zmc2V0ICsgMV0gPSB1dltzcmNPZmZzZXQgKyAxXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVmVydHMoc3ByaXRlKSB7XHJcbiAgICAgICAgbGV0IG5vZGUgPSBzcHJpdGUubm9kZSxcclxuICAgICAgICAgICAgY3cgPSBub2RlLndpZHRoLCBjaCA9IG5vZGUuaGVpZ2h0LFxyXG4gICAgICAgICAgICBhcHB4ID0gbm9kZS5hbmNob3JYICogY3csIGFwcHkgPSBub2RlLmFuY2hvclkgKiBjaCxcclxuICAgICAgICAgICAgbCwgYiwgciwgdDtcclxuICAgICAgICBpZiAoc3ByaXRlLnRyaW0pIHtcclxuICAgICAgICAgICAgbCA9IC1hcHB4O1xyXG4gICAgICAgICAgICBiID0gLWFwcHk7XHJcbiAgICAgICAgICAgIHIgPSBjdyAtIGFwcHg7XHJcbiAgICAgICAgICAgIHQgPSBjaCAtIGFwcHk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgZnJhbWUgPSBzcHJpdGUuc3ByaXRlRnJhbWUsXHJcbiAgICAgICAgICAgICAgICBvdyA9IGZyYW1lLl9vcmlnaW5hbFNpemUud2lkdGgsIG9oID0gZnJhbWUuX29yaWdpbmFsU2l6ZS5oZWlnaHQsXHJcbiAgICAgICAgICAgICAgICBydyA9IGZyYW1lLl9yZWN0LndpZHRoLCByaCA9IGZyYW1lLl9yZWN0LmhlaWdodCxcclxuICAgICAgICAgICAgICAgIG9mZnNldCA9IGZyYW1lLl9vZmZzZXQsXHJcbiAgICAgICAgICAgICAgICBzY2FsZVggPSBjdyAvIG93LCBzY2FsZVkgPSBjaCAvIG9oO1xyXG4gICAgICAgICAgICBsZXQgdHJpbUxlZnQgPSBvZmZzZXQueCArIChvdyAtIHJ3KSAvIDI7XHJcbiAgICAgICAgICAgIGxldCB0cmltUmlnaHQgPSBvZmZzZXQueCAtIChvdyAtIHJ3KSAvIDI7XHJcbiAgICAgICAgICAgIGxldCB0cmltQm90dG9tID0gb2Zmc2V0LnkgKyAob2ggLSByaCkgLyAyO1xyXG4gICAgICAgICAgICBsZXQgdHJpbVRvcCA9IG9mZnNldC55IC0gKG9oIC0gcmgpIC8gMjtcclxuICAgICAgICAgICAgbCA9IHRyaW1MZWZ0ICogc2NhbGVYIC0gYXBweDtcclxuICAgICAgICAgICAgYiA9IHRyaW1Cb3R0b20gKiBzY2FsZVkgLSBhcHB5O1xyXG4gICAgICAgICAgICByID0gY3cgKyB0cmltUmlnaHQgKiBzY2FsZVggLSBhcHB4O1xyXG4gICAgICAgICAgICB0ID0gY2ggKyB0cmltVG9wICogc2NhbGVZIC0gYXBweTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBsb2NhbCA9IHRoaXMuX2xvY2FsO1xyXG4gICAgICAgIGxvY2FsWzBdID0gbDtcclxuICAgICAgICBsb2NhbFsxXSA9IGI7XHJcbiAgICAgICAgbG9jYWxbMl0gPSByO1xyXG4gICAgICAgIGxvY2FsWzNdID0gdDtcclxuICAgICAgICB0aGlzLnVwZGF0ZVdvcmxkVmVydHMoc3ByaXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmVydGljZXNGbG9hdHMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmVydGljZXNDb3VudCAqIHRoaXMuZmxvYXRzUGVyVmVydDtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVDb2xvckZ1bmMoY29tcCwgY29sb3IpIHtcclxuICAgICAgICBsZXQgdWludFZlcnRzID0gdGhpcy5fcmVuZGVyRGF0YS51aW50VkRhdGFzWzBdO1xyXG4gICAgICAgIGlmICghdWludFZlcnRzKSByZXR1cm47XHJcbiAgICAgICAgY29sb3IgPSBjb2xvciAhPSBudWxsID8gY29sb3IgOiBjb21wLm5vZGUuY29sb3IuX3ZhbDtcclxuICAgICAgICBsZXQgZmxvYXRzUGVyVmVydCA9IHRoaXMuZmxvYXRzUGVyVmVydDtcclxuICAgICAgICBsZXQgY29sb3JPZmZzZXQgPSB0aGlzLmNvbG9yT2Zmc2V0O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSBjb2xvck9mZnNldCwgbCA9IHVpbnRWZXJ0cy5sZW5ndGg7IGkgPCBsOyBpICs9IGZsb2F0c1BlclZlcnQpIHtcclxuICAgICAgICAgICAgdWludFZlcnRzW2ldID0gY29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVdvcmxkVmVydHMoY29tcCkge1xyXG4gICAgICAgIGlmIChDQ19OQVRJVkVSRU5ERVJFUikge1xyXG4gICAgICAgICAgICAvLyDljp/nlJ/lubPlj7Dlhbzlrrnku6PnoIEg5aSN5Yi25LqOanNiLWVuZ2luZS5qc+S4reeahGNjLkFzc2VtYmxlcjJELnByb3RvdHlwZS51cGRhdGVXb3JsZFZlcnRzXHJcbiAgICAgICAgICAgIHZhciBsb2NhbCA9IHRoaXMuX2xvY2FsO1xyXG4gICAgICAgICAgICB2YXIgdmVydHMgPSB0aGlzLl9yZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuICAgICAgICAgICAgdmFyIHZsID0gbG9jYWxbMF0sXHJcbiAgICAgICAgICAgICAgICB2ciA9IGxvY2FsWzJdLFxyXG4gICAgICAgICAgICAgICAgdmIgPSBsb2NhbFsxXSxcclxuICAgICAgICAgICAgICAgIHZ0ID0gbG9jYWxbM107XHJcbiAgICAgICAgICAgIHZhciBmbG9hdHNQZXJWZXJ0ID0gdGhpcy5mbG9hdHNQZXJWZXJ0O1xyXG4gICAgICAgICAgICB2YXIgdmVydGV4T2Zmc2V0ID0gMDsgLy8gbGVmdCBib3R0b21cclxuXHJcbiAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2bDtcclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2YjtcclxuICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7IC8vIHJpZ2h0IGJvdHRvbVxyXG5cclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IHZyO1xyXG4gICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IHZiO1xyXG4gICAgICAgICAgICB2ZXJ0ZXhPZmZzZXQgKz0gZmxvYXRzUGVyVmVydDsgLy8gbGVmdCB0b3BcclxuXHJcbiAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2bDtcclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2dDtcclxuICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7IC8vIHJpZ2h0IHRvcFxyXG5cclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IHZyO1xyXG4gICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IHZ0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBsb2NhbCA9IHRoaXMuX2xvY2FsO1xyXG4gICAgICAgICAgICBsZXQgdmVydHMgPSB0aGlzLl9yZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuXHJcbiAgICAgICAgICAgIGxldCBtYXRyaXggPSBjb21wLm5vZGUuX3dvcmxkTWF0cml4O1xyXG4gICAgICAgICAgICBsZXQgbWF0cml4bSA9IG1hdHJpeC5tLFxyXG4gICAgICAgICAgICAgICAgYSA9IG1hdHJpeG1bMF0sIGIgPSBtYXRyaXhtWzFdLCBjID0gbWF0cml4bVs0XSwgZCA9IG1hdHJpeG1bNV0sXHJcbiAgICAgICAgICAgICAgICB0eCA9IG1hdHJpeG1bMTJdLCB0eSA9IG1hdHJpeG1bMTNdO1xyXG5cclxuICAgICAgICAgICAgbGV0IHZsID0gbG9jYWxbMF0sIHZyID0gbG9jYWxbMl0sXHJcbiAgICAgICAgICAgICAgICB2YiA9IGxvY2FsWzFdLCB2dCA9IGxvY2FsWzNdO1xyXG5cclxuICAgICAgICAgICAgbGV0IGZsb2F0c1BlclZlcnQgPSB0aGlzLmZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgIGxldCB2ZXJ0ZXhPZmZzZXQgPSAwO1xyXG4gICAgICAgICAgICBsZXQganVzdFRyYW5zbGF0ZSA9IGEgPT09IDEgJiYgYiA9PT0gMCAmJiBjID09PSAwICYmIGQgPT09IDE7XHJcblxyXG4gICAgICAgICAgICBpZiAoanVzdFRyYW5zbGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gbGVmdCBib3R0b21cclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2bCArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2YiArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyByaWdodCBib3R0b21cclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2ciArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2YiArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyBsZWZ0IHRvcFxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IHZsICsgdHg7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IHZ0ICsgdHk7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0ZXhPZmZzZXQgKz0gZmxvYXRzUGVyVmVydDtcclxuICAgICAgICAgICAgICAgIC8vIHJpZ2h0IHRvcFxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IHZyICsgdHg7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IHZ0ICsgdHk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgYWwgPSBhICogdmwsIGFyID0gYSAqIHZyLFxyXG4gICAgICAgICAgICAgICAgICAgIGJsID0gYiAqIHZsLCBiciA9IGIgKiB2cixcclxuICAgICAgICAgICAgICAgICAgICBjYiA9IGMgKiB2YiwgY3QgPSBjICogdnQsXHJcbiAgICAgICAgICAgICAgICAgICAgZGIgPSBkICogdmIsIGR0ID0gZCAqIHZ0O1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIGxlZnQgYm90dG9tXHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXRdID0gYWwgKyBjYiArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSBibCArIGRiICsgdHk7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0ZXhPZmZzZXQgKz0gZmxvYXRzUGVyVmVydDtcclxuICAgICAgICAgICAgICAgIC8vIHJpZ2h0IGJvdHRvbVxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IGFyICsgY2IgKyB0eDtcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gYnIgKyBkYiArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyBsZWZ0IHRvcFxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IGFsICsgY3QgKyB0eDtcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gYmwgKyBkdCArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyByaWdodCB0b3BcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSBhciArIGN0ICsgdHg7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IGJyICsgZHQgKyB0eTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmaWxsQnVmZmVycyhjb21wLCByZW5kZXJlcikge1xyXG4gICAgICAgIGlmIChyZW5kZXJlci53b3JsZE1hdERpcnR5KSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlV29ybGRWZXJ0cyhjb21wKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCByZW5kZXJEYXRhID0gdGhpcy5fcmVuZGVyRGF0YTtcclxuICAgICAgICBsZXQgdkRhdGEgPSByZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuICAgICAgICBsZXQgaURhdGEgPSByZW5kZXJEYXRhLmlEYXRhc1swXTtcclxuXHJcbiAgICAgICAgbGV0IGJ1ZmZlciA9IHRoaXMuZ2V0QnVmZmVyKHJlbmRlcmVyKTtcclxuICAgICAgICBsZXQgb2Zmc2V0SW5mbyA9IGJ1ZmZlci5yZXF1ZXN0KHRoaXMudmVydGljZXNDb3VudCwgdGhpcy5pbmRpY2VzQ291bnQpO1xyXG5cclxuICAgICAgICAvLyBidWZmZXIgZGF0YSBtYXkgYmUgcmVhbGxvYywgbmVlZCBnZXQgcmVmZXJlbmNlIGFmdGVyIHJlcXVlc3QuXHJcblxyXG4gICAgICAgIC8vIGZpbGwgdmVydGljZXNcclxuICAgICAgICBsZXQgdmVydGV4T2Zmc2V0ID0gb2Zmc2V0SW5mby5ieXRlT2Zmc2V0ID4+IDIsXHJcbiAgICAgICAgICAgIHZidWYgPSBidWZmZXIuX3ZEYXRhO1xyXG5cclxuICAgICAgICBpZiAodkRhdGEubGVuZ3RoICsgdmVydGV4T2Zmc2V0ID4gdmJ1Zi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdmJ1Zi5zZXQodkRhdGEuc3ViYXJyYXkoMCwgdmJ1Zi5sZW5ndGggLSB2ZXJ0ZXhPZmZzZXQpLCB2ZXJ0ZXhPZmZzZXQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZidWYuc2V0KHZEYXRhLCB2ZXJ0ZXhPZmZzZXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gZmlsbCBpbmRpY2VzXHJcbiAgICAgICAgbGV0IGlidWYgPSBidWZmZXIuX2lEYXRhLFxyXG4gICAgICAgICAgICBpbmRpY2VPZmZzZXQgPSBvZmZzZXRJbmZvLmluZGljZU9mZnNldCxcclxuICAgICAgICAgICAgdmVydGV4SWQgPSBvZmZzZXRJbmZvLnZlcnRleE9mZnNldDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbCA9IGlEYXRhLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBpYnVmW2luZGljZU9mZnNldCsrXSA9IHZlcnRleElkICsgaURhdGFbaV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHBhY2tUb0R5bmFtaWNBdGxhcyhjb21wLCBmcmFtZSkge1xyXG4gICAgICAgIGlmIChDQ19URVNUKSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmICghZnJhbWUuX29yaWdpbmFsICYmIGNjLmR5bmFtaWNBdGxhc01hbmFnZXIgJiYgZnJhbWUuX3RleHR1cmUucGFja2FibGUpIHtcclxuICAgICAgICAgICAgbGV0IHBhY2tlZEZyYW1lID0gY2MuZHluYW1pY0F0bGFzTWFuYWdlci5pbnNlcnRTcHJpdGVGcmFtZShmcmFtZSk7XHJcbiAgICAgICAgICAgIGlmIChwYWNrZWRGcmFtZSkge1xyXG4gICAgICAgICAgICAgICAgZnJhbWUuX3NldER5bmFtaWNBdGxhc0ZyYW1lKHBhY2tlZEZyYW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbWF0ZXJpYWwgPSBjb21wLl9tYXRlcmlhbHNbMF07XHJcbiAgICAgICAgaWYgKCFtYXRlcmlhbCkgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAobWF0ZXJpYWwuZ2V0UHJvcGVydHkoJ3RleHR1cmUnKSAhPT0gZnJhbWUuX3RleHR1cmUpIHtcclxuICAgICAgICAgICAgLy8gdGV4dHVyZSB3YXMgcGFja2VkIHRvIGR5bmFtaWMgYXRsYXMsIHNob3VsZCB1cGRhdGUgdXZzXHJcbiAgICAgICAgICAgIGNvbXAuX3ZlcnRzRGlydHkgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb21wLl91cGRhdGVNYXRlcmlhbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ== -//------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 +cc._RF.push(module, 'e35abcX5VRAoItO6mgFcYyX', 'ControlManager'); +// Script/ControlManager.ts "use strict"; // Learn TypeScript: @@ -910,327 +2881,188 @@ 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 _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/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/Boom.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, '3c749iEEwlAMKPyjGEkwU2l', 'Boom'); -// Script/prop/Boom.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 NumberToImage_1 = require("../NumberToImage"); var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var Boom = /** @class */ (function (_super) { - __extends(Boom, _super); - function Boom() { +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { var _this = _super !== null && _super.apply(this, arguments) || this; - _this.time = 60; + _this.Map = null; + _this.tip = null; + _this.reinforce = null; + _this.soil = null; return _this; // update (dt) {} } - // mapInfo: number[][] = []; - Boom.prototype.onLoad = function () { + // LIFE-CYCLE CALLBACKS: + // onLoad () {} + NewClass.prototype.start = function () { + this.tipArray = []; + this.controlArray = []; + this.canTouch = true; + this.Reinforce = false; + this.Soil = false; + this.mapHeight = 0; }; - Boom.prototype.start = function () { - }; - Boom.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); - // this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString(); - }; - Boom.prototype.startBoom = function () { - this.schedule(this.updateTime, 1); - }; - Boom.prototype.stopBoom = function () { - this.unschedule(this.updateTime); - this.node.parent.getComponent("Block").resetFreeze(); - this.node.destroy(); - }; - Boom.prototype.updateTime = function () { - var _this = this; - this.time--; - NumberToImage_1.default.numberToImageNodes(this.time, 20, 8, "lock_", this.node.getChildByName("time"), false); - if (this.time <= 0) { - this.unschedule(this.updateTime); - this.node.getChildByName("zhandan").active = true; - var skeleton = this.node.getChildByName("zhandan").getComponent(sp.Skeleton); - skeleton.setAnimation(1, "eff", false); - // 监听动画完成事件 - skeleton.setCompleteListener(function () { - // 动画播放完成后销毁节点 - _this.node.destroy(); - }); - Map_1.default._instance.failLevel("boom"); - // this.node.destroy(); + 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); } }; - Boom = __decorate([ + //清空所有 + 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; + } + 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); + } + } + } + }; + //点击事件 + 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); + }; + __decorate([ + property(cc.Node) + ], NewClass.prototype, "Map", 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); + NewClass = __decorate([ ccclass - ], Boom); - return Boom; + ], NewClass); + return NewClass; }(cc.Component)); -exports.default = Boom; +exports.default = NewClass; cc._RF.pop(); } @@ -1243,13 +3075,13 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxCb29tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxGLDhCQUFpQztBQUNqQyxrREFBNkM7QUFFdkMsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFLMUM7SUFBa0Msd0JBQVk7SUFBOUM7UUFBQSxxRUFtREM7UUFqREcsVUFBSSxHQUFXLEVBQUUsQ0FBQzs7UUFnRGxCLGlCQUFpQjtJQUNyQixDQUFDO0lBL0NHLDRCQUE0QjtJQUU1QixxQkFBTSxHQUFOO0lBRUEsQ0FBQztJQUVELG9CQUFLLEdBQUw7SUFDQSxDQUFDO0lBRUQsbUJBQUksR0FBSixVQUFLLElBQUk7UUFDTCxJQUFHLElBQUk7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzdDLHVCQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUNsRyx5RkFBeUY7SUFFN0YsQ0FBQztJQUVELHdCQUFTLEdBQVQ7UUFDSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELHVCQUFRLEdBQVI7UUFDSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBR0QseUJBQVUsR0FBVjtRQUFBLGlCQWdCQztRQWZHLElBQUksQ0FBQyxJQUFJLEVBQUcsQ0FBQztRQUNiLHVCQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUNoRyxJQUFHLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFDO1lBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNsRCxJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9FLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxXQUFXO1lBQ1gsUUFBUSxDQUFDLG1CQUFtQixDQUFDO2dCQUN6QixjQUFjO2dCQUNkLEtBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7WUFDSCxhQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4Qyx1QkFBdUI7U0FDMUI7SUFDTCxDQUFDO0lBaERnQixJQUFJO1FBRHhCLE9BQU87T0FDYSxJQUFJLENBbUR4QjtJQUFELFdBQUM7Q0FuREQsQUFtREMsQ0FuRGlDLEVBQUUsQ0FBQyxTQUFTLEdBbUQ3QztrQkFuRG9CLElBQUkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4uL01hcFwiO1xyXG5pbXBvcnQgTnVtYmVyVG9JbWFnZSBmcm9tIFwiLi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJvb20gZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG4gICAgdGltZTogbnVtYmVyID0gNjA7XHJcblxyXG4gICAgLy8gbWFwSW5mbzogbnVtYmVyW11bXSA9IFtdO1xyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcblxyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCh0aW1lKXtcclxuICAgICAgICBpZih0aW1lKSB0aGlzLnRpbWUgPSB0aW1lO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKHRoaXMudGltZSwyMCw4LFwibG9ja19cIix0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLGZhbHNlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy50aW1lLnRvU3RyaW5nKCk7XHJcbiAgIFxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0Qm9vbSgpe1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUodGhpcy51cGRhdGVUaW1lLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBzdG9wQm9vbSgpe1xyXG4gICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnVwZGF0ZVRpbWUpO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucmVzZXRGcmVlemUoKTtcclxuICAgICAgICB0aGlzLm5vZGUuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIFxyXG4gICAgdXBkYXRlVGltZSgpe1xyXG4gICAgICAgIHRoaXMudGltZSAtLTtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2Rlcyh0aGlzLnRpbWUsMjAsOCxcImxvY2tfXCIsdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKSxmYWxzZSk7XHJcbiAgICAgICAgaWYodGhpcy50aW1lIDw9IDApe1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy51cGRhdGVUaW1lKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemhhbmRhblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb25zdCBza2VsZXRvbiA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpoYW5kYW5cIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKTtcclxuICAgICAgICAgICAgc2tlbGV0b24uc2V0QW5pbWF0aW9uKDEsXCJlZmZcIixmYWxzZSk7XHJcbiAgICAgICAgICAgIC8vIOebkeWQrOWKqOeUu+WujOaIkOS6i+S7tlxyXG4gICAgICAgICAgICBza2VsZXRvbi5zZXRDb21wbGV0ZUxpc3RlbmVyKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIOWKqOeUu+aSreaUvuWujOaIkOWQjumUgOavgeiKgueCuVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5mYWlsTGV2ZWwoXCJib29tXCIpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUuZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ== +//# 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/migration/use_v2.1-2.2.1_cc.Toggle_event.js'; + var __filename = 'preview-scripts/assets/Script/DynamicAtlasManager.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -1257,94 +3089,17 @@ cc._RF.pop(); }; 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 +cc._RF.push(module, '5c9b8FZiaNLMrMDs9T3rByf', 'DynamicAtlasManager'); +// Script/DynamicAtlasManager.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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnQuanMiXSwibmFtZXMiOlsiY2MiLCJUb2dnbGUiLCJfdHJpZ2dlckV2ZW50SW5TY3JpcHRfaXNDaGVja2VkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFJQSxFQUFFLENBQUNDLE1BQVAsRUFBZTtBQUNYO0FBQ0E7QUFDQUQsRUFBQUEsRUFBRSxDQUFDQyxNQUFILENBQVVDLCtCQUFWLEdBQTRDLElBQTVDO0FBQ0giLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFRoaXMgc2NyaXB0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IENvY29zIENyZWF0b3IgYW5kIGlzIG9ubHkgdXNlZCBmb3IgcHJvamVjdHMgY29tcGF0aWJsZSB3aXRoIHRoZSB2Mi4xLjAg772eIDIuMi4xIHZlcnNpb24uXHJcbiAqIFlvdSBkbyBub3QgbmVlZCB0byBtYW51YWxseSBhZGQgdGhpcyBzY3JpcHQgaW4gYW55IG90aGVyIHByb2plY3QuXHJcbiAqIElmIHlvdSBkb24ndCB1c2UgY2MuVG9nZ2xlIGluIHlvdXIgcHJvamVjdCwgeW91IGNhbiBkZWxldGUgdGhpcyBzY3JpcHQgZGlyZWN0bHkuXHJcbiAqIElmIHlvdXIgcHJvamVjdCBpcyBob3N0ZWQgaW4gVkNTIHN1Y2ggYXMgZ2l0LCBzdWJtaXQgdGhpcyBzY3JpcHQgdG9nZXRoZXIuXHJcbiAqXHJcbiAqIOatpOiEmuacrOeUsSBDb2NvcyBDcmVhdG9yIOiHquWKqOeUn+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/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) {}, - + properties: {}, + onLoad: function onLoad() { + cc.dynamicAtlasManager.enabled = false; + } }); cc._RF.pop(); @@ -1358,456 +3113,7 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcYW5pbWF0aW9uXFxOZXdTY3JpcHQuanMiXSwibmFtZXMiOlsiY2MiLCJDbGFzcyIsIkNvbXBvbmVudCIsInByb3BlcnRpZXMiLCJzZXgiLCJ0eXBlIiwiRW51bSIsIm1hbGUiLCJmZW1hbGUiLCJzdGFydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQUEsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDTCxhQUFTRCxFQUFFLENBQUNFLFNBRFA7QUFHTEMsRUFBQUEsVUFBVSxFQUFFO0FBQ1JDLElBQUFBLEdBQUcsRUFBQztBQUNBQyxNQUFBQSxJQUFJLEVBQUNMLEVBQUUsQ0FBQ00sSUFBSCxDQUFRO0FBQ1RDLFFBQUFBLElBQUksRUFBQyxDQURJO0FBRVRDLFFBQUFBLE1BQU0sRUFBQztBQUZFLE9BQVIsQ0FETDtBQUtBLGlCQUFRO0FBTFIsS0FESSxDQVFSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUF0QlEsR0FIUDtBQTRCTDtBQUVBO0FBRUFDLEVBQUFBLEtBaENLLG1CQWdDSSxDQUVSLENBbENJLENBb0NMOztBQXBDSyxDQUFUIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBjYy5DbGFzczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvY2xhc3MuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNjLkNsYXNzKHtcclxuICAgIGV4dGVuZHM6IGNjLkNvbXBvbmVudCxcclxuXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgICAgc2V4OntcclxuICAgICAgICAgICAgdHlwZTpjYy5FbnVtKHtcclxuICAgICAgICAgICAgICAgIG1hbGU6MCxcclxuICAgICAgICAgICAgICAgIGZlbWFsZToxXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBkZWZhdWx0OjBcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gZm9vOiB7XHJcbiAgICAgICAgLy8gICAgIC8vIEFUVFJJQlVURVM6XHJcbiAgICAgICAgLy8gICAgIGRlZmF1bHQ6IG51bGwsICAgICAgICAvLyBUaGUgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlIHVzZWQgb25seSB3aGVuIHRoZSBjb21wb25lbnQgYXR0YWNoaW5nXHJcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBhIG5vZGUgZm9yIHRoZSBmaXJzdCB0aW1lXHJcbiAgICAgICAgLy8gICAgIHR5cGU6IGNjLlNwcml0ZUZyYW1lLCAvLyBvcHRpb25hbCwgZGVmYXVsdCBpcyB0eXBlb2YgZGVmYXVsdFxyXG4gICAgICAgIC8vICAgICBzZXJpYWxpemFibGU6IHRydWUsICAgLy8gb3B0aW9uYWwsIGRlZmF1bHQgaXMgdHJ1ZVxyXG4gICAgICAgIC8vIH0sXHJcbiAgICAgICAgLy8gYmFyOiB7XHJcbiAgICAgICAgLy8gICAgIGdldCAoKSB7XHJcbiAgICAgICAgLy8gICAgICAgICByZXR1cm4gdGhpcy5fYmFyO1xyXG4gICAgICAgIC8vICAgICB9LFxyXG4gICAgICAgIC8vICAgICBzZXQgKHZhbHVlKSB7XHJcbiAgICAgICAgLy8gICAgICAgICB0aGlzLl9iYXIgPSB2YWx1ZTtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vIH0sXHJcbiAgICB9LFxyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIC8vIG9uTG9hZCAoKSB7fSxcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fSxcclxufSk7XHJcbiJdfQ== -//------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/data/lq_const.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, '98309gPXUxEF6zBe9e75Knb', 'lq_const'); -// Script/lq_base/data/lq_const.ts - -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.LQConst = exports.LQOperateType = exports.LQLevelStatus = exports.LQAdErrStr = exports.LQCallAd = exports.LQCallBase = exports.LQAnalysisTag = exports.LQByteDanceType = exports.LQPlatformType = exports.LQHttpDataType = exports.LQHttpRequestType = exports.LQEasing = exports.LQCollideStatus = exports.LQFollowTargetMode = exports.LQCollideShape = exports.LQBulletEmitterStatus = exports.LQRecordStatus = void 0; -var Vec2 = cc.Vec2; -var LQRecordStatus; -(function (LQRecordStatus) { - LQRecordStatus[LQRecordStatus["Idle"] = 0] = "Idle"; - LQRecordStatus[LQRecordStatus["Start"] = 1] = "Start"; - LQRecordStatus[LQRecordStatus["Pause"] = 2] = "Pause"; -})(LQRecordStatus = exports.LQRecordStatus || (exports.LQRecordStatus = {})); -var LQBulletEmitterStatus; -(function (LQBulletEmitterStatus) { - LQBulletEmitterStatus[LQBulletEmitterStatus["Idle"] = 0] = "Idle"; - LQBulletEmitterStatus[LQBulletEmitterStatus["Start"] = 1] = "Start"; - LQBulletEmitterStatus[LQBulletEmitterStatus["End"] = 2] = "End"; -})(LQBulletEmitterStatus = exports.LQBulletEmitterStatus || (exports.LQBulletEmitterStatus = {})); -var LQCollideShape; -(function (LQCollideShape) { - LQCollideShape[LQCollideShape["Rect"] = 1] = "Rect"; - LQCollideShape[LQCollideShape["Circle"] = 2] = "Circle"; - LQCollideShape[LQCollideShape["Polygon"] = 3] = "Polygon"; -})(LQCollideShape = exports.LQCollideShape || (exports.LQCollideShape = {})); -var LQFollowTargetMode; -(function (LQFollowTargetMode) { - LQFollowTargetMode[LQFollowTargetMode["Always"] = 0] = "Always"; - LQFollowTargetMode[LQFollowTargetMode["Once"] = 1] = "Once"; - LQFollowTargetMode[LQFollowTargetMode["Pass"] = 2] = "Pass"; -})(LQFollowTargetMode = exports.LQFollowTargetMode || (exports.LQFollowTargetMode = {})); -var LQCollideStatus; -(function (LQCollideStatus) { - LQCollideStatus[LQCollideStatus["Idle"] = 0] = "Idle"; - LQCollideStatus[LQCollideStatus["Live"] = 1] = "Live"; -})(LQCollideStatus = exports.LQCollideStatus || (exports.LQCollideStatus = {})); -var LQEasing; -(function (LQEasing) { - LQEasing["BackIn"] = "backIn"; - LQEasing["BackOut"] = "backOut"; - LQEasing["quadIn"] = "quadIn"; - LQEasing["quadOut"] = "quadOut"; - LQEasing["quadInOut"] = "quadInOut"; - LQEasing["cubicIn"] = "cubicIn"; - LQEasing["expoOut"] = "expoOut"; -})(LQEasing = exports.LQEasing || (exports.LQEasing = {})); -var LQHttpRequestType; -(function (LQHttpRequestType) { - LQHttpRequestType["Get"] = "get"; - LQHttpRequestType["Post"] = "post"; -})(LQHttpRequestType = exports.LQHttpRequestType || (exports.LQHttpRequestType = {})); -var LQHttpDataType; -(function (LQHttpDataType) { - LQHttpDataType[LQHttpDataType["Text"] = 0] = "Text"; - LQHttpDataType[LQHttpDataType["Binary"] = 1] = "Binary"; -})(LQHttpDataType = exports.LQHttpDataType || (exports.LQHttpDataType = {})); -var LQPlatformType; -(function (LQPlatformType) { - LQPlatformType["unknown"] = "\u672A\u77E5\u5E73\u53F0"; - LQPlatformType["all"] = "\u5168\u5E73\u53F0"; - LQPlatformType["wx"] = "\u5FAE\u4FE1"; - LQPlatformType["tt"] = "\u5B57\u8282\u8DF3\u52A8"; - LQPlatformType["oppo"] = "oppo"; - LQPlatformType["vivo"] = "vivo"; - LQPlatformType["qq"] = "qq"; - LQPlatformType["baidu"] = "\u767E\u5EA6"; - LQPlatformType["kwaigame"] = "\u5FEB\u624B"; - LQPlatformType["android"] = "\u5B89\u5353"; - LQPlatformType["ios"] = "\u82F9\u679C"; - LQPlatformType["browser"] = "\u6D4F\u89C8\u5668"; -})(LQPlatformType = exports.LQPlatformType || (exports.LQPlatformType = {})); -var LQByteDanceType; -(function (LQByteDanceType) { - LQByteDanceType["tt"] = "\u5934\u6761"; - LQByteDanceType["tt_lite"] = "\u5934\u6761\u6781\u901F\u7248"; - LQByteDanceType["douyin"] = "\u6296\u97F3"; - LQByteDanceType["douyin_lite"] = "\u6296\u97F3\u6781\u901F\u7248"; - LQByteDanceType["ppx"] = "\u76AE\u76AE\u867E"; - LQByteDanceType["devtools"] = "\u5B57\u8282\u5F00\u53D1\u5DE5\u5177"; -})(LQByteDanceType = exports.LQByteDanceType || (exports.LQByteDanceType = {})); -var LQAnalysisTag; -(function (LQAnalysisTag) { - LQAnalysisTag["VideoComplete"] = "video_complete"; - LQAnalysisTag["VideoBegin"] = "video_begin"; - LQAnalysisTag["VideoInterrupt"] = "video_interrupt"; - LQAnalysisTag["InterstitialShow"] = "interstitial_show"; - LQAnalysisTag["BannerShow"] = "banner_show"; - LQAnalysisTag["ExportShow"] = "export_show"; - LQAnalysisTag["NativeShow"] = "native_show"; - LQAnalysisTag["NativeClick"] = "native_show"; -})(LQAnalysisTag = exports.LQAnalysisTag || (exports.LQAnalysisTag = {})); -var LQCallBase; -(function (LQCallBase) { - LQCallBase[LQCallBase["InitSdk"] = 0] = "InitSdk"; - LQCallBase[LQCallBase["KeepScreenOn"] = 1] = "KeepScreenOn"; - LQCallBase[LQCallBase["Vibrate"] = 2] = "Vibrate"; - LQCallBase[LQCallBase["GetVersionCode"] = 3] = "GetVersionCode"; - LQCallBase[LQCallBase["GetVersionName"] = 4] = "GetVersionName"; - LQCallBase[LQCallBase["OpenUrl"] = 5] = "OpenUrl"; - LQCallBase[LQCallBase["DeleteDir"] = 6] = "DeleteDir"; - LQCallBase[LQCallBase["DeleteFile"] = 7] = "DeleteFile"; -})(LQCallBase = exports.LQCallBase || (exports.LQCallBase = {})); -var LQCallAd; -(function (LQCallAd) { - LQCallAd[LQCallAd["ShowBanner"] = 0] = "ShowBanner"; - LQCallAd[LQCallAd["HideBanner"] = 1] = "HideBanner"; - LQCallAd[LQCallAd["ShowVideo"] = 2] = "ShowVideo"; - LQCallAd[LQCallAd["ShowInterstitial"] = 3] = "ShowInterstitial"; - LQCallAd[LQCallAd["ShowNative"] = 4] = "ShowNative"; - LQCallAd[LQCallAd["CacheAd"] = 5] = "CacheAd"; -})(LQCallAd = exports.LQCallAd || (exports.LQCallAd = {})); -var LQAdErrStr; -(function (LQAdErrStr) { - LQAdErrStr["Unsupported"] = "\u4E0D\u652F\u6301"; - LQAdErrStr["NoParameters"] = "\u6CA1\u6709\u914D\u7F6E\u53C2\u6570"; - LQAdErrStr["NoAD"] = "\u6682\u65E0\u5E7F\u544A"; - LQAdErrStr["VersionOld"] = "\u7248\u672C\u8FC7\u4F4E"; - LQAdErrStr["VideoInterrupt"] = "\u4E2D\u65AD\u64AD\u653E"; - LQAdErrStr["InstanceErr"] = "\u5B9E\u4F8B\u4E3A\u7A7A"; - LQAdErrStr["AlreadyExist"] = "\u5DF2\u7ECF\u5B58\u5728"; - LQAdErrStr["IntervalTooShort"] = "\u95F4\u9694\u592A\u77ED"; -})(LQAdErrStr = exports.LQAdErrStr || (exports.LQAdErrStr = {})); -var LQLevelStatus; -(function (LQLevelStatus) { - LQLevelStatus[LQLevelStatus["Begin"] = 0] = "Begin"; - LQLevelStatus[LQLevelStatus["Failed"] = 1] = "Failed"; - LQLevelStatus[LQLevelStatus["Complete"] = 2] = "Complete"; -})(LQLevelStatus = exports.LQLevelStatus || (exports.LQLevelStatus = {})); -var LQOperateType; -(function (LQOperateType) { - LQOperateType[LQOperateType["ClickNode"] = 0] = "ClickNode"; - LQOperateType[LQOperateType["ClickScreen"] = 1] = "ClickScreen"; - LQOperateType[LQOperateType["Move"] = 2] = "Move"; - LQOperateType[LQOperateType["Null"] = 3] = "Null"; -})(LQOperateType = exports.LQOperateType || (exports.LQOperateType = {})); -var LQConst = /** @class */ (function () { - function LQConst() { - } - LQConst.VEC_ZERO = Vec2.ZERO; - return LQConst; -}()); -exports.LQConst = LQConst; - -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,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/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+lXG52YXIgTm90aWZpY2F0aW9ucyA9IHtcbiAgICBfZXZlbnRNYXA6IFtdLFxuICAgIG9uOiBmdW5jdGlvbiAobWFzZ0lkLCBjYWxsYmFjaywgdGFyZ2V0KSB7XG4gICAgICAgIGlmICh0aGlzLl9ldmVudE1hcFttYXNnSWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50TWFwW21hc2dJZF0gPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdLnB1c2goeyBjYWxsYmFjazogY2FsbGJhY2ssIHRhcmdldDogdGFyZ2V0IH0pO1xuICAgIH0sXG5cbiAgICBlbWl0OiBmdW5jdGlvbiAobWFzZ0lkLCBwYXJhbWV0ZXIpIHtcbiAgICAgICAgbGV0IGFycmF5ID0gdGhpcy5fZXZlbnRNYXBbbWFzZ0lkXTtcbiAgICAgICAgaWYgKGFycmF5ID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZWxlbWVudCA9IGFycmF5W2ldO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQpIGVsZW1lbnQuY2FsbGJhY2suY2FsbChlbGVtZW50LnRhcmdldCwgcGFyYW1ldGVyKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBvZmY6IGZ1bmN0aW9uIChtYXNnSWQsIGNhbGxiYWNrKSB7XG4gICAgICAgIGxldCBhcnJheSA9IHRoaXMuX2V2ZW50TWFwW21hc2dJZF07XG4gICAgICAgIGlmIChhcnJheSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBlbGVtZW50ID0gYXJyYXlbaV07XG4gICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmNhbGxiYWNrID09PSBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGFycmF5W2ldID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcblxuICAgIG9mZk1hc2dJZDogZnVuY3Rpb24gKG1hc2dJZCkge1xuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdID0gdW5kZWZpbmVkO1xuICAgIH0sXG5cbiAgICByZW1vdmVBbGxNc2c6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yIChsZXQgayBpbiB0aGlzLl9ldmVudE1hcCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2V2ZW50TWFwW2tdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vZmZNYXNnSWQoayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuZXhwb3J0IHsgTm90aWZpY2F0aW9ucyB9OyJdfQ== -//------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 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxEeW5hbWljQXRsYXNNYW5hZ2VyLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwib25Mb2FkIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsImVuYWJsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUFBLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDO0VBQ0wsV0FBU0QsRUFBRSxDQUFDRSxTQUFTO0VBRXJCQyxVQUFVLEVBQUUsQ0FDWixDQUFDO0VBRURDLE1BQU0sV0FBQUEsT0FBQSxFQUFJO0lBQ05KLEVBQUUsQ0FBQ0ssbUJBQW1CLENBQUNDLE9BQU8sR0FBRyxLQUFLO0VBQzFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJjYy5DbGFzcyh7XHJcbiAgICBleHRlbmRzOiBjYy5Db21wb25lbnQsXHJcblxyXG4gICAgcHJvcGVydGllczoge1xyXG4gICAgfSxcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG4gICAgICAgIGNjLmR5bmFtaWNBdGxhc01hbmFnZXIuZW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgfSxcclxufSk7XHJcbiJdfQ== //------QC-SOURCE-SPLIT------ (function() { @@ -2101,1015 +3407,7 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE11c2ljXFxBdWRpb01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFFMUM7SUFBMEMsZ0NBQVk7SUFBdEQ7UUFBQSxxRUF3UEM7UUF0UEcsTUFBTTtRQUVOLG1CQUFhLEdBQWlCLElBQUksQ0FBQztRQUduQyxhQUFPLEdBQWlCLElBQUksQ0FBQztRQUU3QixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQztRQUUxQixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixXQUFLLEdBQWlCLElBQUksQ0FBQztRQUUzQixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQztRQUUxQixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixrQkFBWSxHQUFpQixJQUFJLENBQUM7UUFFbEMsWUFBTSxHQUFpQixJQUFJLENBQUM7UUFFNUIsWUFBTSxHQUFpQixJQUFJLENBQUM7O0lBNk5oQyxDQUFDO3FCQXhQb0IsWUFBWTtJQXdDN0IsNkJBQU0sR0FBTjtRQUNJLElBQUksY0FBWSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDaEMsY0FBWSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDOUIsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekM7YUFDSTtZQUNELE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVaLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsMkJBQUksR0FBSjtRQUNJLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCOzs7V0FHRztRQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFFM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELDJCQUFJLEdBQUosVUFBTSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTO1FBQ3hDLCtDQUErQztRQUMvQyxpREFBaUQ7UUFDakQsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFFckUsMEJBQTBCO1FBQ3RCLHNDQUFzQztRQUN0QyxvQkFBb0I7UUFDcEIsS0FBSztRQUNMLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxFQUFFLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLEVBQUUsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUcsV0FBVyxDQUFDLElBQUksSUFBSSxNQUFNLEVBQUM7WUFDMUIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QzthQUNHO1lBQ0EsRUFBRSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0QztRQUNELElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxJQUFJLFFBQVEsRUFBQztZQUNULEVBQUUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFO2dCQUN0QyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNqQjtRQUNELG9FQUFvRTtRQUVwRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUN0QyxPQUFPLFdBQVcsQ0FBQztRQUN2QixXQUFXO1FBQ1gsMEJBQTBCO1FBQzFCLElBQUk7SUFDUixDQUFDO0lBRUQsMkJBQUksR0FBSjtRQUNJLHNGQUFzRjtRQUN0Rix3RkFBd0Y7SUFDNUYsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixJQUFJO0lBQ0osa0NBQWtDO0lBQ2xDLFFBQVE7SUFDUiwrQ0FBK0M7SUFDL0MsUUFBUTtJQUNSLDZCQUE2QjtJQUM3QixJQUFJO0lBRUosOEJBQU8sR0FBUDtRQUNJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFMUQsSUFBSSxNQUFNLEdBQUc7WUFDVCxJQUFJLENBQUMsYUFBYTtTQUNyQixDQUFDO1FBQ0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFTLElBQUk7UUFDNUIsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsMENBQW1CLEdBQW5CO1FBRUksT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBRTdCLENBQUM7SUFDRCwyQ0FBb0IsR0FBcEI7UUFFSSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUNELHFDQUFjLEdBQWQsVUFBZSxFQUFFO1FBRWIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFDRCxrQ0FBVyxHQUFYLFVBQWEsRUFBRTtRQUNYLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFDakM7WUFDSSxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3hDLGVBQWU7U0FDbEI7UUFDRCxJQUFHLEVBQUUsRUFDTDtZQUNJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN4QjthQUVEO1lBQ0ksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQztJQUNELG1DQUFZLEdBQVosVUFBYyxFQUFFO1FBQ1osSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsRUFBRSxDQUFBLENBQUMsQ0FBQSxDQUFDLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFDO1lBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxHQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDMUMsZUFBZTtTQUVsQjtJQUNMLENBQUM7SUFDRCw2QkFBTSxHQUFOO1FBQ0ksRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsNkJBQU0sR0FBTjtRQUNJLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELE1BQU07SUFDTixpQ0FBVSxHQUFWLFVBQVcsSUFBSSxFQUFDLFFBQVE7UUFDcEIsSUFBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUM7WUFDcEMsT0FBTztTQUNWO1FBQ0QsSUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUMsUUFBUSxFQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQ0QsZ0NBQVMsR0FBVCxVQUFXLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSTtRQUMxQixJQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBQztZQUNuQyxPQUFPO1NBQ1Y7UUFDRCxJQUFJLEdBQUcsT0FBTyxJQUFJLElBQUksV0FBVyxJQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDMUQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUUxRCxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxvQ0FBYSxHQUFiO1FBQ0ksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBQyxFQUFFLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNEOztPQUVHO0lBQ0gsZ0NBQVMsR0FBVDtRQUNJLHFFQUFxRTtRQUNyRSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNILGtDQUFXLEdBQVg7UUFDSSwyQ0FBMkM7UUFDM0MsRUFBRSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztNQUdFO0lBQ0Ysb0NBQWEsR0FBYjtJQUdBLENBQUM7SUFDRDs7TUFFRTtJQUNGLG1DQUFZLEdBQVo7SUFHQSxDQUFDO0lBQ0Q7O1VBRU07SUFDTiwyQ0FBb0IsR0FBcEI7SUFHQSxDQUFDO0lBQ0Q7O01BRUU7SUFDRiw0Q0FBcUIsR0FBckI7SUFHQSxDQUFDO0lBQ0Q7O09BRUc7SUFFSDs7T0FFRztJQUNILHNDQUFlLEdBQWY7UUFDSSwwRUFBMEU7SUFDOUUsQ0FBQzs7SUFuUEQ7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzt1REFDWTtJQUduQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO2lEQUNNO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7NkNBQ0U7SUFFekI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs4Q0FDRztJQUUxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO21EQUNRO0lBRS9CO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7K0NBQ0k7SUFFM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs2Q0FDRTtJQUV6QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDOzhDQUNHO0lBRTFCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7bURBQ1E7SUFFL0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQztzREFDVztJQUVsQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO2dEQUNLO0lBRTVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0RBQ0s7SUEzQlgsWUFBWTtRQURoQyxPQUFPO09BQ2EsWUFBWSxDQXdQaEM7SUFBRCxtQkFBQztDQXhQRCxBQXdQQyxDQXhQeUMsRUFBRSxDQUFDLFNBQVMsR0F3UHJEO2tCQXhQb0IsWUFBWTtBQXdQaEMsQ0FBQztBQUVGLDJCQUEyQiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcbkBjY2NsYXNzXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdWRpb01hbmFnZXIgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcbiAgICAvL+iDjOaZr+mfs+S5kFxuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgYXVkaW9HYW1lQmdtMDogY2MuQXVkaW9DbGlwID0gbnVsbDtcblxuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgeGlhb2NodTogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGhpdDogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGRvd246IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBmYW5neGlhbmc6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBidWlsZDogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIHdpbjogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGxvc2U6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBhbm5pdV9CaWc6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBhbm5pdV9saXR0bGU6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICB6aHVhbjE6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICB6aHVhbjI6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG5cbiAgICBtQXVkaW9NYXA6IHt9O1xuICAgIGJnTXVzaWNWb2x1bWU6IG51bWJlcjtcbiAgICBlZmZlY3RNdXNpY1ZvbHVtZTogbnVtYmVyO1xuICAgIG1NdXNpY1N3aXRjaDogbnVtYmVyO1xuICAgIG1FZmZlY3RTd2l0Y2g6IG51bWJlcjtcbiAgICBicmlja1NvdW5kOiBhbnk7XG4gICAgcmV3YXJkOiBib29sZWFuO1xuICAgIGZpbmlzaDogYm9vbGVhbjtcbiAgICByZXdhcmRDb3VudDogbnVtYmVyO1xuICAgIG1NdXNpY0tleTogYW55O1xuXG4gICAgb25Mb2FkKCkge1xuICAgICAgICBpZiAoQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZSA9PSBudWxsKSB7XG4gICAgICAgICAgICBBdWRpb01hbmFnZXIuX2luc3RhbmNlID0gdGhpcztcbiAgICAgICAgICAgIGNjLmdhbWUuYWRkUGVyc2lzdFJvb3ROb2RlKHRoaXMubm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXdhcmQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5maW5pc2ggPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZXdhcmRDb3VudCA9IDA7XG4gICAgICAgIHRoaXMuY3RvcigpO1xuXG4gICAgICAgIHRoaXMucHJlbG9hZCgpO1xuICAgIH1cblxuICAgIGN0b3IgKCkge1xuICAgICAgICB0aGlzLm1BdWRpb01hcCA9IHt9O1xuICAgICAgICAvKipcbiAgICAgICAgICog6buY6K6k6Z+z6YeP5aSn5bCPXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmJnTXVzaWNWb2x1bWUgPSAwLjE7XG4gICAgICAgIHRoaXMuZWZmZWN0TXVzaWNWb2x1bWUgPSAxO1xuXG4gICAgICAgIHRoaXMubU11c2ljU3dpdGNoID0gMTtcbiAgICAgICAgdGhpcy5tRWZmZWN0U3dpdGNoID0gMTtcbiAgICB9XG4gICAgcGxheSAoYXVkaW9Tb3VyY2UsIGxvb3AsIGNhbGxiYWNrLCBpc0JnTXVzaWMpIHtcbiAgICAgICAgLy8gaWYgKGlzQmdNdXNpYyAmJiAhdGhpcy5tTXVzaWNTd2l0Y2gpIHJldHVybjtcbiAgICAgICAgLy8gaWYgKCFpc0JnTXVzaWMgJiYgIXRoaXMubUVmZmVjdFN3aXRjaCkgcmV0dXJuO1xuICAgICAgICB2YXIgdm9sdW1lID0gaXNCZ011c2ljID8gdGhpcy5iZ011c2ljVm9sdW1lIDogdGhpcy5lZmZlY3RNdXNpY1ZvbHVtZTtcblxuICAgICAgICAvLyBpZiAoY2Muc3lzLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgLy8gaWYoYXVkaW9Tb3VyY2UgPT0gdGhpcy5icmlja1NvdW5kKXtcbiAgICAgICAgICAgIC8vICAgICB2b2x1bWUgPSAwLjE7XG4gICAgICAgICAgICAvLyB9IFxuICAgICAgICAgICAgdm9sdW1lID0gMTtcbiAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldEVmZmVjdHNWb2x1bWUoMSk7XG4gICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRNdXNpY1ZvbHVtZSgxKTtcbiAgICAgICAgICAgIGlmKGF1ZGlvU291cmNlLm5hbWUgPT0gXCJsb3NlXCIpe1xuICAgICAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldEVmZmVjdHNWb2x1bWUoMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RWZmZWN0c1ZvbHVtZSgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBjb250ZXh0ID0gY2MuYXVkaW9FbmdpbmUucGxheUVmZmVjdChhdWRpb1NvdXJjZSwgbG9vcCk7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2spe1xuICAgICAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldEZpbmlzaENhbGxiYWNrKGNvbnRleHQsIGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLmNhbGwodGhpcyk7XG4gICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGNjLnd3eC5PdXRQdXQubG9nKCdwbGF5IGF1ZGlvIGVmZmVjdCBpc0Jyb3dzZXI6ICcgKyBjb250ZXh0LnNyYyk7XG5cbiAgICAgICAgICAgIHRoaXMubUF1ZGlvTWFwW2F1ZGlvU291cmNlXSA9IGNvbnRleHQ7XG4gICAgICAgICAgICByZXR1cm4gYXVkaW9Tb3VyY2U7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gYXVkaW9Tb3VyY2U7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBzYXZlICgpIHtcbiAgICAgICAgLy8gY2Mud3d4LlN0b3JhZ2Uuc2V0SXRlbShjYy53d3guU3RvcmFnZS5LZXlfU2V0dGluZ19NdXNpY19Wb2x1bWUsIHRoaXMubU11c2ljU3dpdGNoKTtcbiAgICAgICAgLy8gY2Mud3d4LlN0b3JhZ2Uuc2V0SXRlbShjYy53d3guU3RvcmFnZS5LZXlfU2V0dGluZ19FZmZlY3RfVm9sdW1lLCB0aGlzLm1FZmZlY3RTd2l0Y2gpO1xuICAgIH1cblxuICAgIC8vIHN0YXRpYyBnZXQgSW5zdGFuY2UoKVxuICAgIC8vIHtcbiAgICAvLyAgICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpXG4gICAgLy8gICAgIHtcbiAgICAvLyAgICAgICAgIHRoaXMuX2luc3RhbmNlID0gbmV3IEF1ZGlvTWFuYWdlcigpO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcbiAgICAvLyB9XG5cbiAgICBwcmVsb2FkICgpIHtcbiAgICAgICAgaWYgKCEoY2Muc3lzLnBsYXRmb3JtID09PSBjYy5zeXMuV0VDSEFUX0dBTUUpKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHZhciBtdXNpY3MgPSBbXG4gICAgICAgICAgICB0aGlzLmF1ZGlvR2FtZUJnbTAsXG4gICAgICAgIF07XG4gICAgICAgIG11c2ljcy5mb3JFYWNoKGZ1bmN0aW9uKHBhdGgpIHtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBnZXRBdWRpb011c2ljU3dpdGNoKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLm1NdXNpY1N3aXRjaDtcblxuICAgIH1cbiAgICBnZXRBdWRpb0VmZmVjdFN3aXRjaCgpXG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy5tRWZmZWN0U3dpdGNoO1xuICAgIH1cbiAgICB0cnVuQXVkaW9Tb3VuZChvbilcbiAgICB7XG4gICAgICAgIHRoaXMuc3dpdGNoTXVzaWMob24pO1xuICAgICAgICB0aGlzLnN3aXRjaEVmZmVjdChvbilcbiAgICB9XG4gICAgc3dpdGNoTXVzaWMgKG9uKSB7XG4gICAgICAgIGlmICh0aGlzLm1NdXNpY1N3aXRjaCAhPSAob24/MTowKSlcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5tTXVzaWNTd2l0Y2ggPSAxLXRoaXMubU11c2ljU3dpdGNoO1xuICAgICAgICAgICAgLy8gdGhpcy5zYXZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYob24pXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRoaXMucGxheU11c2ljR2FtZSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5zdG9wTXVzaWMoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzd2l0Y2hFZmZlY3QgKG9uKSB7XG4gICAgICAgIGlmICh0aGlzLm1FZmZlY3RTd2l0Y2ggIT0gKG9uPzE6MCkpe1xuICAgICAgICAgICAgdGhpcy5tRWZmZWN0U3dpdGNoID0gMS10aGlzLm1FZmZlY3RTd2l0Y2g7XG4gICAgICAgICAgICAvLyB0aGlzLnNhdmUoKTtcblxuICAgICAgICB9XG4gICAgfVxuICAgIG9uSGlkZSAoKSB7XG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnBhdXNlQWxsKCk7XG4gICAgfVxuXG4gICAgb25TaG93ICgpIHtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucmVzdW1lQWxsKCk7XG4gICAgfVxuXG4gICAgLy/mkq3mlL7pn7PmlYhcbiAgICBwbGF5RWZmZWN0KG5hbWUsY2FsbGJhY2spe1xuICAgICAgICBpZighY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmVmZmVjdE9wZW4pe1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmKHRoaXNbbmFtZV0pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wbGF5KHRoaXNbbmFtZV0sIGZhbHNlLGNhbGxiYWNrLHRoaXMubUVmZmVjdFN3aXRjaCk7XG4gICAgfVxuICAgIHBsYXlNdXNpYyAoa2V5LCBjYWxsYmFjaywgbG9vcCkge1xuICAgICAgICBpZighY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3Blbil7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbG9vcCA9IHR5cGVvZiBsb29wID09ICd1bmRlZmluZWQnICB8fCBsb29wID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgICAgICB0aGlzLm1NdXNpY0tleSA9IHRoaXMucGxheShrZXksIGxvb3AsIGNhbGxiYWNrLCB0cnVlKTtcblxuICAgIH1cbiAgICAvKipcbiAgICAgKiDmuLjmiI/og4zmma/pn7PkuZBcbiAgICAgKi9cbiAgICBwbGF5TXVzaWNHYW1lICgpIHtcbiAgICAgICAgdGhpcy5zdG9wTXVzaWMoKTtcbiAgICAgICAgdGhpcy5wbGF5TXVzaWModGhpcy5hdWRpb0dhbWVCZ20wLHt9LHRydWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiDlgZzmraLog4zmma/pn7PkuZDmkq3mlL5cbiAgICAgKi9cbiAgICBzdG9wTXVzaWMgKCkge1xuICAgICAgICAvLyBjYy53d3guT3V0UHV0LmxvZygnc3RvcE11c2ljIGF1ZGlvIGVmZmVjdCB3eDogJyArIHRoaXMubU11c2ljS2V5KTtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUuc3RvcEFsbCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaBouWkjeiiq+aaguWBnOeahOiDjOaZr+mfs+S5kOaSreaUvlxuICAgICAqL1xuICAgIHJlc3VtZU11c2ljICgpIHtcbiAgICAgICAgLy8g6LCD55SoIGNjLmF1ZGlvRW5naW5lIOeahCByZXN1bWVNdXNpYyDmlrnms5XmgaLlpI3pn7PkuZDmkq3mlL5cbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucmVzdW1lTXVzaWMoKTtcbiAgICB9XG5cbiAgICAvKlxuICAgICog5ri45oiP5byA5aeL6Z+z5pWIXG4gICAgKlxuICAgICovXG4gICAgcGxheUdhbWVTdGFydCgpXG4gICAge1xuICAgIFxuICAgIH1cbiAgICAvKlxuICAgICog5aSx6LSl55qE5ri45oiP57uT5p2fXG4gICAgKi9cbiAgICBwbGF5R2FtZU92ZXIoKVxuICAgIHtcblxuICAgIH1cbiAgICAvKlxuICAgICAgICAqIOaIkOWKn+eahOa4uOaIj+e7k+adn1xuICAgICAgICAqL1xuICAgIHBsYXlHYW1lUmVzdWx0RmFpbGVkKClcbiAgICB7XG5cbiAgICB9XG4gICAgLypcbiAgICAqIOaIkOWKn+eahOa4uOaIj+e7k+adn1xuICAgICovXG4gICAgcGxheUdhbWVSZXN1bHRTdWNjZXNzKClcbiAgICB7XG5cbiAgICB9XG4gICAgLyoqXG4gICAgICog5oql6K2m55qE6Z+z5pWIXG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiDmjInpkq5cbiAgICAgKi9cbiAgICBwbGF5QXVkaW9CdXR0b24gKCkge1xuICAgICAgICAvLyByZXR1cm4gdGhpcy5wbGF5KHRoaXMuYXVkaW9CdXR0b25DbGljaywgZmFsc2UsbnVsbCx0aGlzLm1FZmZlY3RTd2l0Y2gpO1xuICAgIH1cbn07XG5cbi8vIGV4cG9ydCB7IEF1ZGlvTWFuYWdlciB9O1xuIl19 -//------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/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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFN0b3JhZ2VcXFN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUztBQUNULElBQUksY0FBYyxHQUFHO0lBQ2pCLFVBQVUsRUFBRyxVQUFTLEdBQUc7UUFDckIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDO1lBQ2xDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMvQztRQUVELElBQUcsTUFBTSxFQUFDO1lBQ1IsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0QsVUFBVSxFQUFHLFVBQVMsR0FBRyxFQUFDLEtBQUs7UUFDM0IsVUFBVTtRQUNWLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBQ0QsYUFBYSxFQUFHLFVBQVMsR0FBRztRQUMxQixVQUFVO1FBQ1YsSUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDbEMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3BDO0lBQ0gsQ0FBQztDQUNKLENBQUM7QUFFTyx3Q0FBYyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8v57yT5a2Y5rWP6KeI5Zmo5pWw5o2uXG52YXIgU3RvcmFnZU1lc3NhZ2UgPSB7XG4gICAgZ2V0U3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XG4gICAgICAgIHZhciByZXN1bHQgPSBudWxsO1xuICAgICAgICBpZihjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSl7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZihyZXN1bHQpe1xuICAgICAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG4gICAgc2V0U3RvcmFnZSA6IGZ1bmN0aW9uKGtleSx2YWx1ZSl7XG4gICAgICAgIC8v5Li75Yqo5ouJ6LW35YiG5Lqr5o6l5Y+jXG4gICAgICAgIHZhciB0ZW1wID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB0ZW1wKVxuICAgIH0sXG4gICAgcmVtb3ZlU3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XG4gICAgICAvL+S4u+WKqOWIoOmZpOa2iOaBr+aOpeWPo1xuICAgICAgaWYoY2Muc3lzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpe1xuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxuICAgICAgfVxuICAgIH0sXG59O1xuXG5leHBvcnQgeyBTdG9yYWdlTWVzc2FnZSB9OyJdfQ== -//------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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxEeW5hbWljQXRsYXNNYW5hZ2VyLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwib25Mb2FkIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsImVuYWJsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUFBLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ0wsYUFBU0QsRUFBRSxDQUFDRSxTQURQO0FBR0xDLEVBQUFBLFVBQVUsRUFBRSxFQUhQO0FBTUxDLEVBQUFBLE1BTkssb0JBTUs7QUFDTkosSUFBQUEsRUFBRSxDQUFDSyxtQkFBSCxDQUF1QkMsT0FBdkIsR0FBaUMsS0FBakM7QUFDSDtBQVJJLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImNjLkNsYXNzKHtcclxuICAgIGV4dGVuZHM6IGNjLkNvbXBvbmVudCxcclxuXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICB9LFxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgY2MuZHluYW1pY0F0bGFzTWFuYWdlci5lbmFibGVkID0gZmFsc2U7XHJcbiAgICB9LFxyXG59KTtcclxuIl19 -//------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/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; - 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; - }; - 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; - } - 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); - } - } - } - }; - //点击事件 - 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); - }; - __decorate([ - property(cc.Node) - ], NewClass.prototype, "Map", 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); - 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxDb250cm9sTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXVLQztRQXBLRyxTQUFHLEdBQVksSUFBSSxDQUFDO1FBRXBCLFNBQUcsR0FBYyxJQUFJLENBQUM7UUFFdEIsZUFBUyxHQUFjLElBQUksQ0FBQztRQUU1QixVQUFJLEdBQWMsSUFBSSxDQUFDOztRQTZKdkIsaUJBQWlCO0lBQ3JCLENBQUM7SUFySkcsd0JBQXdCO0lBRXhCLGVBQWU7SUFFZix3QkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELDhCQUFXLEdBQVgsVUFBWSxHQUFHO1FBQ1gsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztZQUN4QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUM7WUFDcEMsSUFB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QUFDOzBDQUNHO0lBVE4sUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQXVLNUI7SUFBRCxlQUFDO0NBdktELEFBdUtDLENBdktxQyxFQUFFLENBQUMsU0FBUyxHQXVLakQ7a0JBdktvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBNYXA6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIHRpcDogY2MuUHJlZmFiID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICByZWluZm9yY2U6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgc29pbDogY2MuUHJlZmFiID0gbnVsbDtcclxuICAgIFxyXG5cclxuICAgIHRpcEFycmF5OmFueTtcclxuICAgIGNvbnRyb2xBcnJheTphbnk7XHJcbiAgICBjYW5Ub3VjaDpib29sZWFuO1xyXG4gICAgUmVpbmZvcmNlOmJvb2xlYW47XHJcbiAgICBTb2lsOmJvb2xlYW47XHJcbiAgICBtYXBIZWlnaHQ6bnVtYmVyO1xyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgLy8gb25Mb2FkICgpIHt9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG4gICAgICAgIHRoaXMudGlwQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmNvbnRyb2xBcnJheSA9IFtdO1xyXG4gICAgICAgIHRoaXMuY2FuVG91Y2ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuUmVpbmZvcmNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tYXBIZWlnaHQgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFBvc2l0aW9uKHRpcCl7XHJcbiAgICAgICAgdGlwLnNldFBvc2l0aW9uKDMwLC0yNSk7XHJcbiAgICAgICAgaWYodGhpcy50aXBBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgbGV0IGxlbmd0aCA9IHRoaXMudGlwQXJyYXkubGVuZ3RoKzE7XHJcbiAgICAgICAgICAgIGxldCBwb3NZID0gTWF0aC5jZWlsKGxlbmd0aC84KSAtIDE7XHJcbiAgICAgICAgICAgIGxldCBwb3NYID0gbGVuZ3RoIC0gTWF0aC5mbG9vcihwb3NZKSo4IC0gMTtcclxuICAgICAgICAgICAgdGlwLnNldFBvc2l0aW9uKDMwICsgNDgqcG9zWCwtMjUgLTQ4KnBvc1kgKyB0aGlzLm1hcEhlaWdodCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/muIXnqbrmiYDmnIlcclxuICAgIHJlbW92ZUFsbFRpcCgpe1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgaWYodGhpcy50aXBBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwicWluZ2tvbmdcIixudWxsKTtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy50aXBBcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCB0aXAgPSB0aGlzLnRpcEFycmF5W2ldO1xyXG4gICAgICAgICAgICAgICAgdGlwLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGlwLnJlbW92ZUZyb21QYXJlbnQodGhpcy5NYXApO1xyXG4gICAgICAgICAgICAgICAgdGlwID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnRpcEFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbEFycmF5ID0gW107XHJcbiAgICAgICAgICAgIHZhciBkcmF3aW5nUmVzZXQgPSBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX0RBVEEuZHJhd2luZ1Jlc2V0ICsgMTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5DTElDS19TRVQoXCJkcmF3aW5nUmVzZXRcIixkcmF3aW5nUmVzZXQpO1xyXG4gICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5yZW1vdmVUaXAsXCJyZW1vdmVcIik7XHJcbiAgICAgICAgICAgIHRoaXMubWFwSGVpZ2h0ID0gMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+aSpOWbnuS4gOatpVxyXG4gICAgYmFja19DbGljaygpe1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgaWYodGhpcy50aXBBcnJheS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiY2hlaHVpXCIsbnVsbCk7XHJcbiAgICAgICAgICAgIGxldCB0aXAgPSB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdO1xyXG4gICAgICAgICAgICB0aXAuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRpcC5yZW1vdmVGcm9tUGFyZW50KHRoaXMuTWFwKTtcclxuICAgICAgICAgICAgdGlwID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy50aXBBcnJheS5wb3AoKTtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sQXJyYXkucG9wKCk7XHJcbiAgICAgICAgICAgIHZhciBkcmF3aW5nQmFjayA9IGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfREFUQS5kcmF3aW5nQmFjayArIDE7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfU0VUKFwiZHJhd2luZ0JhY2tcIixkcmF3aW5nQmFjayk7XHJcbiAgICAgICAgICAgIGNjLmZ4Lk5vdGlmaWNhdGlvbnMuZW1pdChjYy5meC5NZXNzYWdlLnJlbW92ZVRpcCxcImJhY2tcIik7XHJcbiAgICAgICAgICAgIGlmKHRoaXMudGlwQXJyYXkubGVuZ3RoID49IDI0KXtcclxuICAgICAgICAgICAgICAgIGlmKCh0aGlzLnRpcEFycmF5Lmxlbmd0aCApJTggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXBNb3ZlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+eCueWHu+S6i+S7tlxyXG4gICAgYnRuX0NsaWNrKHRhcmdldCxkYXRhKXtcclxuICAgICAgICB2YXIgR2FtZU1hbmFnZXIgPSB0aGlzLm5vZGUucGFyZW50LmdldENvbXBvbmVudChcIkdhbWVNYW5hZ2VyXCIpO1xyXG4gICAgICAgIGlmKEdhbWVNYW5hZ2VyLmJ0bkNsaWNrID09IHRydWUpe1xyXG4gICAgICAgICAgICBHYW1lTWFuYWdlci5idG5DbGljayA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5ndWlkZU5leHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5jb250cm9sLGRhdGEpO1xyXG4gICAgICAgIGlmKCF0aGlzLmNhblRvdWNoKSByZXR1cm47XHJcbiAgICAgICAgbGV0IHByZWZhYiA9IHRoaXMudGlwO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJyZWluZm9yY2VcIiB8fCBkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgcHJlZmFiID0gdGhpc1tkYXRhXTtcclxuICAgICAgICAgICAgaWYoZGF0YSA9PSBcInJlaW5mb3JjZVwiKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuUmVpbmZvcmNlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlaW5mb3JjZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmFja19DbGljaygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImppbmVuZ1wiLG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUmVpbmZvcmNlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlNvaWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgZWxzZSBpZihkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuU29pbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWNrX0NsaWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiamluZW5nXCIsbnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Tb2lsID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlJlaW5mb3JjZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJmYW5neGlhbmdcIixudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5SZWluZm9yY2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5Tb2lsID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0aXAgPSBjYy5pbnN0YW50aWF0ZShwcmVmYWIpO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJ1cFwiKSB0aXAuYW5nbGUgPSAxODA7XHJcbiAgICAgICAgaWYoZGF0YSA9PSBcImxlZnRcIikgdGlwLmFuZ2xlID0gLTkwO1xyXG4gICAgICAgIGlmKGRhdGEgPT0gXCJyaWdodFwiKSB0aXAuYW5nbGUgPSA5MDtcclxuICAgICAgICB0aXAucGFyZW50ID0gdGhpcy5NYXA7XHJcbiAgICBcclxuICAgICAgICBpZih0aGlzLmNvbnRyb2xBcnJheVt0aGlzLmNvbnRyb2xBcnJheS5sZW5ndGgtMV0gPT0gXCJyZWluZm9yY2VcIiB8fCBcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sQXJyYXlbdGhpcy5jb250cm9sQXJyYXkubGVuZ3RoLTFdID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgIGlmKGRhdGEgPT0gXCJyZWluZm9yY2VcIiB8fCBkYXRhID09IFwic29pbFwiKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5W3RoaXMudGlwQXJyYXkubGVuZ3RoLTFdID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpcEFycmF5LnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbEFycmF5LnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHRpcCk7XHJcblxyXG4gICAgICAgIHRoaXMudGlwQXJyYXkucHVzaCh0aXApO1xyXG4gICAgICAgIHRoaXMuY29udHJvbEFycmF5LnB1c2goZGF0YSk7XHJcbiAgICBcclxuICAgICAgICBpZih0aGlzLnRpcEFycmF5Lmxlbmd0aCA+PSAyNSl7XHJcbiAgICAgICAgICAgIGlmKCh0aGlzLnRpcEFycmF5Lmxlbmd0aCAtIDEpJTggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hcE1vdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+WcsOWbvuaUvuS4jeS4i+S6huS4iuS4i+enu+WKqFxyXG4gICAgbWFwTW92ZSh0eXBlKXtcclxuICAgICAgICBpZih0eXBlKSB0aGlzLm1hcEhlaWdodCArPSA0ODtcclxuICAgICAgICBlbHNlIHRoaXMubWFwSGVpZ2h0IC09IDQ4O1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMudGlwQXJyYXkubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGxldCB0aXAgPSB0aGlzLnRpcEFycmF5W2ldO1xyXG4gICAgICAgICAgICBpZih0eXBlKXRpcC55ICs9IDQ4O1xyXG4gICAgICAgICAgICBlbHNlIHRpcC55IC09IDQ4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+eCueWHu+W8gOWniyDliJvlu7rmsrPpgZNcclxuICAgIHN0YXJ0X0NsaWNrKCl7XHJcbiAgICAgICAgaWYoIXRoaXMuY2FuVG91Y2gpIHJldHVybjtcclxuICAgICAgICB0aGlzLmNhblRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYnVpbGRcIixudWxsKTtcclxuICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoY2MuZnguTWVzc2FnZS5zdGFydEdhbWUsdGhpcy5jb250cm9sQXJyYXkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 +//# 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() { @@ -3983,6 +4281,757 @@ cc._RF.pop(); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFRvb2xcXEdhbWVUb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFvRDtBQUVwRCwrQkFBK0I7QUFDL0IsSUFBSSxRQUFRLEdBQUc7SUFDWCxVQUFVLEVBQUUsQ0FBQztJQUNiLFFBQVEsRUFBRSxDQUFDO0lBQ1gsVUFBVSxFQUFFLENBQUM7SUFFYixVQUFVO0lBQ1YsY0FBYztRQUNWLElBQUksSUFBSSxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3JELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUcsSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUM7WUFDOUMsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDbEMsSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUM7Z0JBQzNCLElBQUksR0FBRyxHQUFHLDhFQUE4RSxHQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQzthQUM5QjtTQUNKO2FBQ0c7WUFDQSxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMzRDtJQUNMLENBQUM7SUFFRCxhQUFhLFlBQUMsR0FBRztRQUNiLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsTUFBTTtJQUNOLFdBQVc7UUFDUCxvQkFBb0I7UUFDcEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNoQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdELEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztRQUN0QyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEMsSUFBSSxRQUFRLEdBQUc7WUFDWCxRQUFRLEVBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU07WUFDeEMsUUFBUSxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ3hDLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSztZQUN2QyxTQUFTLEVBQUMsT0FBTztZQUNqQixNQUFNLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFFRixpQ0FBaUM7UUFDakMsMERBQTBEO0lBQzlELENBQUM7SUFDRCxlQUFlO0lBQ2YsT0FBTyxZQUFDLElBQUk7UUFDUixvQkFBb0I7UUFDcEIsSUFBSSxRQUFRLEdBQUc7WUFDWCxRQUFRLEVBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU07WUFDeEMsUUFBUSxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ3hDLE1BQU0sRUFBQyxDQUFDO1lBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ25CLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNyQixTQUFTLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU87U0FDOUMsQ0FBQztRQUNGLG9EQUFvRDtJQUN4RCxDQUFDO0lBQ0QsY0FBYztJQUNkLE9BQU8sWUFBQyxJQUFJLEVBQUMsUUFBUTtRQUNqQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzdCLElBQUksUUFBUSxHQUFHO1lBQ1gsUUFBUSxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ3hDLFFBQVEsRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUN4QyxNQUFNLEVBQUMsQ0FBQztZQUNSLFVBQVUsRUFBQyxVQUFVO1NBQ3hCLENBQUM7UUFDRixnQkFBZ0I7UUFDaEIsK0RBQStEO0lBQ25FLENBQUM7SUFDRCxpQ0FBaUM7SUFDakMsVUFBVTtRQUNOLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRCxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUM7UUFDckIsSUFBRyxPQUFPLElBQUksVUFBVSxJQUFJLE9BQU8sSUFBRSxJQUFJLEVBQUM7WUFDdEMsT0FBTyxHQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNoQzthQUNHO1lBQ0EsSUFBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBQztnQkFDcEMsT0FBTyxHQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNoQztpQkFDRztnQkFDQSxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ3hELElBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUM7b0JBQ25DLElBQUksSUFBSSxDQUFDLENBQUM7b0JBQ1YsT0FBTyxHQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQzNDLElBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7d0JBQUUsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDN0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7b0JBQzNDLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ2xEO2FBQ0o7U0FDSjtRQUVELElBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUM7WUFDcEMsT0FBTyxHQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNoQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFDRCw4QkFBOEI7SUFDOUIsY0FBYyxZQUFDLEdBQUc7UUFDZCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELGFBQWE7SUFDYixVQUFVO1FBQ04sZUFBZTtRQUNmLElBQU0sVUFBVSxHQUFHLGdFQUFnRSxDQUFDO1FBQ3BGLGdCQUFnQjtRQUNoQixJQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDckIsbUJBQW1CO1FBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckIsbUJBQW1CO1lBQ3ZCLElBQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRSxjQUFjO1lBQ2QsSUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsRCxZQUFZO1lBQ1osU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUM5QjtRQUNELElBQUksSUFBSSxHQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN4QyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdDLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU07SUFDTixPQUFPLFlBQUMsSUFBSSxFQUFDLE1BQU07UUFDZixJQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxFQUFDO1lBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUE7U0FDMUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsTUFBTTtJQUNOLE1BQU0sRUFBTixVQUFPLElBQUksRUFBQyxHQUFHO1FBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2QsVUFBVSxDQUFDO1lBQ1AsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDVCxJQUFJLENBQUMsVUFBQSxRQUFRO2dCQUNWLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNsRCxDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUFDLFVBQUEsS0FBSztnQkFDUCxJQUFHLEtBQUssSUFBSSxNQUFNLEVBQUM7b0JBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7aUJBQ3RCO1lBQ0wsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxVQUFBLEtBQUs7Z0JBQ1Isa0RBQWtEO1lBQ3RELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUMsR0FBRyxFQUFDLE1BQU0sRUFBQyxFQUFDLFVBQUMsR0FBRyxFQUFFLE9BQW9CO1lBQ25FLElBQUcsT0FBTyxFQUFDO2dCQUNQLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzFFO2lCQUNHO2dCQUNBLDJCQUEyQjthQUM5QjtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUNELG1DQUFtQztJQUNuQyxtQkFBbUI7SUFDbkIsV0FBVyxZQUFDLElBQUksRUFBQyxNQUFNLEVBQUMsVUFBVTtRQUM5QixNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDakMsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNoQixFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekcsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBQztZQUN4QyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBRSxHQUFHLEVBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDO1lBQ3BJLElBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBQztnQkFDNUQsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDWixNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztnQkFDdEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUUsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ3ZGO1lBQ0QsSUFBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksS0FBSyxFQUFDO2dCQUNoRCxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztnQkFDdEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2FBQ25GO1NBQ0o7UUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDbkcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDakcsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUUsMkZBQTJGO1FBQzNGLFFBQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUM7WUFDM0UsS0FBSyxHQUFHO2dCQUNKLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUMzRSxNQUFNO1lBQ1YsS0FBSyxHQUFHO2dCQUNKLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUMzRSxNQUFNO1lBQ1YsS0FBSyxHQUFHO2dCQUNKLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUM3RSxNQUFNO1NBQ2I7UUFDRCxNQUFNO1FBQ04sSUFBRyxVQUFVLElBQUksQ0FBQyxFQUFDO1lBQ2YsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1lBQzlCLElBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLElBQUksQ0FBQztnQkFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7U0FDdEU7SUFDTCxDQUFDO0lBRUQsYUFBYSxFQUFFLFVBQVUsR0FBRyxFQUFFLEdBQUc7UUFDN0IseURBQXlEO1FBQ3pELEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2YsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDZixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ2hHLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUksUUFBUSxDQUFDO1FBQ3hELElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDbEMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELGNBQWM7SUFDZCxTQUFTLFlBQUMsSUFBSTtRQUNWLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xGLElBQUcsTUFBTSxJQUFJLFVBQVUsSUFBSSxNQUFNLElBQUUsSUFBSSxJQUFJLE1BQU0sSUFBSSxFQUFFLEVBQUM7WUFDcEQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3BCO2FBQ0c7WUFDQSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELElBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUssSUFBSSxFQUFDO2dCQUMvQixNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2YsSUFBRyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBQztvQkFDbEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2lCQUNwQjs7b0JBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3BGO1NBQ0o7SUFDTCxDQUFDO0lBQ0QseUJBQXlCO0lBQ3pCLFNBQVM7UUFDTCxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ3JELElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNuQixLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsV0FBVyxFQUFDLENBQUMsRUFBRSxFQUFDO1lBQzNCLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckI7UUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQU0sT0FBQSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFuQixDQUFtQixDQUFDLENBQUM7UUFDMUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNwQixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BELEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBR0QsMEJBQTBCLEVBQUU7UUFDeEIsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUN0QixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3ZCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsU0FBUztJQUNULE1BQU0sRUFBRSxVQUFVLE1BQU07UUFDcEIsSUFBSSxJQUFJLEdBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUN4RCxJQUFJLElBQUksRUFBRTtZQUNULHdCQUF3QjtTQUN4QjthQUFNO1lBQ04sdUJBQXVCO1NBQ3ZCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELFFBQVE7SUFDUixXQUFXLEVBQUUsVUFBUyxJQUFJO1FBQ3RCLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNmLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUNELFFBQVE7SUFDUixXQUFXLEVBQUUsVUFBUyxFQUFFO0lBRXhCLENBQUM7SUFFRCxPQUFPO0lBQ1AsU0FBUyxZQUFDLEtBQUssRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLE1BQU07UUFDMUIsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ2xCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNkLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUNyQixJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsSUFBSSxHQUFHO1lBQ1IsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQixLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRTtnQkFDZixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDM0IsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO2FBQ2Q7UUFDTCxDQUFDLENBQUE7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzVELENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsYUFBYSxFQUFDLFVBQUMsTUFBTTtRQUNqQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ2YsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBLFNBQVM7UUFDOUMsSUFBSSxTQUFTLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUEsZUFBZTtRQUN0RCxJQUFJLEdBQUcsR0FBRyxRQUFRLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFPO1FBQy9DLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDakIsSUFBRyxHQUFHLEdBQUcsRUFBRTtZQUFFLENBQUMsR0FBRyxHQUFHLEdBQUMsR0FBRyxDQUFDO1FBQ3pCLElBQUksUUFBUSxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUEsYUFBYTtRQUM5RCxJQUFJLElBQUksR0FBRyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUcsUUFBUSxHQUFHLEVBQUU7WUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQztRQUN4QyxPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsZUFBZSxFQUFDLFVBQUMsTUFBTTtRQUNuQixNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sR0FBQyxJQUFJLEdBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNmLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLElBQUcsS0FBSyxHQUFHLEVBQUUsRUFBQztZQUNWLEdBQUcsR0FBRyxRQUFRLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxPQUFPO1NBQzFDO1FBQ0QsSUFBSSxDQUFDLEdBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVuQixJQUFJLFFBQVEsR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFBLGFBQWE7UUFDN0MsSUFBSSxJQUFJLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQztRQUMzQixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUE7SUFDbkIsQ0FBQztJQUVELE1BQU07SUFDTixZQUFZLEVBQUUsVUFBVSxLQUFLOztRQUN6QixLQUFLLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdkMsSUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QyxLQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBMUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFBLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFBLENBQXlCO1NBQy9DO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUdELE9BQU87SUFDUCxRQUFRLFlBQUMsSUFBSTtRQUNULEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUM7WUFDcEMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7U0FDeEM7UUFDRCxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxTQUFTLEdBQUc7WUFDWixLQUFLLEVBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUs7WUFDcEMsU0FBUyxFQUFDLFNBQVM7U0FDdEIsQ0FBQTtRQUNELHlDQUF5QztRQUN6QyxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELElBQUksSUFBSSxHQUFHO1lBQ1AsSUFBSSxFQUFDLElBQUksQ0FBQyxVQUFVO1lBQ3BCLFFBQVEsRUFBQyxJQUFJLENBQUMsUUFBUTtZQUN0QixNQUFNLEVBQUMsU0FBUztTQUNuQixDQUFBO1FBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCx5QkFBVyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQzVDLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFDLElBQUk7WUFDN0IsNkJBQTZCO1lBQzdCLDBCQUEwQjtRQUM5QixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxRQUFRO0lBQ1IsVUFBVSxZQUFDLElBQUk7UUFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFHLElBQUksSUFBSSxTQUFTO1lBQUUsT0FBTztRQUM3QixJQUFHLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksRUFBQztZQUNqRCwyREFBMkQ7WUFDM0QsT0FBTztTQUNWO1FBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7UUFFdEMsSUFBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBQztZQUNqQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUNyQztRQUNELDhCQUE4QjtRQUM5Qix3REFBd0Q7UUFDeEQsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksUUFBUSxHQUFHO1lBQ1gsSUFBSSxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1lBQ2xDLFNBQVMsRUFBQyxTQUFTO1NBQ3RCLENBQUE7UUFDRCx5QkFBVyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQzVDLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsaUVBQWlFO1FBQ2pFLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFDLElBQUk7WUFDNUIsMEJBQTBCO1FBQzlCLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELFVBQVU7SUFDVixXQUFXLEVBQVgsVUFBWSxRQUFrQjtRQUMxQixJQUFJLE9BQU8sRUFBRSxLQUFJLFdBQVcsSUFBSSxFQUFFLEtBQUksSUFBSSxFQUFFO1lBQ3JDLFlBQVk7WUFDZixFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztnQkFDdEIsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRTtvQkFDRixNQUFNLEVBQUUsTUFBTTtpQkFDakI7Z0JBQ0QsT0FBTyxFQUFFLFVBQUEsR0FBRztvQkFDUix3Q0FBd0M7b0JBQ3hDLElBQUcsUUFBUTt3QkFDUCxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRXRCLENBQUM7Z0JBQ0QsSUFBSSxFQUFFLFVBQUEsR0FBRztvQkFDRixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRXJCLENBQUM7YUFDQSxDQUFDLENBQUE7U0FDTDtJQUNMLENBQUM7SUFFRCxRQUFRO0lBQ1IsV0FBVyxZQUFDLFFBQVE7UUFDaEIsSUFBSSxPQUFPLEVBQUUsS0FBSSxXQUFXLElBQUksRUFBRSxLQUFJLElBQUksRUFBRTtZQUN4QyxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksU0FBUyxFQUFDO2dCQUNoRixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BELDREQUE0RDtnQkFDNUQsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7YUFDckM7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEQsWUFBWTtZQUNaLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO2dCQUN0QixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsSUFBSSxFQUFFO29CQUNGLE1BQU0sRUFBRSxNQUFNO29CQUNkLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSTtpQkFDNUM7Z0JBQ0QsT0FBTyxFQUFFLFVBQUEsR0FBRztvQkFDUixnQ0FBZ0M7b0JBQ2hDLElBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFDO3dCQUN0Qix5REFBeUQ7cUJBQzVEO29CQUNELElBQUcsUUFBUSxFQUFDO3dCQUNSLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDakI7Z0JBRUwsQ0FBQztnQkFDRCxJQUFJLEVBQUUsVUFBQSxHQUFHO29CQUNMLDBCQUEwQjtvQkFDMUIsSUFBRyxRQUFRLEVBQUM7d0JBQ1IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3FCQUNqQjtvQkFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtnQkFDbEMsQ0FBQzthQUNBLENBQUMsQ0FBQTtTQUNMO0lBQ0wsQ0FBQztJQUdELFNBQVM7SUFDVCxZQUFZLEVBQVosVUFBYSxRQUFrQjtRQUMzQixJQUFJLE9BQU8sRUFBRSxLQUFJLFdBQVcsSUFBSSxFQUFFLEtBQUksSUFBSSxFQUFFO1lBQ3JDLFlBQVk7WUFDZixFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztnQkFDdEIsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLElBQUksRUFBRTtvQkFDRixNQUFNLEVBQUUsTUFBTTtpQkFDakI7Z0JBQ0QsT0FBTyxFQUFFLFVBQUEsR0FBRztvQkFDUixJQUFHLFFBQVE7d0JBQ1AsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUV0QixDQUFDO2dCQUNELElBQUksRUFBRSxVQUFBLEdBQUc7b0JBQ0YsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUVyQixDQUFDO2FBQ0EsQ0FBQyxDQUFBO1NBQ0w7SUFDTCxDQUFDO0lBRUQsYUFBYTtJQUNiLFNBQVMsRUFBVCxVQUFVLFFBQWtCO1FBQ3hCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2RCxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDaEMsVUFBVTtRQUNWLElBQUcsTUFBTSxJQUFJLElBQUksSUFBSSxNQUFNLElBQUksU0FBUyxJQUFJLE1BQU0sSUFBSSxFQUFFLEVBQUM7WUFDckQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMxQixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNoQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBQyxJQUFJO2dCQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0IsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUM7b0JBQ3ZCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7b0JBQy9DLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7b0JBQzFELElBQUksVUFBVSxHQUFHO3dCQUNiLFFBQVEsRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTt3QkFDcEMsV0FBVyxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztxQkFDcEMsQ0FBQTtvQkFDRCx5QkFBVyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO29CQUM1QyxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUN4RDtxQkFDSSxJQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxTQUFTLEVBQUM7b0JBQ2hFLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUM7b0JBQy9CLENBQUMsQ0FBQyxDQUFDO2lCQUNOO2dCQUNELElBQUcsUUFBUTtvQkFBRSxRQUFRLEVBQUUsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQTtTQUNMO2FBQ0c7WUFDQSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBQyxNQUFNLENBQUMsQ0FBQztZQUMvQixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDNUMsSUFBRyxRQUFRLEVBQUM7Z0JBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDdkIsUUFBUSxFQUFFLENBQUM7YUFDZDtZQUNELElBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUM7Z0JBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3hCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFDO29CQUMzQixJQUFHLFFBQVE7d0JBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQzVCLENBQUMsQ0FBQyxDQUFDO2FBQ047aUJBQ0ksSUFBRyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztnQkFDdEIsV0FBVztnQkFDWCxJQUFNLGFBQWEsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztnQkFDckMsSUFBTSxXQUFXLEdBQUcsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7Z0JBQ2pELFdBQVc7Z0JBQ1gsSUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDO2dCQUM3RixJQUFJLGVBQWUsR0FBRyxDQUFDLEVBQUU7b0JBQ3JCLE1BQU0sQ0FBQyxNQUFNLElBQUksZUFBZSxDQUFDO29CQUNqQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFDO3dCQUN4QyxJQUFHLFFBQVE7NEJBQUUsUUFBUSxFQUFFLENBQUM7b0JBQzdCLENBQUMsQ0FBQyxDQUFDO29CQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsb0NBQVMsZUFBZSxxREFBYSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBSSxDQUFDLENBQUM7aUJBQ25GO3FCQUFNO29CQUNILGlCQUFpQjtvQkFDakIsSUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsR0FBRyxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO29CQUN4RixPQUFPLENBQUMsR0FBRyxDQUFDLHdIQUF1QixhQUFhLFlBQUksQ0FBQyxDQUFDO29CQUN0RCxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQztpQkFDckQ7YUFDSjtTQUNKO0lBQ0wsQ0FBQztJQUVELFNBQVM7SUFDVCxhQUFhLEVBQWIsVUFBYyxRQUFrQjtRQUM1QixJQUFJLE9BQU8sRUFBRSxLQUFJLFdBQVcsSUFBSSxFQUFFLEtBQUksSUFBSSxFQUFFO1lBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdkIsWUFBWTtZQUNmLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO2dCQUN0QixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsSUFBSSxFQUFFO29CQUNGLE1BQU0sRUFBRSxNQUFNO2lCQUNqQjtnQkFDRCxPQUFPLEVBQUUsVUFBQSxHQUFHO29CQUNSLDZCQUE2QjtvQkFDN0IsSUFBRyxRQUFRO3dCQUNQLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdEIsQ0FBQztnQkFDRCxJQUFJLEVBQUUsVUFBQSxHQUFHO29CQUNELDZCQUE2QjtvQkFDOUIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQixDQUFDO2FBQ0EsQ0FBQyxDQUFBO1NBQ0w7SUFDTCxDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCLGFBQWEsWUFBQyxNQUFNLEVBQUMsUUFBUTtRQUN6QixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQztRQUN0QyxtQkFBbUI7UUFDbkIsSUFBSTtRQUNKLDJDQUEyQztRQUMzQyxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxVQUFVLEdBQUUsRUFBRSxDQUFBO1FBRWxCLDhCQUE4QjtRQUM5QixJQUFHLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDL0MsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNsRSxVQUFVLEdBQUc7Z0JBQ1QsUUFBUSxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNwQyxXQUFXLEVBQUMsT0FBTzthQUN0QixDQUFBO1NBQ0o7YUFDRztZQUNBLFVBQVUsR0FBRztnQkFDVCxRQUFRLEVBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3BDLFdBQVcsRUFBQyxTQUFTO2FBQ3hCLENBQUE7U0FDSjtRQUNELEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUMsVUFBVSxDQUFDLENBQUM7UUFDckQseUJBQVcsQ0FBQyxHQUFHLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUM1QyxJQUFJLE9BQU8sRUFBRSxLQUFJLFdBQVcsSUFBSSxFQUFFLEtBQUksSUFBSSxFQUFFO1lBQ3hDLFlBQVk7WUFDWixFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztnQkFDbEIsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLElBQUksRUFBRTtvQkFDRixNQUFNLEVBQUUsTUFBTTtvQkFDZCxZQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ3pDLFNBQVMsRUFBQyxTQUFTO2lCQUN0QjtnQkFDRCxPQUFPLEVBQUUsVUFBQSxHQUFHO29CQUNSLElBQUcsUUFBUSxFQUFDO3dCQUNSLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDakI7Z0JBRUwsQ0FBQztnQkFDRCxJQUFJLEVBQUUsVUFBQSxHQUFHO29CQUNMLElBQUcsUUFBUSxFQUFDO3dCQUNSLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDakI7b0JBQ0QsaUNBQWlDO2dCQUNyQyxDQUFDO2FBQ0osQ0FBQyxDQUFBO1NBQ0w7SUFDTCxDQUFDO0lBRUQsTUFBTTtJQUNOLFNBQVMsRUFBVCxVQUFVLElBQUksRUFBQyxRQUFrQjtRQUM3QixJQUFJLE9BQU8sRUFBRSxLQUFJLFdBQVcsSUFBSSxFQUFFLEtBQUksSUFBSSxFQUFFO1lBQ3hDLGlDQUFpQztZQUNqQyx5QkFBeUI7WUFDekIsUUFBUSxFQUFFLENBQUM7U0FDZDtJQUNMLENBQUM7SUFFRCxTQUFTO0lBQ1QsT0FBTyxFQUFQLFVBQVEsTUFBTSxFQUFDLFFBQWtCO1FBQzdCLElBQUksT0FBTyxFQUFFLEtBQUksV0FBVyxJQUFJLEVBQUUsS0FBSSxJQUFJLEVBQUU7WUFDeEMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUMsVUFBQyxJQUFJO1lBQ3pDLENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBTSxJQUFJLEdBQUc7Z0JBQ1QsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDakIsR0FBRyxFQUFDLENBQUM7YUFDUixDQUFBO1lBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBQyxJQUFJLENBQUMsQ0FBQztZQUNqRCxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDYixJQUFHLE1BQU0sSUFBSSxJQUFJO2dCQUFFLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQztpQkFDckMsSUFBRyxNQUFNLElBQUksSUFBSTtnQkFBRSxHQUFHLEdBQUcsZ0JBQWdCLENBQUM7aUJBQzFDLElBQUcsTUFBTSxJQUFJLElBQUk7Z0JBQUUsR0FBRyxHQUFHLGNBQWMsQ0FBQztZQUU3QyxJQUFNLE9BQU8sR0FBRztnQkFDWixPQUFPLEVBQUMsR0FBRztnQkFDWCxRQUFRLEVBQUMsQ0FBQztnQkFDVixVQUFVLEVBQUMsSUFBSTtnQkFDZixTQUFTLEVBQUMsTUFBTTthQUNuQixDQUFBO1lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsRUFBQyxPQUFPLENBQUMsQ0FBQztZQUNoRCxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hELFFBQVEsRUFBRSxDQUFDO1NBQ2Q7SUFDTCxDQUFDO0lBR0QsUUFBUTtJQUNSLFlBQVksWUFBQyxRQUFRO1FBQ2pCLElBQUksT0FBTyxFQUFFLEtBQUksV0FBVyxJQUFJLEVBQUUsS0FBSSxJQUFJLEVBQUU7WUFDeEMsMEZBQTBGO1lBQzFGLDZCQUE2QjtZQUM3QiwwQ0FBMEM7WUFDMUMsSUFBSTtZQUNKLDJEQUEyRDtZQUMzRCxZQUFZO1lBQ1osRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7Z0JBQ3RCLElBQUksRUFBRSxXQUFXO2dCQUNqQixJQUFJLEVBQUU7b0JBQ0YsTUFBTSxFQUFFLE1BQU07b0JBQ2QsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLO2lCQUM5QztnQkFDRCxPQUFPLEVBQUUsVUFBQSxHQUFHO29CQUNSLGdDQUFnQztvQkFDaEMsMERBQTBEO29CQUMxRCxJQUFHLFFBQVEsRUFBQzt3QkFDUixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ2pCO2dCQUVMLENBQUM7Z0JBQ0QsSUFBSSxFQUFFLFVBQUEsR0FBRztvQkFDTCwwQkFBMEI7b0JBQzFCLE9BQU87b0JBQ1AsSUFBRyxRQUFRLEVBQUM7d0JBQ1IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3FCQUNqQjtvQkFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtnQkFDbEMsQ0FBQzthQUNBLENBQUMsQ0FBQTtTQUNMO0lBQ0wsQ0FBQztJQUVHLFNBQVM7SUFDYixXQUFXLEVBQVgsVUFBWSxRQUFrQjtRQUMxQixJQUFJLE9BQU8sRUFBRSxLQUFJLFdBQVcsSUFBSSxFQUFFLEtBQUksSUFBSSxFQUFFO1lBQ3JDLFlBQVk7WUFDZixFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztnQkFDdEIsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRTtvQkFDRixNQUFNLEVBQUUsTUFBTTtpQkFDakI7Z0JBQ0QsT0FBTyxFQUFFLFVBQUEsR0FBRztvQkFDUix3Q0FBd0M7b0JBQ3hDLElBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUM7d0JBQ2Ysa0VBQWtFO3dCQUNsRSxrRUFBa0U7d0JBQ2xFLHFFQUFxRTtxQkFDeEU7b0JBQ0QsSUFBRyxRQUFRO3dCQUNQLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFdEIsQ0FBQztnQkFDRCxJQUFJLEVBQUUsVUFBQSxHQUFHO29CQUNGLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckIsQ0FBQzthQUNBLENBQUMsQ0FBQTtTQUNMO0lBQ0wsQ0FBQztJQUVELFFBQVE7SUFDUixXQUFXLFlBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxRQUFRO1FBQzlCLElBQUksT0FBTyxFQUFFLEtBQUksV0FBVyxJQUFJLEVBQUUsS0FBSSxJQUFJLEVBQUU7WUFDeEMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUcsTUFBTSxJQUFJLENBQUMsRUFBQztnQkFDWCxXQUFXLEdBQUc7b0JBQ1YsTUFBTSxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZO29CQUM1QyxNQUFNLEVBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVk7b0JBQzVDLFVBQVUsRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVztpQkFDbEQsQ0FBQTthQUNKO2lCQUNJLElBQUcsTUFBTSxJQUFJLElBQUksRUFBQztnQkFDbkIsV0FBVyxHQUFHLE1BQU0sQ0FBQzthQUN4QjtpQkFDSSxJQUFHLE1BQU0sSUFBSSxJQUFJLEVBQUM7Z0JBQ25CLFdBQVcsR0FBRyxNQUFNLENBQUM7YUFDeEI7aUJBQ0ksSUFBRyxNQUFNLElBQUksSUFBSSxFQUFDO2dCQUNuQixXQUFXLEdBQUcsTUFBTSxDQUFDO2FBQ3hCO1lBRUQsWUFBWTtZQUNaLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO2dCQUN0QixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsSUFBSSxFQUFFO29CQUNGLE1BQU0sRUFBRSxNQUFNO29CQUNkLFFBQVEsRUFBRSxNQUFNO29CQUNoQixRQUFRLEVBQUUsV0FBVztpQkFDeEI7Z0JBQ0QsT0FBTyxFQUFFLFVBQUEsR0FBRztvQkFDUixnQ0FBZ0M7b0JBQ2hDLElBQUcsUUFBUSxFQUFDO3dCQUNSLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDakI7b0JBQ0QsMEJBQTBCO2dCQUM5QixDQUFDO2dCQUNELElBQUksRUFBRSxVQUFBLEdBQUc7b0JBQ0wsMEJBQTBCO29CQUMxQixJQUFHLFFBQVEsRUFBQzt3QkFDUixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ2pCO29CQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFBO2dCQUNsQyxDQUFDO2FBQ0EsQ0FBQyxDQUFBO1NBQ0w7SUFDTCxDQUFDO0lBRUQsYUFBYTtJQUNiLFlBQVksRUFBWixVQUFhLGFBQXFCLEVBQUUsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsUUFBUTtJQUc5RSxDQUFDO0lBRUQsU0FBUztJQUNULFdBQVcsRUFBWCxVQUFZLFFBQWtCO1FBQzFCLFlBQVk7UUFDWCxJQUFJLE9BQU8sRUFBRSxLQUFJLFdBQVcsSUFBSSxFQUFFLEtBQUksSUFBSSxFQUFFO1lBQ3JDLElBQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7WUFDbkQsSUFBSSxRQUFRLEdBQUc7Z0JBQ1gsZUFBZTtnQkFDZixRQUFRLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVE7Z0JBQzNDLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVTtnQkFDL0MsYUFBYSxFQUFFLElBQUk7YUFDdEIsQ0FBQTtZQUVGLFlBQVk7WUFDWCxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztnQkFDdEIsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRTtvQkFDRixNQUFNLEVBQUUsTUFBTTtvQkFDZCxRQUFRLEVBQUUsUUFBUTtpQkFDckI7Z0JBQ0QsT0FBTyxFQUFFLFVBQUEsR0FBRztvQkFDUiwwQkFBMEI7b0JBQzFCLElBQUcsUUFBUSxFQUFDO3dCQUNSLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDakI7Z0JBRUwsQ0FBQztnQkFDRCxJQUFJLEVBQUUsVUFBQSxHQUFHO29CQUNMLElBQUcsUUFBUSxFQUFDO3dCQUNULFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDbkI7Z0JBQ0wsQ0FBQzthQUNBLENBQUMsQ0FBQTtTQUNSO0lBQ04sQ0FBQztJQUVBLFVBQVUsRUFBVixVQUFXLElBQVU7UUFDbEIsSUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLElBQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzRCxJQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNwRCxJQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2RCxJQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzRCxJQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzRCxJQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVyRSxPQUFVLElBQUksU0FBSSxLQUFLLFNBQUksR0FBRyxTQUFJLEtBQUssU0FBSSxPQUFPLFNBQUksT0FBTyxTQUFJLFlBQWMsQ0FBQztJQUNwRixDQUFDO0lBRUQsT0FBTztJQUNQLE9BQU87UUFDSCxJQUFNLFNBQVMsR0FBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUN6QyxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsVUFBVSxFQUFDO0lBRVgsQ0FBQztJQUNELGVBQWUsRUFBQztJQUVoQixDQUFDO0lBRUQsWUFBWSxFQUFFLFVBQVMsSUFBSSxFQUFDLElBQUk7UUFDNUIsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFBO1FBQ2xCLFFBQU8sSUFBSSxFQUFDO1lBQ1IsS0FBSyxVQUFVO2dCQUNYLE1BQU07WUFDVixLQUFLLGFBQWE7Z0JBQ2QsU0FBUyxHQUFHO29CQUNSLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2lCQUNqRCxDQUFBO2dCQUNELE1BQU07WUFDVixLQUFLLGNBQWM7Z0JBQ2YsU0FBUyxHQUFHO29CQUNSLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO29CQUM5QyxjQUFjLEVBQUUsSUFBSSxDQUFDLElBQUk7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUTtvQkFDekIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2lCQUN0QixDQUFBO2dCQUNELE1BQU07WUFDVixLQUFLLGNBQWM7Z0JBQ2YsU0FBUyxHQUFHO29CQUNSLGFBQWEsRUFBQyxNQUFNO29CQUNwQixVQUFVLEVBQUMsSUFBSSxDQUFDLEdBQUc7b0JBQ25CLFdBQVcsRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFRLE1BQU07aUJBQ3BDLENBQUE7Z0JBQ0QsTUFBTTtZQUNWLEtBQUssZUFBZTtnQkFDaEIsU0FBUyxHQUFHO29CQUNSLGFBQWEsRUFBQyxNQUFNO29CQUNwQixVQUFVLEVBQUMsSUFBSSxDQUFDLEdBQUc7b0JBQ25CLFdBQVcsRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFRLE1BQU07aUJBQ3BDLENBQUE7Z0JBQ0QsTUFBTTtZQUNWLEtBQUssVUFBVTtnQkFDWCxTQUFTLEdBQUc7b0JBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUNyQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7b0JBQ3ZCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtvQkFDM0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2lCQUM1QixDQUFBO2dCQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM3QixNQUFNO1NBQ2I7UUFDRCxnREFBZ0Q7UUFDaEQseUJBQVcsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsb0JBQW9CLEVBQUU7UUFDbEIsWUFBWTtRQUNaLElBQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzVDLElBQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUM7UUFDNUMsUUFBUSxXQUFXLENBQUMsVUFBVSxFQUFFO1lBQzVCLEtBQUssU0FBUztnQkFDVixPQUFPLEtBQUssQ0FBQztZQUNqQixLQUFLLE9BQU87Z0JBQ1IsT0FBTyxLQUFLLENBQUM7WUFDakIsS0FBSyxTQUFTO2dCQUNWLE9BQU8sS0FBSyxDQUFDO1lBQ2pCO2dCQUNJLE9BQU8sTUFBTSxDQUFDO1NBQ3JCO0lBQ0wsQ0FBQztDQUVKLENBQUM7QUFDTyw0QkFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4uLy4uL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuLy/mnIDlpKflt6XlhbfnsbsgIOWQhOenjeWFrOWFseaWueazle+8jOS7peWPiuWkhOeQhuS4iuS8oO+8jOiOt+WPluWQjuerr+aOpeWPo+aVsOaNrlxyXG52YXIgR2FtZVRvb2wgPSB7XHJcbiAgICBfc3RhcnRUaW1lOiAwLFxyXG4gICAgX2VuZFRpbWU6IDAsXHJcbiAgICBfdG90YWxUaW1lOiAwLFxyXG4gICAgXHJcbiAgICAvL+iOt+WPlnVzZXJJZFxyXG4gICAgQXV0aGVudGljYXRpb24oKXtcclxuICAgICAgICBsZXQgbmFtZSA9IFwidXNlcl9cIiArIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQ7XHJcbiAgICAgICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKG5hbWUpKTtcclxuICAgICAgICBpZihkYXRhID09IFwidW5kaWZlbmRcIiB8fCBkYXRhPT1udWxsIHx8IGRhdGEgPT0gXCJcIil7XHJcbiAgICAgICAgICAgIHZhciB1cmxOb3cgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcclxuICAgICAgICAgICAgaWYoIXRoaXMuY29udGFpbnNUcmFpbih1cmxOb3cpKXtcclxuICAgICAgICAgICAgICAgIGxldCB1cmwgPSBcImh0dHBzOi8vYXBpLnNwYXJrdXMuY24vYXBpL3VzZXIvYXV0aC9sb2dpbj9kb21haW49aHVpMzI1NzlXZFlQc2dZcSZjYWxsYmFjaz1cIitsb2NhdGlvbi5ocmVmO1xyXG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShuYW1lLGRhdGEpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkID0gcGFyc2VJbnQoZGF0YS51c2VySWQpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgY29udGFpbnNUcmFpbihzdHIpIHtcclxuICAgICAgICByZXR1cm4gL2Zyb209dHJhaW4vaS50ZXN0KHN0cik7XHJcbiAgICB9LFxyXG5cclxuICAgIC8v5Z+L54K55LiK5LygXHJcbiAgICBzZXRHYW1lRGF0YSgpe1xyXG4gICAgICAgIC8vR0FNRV9EQVRBIOWIneWni+WMliDmr4/mrKHmuIXpm7ZcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdBTUVfREFUQSA9IFtdO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR0FNRV9EQVRBLnB1c2goY2MuZnguR2FtZUNvbmZpZy5DTElDS19EQVRBKTtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX2luaXQoKTtcclxuICAgICAgICBsZXQgZGF0YSA9IGNjLmZ4LkdhbWVDb25maWcuR0FNRV9EQVRBO1xyXG4gICAgICAgIGxldCBtYXRjaElkID0gdGhpcy5nZXRNYXRjaElkKCk7XHJcbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xyXG4gICAgICAgICAgICBcImdhbWVJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQsXHJcbiAgICAgICAgICAgIFwidXNlcklkXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCxcclxuICAgICAgICAgICAgXCJzY29kZVwiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc2NvZGUsXHJcbiAgICAgICAgICAgIFwibWF0Y2hJZFwiOm1hdGNoSWQsXHJcbiAgICAgICAgICAgIFwiZGF0YVwiOiBkYXRhXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvKDmlbDmja46XCIscG9zdERhdGEpO1xyXG4gICAgICAgIC8vIGNjLmZ4Lkh0dHBVdGlsLnVwbG9hZFVzZXJMb2dEYXRhKHBvc3REYXRhLGZ1bmN0aW9uKCl7fSlcclxuICAgIH0sXHJcbiAgICAvL+S4iuS8oOaOkuihjOamnCAgdHlwZeS4ujFcclxuICAgIHNldFJhbmsoZGF0YSl7XHJcbiAgICAgICAgLy9HQU1FX0RBVEEg5Yid5aeL5YyWIOavj+asoea4hembtlxyXG4gICAgICAgIGxldCBwb3N0RGF0YSA9IHtcclxuICAgICAgICAgICAgXCJnYW1lSWRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZUlkLFxyXG4gICAgICAgICAgICBcInVzZXJJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VySWQsXHJcbiAgICAgICAgICAgIFwidHlwZVwiOjEsXHJcbiAgICAgICAgICAgIFwic2NvcmVcIjogZGF0YS5zY29yZSxcclxuICAgICAgICAgICAgXCJhY2N1cmFjeVwiOiBkYXRhLmRhdGUsXHJcbiAgICAgICAgICAgIFwic3VjY2Vzc1wiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc3VjY2Vzc1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8gY2MuZnguSHR0cFV0aWwucmFua0RhdGEoMSxmdW5jdGlvbigpe30scG9zdERhdGEpO1xyXG4gICAgfSxcclxuICAgIC8v6I635Y+W5o6S6KGM5qacIHR5cGXkuLoyXHJcbiAgICBnZXRSYW5rKGRhdGEsY2FsbGJhY2spe1xyXG4gICAgICAgIGxldCByYW5rTGVuZ3RoID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xyXG4gICAgICAgICAgICBcImdhbWVJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQsXHJcbiAgICAgICAgICAgIFwidXNlcklkXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCxcclxuICAgICAgICAgICAgXCJwYWdlXCI6MSxcclxuICAgICAgICAgICAgXCJwYWdlU2l6ZVwiOnJhbmtMZW5ndGhcclxuICAgICAgICB9OyBcclxuICAgICAgICAvL+Wbnuiwg+i/m2dldFJhbmtEYXRhXHJcbiAgICAgICAgLy8gY2MuZnguSHR0cFV0aWwucmFua0RhdGEoMixkYXRhID0+e2NhbGxiYWNrKGRhdGEpfSxwb3N0RGF0YSk7XHJcbiAgICB9LFxyXG4gICAgLy/ojrflj5ZtYXRjaElkICDnlKjkuo7kuIrkvKDmr4/mrKHngrnlh7vmlbDmja7ph4zpnaLorrDlvZVpZOaWueS+v+afpeivolxyXG4gICAgZ2V0TWF0Y2hJZCAoKXtcclxuICAgICAgICBsZXQgbWF0Y2hJZCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm1hdGNoSWRcIik7XHJcbiAgICAgICAgbGV0IHRlbXBJZCA9IG1hdGNoSWQ7XHJcbiAgICAgICAgaWYobWF0Y2hJZCA9PSBcInVuZGlmZW5kXCIgfHwgbWF0Y2hJZD09bnVsbCl7XHJcbiAgICAgICAgICAgIG1hdGNoSWQgPSAgdGhpcy5zZXRNYXRjaElkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29udGFpbnNOYW5hbmEobWF0Y2hJZCkgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICBtYXRjaElkID0gIHRoaXMuc2V0TWF0Y2hJZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBsZXQgY2hhciA9IHBhcnNlSW50KHRlbXBJZC5zdWJzdHJpbmcoMTAsdGVtcElkLmxlbmd0aCkpO1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYXIgKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICBtYXRjaElkICA9IHRlbXBJZC5zbGljZSgwLCAxMCkgKyBjaGFyICsgXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmNvbnRhaW5zTmFuYW5hKG1hdGNoSWQpKSBtYXRjaElkID0gdGhpcy5zZXRNYXRjaElkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hdGNoSWQgPSBtYXRjaElkO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoSWRcIixtYXRjaElkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYodGhpcy5jb250YWluc05hbmFuYShtYXRjaElkKSA9PSB0cnVlKXtcclxuICAgICAgICAgICAgbWF0Y2hJZCA9ICB0aGlzLnNldE1hdGNoSWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1hdGNoSWQ7XHJcbiAgICB9LFxyXG4gICAgLy/mo4DmtYttYXRjaElkIOWmguaenOaciee8k+WtmOS7peWJjeeahG5hbmFuYeaVsOaNrua4hemZpFxyXG4gICAgY29udGFpbnNOYW5hbmEoc3RyKSB7XHJcbiAgICAgICAgcmV0dXJuIC9uYS9pLnRlc3Qoc3RyKTtcclxuICAgIH0sXHJcbiAgICAvL+mHjeaWsOiuvue9rk1hdGNoSWRcclxuICAgIHNldE1hdGNoSWQgKCl7XHJcbiAgICAgICAgLy8g5a6a5LmJ5YyF5ZCr5Y+v55So5a2X56ym55qE5a2X56ym6ZuGXHJcbiAgICAgICAgY29uc3QgY2hhcmFjdGVycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OSc7XHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq5pWw57uE5Lul5L+d5a2Y6ZqP5py65a2X56ymXHJcbiAgICAgICAgY29uc3QgdXVpZEFycmF5ID0gW107XHJcbiAgICAgICAgLy8g5b6q546vMTDmrKEg55Sf5oiQMTDkvY3nmoRVVUlEXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDnlJ/miJDpmo/mnLrntKLlvJXvvIzojIPlm7TmmK/lrZfnrKbpm4bnmoTplb/luqZcclxuICAgICAgICAgICAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIC8vIOS7juWtl+espumbhuS4reiOt+WPlumaj+acuuWtl+esplxyXG4gICAgICAgICAgICBjb25zdCByYW5kb21DaGFyID0gY2hhcmFjdGVycy5jaGFyQXQocmFuZG9tSW5kZXgpO1xyXG4gICAgICAgICAgICAvLyDlsIblrZfnrKbmt7vliqDliLDmlbDnu4TkuK1cclxuICAgICAgICAgICAgdXVpZEFycmF5LnB1c2gocmFuZG9tQ2hhcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBkYXRhID0gIHV1aWRBcnJheS5qb2luKCcnKSArIDEgKyBcIlwiO1xyXG4gICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoTnVtYmVyXCIsMSk7XHJcbiAgICAgICAgY2Muc3lzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibWF0Y2hJZFwiLGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYXRjaElkID0gZGF0YTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgIH0sXHJcbiAgICAvL+aIquWPluWQjeWtl1xyXG4gICAgc3ViTmFtZShuYW1lLGxlbmd0aCl7XHJcbiAgICAgICAgaWYobmFtZS5sZW5ndGggPiBsZW5ndGgpe1xyXG4gICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoMCxsZW5ndGgpICsgXCIuLi5cIlxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmFtZTtcclxuICAgIH0sXHJcbiAgICAvL+iuvue9ruWktOWDj1xyXG4gICAgc2V0UGljKG5vZGUscGljKXtcclxuICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGxldCB1cmwgPSBwaWM7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGZldGNoKHVybClcclxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbihlcnJObyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5wbmcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIG5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIG5vZGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGVycix0ZXh0dXJlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH0sXHJcbiAgICAvL+esrOS4gOS4quWPguaVsOaKiuebruagh+W4pui/m+adpeWkhOeQhu+8jOesrOS6jOS4quWPguaVsOS4uuWQjeWtl+mVv+W6pu+8jOS4jeWQjOWcuuaZr+S4jeWQjOmcgOaxglxyXG4gICAgLy/lkI3lrZc055+t77yM5bCP5o6S6KGM77yM5ZCN5a2XNumVv++8jOWkp+aOkuihjFxyXG4gICAgZ2V0UmFua0RhdGEoZGF0YSx0YXJnZXQsbmFtZUxlbmd0aCl7XHJcbiAgICAgICAgdGFyZ2V0Lmxpc3REYXRhID0gZGF0YS5kYXRhLmxpc3Q7XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZEYXRhID0gZGF0YS5kYXRhLmluZm87XHJcbiAgICAgICAgbGV0IHJhbmtEYXRhID0gW107XHJcbiAgICAgICAgbGV0IHNlbGYgPSBmYWxzZTtcclxuICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0UGljKHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIiksdGFyZ2V0LnNlbGZEYXRhLnBpYyk7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7aTw9dGFyZ2V0Lmxpc3REYXRhLmxlbmd0aC0xO2krKyl7XHJcbiAgICAgICAgICAgIHJhbmtEYXRhLnB1c2goe3Jhbms6KGkrMSksIG5hbWU6dGFyZ2V0Lmxpc3REYXRhW2ldLm5pY2tOYW1lLCB0b3RhbDp0YXJnZXQubGlzdERhdGFbaV0uc2NvcmUsdGltZTpudWxsLCBwaWM6dGFyZ2V0Lmxpc3REYXRhW2ldLnBpY30pO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkID09IHRhcmdldC5saXN0RGF0YVtpXS51c2VySWQpe1xyXG4gICAgICAgICAgICAgICAgc2VsZiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0oaSsxKSArIFwiXCI7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGkgPT0gKHRhcmdldC5saXN0RGF0YS5sZW5ndGgtMSkgJiYgc2VsZiA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI5OStcIjsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZEYXRhLm5pY2tOYW1lID0gY2MuZnguR2FtZVRvb2wuc3ViTmFtZSh0YXJnZXQuc2VsZkRhdGEubmlja05hbWUsbmFtZUxlbmd0aCk7XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwibmFtZUxhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRhcmdldC5zZWxmRGF0YS5uaWNrTmFtZTtcclxuICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0b3RhbExhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRhcmdldC5zZWxmRGF0YS5zY29yZTtcclxuICAgICAgICBsZXQgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lU2hlbk5vbmcodGFyZ2V0LnNlbGZEYXRhLnRvdGxlVGltZXMpO1xyXG4gICAgICAgIC8vIHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcCArIFwiXCI7XHJcbiAgICAgICAgc3dpdGNoKHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpe1xyXG4gICAgICAgICAgICBjYXNlIFwiMVwiOlxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCIyXCI6XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcIjNcIjpcclxuICAgICAgICAgICAgICAgIHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIOWkp+aOkuihjFxyXG4gICAgICAgIGlmKG5hbWVMZW5ndGggPT0gNil7XHJcbiAgICAgICAgICAgIHRhcmdldC5yYW5rTGlzdC5zZXREYXRhKHJhbmtEYXRhKTtcclxuICAgICAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgIGlmKHRhcmdldC5zZWxmRGF0YS50b3RhbFN1bkNvdW50ID09IDApIHRhcmdldC5zZWxmTm9kZS5vcGFjaXR5ID0gMDtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIGdldFNlZWRSYW5kb206IGZ1bmN0aW9uIChtaW4sIG1heCkgey8v5YyF5ZCrbWluIOS4jeWMheWQq21heFxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6ZqP5py65pWwOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCk7XHJcbiAgICAgICAgbWF4ID0gbWF4IHx8IDE7XHJcbiAgICAgICAgbWluID0gbWluIHx8IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmN1cnJTZWVkID0gKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCAqIDkzMDEgKyA0OTI5NykgJSAyMzMyODA7XHJcbiAgICAgICAgbGV0IHJuZCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCAgLyAyMzMyODAuMDtcclxuICAgICAgICBsZXQgdG1wID0gbWluICsgcm5kICogKG1heCAtIG1pbik7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KHRtcCk7XHJcbiAgICB9LFxyXG4gICAgLy/ojrflj5blhbPljaHphY3nva7nmoTpgqPkuKrlhbPljaHmlbBcclxuICAgIGdldEN1c3RvbSh0eXBlKXtcclxuICAgICAgICBsZXQgY3VzdG9tID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShjYy5meC5zdG9yYWdlVHlwZS5zdG9yYWdlVHlwZUN1c3RvbSk7XHJcbiAgICAgICAgaWYoY3VzdG9tID09IFwidW5kaWZlbmRcIiB8fCBjdXN0b209PW51bGwgfHwgY3VzdG9tID09IFwiXCIpe1xyXG4gICAgICAgICAgICB0aGlzLnNldEN1c3RvbSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk9fU0VUKFwiY3VzdG9tXCIsY3VzdG9tWzBdKTtcclxuICAgICAgICAgICAgaWYoY3VzdG9tWzBdICE9IDAgfHwgdHlwZSA9PSAgdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICBjdXN0b20uc2hpZnQoKTtcclxuICAgICAgICAgICAgICAgIGlmKGN1c3RvbS5sZW5ndGggPT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRDdXN0b20oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShjYy5meC5zdG9yYWdlVHlwZS5zdG9yYWdlVHlwZUN1c3RvbSxjdXN0b20pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8v5pys5Zyw5rKh5pyJ5a2Y5YKo5Yiw6YWN572u77yM5oiW6ICF6YWN572u55So5a6M77yM6YeN5paw5Yib5bu66YWN572uXHJcbiAgICBzZXRDdXN0b20oKXtcclxuICAgICAgICBsZXQgYXJyYXlMZW5ndGggPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk8ubGVuZ3RoO1xyXG4gICAgICAgIGxldCBhcnJheUxpc3QgPSBbXTtcclxuICAgICAgICBmb3IobGV0IGk9MTsgaTxhcnJheUxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBhcnJheUxpc3QucHVzaChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYXJyYXlMaXN0LnNvcnQoKCkgPT4gTWF0aC5yYW5kb20oKSAtIDAuNSk7XHJcbiAgICAgICAgYXJyYXlMaXN0LnVuc2hpZnQoMClcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk9fU0VUKFwiY3VzdG9tXCIsYXJyYXlMaXN0WzBdKTtcclxuICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKGNjLmZ4LnN0b3JhZ2VUeXBlLnN0b3JhZ2VUeXBlQ3VzdG9tLGFycmF5TGlzdCk7XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICBnZXRTZXRTY3JlZW5SZXNvbHV0aW9uRmxhZzogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGxldCBzaXplID0gY2Mud2luU2l6ZTtcclxuICAgICAgICBsZXQgd2lkdGggPSBzaXplLndpZHRoO1xyXG4gICAgICAgIGxldCBoZWlnaHQgPSBzaXplLmhlaWdodDtcclxuICAgICAgICBpZiAoKGhlaWdodCAvIHdpZHRoKSA+ICgxNi4yIC8gOSkpIHJldHVybiBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0sXHJcbiAgICAvL+WIpOaWreWFqOmdouWxj+mAgumFjVxyXG4gICAgc2V0Rml0OiBmdW5jdGlvbiAoY2FudmFzKSB7XHJcbiAgICAgICAgbGV0IGZsYWcgPSAgY2MuZnguR2FtZVRvb2wuZ2V0U2V0U2NyZWVuUmVzb2x1dGlvbkZsYWcoKTtcclxuICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgIFx0Ly8gY29uc29sZS5sb2coXCLkuI3mmK/lhajpnaLlsY9cIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICBcdC8vIGNvbnNvbGUubG9nKFwi5piv5YWo6Z2i5bGPXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmxhZztcclxuICAgIH0sXHJcbiAgICAvL+iOt+WPlua4uOaIj+S/oeaBr1xyXG4gICAgZ2V0R2FtZUluZm86IGZ1bmN0aW9uKG5vZGUpe1xyXG4gICAgICAgIHZhciBqZyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH0sXHJcbiAgICAvL+iuvue9rua4uOaIj+S/oeaBr1xyXG4gICAgc2V0R2FtZUluZm86IGZ1bmN0aW9uKHBkKXtcclxuICAgXHJcbiAgICB9LFxyXG5cclxuICAgIC8v5omT5a2X5py65pWI5p6cXHJcbiAgICB0eXBpbmdBbmkobGFiZWwsdGV4dCxjYix0YXJnZXQpe1xyXG4gICAgICAgIHZhciBzZWxmID0gdGFyZ2V0O1xyXG4gICAgICAgIHZhciBodG1sID0gJyc7XHJcbiAgICAgICAgdmFyIGFyciA9IHRleHQuc3BsaXQoJycpO1xyXG4gICAgICAgIHZhciBsZW4gPSBhcnIubGVuZ3RoO1xyXG4gICAgICAgIHZhciBzdGVwID0gMDtcclxuICAgICAgICBzZWxmLmZ1bmMgPSAoKT0+e1xyXG4gICAgICAgICAgICBodG1sICs9IGFycltzdGVwXTtcclxuICAgICAgICAgICAgbGFiZWwuc3RyaW5nID0gaHRtbDtcclxuICAgICAgICAgICAgaWYgKCsrc3RlcCA9PSBsZW4pIHtcclxuICAgICAgICAgICAgICAgIHNlbGYudW5zY2hlZHVsZShzZWxmLmZ1bmMpO1xyXG4gICAgICAgICAgICAgICAgY2IgJiYgY2IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZWxmLnNjaGVkdWxlKHNlbGYuZnVuYywwLjEsIGNjLm1hY3JvLlJFUEVBVF9GT1JFVkVSLCAwKVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+i+k+WFpeenkizov5Tlm57pnIDopoHlsZXnpLrml7bpl7TmoLzlvI9cclxuICAgIGdldFRpbWVNYXJnaW46KHNlY29uZCkgPT4ge1xyXG4gICAgICAgIGxldCB0b3RhbCA9IDA7XHJcbiAgICAgICAgdG90YWwgPSBzZWNvbmQ7XHJcbiAgICAgICAgbGV0IGhvdXIgPSAwO1xyXG4gICAgICAgIGhvdXIgPSBwYXJzZUludCgodG90YWwgLyAzNjAwKSArIFwiXCIpOy8v6K6h566X5pW05pWw5bCP5pe25pWwXHJcbiAgICAgICAgbGV0IGFmdGVySG91ciA9IHRvdGFsIC0gaG91ciAqIDYwICogNjA7Ly/lj5blvpfnrpflh7rlsI/ml7bmlbDlkI7liankvZnnmoTnp5LmlbBcclxuICAgICAgICBsZXQgbWluID0gcGFyc2VJbnQoKGFmdGVySG91ciAvIDYwKStcIlwiKTsvL+iuoeeul+aVtOaVsOWIhlxyXG4gICAgICAgIGxldCBtID0gXCJcIiArIG1pbjsgIFxyXG4gICAgICAgIGlmKG1pbiA8IDEwKSBtID0gXCIwXCIrbWluO1xyXG4gICAgICAgIGxldCBhZnRlck1pbiA9IHRvdGFsIC0gaG91ciAqIDYwICogNjAgLSBtaW4gKiA2MDsvL+WPluW+l+eul+WHuuWIhuWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaWFvID0gYWZ0ZXJNaW4gKyBcIlwiO1xyXG4gICAgICAgIGlmKGFmdGVyTWluIDwgMTApIG1pYW8gPSBcIjBcIiArIGFmdGVyTWluO1xyXG4gICAgICAgIHJldHVybiBtICsgJzonICsgbWlhb1xyXG4gICAgfSxcclxuXHJcbiAgICAvL+i+k+WFpeenkizov5Tlm57pnIDopoHlsZXnpLrml7bpl7TmoLzlvI9cclxuICAgIGdldFRpbWVTaGVuTm9uZzooc2Vjb25kKSA9PiB7XHJcbiAgICAgICAgc2Vjb25kID0gcGFyc2VJbnQoc2Vjb25kLzEwMDArXCJcIik7XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IHNlY29uZDtcclxuICAgICAgICBsZXQgbWluID0gMDtcclxuICAgICAgICBpZih0b3RhbCA+IDYwKXtcclxuICAgICAgICAgICAgbWluID0gcGFyc2VJbnQoKHRvdGFsIC8gNjApK1wiXCIpOy8v6K6h566X5pW05pWw5YiGXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBtID0gIG1pbiArIFwiJ1wiOyAgXHJcblxyXG4gICAgICAgIGxldCBhZnRlck1pbiA9IHRvdGFsIC0gbWluICogNjA7Ly/lj5blvpfnrpflh7rliIblkI7liankvZnnmoTnp5LmlbBcclxuICAgICAgICBsZXQgbWlhbyA9IGFmdGVyTWluICsgXCInJ1wiO1xyXG4gICAgICAgIHJldHVybiBtICsgbWlhb1xyXG4gICAgfSxcclxuXHJcbiAgICAvL+aJk+S5seaVsOe7hFxyXG4gICAgc2h1ZmZsZUFycmF5OiBmdW5jdGlvbiAoYXJyYXkpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gYXJyYXkubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkge1xyXG4gICAgICAgICAgICBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGkgKyAxKSk7XHJcbiAgICAgICAgICAgIFthcnJheVtpXSwgYXJyYXlbal1dID0gW2FycmF5W2pdLCBhcnJheVtpXV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhcnJheTtcclxuICAgIH0sXHJcblxyXG5cclxuICAgIC8v5aKe5Yqg5YWz5Y2h5pWwXHJcbiAgICBhZGRMZXZlbCh0aW1lKXtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgKz0gMTtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPiAxNTYpe1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSAxNTY7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIGxldCBsZXZlbEluZm8gPSB7XHJcbiAgICAgICAgICAgIGxldmVsOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCxcclxuICAgICAgICAgICAgdGltZXN0YW1wOnRpbWVzdGFtcCxcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCI1NTU1NeWtmOWCqOWFs+WNoeaVsOaNrjpcIixsZXZlbEluZm8pO1xyXG4gICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgIHRpbWU6dGltZS5jb3VudF9UaW1lLFxyXG4gICAgICAgICAgICBhZGRfVGltZTp0aW1lLmFkZF9UaW1lLFxyXG4gICAgICAgICAgICByZXN1bHQ6XCJzdWNjZXNzXCJcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZmluaXNoX3N0YWdlXCIsZGF0YSk7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV9TZXRTdXBlclByb3BlcnRpZXMoKTtcclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyTGV2ZWwoKGRhdGEpPT57XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5a2Y5YKo57uT5p6cOlwiLGRhdGEpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4iuS8oFwiLGRhdGEpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9LFxyXG5cclxuICAgIC8v5pS55Y+Y6YeR5biB5L+h5oGvXHJcbiAgICBjaGFuZ2VDb2luKGNvaW4pe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiY2hhbmdlQ29pblwiLGNvaW4pO1xyXG4gICAgICAgIGlmKGNvaW4gPT0gdW5kZWZpbmVkKSByZXR1cm47XHJcbiAgICAgICAgaWYoY29pbiA8IDAgJiYgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAtY29pbil7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6YeR5biB5LiN6LazXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sLWNvaW4pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luICs9IGNvaW47XHJcblxyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMCl7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlLnlj5jnmoTph5HluIE6XCIsY29pbik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLoh6rouqvph5HluIHkv6Hmga86XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgbGV0IGNvaW5JbmZvID0ge1xyXG4gICAgICAgICAgICBjb2luOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLFxyXG4gICAgICAgICAgICB0aW1lc3RhbXA6dGltZXN0YW1wLFxyXG4gICAgICAgIH1cclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X1NldFN1cGVyUHJvcGVydGllcygpO1xyXG4gICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5a2Y5YKo6YeR5biB5pWw5o2uOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLGNvaW5JbmZvKTtcclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyQ29pbigoZGF0YSk9PntcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvKBcIixkYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+iOt+WPlueUqOaIt+mHkeW4geaVsOmHj1xyXG4gICAgZ2V0VXNlckNvaW4oY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlckNvaW4nLFxyXG4gICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdyZWFkJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+ivu+WPlueUqOaIt+mHkeW4geaVsOaNruaIkOWKnycsIHJlcy5yZXN1bHQpXHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjaylcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpOyBcclxuXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpOyBcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8v5pS55Y+Y55So5oi36YeR5biBXHJcbiAgICBzZXRVc2VyQ29pbihjYWxsYmFjayl7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDw9IDAgfHwgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6YeR5biB5LiK5Lyg5aSx6LSlXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgLy8gTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLljbPlsIbkuIrkvKDnmoTph5HluIHmlbDph486XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJDb2luJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAnc2F2ZScsXHJcbiAgICAgICAgICAgICAgICBjb2luQW1vdW50OiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pblxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+S6keWHveaVsOi/lOWbnue7k+aenDonLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOmHkeW4geaVsOaNruaIkOWKnycsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlcyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCflrZjlgqjph5HluIHmlbDmja7lpLHotKUnKVxyXG4gICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCflrZjlgqjnlKjmiLfmlbDmja7lpLHotKUnLCBlcnIpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICAvL+iOt+WPlueUqOaIt+WFs+WNoeaVsFxyXG4gICAgZ2V0VXNlckxldmVsKGNhbGxiYWNrOiBGdW5jdGlvbikge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJMZXZlbCcsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjaylcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpOyBcclxuXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpOyBcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8v6L+b5ri45oiP5aSE55CGIOS9k+WKm+WAvOaDheWGtVxyXG4gICAgZ2V0SGVhbHRoKGNhbGxiYWNrOiBGdW5jdGlvbil7XHJcbiAgICAgICAgbGV0IGhlYWx0aCA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJoZWFsdGhcIik7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPSA1O1xyXG4gICAgICAgIC8v5rKh5pyJ5a2Y5YKo6L+H5L2T5Yqb5YC8XHJcbiAgICAgICAgaWYoaGVhbHRoID09IG51bGwgfHwgaGVhbHRoID09IHVuZGVmaW5lZCB8fCBoZWFsdGggPT0gXCJcIil7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5a2Y5YKo6L+H5L2T5Yqb5YC877yM5Yid6L+bXCIpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPSA1O1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VySGVhbHRoKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkvZPlipvmjqXlj6Pov5Tlm57nu5PmnpxcIixkYXRhKTtcclxuICAgICAgICAgICAgICAgIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPSBkYXRhLnJlc3VsdC5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSA9IGRhdGEucmVzdWx0LnRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaGVhbHRoSW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJoZWFsdGhcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6ZGF0YS5yZXN1bHQudGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfU2V0U3VwZXJQcm9wZXJ0aWVzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImhlYWx0aFwiLGhlYWx0aEluZm8pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw5L2T5Yqb5pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoMCwoKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pyJ5a2Y5YKo6L+H5L2T5Yqb5YC8OlwiLGhlYWx0aCk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA9IGhlYWx0aC5oZWFsdGg7XHJcbiAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5L2T5Yqb5YC86K+75Y+W5a6M5q+VXCIpO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgaWYoaGVhbHRoLmhlYWx0aCA8IDApe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkvZPlipvlgLzlvILluLjvvIzlvZLpm7ZcIik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPSAwO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckhlYWx0aCgwLCgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKGhlYWx0aC5oZWFsdGggPCA1KXtcclxuICAgICAgICAgICAgICAgIC8vIDMw5YiG6ZKf55qE5q+r56eS5pWwXHJcbiAgICAgICAgICAgICAgICBjb25zdCB0aGlydHlNaW51dGVzID0gMzAgKiA2MCAqIDEwMDA7IFxyXG4gICAgICAgICAgICAgICAgY29uc3QgZWxhcHNlZFRpbWUgPSB0aW1lc3RhbXAgLSBoZWFsdGgudGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgLy8g6K6h566X5oGi5aSN55qE5L2T5Yqb5YC8XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZWNvdmVyZWRIZWFsdGggPSBNYXRoLm1pbig1IC0gaGVhbHRoLmhlYWx0aCwgTWF0aC5mbG9vcihlbGFwc2VkVGltZSAvIHRoaXJ0eU1pbnV0ZXMpKTsgXHJcbiAgICAgICAgICAgICAgICBpZiAocmVjb3ZlcmVkSGVhbHRoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWx0aC5oZWFsdGggKz0gcmVjb3ZlcmVkSGVhbHRoO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgocmVjb3ZlcmVkSGVhbHRoLCgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBpZihjYWxsYmFjaykgY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhg5L2T5Yqb5YC85oGi5aSNICR7cmVjb3ZlcmVkSGVhbHRofSDngrnvvIzlvZPliY3kvZPlipvlgLw6ICR7Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwfWApO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyDorqHnrpfot53nprvkuIvkuIDmrKHmgaLlpI3nmoTliankvZnml7bpl7RcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZW1haW5pbmdUaW1lID0gTWF0aC5jZWlsKCh0aGlydHlNaW51dGVzIC0gKGVsYXBzZWRUaW1lICUgdGhpcnR5TWludXRlcykpIC8gMTAwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYOS9k+WKm+WAvOacqua7oe+8jOW+heaBouWkje+8jOi3neemu+S4i+S4gOasoeaBouWkjei/mOWJqSAke3JlbWFpbmluZ1RpbWV9IOenkmApO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSA9IHJlbWFpbmluZ1RpbWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8v6I635Y+W55So5oi35L2T5Yqb5YC8XHJcbiAgICBnZXRVc2VySGVhbHRoKGNhbGxiYWNrOiBGdW5jdGlvbikge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWNs+Wwhui/m+WFpeS9k+WKm+iOt+WPluaOpeWPo1wiKTtcclxuICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgIG5hbWU6ICd1c2VySGVhbHRoJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAncmVhZCdcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5L2T5Yqb6I635Y+W5oiQ5YqfXCIscmVzKTtcclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKVxyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlcyk7IFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5L2T5Yqb6I635Y+W5aSx6LSlXCIsZXJyKTtcclxuICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+iuvue9rueUqOaIt+S9k+WKm+WAvCAg5pyJ5Y+v6IO95Yqg77yM5pyJ5Y+v6IO95a6a5pe25Zmo5YePXHJcbiAgICBzZXRVc2VySGVhbHRoKGhlYWx0aCxjYWxsYmFjayl7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwICs9IGhlYWx0aDtcclxuICAgICAgICAvLyBpZihoZWFsdGggPCAwKSB7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIC8vIGVsc2UgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOaBouWkjVwiKTtcclxuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIGxldCBoZWFsdGhJbmZvID17fVxyXG4gXHJcbiAgICAgICAgLy/lpoLmnpzmtojogJfkuYvliY3kuI3mmK/mu6HkvZPlipvvvIzor7TmmI7lt7Lnu4/lnKjmgaLlpI3mnJ/vvIzlubbkuI3nlKjkv67mlLnml7bpl7RcclxuICAgICAgICBpZihoZWFsdGggPCAwICYmIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCAhPSA0KSB7XHJcbiAgICAgICAgICAgIGxldCBvbGRUaW1lID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcImhlYWx0aFwiKS50aW1lc3RhbXA7XHJcbiAgICAgICAgICAgIGhlYWx0aEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICBcImhlYWx0aFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCxcclxuICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6b2xkVGltZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGhlYWx0aEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICBcImhlYWx0aFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCxcclxuICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImhlYWx0aFwiLGhlYWx0aEluZm8pO1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfU2V0U3VwZXJQcm9wZXJ0aWVzKCk7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ3VzZXJIZWFsdGgnLFxyXG4gICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3NhdmUnLFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWx0aEFtb3VudDogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDp0aW1lc3RhbXBcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socmVzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ+WtmOWCqOWFs+WNoeaVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8v6LSt5Lmw6KGM5Li6XHJcbiAgICBidXlSZXZpZXcoY29pbixjYWxsYmFjazogRnVuY3Rpb24pe1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWunumZheWNs+Wwhua2iOiAl+mHkeW4gTpcIixjb2luKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5jaGFuZ2VDb2luKGNvaW4pO1xyXG4gICAgICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy/mm7TmlLnnlKjmiLfpgZPlhbfmlbBcclxuICAgIGJ1eVByb3AocHJvcGlkLGNhbGxiYWNrOiBGdW5jdGlvbikge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5jaGFuZ2VDb2luKC0xNTAwKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AocHJvcGlkLDMsKGRhdGEpPT57XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICBpZDogKHByb3BpZCArIFwiXCIpLFxyXG4gICAgICAgICAgICAgICAgbnVtOjNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9nZXRcIixkYXRhKTtcclxuICAgICAgICAgICAgbGV0IF9pZCA9IFwiXCI7XHJcbiAgICAgICAgICAgIGlmKHByb3BpZCA9PSAyMDAxKSBfaWQgPSBcImZyZWV6ZV9pbl9nYW1lXCI7XHJcbiAgICAgICAgICAgIGVsc2UgaWYocHJvcGlkID09IDIwMDIpIF9pZCA9IFwiaGFtbWVyX2luX2dhbWVcIjtcclxuICAgICAgICAgICAgZWxzZSBpZihwcm9waWQgPT0gMjAwMykgX2lkID0gXCJ3YW5kX2luX2dhbWVcIjtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGNvbnN0IGJ1eURhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtX2lkOl9pZCxcclxuICAgICAgICAgICAgICAgIGl0ZW1fbnVtOjEsXHJcbiAgICAgICAgICAgICAgICBpdGVtX3ByaWNlOjE1MDAsXHJcbiAgICAgICAgICAgICAgICBjb3N0X3R5cGU6XCJnb2xkXCJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIl9fX19fX19fX19fX+WNs+WwhuS4iuS8oFNob3BfYnV5XCIsYnV5RGF0YSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcInNob3BfYnV5XCIsYnV5RGF0YSk7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcblxyXG4gICAgLy/mlLnlj5jnlKjmiLflhbPljaFcclxuICAgIHNldFVzZXJMZXZlbChjYWxsYmFjayl7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3eCE9PSAndW5kZWZpbmVkJyAmJiB3eCE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIC8vIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA8PSAwIHx8IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICAvLyAgICAgY29uc29sZS5sb2coXCLnrYnnuqfph43nva7kuLowXCIpO1xyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gMDtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWNs+WwhuS4iuS8oOeahOWFs+WNoeaVsDpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwpO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJMZXZlbCcsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ3NhdmUnLFxyXG4gICAgICAgICAgICAgICAgbGV2ZWxBbW91bnQ6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+S6keWHveaVsOi/lOWbnue7k+aenDonLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOWFs+WNoeaVsOaNruaIkOWKnycsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsKTtcclxuICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgIFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOWFs+WNoeaVsOaNruWksei0pScpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WtmOWCqOWFs+WNoeaVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgICAgIC8v6I635Y+W55So5oi35YWz5Y2h5pWwXHJcbiAgICBnZXRVc2VyUHJvcChjYWxsYmFjazogRnVuY3Rpb24pIHtcclxuICAgICAgICBpZiAodHlwZW9mIHd4IT09ICd1bmRlZmluZWQnICYmIHd4IT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgIG5hbWU6ICd1c2VyUHJvcCcsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn6K+75Y+W55So5oi36YGT5YW35pWw5o2u5oiQ5YqfJywgcmVzLnJlc3VsdClcclxuICAgICAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQuZGF0YSl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5mcmVlemU7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjaylcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXMpOyBcclxuXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy/mlLnlj5jnlKjmiLfpgZPlhbdcclxuICAgIHNldFVzZXJQcm9wKHByb3BpZCxhbW91bnQsY2FsbGJhY2spe1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBsZXQgbmV3UHJvcERhdGEgPSBudWxsO1xyXG4gICAgICAgICAgICBpZihwcm9waWQgPT0gMCl7XHJcbiAgICAgICAgICAgICAgICBuZXdQcm9wRGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBmcmVlemU6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICBoYW1tZXI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICBtYWdpY193YW5kOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKHByb3BpZCA9PSAyMDAxKXtcclxuICAgICAgICAgICAgICAgIG5ld1Byb3BEYXRhID0gYW1vdW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYocHJvcGlkID09IDIwMDIpe1xyXG4gICAgICAgICAgICAgICAgbmV3UHJvcERhdGEgPSBhbW91bnQ7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYocHJvcGlkID09IDIwMDMpe1xyXG4gICAgICAgICAgICAgICAgbmV3UHJvcERhdGEgPSBhbW91bnQ7IFxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3guY2xvdWQuY2FsbEZ1bmN0aW9uKHtcclxuICAgICAgICAgICAgbmFtZTogJ3VzZXJQcm9wJyxcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAnc2F2ZScsXHJcbiAgICAgICAgICAgICAgICBwcm9wVHlwZTogcHJvcGlkLFxyXG4gICAgICAgICAgICAgICAgcHJvcERhdGE6IG5ld1Byb3BEYXRhXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5LqR5Ye95pWw6L+U5Zue57uT5p6cOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socmVzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCflrZjlgqjpgZPlhbfmlbDmja7miJDlip8nKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+WtmOWCqOmBk+WFt+aVsOaNruWksei0pScpXHJcbiAgICAgICAgICAgICAgICBpZihjYWxsYmFjayl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WtmOWCqOmBk+WFt+aVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLy8g5qOA5p+l5piv5ZCm5pyJ6Laz5aSf55qE56Gs5biBXHJcbiAgICBjb25zdW1lQ29pbnMocmVxdWlyZWRDb2luczogbnVtYmVyLCBwcm9wTmFtZTogc3RyaW5nLCBhbW91bnQ6IG51bWJlciwgY2FsbGJhY2spIHtcclxuICBcclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8vIOiuvue9rueUqOaIt+S/oeaBr1xyXG4gICAgc2V0VXNlckluZm8oY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgIGlmICh0eXBlb2Ygd3ghPT0gJ3VuZGVmaW5lZCcgJiYgd3ghPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGltZSA9IGNjLmZ4LkdhbWVUb29sLmZvcm1hdERhdGUobmV3IERhdGUoKSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgdXNlckluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g6L+Z6YeM5aGr5YaZ6KaB5a2Y5YKo55qE55So5oi35pWw5o2uXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlcm5hbWU6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VybmFtZSwgICAvL+eUqOaIt+WQjeensFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZXJhdmF0YXI6IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VyYXZhdGFyLCAgICAgLy/nlKjmiLflpLTlg49cclxuICAgICAgICAgICAgICAgICAgICByZWdpc3Rlcl90aW1lOiB0aW1lXHJcbiAgICAgICAgICAgICAgICB9XHJcbiBcclxuICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ3VzZXJEYXRhJyxcclxuICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdzYXZlJyxcclxuICAgICAgICAgICAgICAgICAgICB1c2VyRGF0YTogdXNlckluZm9cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCflrZjlgqjnlKjmiLfmlbDmja7miJDlip8nKVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNhbGxiYWNrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socmVzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKFwiZmFpbFwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICB9IFxyXG4gICAgfSxcclxuXHJcbiAgICAgZm9ybWF0RGF0ZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICAgIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgICAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgICAgIGNvbnN0IGhvdXJzID0gU3RyaW5nKGRhdGUuZ2V0SG91cnMoKSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgICAgICBjb25zdCBtaW51dGVzID0gU3RyaW5nKGRhdGUuZ2V0TWludXRlcygpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgICAgIGNvbnN0IHNlY29uZHMgPSBTdHJpbmcoZGF0ZS5nZXRTZWNvbmRzKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgICAgY29uc3QgbWlsbGlzZWNvbmRzID0gU3RyaW5nKGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCkpLnBhZFN0YXJ0KDMsICcwJyk7XHJcblxyXG4gICAgICAgIHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX0gJHtob3Vyc306JHttaW51dGVzfToke3NlY29uZHN9LiR7bWlsbGlzZWNvbmRzfWA7XHJcbiAgICB9LFxyXG4gICAgXHJcbiAgICAvL+iOt+WPluaXtumXtOaIs1xyXG4gICAgZ2V0VGltZSgpe1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9ICAobmV3IERhdGUoKS5nZXRUaW1lKCkpXHJcbiAgICAgICAgcmV0dXJuIHRpbWVzdGFtcDtcclxuICAgIH0sXHJcbiAgICBwdXNoTGlzdGVyOmZ1bmN0aW9uICgpIHtcclxuICAgICAgICBcclxuICAgIH0sXHJcbiAgICByZW1vdmVBbGxMaXN0ZXI6ZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIFxyXG4gICAgfSxcclxuXHJcbiAgICBzaHVzaHVfVHJhY2s6IGZ1bmN0aW9uKG5hbWUsZGF0YSl7XHJcbiAgICAgICAgbGV0IGV2ZW50RGF0YSA9IHt9XHJcbiAgICAgICAgc3dpdGNoKG5hbWUpe1xyXG4gICAgICAgICAgICBjYXNlIFwicmVnaXN0ZXJcIjpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZW50ZXJfc3RhZ2VcIjpcclxuICAgICAgICAgICAgICAgIGV2ZW50RGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBzdGFnZV9pZDogKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCArIDEpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImZpbmlzaF9zdGFnZVwiOlxyXG4gICAgICAgICAgICAgICAgZXZlbnREYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YWdlX2lkOiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhZ2VfZHVyYXRpb246IGRhdGEudGltZSxcclxuICAgICAgICAgICAgICAgICAgICBhZGRlZF90aW1lOiBkYXRhLmFkZF9UaW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdDogZGF0YS5yZXN1bHRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwicmVzb3VyY2VfZ2V0XCI6XHJcbiAgICAgICAgICAgICAgICBldmVudERhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlX3JlYXNvbjpcIui0reS5sOmBk+WFt1wiLCAgIC8v6I635b6X5p2l5rqQXHJcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlX251bTpkYXRhLm51bSwgICAgICAgLy/ojrflvpfmlbDph49cclxuICAgICAgICAgICAgICAgICAgICByZXNvdXJjZV9pZDpkYXRhLmlkICAgICAgICAvL+mBk+WFt2lkXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInJlc291cmNlX2Nvc3RcIjpcclxuICAgICAgICAgICAgICAgIGV2ZW50RGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VfcmVhc29uOlwi5L2/55So6YGT5YW3XCIsICAgLy/ojrflvpfmnaXmupBcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VfbnVtOmRhdGEubnVtLCAgICAgICAvL+iOt+W+l+aVsOmHj1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlX2lkOmRhdGEuaWQgICAgICAgIC8v6YGT5YW3aWRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrOyBcclxuICAgICAgICAgICAgY2FzZSBcInNob3BfYnV5XCI6XHJcbiAgICAgICAgICAgICAgICBldmVudERhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbV9pZDogZGF0YS5pdGVtX2lkLFxyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1fbnVtOiBkYXRhLml0ZW1fbnVtLFxyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1fcHJpY2U6IGRhdGEuaXRlbV9wcmljZSxcclxuICAgICAgICAgICAgICAgICAgICBjb3N0X3R5cGU6IGRhdGEuY29zdF90eXBlLCAgIFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmlbDmja46XCIsZXZlbnREYXRhKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X1RyYWNrKG5hbWUsZXZlbnREYXRhKTtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X1RyYWNrKG5hbWUsIGV2ZW50RGF0YSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGdldFdlY2hhdEdhbWVWZXJzaW9uOiBmdW5jdGlvbigpe1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIGNvbnN0IGFjY291bnRJbmZvID0gd3guZ2V0QWNjb3VudEluZm9TeW5jKCk7XHJcbiAgICAgICAgY29uc3QgbWluaVByb2dyYW0gPSBhY2NvdW50SW5mby5taW5pUHJvZ3JhbTtcclxuICAgICAgICBzd2l0Y2ggKG1pbmlQcm9ncmFtLmVudlZlcnNpb24pIHtcclxuICAgICAgICAgICAgY2FzZSAnZGV2ZWxvcCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+W8gOWPkeeJiCc7XHJcbiAgICAgICAgICAgIGNhc2UgJ3RyaWFsJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAn5L2T6aqM54mIJztcclxuICAgICAgICAgICAgY2FzZSAncmVsZWFzZSc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+ato+W8j+eJiCc7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+acquefpeeJiOacrCc7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbn07XHJcbmV4cG9ydCB7IEdhbWVUb29sIH07Il19 +//------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/RankManager.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, '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/GameOver.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, '805c6nf399HWZeuWnNB9CTH', 'GameOver'); +// Script/GameOver.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.count = null; + _this.time = null; + _this.selfNode = null; + _this.one = null; + _this.two = null; + _this.three = null; + _this.four = null; + _this.five = null; + return _this; + } + // onLoad () {} + NewClass.prototype.start = function () { + this.count.string = cc.fx.GameConfig.GM_INFO.score + ""; + var yes = 0; + var successList = cc.fx.GameConfig.GM_INFO.successList; + if (successList.length > 0) { + var success = 0; + for (var i = 0; i < successList.length; i++) { + if (successList[i] == true) + success += 1; + } + yes = success / successList.length; + } + yes = Math.floor(yes * 1000) / 10; + this.time.string = yes + "%"; + this.init(); + }; + //初始化数据 + NewClass.prototype.init = function () { + this.listData = []; + this.selfData = null; + this.one.active = false; + this.two.active = false; + this.three.active = false; + this.four.active = false; + this.five.active = false; + var urlNow = window.location.href; + if (this.containsTrain(urlNow)) { + this.node.getChildByName("again").active = false; + this.node.getChildByName("back").active = false; + this.node.getChildByName("finishi").active = true; + this.setLocalStorage(); + } + else { + this.setLocalStorage(); + this.node.getChildByName("again").active = true; + this.node.getChildByName("back").active = true; + this.node.getChildByName("finishi").active = false; + } + this.getRank(); + }; + NewClass.prototype.setLocalStorage = function () { + var timeData = cc.fx.GameConfig.TIME_INFO.totalTime; + var today = new Date().toLocaleDateString(); + var name = "success_" + today + "_" + cc.fx.GameConfig.GM_INFO.scode + "_" + cc.fx.GameConfig.GM_INFO.gameId; + localStorage.setItem(name, JSON.stringify({ success: true })); + }; + //打开排行榜 + NewClass.prototype.openRank = function () { + cc.director.loadScene("RankScene"); + }; + //重新开始玩 + NewClass.prototype.again = function () { + cc.fx.GameConfig.GM_INFO.round = 0; + cc.fx.GameConfig.GM_INFO.level = 0; + cc.fx.GameConfig.GM_INFO.stepTimeList = 0; + cc.fx.GameConfig.GM_INFO.successList = []; + cc.fx.GameConfig.GM_INFO.fen = 0; + cc.fx.GameConfig.GM_INFO.score = 0; + cc.fx.GameConfig.GM_INFO.min_Steps = 0; + cc.fx.GameConfig.GM_INFO.min_Time = 0; + cc.fx.GameConfig.TIME_INFO.totalTime = 120; + cc.director.loadScene("GameScene"); + }; + //判断来源 + NewClass.prototype.containsTrain = function (str) { + return /from=train/i.test(str); + }; + //获取排行榜 + NewClass.prototype.getRank = function () { + var _this = this; + //获取排行榜数据 所需数据量 + var dataFile = { + length: 5 + }; + cc.fx.GameTool.getRank(dataFile, function (data) { return _this.getRankData(data); }); + }; + //打开排行榜 + NewClass.prototype.jumpFinishi = function () { + var url = "https://train.sparkus.cn/poster/game/" + cc.fx.GameConfig.GM_INFO.scode + "?suc=1"; + window.location.href = url; + }; + //设置排行信息 + NewClass.prototype.getRankData = function (data) { + if (data) { + cc.fx.GameTool.getRankData(data, this, 4); + cc.fx.GameTool.setPic(this.selfNode.getChildByName("pic").getChildByName("icon"), this.selfData.pic); + var length = this.listData.length - 1; + if (length > 4) + length = 4; + for (var i = 0; i <= length; i++) { + this.setRank(i, this.listData[i]); + } + } + }; + //根据内容填充排行榜 + NewClass.prototype.setRank = function (num, data) { + var _this = this; + if (!data) { + return; + } + var hitNode = null; + if (num == 0) { + hitNode = this.one; + } + else if (num == 1) { + hitNode = this.two; + } + else if (num == 2) { + hitNode = this.three; + } + else if (num == 3) { + hitNode = this.four; + } + else if (num == 4) { + hitNode = this.five; + } + var trun = num + 1; + for (var i = 0; i < trun; i++) { + if (this.listData[i] && this.listData[i].nickName == cc.fx.GameConfig.GM_INFO.nickName) { + trun = i + 1; + break; + } + else if (!this.listData[i] == null) { + trun = i * 2; + break; + } + this.node.color = cc.color(this.listData[0], this.listData[1], this.listData[2]); + cc.tween(this.node) + .to(0.5, { scale: 2 }) + .by(1, { opacity: 0 }) + .delay(0.5) + .call(function () { + _this.node.scale = 1; + _this.node.opacity = 255; + _this.node.color = cc.color(255, 255, 255); + }) + .start(); + } + hitNode.getChildByName("num").getComponent(cc.Label).string = num + ""; + cc.tween(hitNode.getChildByName("num").getComponent(cc.Label)) + .to(0.5, { string: trun + "" }) + .start(); + var record = cc.fx.GameConfi.GM_INFO.score; + if (data.score >= record) { + this.selfData = data; + this.selfNode.active = true; + } + if (hitNode) { + hitNode.active = true; + if (data.nickName.length >= 4) + data.nickName = cc.fx.GameTool.subName(data.nickName, 4); + hitNode.getChildByName("name").getComponent(cc.Label).string = data.nickName; + hitNode.getChildByName("total").getComponent(cc.Label).string = data.score; + cc.fx.GameTool.setPic(hitNode.getChildByName("pic").getChildByName("icon"), data.pic); + } + }; + __decorate([ + property(cc.Label) + ], NewClass.prototype, "count", void 0); + __decorate([ + property(cc.Label) + ], NewClass.prototype, "time", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "selfNode", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "one", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "two", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "three", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "four", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "five", 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lT3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDTSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXFMQztRQW5MRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBRXZCLFVBQUksR0FBYSxJQUFJLENBQUM7UUFFdEIsY0FBUSxHQUFZLElBQUksQ0FBQztRQUV6QixTQUFHLEdBQVksSUFBSSxDQUFDO1FBRXBCLFNBQUcsR0FBWSxJQUFJLENBQUM7UUFFcEIsV0FBSyxHQUFZLElBQUksQ0FBQztRQUV0QixVQUFJLEdBQVksSUFBSSxDQUFDO1FBRXJCLFVBQUksR0FBWSxJQUFJLENBQUM7O0lBcUt6QixDQUFDO0lBbEtHLGVBQWU7SUFDZix3QkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDeEQsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1osSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN2RCxJQUFHLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDO1lBQ3RCLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztZQUNoQixLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztnQkFDbkMsSUFBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSTtvQkFBRSxPQUFPLElBQUksQ0FBQyxDQUFDO2FBQzNDO1lBQ0QsR0FBRyxH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QUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFoQkosUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQXFMNUI7SUFBRCxlQUFDO0NBckxELEFBcUxDLENBckxxQyxFQUFFLENBQUMsU0FBUyxHQXFMakQ7a0JBckxvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgY291bnQ6IGNjLkxhYmVsID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIHRpbWU6IGNjLkxhYmVsID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgc2VsZk5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBvbmU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICB0d286IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICB0aHJlZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZvdXI6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmaXZlOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIGxpc3REYXRhOiBhbnk7XHJcbiAgICBzZWxmRGF0YTogYW55O1xyXG4gICAgLy8gb25Mb2FkICgpIHt9XHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgdGhpcy5jb3VudC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc2NvcmUgKyBcIlwiO1xyXG4gICAgICAgIHZhciB5ZXMgPSAwO1xyXG4gICAgICAgIHZhciBzdWNjZXNzTGlzdCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5zdWNjZXNzTGlzdDtcclxuICAgICAgICBpZihzdWNjZXNzTGlzdC5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSAwO1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTxzdWNjZXNzTGlzdC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBpZihzdWNjZXNzTGlzdFtpXSA9PSB0cnVlKSBzdWNjZXNzICs9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgeWVzID0gc3VjY2Vzcy9zdWNjZXNzTGlzdC5sZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHllcyA9IE1hdGguZmxvb3IoeWVzICogMTAwMCkvMTA7XHJcbiAgICAgICAgdGhpcy50aW1lLnN0cmluZyA9ICAgeWVzICsgXCIlXCI7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgICBcclxuICAgIH0gICBcclxuICAgIC8v5Yid5aeL5YyW5pWw5o2uXHJcbiAgICBpbml0KCl7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YSA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZkRhdGEgPSBudWxsO1xyXG4gICAgICAgIHRoaXMub25lLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudHdvLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGhyZWUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5mb3VyLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZml2ZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB2YXIgdXJsTm93ID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XHJcbiAgICAgICAgaWYodGhpcy5jb250YWluc1RyYWluKHVybE5vdykpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJhZ2FpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiYmFja1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiZmluaXNoaVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNldExvY2FsU3RvcmFnZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLnNldExvY2FsU3RvcmFnZSgpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJhZ2FpblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJiYWNrXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImZpbmlzaGlcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmdldFJhbmsoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRMb2NhbFN0b3JhZ2UoKXtcclxuICAgICAgICBsZXQgdGltZURhdGEgPSBjYy5meC5HYW1lQ29uZmlnLlRJTUVfSU5GTy50b3RhbFRpbWU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xyXG4gICAgICAgIHZhciBuYW1lID0gYHN1Y2Nlc3NfJHt0b2RheX1fJHtjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc2NvZGV9XyR7Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmdhbWVJZH1gXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0obmFtZSwgSlNPTi5zdHJpbmdpZnkoe3N1Y2Nlc3M6dHJ1ZX0pKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+aJk+W8gOaOkuihjOamnFxyXG4gICAgb3BlblJhbmsoKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJSYW5rU2NlbmVcIik7XHJcbiAgICB9XHJcbiAgICAvL+mHjeaWsOW8gOWni+eOqVxyXG4gICAgYWdhaW4oKXtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucm91bmQgPSAwO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnN0ZXBUaW1lTGlzdCA9IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnN1Y2Nlc3NMaXN0ID0gW107XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZlbiA9IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnNjb3JlID0gMDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWluX1N0ZXBzID0gMDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWluX1RpbWUgPSAwO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuVElNRV9JTkZPLnRvdGFsVGltZSA9IDEyMDtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICB9XHJcbiAgICAvL+WIpOaWreadpea6kFxyXG4gICAgY29udGFpbnNUcmFpbihzdHIpIHtcclxuICAgICAgICByZXR1cm4gL2Zyb209dHJhaW4vaS50ZXN0KHN0cik7XHJcbiAgICB9XHJcbiAgICAvL+iOt+WPluaOkuihjOamnFxyXG4gICAgZ2V0UmFuaygpe1xyXG4gICAgICAgIC8v6I635Y+W5o6S6KGM5qac5pWw5o2uICDmiYDpnIDmlbDmja7ph49cclxuICAgICAgICBsZXQgZGF0YUZpbGUgPSB7XHJcbiAgICAgICAgICAgIGxlbmd0aDo1XHJcbiAgICAgICAgfVxyXG4gICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRSYW5rKGRhdGFGaWxlLGRhdGEgPT50aGlzLmdldFJhbmtEYXRhKGRhdGEpKTtcclxuICAgIH1cclxuICAgIC8v5omT5byA5o6S6KGM5qacXHJcbiAgICBqdW1wRmluaXNoaSgpe1xyXG4gICAgICAgIGxldCB1cmwgPSBcImh0dHBzOi8vdHJhaW4uc3Bhcmt1cy5jbi9wb3N0ZXIvZ2FtZS9cIiArIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5zY29kZSArIFwiP3N1Yz0xXCI7XHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICB9XHJcbiAgICAvL+iuvue9ruaOkuihjOS/oeaBr1xyXG4gICAgZ2V0UmFua0RhdGEoZGF0YSl7XHJcbiAgICAgICAgaWYoZGF0YSl7XHJcbiAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRSYW5rRGF0YShkYXRhLHRoaXMsNCk7XHJcbiAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRQaWModGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIiksdGhpcy5zZWxmRGF0YS5waWMpO1xyXG4gICAgICAgICAgICB2YXIgbGVuZ3RoID0gdGhpcy5saXN0RGF0YS5sZW5ndGgtMTsgaWYobGVuZ3RoID4gNCkgbGVuZ3RoID0gNDtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7aTw9bGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFJhbmsoaSx0aGlzLmxpc3REYXRhW2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8v5qC55o2u5YaF5a655aGr5YWF5o6S6KGM5qacXHJcbiAgICBzZXRSYW5rKG51bSxkYXRhKXtcclxuICAgICAgICBpZighZGF0YSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBoaXROb2RlID0gbnVsbDtcclxuICAgICAgICBpZihudW0gPT0gMCl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihudW0gPT0gMSl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLnR3bztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihudW0gPT0gMil7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLnRocmVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKG51bSA9PSAzKXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMuZm91cjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihudW0gPT0gNCl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLmZpdmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdHJ1biA9IG51bSArIDE7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8IHRydW47IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubGlzdERhdGFbaV0gJiYgdGhpcy5saXN0RGF0YVtpXS5uaWNrTmFtZSA9PSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubmlja05hbWUpe1xyXG4gICAgICAgICAgICAgICAgdHJ1biA9IGkgKyAxO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZighdGhpcy5saXN0RGF0YVtpXSA9PSBudWxsICl7XHJcbiAgICAgICAgICAgICAgICB0cnVuID0gaSAqIDI7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuY29sb3IgPSBjYy5jb2xvcih0aGlzLmxpc3REYXRhWzBdLHRoaXMubGlzdERhdGFbMV0sdGhpcy5saXN0RGF0YVsyXSk7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZSlcclxuICAgICAgICAgICAgLnRvKDAuNSx7c2NhbGU6Mn0pXHJcbiAgICAgICAgICAgIC5ieSgxLHtvcGFjaXR5OjB9KVxyXG4gICAgICAgICAgICAuZGVsYXkoMC41KVxyXG4gICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5jb2xvciA9IGNjLmNvbG9yKDI1NSwyNTUsMjU1KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoaXROb2RlLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gbnVtICsgXCJcIjtcclxuICAgICAgICBjYy50d2VlbihoaXROb2RlLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkpXHJcbiAgICAgICAgLnRvKDAuNSx7c3RyaW5nOnRydW4rXCJcIn0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIGxldCByZWNvcmQgPSBjYy5meC5HYW1lQ29uZmkuR01fSU5GTy5zY29yZTtcclxuICAgICAgICBpZihkYXRhLnNjb3JlID49IHJlY29yZCl7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZkRhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZihoaXROb2RlKXtcclxuICAgICAgICAgICAgaGl0Tm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZihkYXRhLm5pY2tOYW1lLmxlbmd0aCA+PSA0KVxyXG4gICAgICAgICAgICAgICAgZGF0YS5uaWNrTmFtZSA9IGNjLmZ4LkdhbWVUb29sLnN1Yk5hbWUoZGF0YS5uaWNrTmFtZSw0KTtcclxuICAgICAgICAgICAgaGl0Tm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5hbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkYXRhLm5pY2tOYW1lO1xyXG4gICAgICAgICAgICBoaXROb2RlLmdldENoaWxkQnlOYW1lKFwidG90YWxcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkYXRhLnNjb3JlO1xyXG4gICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0UGljKGhpdE5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJwaWNcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLGRhdGEucGljKTtcclxuICAgICAgICB9XHJcbiAgICB9ICAgXHJcbn1cclxuIl19 +//------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() { @@ -4403,3770 +5452,6 @@ cc._RF.pop(); } })(); //# 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/GameOver.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, '805c6nf399HWZeuWnNB9CTH', 'GameOver'); -// Script/GameOver.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.count = null; - _this.time = null; - _this.selfNode = null; - _this.one = null; - _this.two = null; - _this.three = null; - _this.four = null; - _this.five = null; - return _this; - } - // onLoad () {} - NewClass.prototype.start = function () { - this.count.string = cc.fx.GameConfig.GM_INFO.score + ""; - var yes = 0; - var successList = cc.fx.GameConfig.GM_INFO.successList; - if (successList.length > 0) { - var success = 0; - for (var i = 0; i < successList.length; i++) { - if (successList[i] == true) - success += 1; - } - yes = success / successList.length; - } - yes = Math.floor(yes * 1000) / 10; - this.time.string = yes + "%"; - this.init(); - }; - //初始化数据 - NewClass.prototype.init = function () { - this.listData = []; - this.selfData = null; - this.one.active = false; - this.two.active = false; - this.three.active = false; - this.four.active = false; - this.five.active = false; - var urlNow = window.location.href; - if (this.containsTrain(urlNow)) { - this.node.getChildByName("again").active = false; - this.node.getChildByName("back").active = false; - this.node.getChildByName("finishi").active = true; - this.setLocalStorage(); - } - else { - this.setLocalStorage(); - this.node.getChildByName("again").active = true; - this.node.getChildByName("back").active = true; - this.node.getChildByName("finishi").active = false; - } - this.getRank(); - }; - NewClass.prototype.setLocalStorage = function () { - var timeData = cc.fx.GameConfig.TIME_INFO.totalTime; - var today = new Date().toLocaleDateString(); - var name = "success_" + today + "_" + cc.fx.GameConfig.GM_INFO.scode + "_" + cc.fx.GameConfig.GM_INFO.gameId; - localStorage.setItem(name, JSON.stringify({ success: true })); - }; - //打开排行榜 - NewClass.prototype.openRank = function () { - cc.director.loadScene("RankScene"); - }; - //重新开始玩 - NewClass.prototype.again = function () { - cc.fx.GameConfig.GM_INFO.round = 0; - cc.fx.GameConfig.GM_INFO.level = 0; - cc.fx.GameConfig.GM_INFO.stepTimeList = 0; - cc.fx.GameConfig.GM_INFO.successList = []; - cc.fx.GameConfig.GM_INFO.fen = 0; - cc.fx.GameConfig.GM_INFO.score = 0; - cc.fx.GameConfig.GM_INFO.min_Steps = 0; - cc.fx.GameConfig.GM_INFO.min_Time = 0; - cc.fx.GameConfig.TIME_INFO.totalTime = 120; - cc.director.loadScene("GameScene"); - }; - //判断来源 - NewClass.prototype.containsTrain = function (str) { - return /from=train/i.test(str); - }; - //获取排行榜 - NewClass.prototype.getRank = function () { - var _this = this; - //获取排行榜数据 所需数据量 - var dataFile = { - length: 5 - }; - cc.fx.GameTool.getRank(dataFile, function (data) { return _this.getRankData(data); }); - }; - //打开排行榜 - NewClass.prototype.jumpFinishi = function () { - var url = "https://train.sparkus.cn/poster/game/" + cc.fx.GameConfig.GM_INFO.scode + "?suc=1"; - window.location.href = url; - }; - //设置排行信息 - NewClass.prototype.getRankData = function (data) { - if (data) { - cc.fx.GameTool.getRankData(data, this, 4); - cc.fx.GameTool.setPic(this.selfNode.getChildByName("pic").getChildByName("icon"), this.selfData.pic); - var length = this.listData.length - 1; - if (length > 4) - length = 4; - for (var i = 0; i <= length; i++) { - this.setRank(i, this.listData[i]); - } - } - }; - //根据内容填充排行榜 - NewClass.prototype.setRank = function (num, data) { - var _this = this; - if (!data) { - return; - } - var hitNode = null; - if (num == 0) { - hitNode = this.one; - } - else if (num == 1) { - hitNode = this.two; - } - else if (num == 2) { - hitNode = this.three; - } - else if (num == 3) { - hitNode = this.four; - } - else if (num == 4) { - hitNode = this.five; - } - var trun = num + 1; - for (var i = 0; i < trun; i++) { - if (this.listData[i] && this.listData[i].nickName == cc.fx.GameConfig.GM_INFO.nickName) { - trun = i + 1; - break; - } - else if (!this.listData[i] == null) { - trun = i * 2; - break; - } - this.node.color = cc.color(this.listData[0], this.listData[1], this.listData[2]); - cc.tween(this.node) - .to(0.5, { scale: 2 }) - .by(1, { opacity: 0 }) - .delay(0.5) - .call(function () { - _this.node.scale = 1; - _this.node.opacity = 255; - _this.node.color = cc.color(255, 255, 255); - }) - .start(); - } - hitNode.getChildByName("num").getComponent(cc.Label).string = num + ""; - cc.tween(hitNode.getChildByName("num").getComponent(cc.Label)) - .to(0.5, { string: trun + "" }) - .start(); - var record = cc.fx.GameConfi.GM_INFO.score; - if (data.score >= record) { - this.selfData = data; - this.selfNode.active = true; - } - if (hitNode) { - hitNode.active = true; - if (data.nickName.length >= 4) - data.nickName = cc.fx.GameTool.subName(data.nickName, 4); - hitNode.getChildByName("name").getComponent(cc.Label).string = data.nickName; - hitNode.getChildByName("total").getComponent(cc.Label).string = data.score; - cc.fx.GameTool.setPic(hitNode.getChildByName("pic").getChildByName("icon"), data.pic); - } - }; - __decorate([ - property(cc.Label) - ], NewClass.prototype, "count", void 0); - __decorate([ - property(cc.Label) - ], NewClass.prototype, "time", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "selfNode", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "one", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "two", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "three", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "four", void 0); - __decorate([ - property(cc.Node) - ], NewClass.prototype, "five", 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lT3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDTSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQXFMQztRQW5MRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBRXZCLFVBQUksR0FBYSxJQUFJLENBQUM7UUFFdEIsY0FBUSxHQUFZLElBQUksQ0FBQztRQUV6QixTQUFHLEdBQVksSUFBSSxDQUFDO1FBRXBCLFNBQUcsR0FBWSxJQUFJLENBQUM7UUFFcEIsV0FBSyxHQUFZLElBQUksQ0FBQztRQUV0QixVQUFJLEdBQVksSUFBSSxDQUFDO1FBRXJCLFVBQUksR0FBWSxJQUFJLENBQUM7O0lBcUt6QixDQUFDO0lBbEtHLGVBQWU7SUFDZix3QkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDeEQsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1osSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN2RCxJQUFHLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDO1lBQ3RCLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztZQUNoQixLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztnQkFDbkMsSUFBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSTtvQkFBRSxPQUFPLElBQUksQ0FBQyxDQUFDO2FBQzNDO1lBQ0QsR0FBRyxH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QUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFoQkosUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQXFMNUI7SUFBRCxlQUFDO0NBckxELEFBcUxDLENBckxxQyxFQUFFLENBQUMsU0FBUyxHQXFMakQ7a0JBckxvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgY291bnQ6IGNjLkxhYmVsID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIHRpbWU6IGNjLkxhYmVsID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgc2VsZk5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBvbmU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICB0d286IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICB0aHJlZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZvdXI6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmaXZlOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIGxpc3REYXRhOiBhbnk7XHJcbiAgICBzZWxmRGF0YTogYW55O1xyXG4gICAgLy8gb25Mb2FkICgpIHt9XHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgdGhpcy5jb3VudC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc2NvcmUgKyBcIlwiO1xyXG4gICAgICAgIHZhciB5ZXMgPSAwO1xyXG4gICAgICAgIHZhciBzdWNjZXNzTGlzdCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5zdWNjZXNzTGlzdDtcclxuICAgICAgICBpZihzdWNjZXNzTGlzdC5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSAwO1xyXG4gICAgICAgICAgICBmb3IobGV0IGk9MDsgaTxzdWNjZXNzTGlzdC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBpZihzdWNjZXNzTGlzdFtpXSA9PSB0cnVlKSBzdWNjZXNzICs9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgeWVzID0gc3VjY2Vzcy9zdWNjZXNzTGlzdC5sZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHllcyA9IE1hdGguZmxvb3IoeWVzICogMTAwMCkvMTA7XHJcbiAgICAgICAgdGhpcy50aW1lLnN0cmluZyA9ICAgeWVzICsgXCIlXCI7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgICBcclxuICAgIH0gICBcclxuICAgIC8v5Yid5aeL5YyW5pWw5o2uXHJcbiAgICBpbml0KCl7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YSA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZkRhdGEgPSBudWxsO1xyXG4gICAgICAgIHRoaXMub25lLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudHdvLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGhyZWUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5mb3VyLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZml2ZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB2YXIgdXJsTm93ID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XHJcbiAgICAgICAgaWYodGhpcy5jb250YWluc1RyYWluKHVybE5vdykpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJhZ2FpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiYmFja1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiZmluaXNoaVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNldExvY2FsU3RvcmFnZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLnNldExvY2FsU3RvcmFnZSgpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJhZ2FpblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJiYWNrXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImZpbmlzaGlcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmdldFJhbmsoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRMb2NhbFN0b3JhZ2UoKXtcclxuICAgICAgICBsZXQgdGltZURhdGEgPSBjYy5meC5HYW1lQ29uZmlnLlRJTUVfSU5GTy50b3RhbFRpbWU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xyXG4gICAgICAgIHZhciBuYW1lID0gYHN1Y2Nlc3NfJHt0b2RheX1fJHtjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc2NvZGV9XyR7Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmdhbWVJZH1gXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0obmFtZSwgSlNPTi5zdHJpbmdpZnkoe3N1Y2Nlc3M6dHJ1ZX0pKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+aJk+W8gOaOkuihjOamnFxyXG4gICAgb3BlblJhbmsoKXtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJSYW5rU2NlbmVcIik7XHJcbiAgICB9XHJcbiAgICAvL+mHjeaWsOW8gOWni+eOqVxyXG4gICAgYWdhaW4oKXtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucm91bmQgPSAwO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnN0ZXBUaW1lTGlzdCA9IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnN1Y2Nlc3NMaXN0ID0gW107XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZlbiA9IDA7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnNjb3JlID0gMDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWluX1N0ZXBzID0gMDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWluX1RpbWUgPSAwO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuVElNRV9JTkZPLnRvdGFsVGltZSA9IDEyMDtcclxuICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICB9XHJcbiAgICAvL+WIpOaWreadpea6kFxyXG4gICAgY29udGFpbnNUcmFpbihzdHIpIHtcclxuICAgICAgICByZXR1cm4gL2Zyb209dHJhaW4vaS50ZXN0KHN0cik7XHJcbiAgICB9XHJcbiAgICAvL+iOt+WPluaOkuihjOamnFxyXG4gICAgZ2V0UmFuaygpe1xyXG4gICAgICAgIC8v6I635Y+W5o6S6KGM5qac5pWw5o2uICDmiYDpnIDmlbDmja7ph49cclxuICAgICAgICBsZXQgZGF0YUZpbGUgPSB7XHJcbiAgICAgICAgICAgIGxlbmd0aDo1XHJcbiAgICAgICAgfVxyXG4gICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRSYW5rKGRhdGFGaWxlLGRhdGEgPT50aGlzLmdldFJhbmtEYXRhKGRhdGEpKTtcclxuICAgIH1cclxuICAgIC8v5omT5byA5o6S6KGM5qacXHJcbiAgICBqdW1wRmluaXNoaSgpe1xyXG4gICAgICAgIGxldCB1cmwgPSBcImh0dHBzOi8vdHJhaW4uc3Bhcmt1cy5jbi9wb3N0ZXIvZ2FtZS9cIiArIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5zY29kZSArIFwiP3N1Yz0xXCI7XHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICB9XHJcbiAgICAvL+iuvue9ruaOkuihjOS/oeaBr1xyXG4gICAgZ2V0UmFua0RhdGEoZGF0YSl7XHJcbiAgICAgICAgaWYoZGF0YSl7XHJcbiAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRSYW5rRGF0YShkYXRhLHRoaXMsNCk7XHJcbiAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRQaWModGhpcy5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIiksdGhpcy5zZWxmRGF0YS5waWMpO1xyXG4gICAgICAgICAgICB2YXIgbGVuZ3RoID0gdGhpcy5saXN0RGF0YS5sZW5ndGgtMTsgaWYobGVuZ3RoID4gNCkgbGVuZ3RoID0gNDtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7aTw9bGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFJhbmsoaSx0aGlzLmxpc3REYXRhW2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8v5qC55o2u5YaF5a655aGr5YWF5o6S6KGM5qacXHJcbiAgICBzZXRSYW5rKG51bSxkYXRhKXtcclxuICAgICAgICBpZighZGF0YSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBoaXROb2RlID0gbnVsbDtcclxuICAgICAgICBpZihudW0gPT0gMCl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihudW0gPT0gMSl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLnR3bztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihudW0gPT0gMil7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLnRocmVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKG51bSA9PSAzKXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMuZm91cjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihudW0gPT0gNCl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUgPSB0aGlzLmZpdmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdHJ1biA9IG51bSArIDE7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8IHRydW47IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubGlzdERhdGFbaV0gJiYgdGhpcy5saXN0RGF0YVtpXS5uaWNrTmFtZSA9PSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubmlja05hbWUpe1xyXG4gICAgICAgICAgICAgICAgdHJ1biA9IGkgKyAxO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZighdGhpcy5saXN0RGF0YVtpXSA9PSBudWxsICl7XHJcbiAgICAgICAgICAgICAgICB0cnVuID0gaSAqIDI7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuY29sb3IgPSBjYy5jb2xvcih0aGlzLmxpc3REYXRhWzBdLHRoaXMubGlzdERhdGFbMV0sdGhpcy5saXN0RGF0YVsyXSk7XHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZSlcclxuICAgICAgICAgICAgLnRvKDAuNSx7c2NhbGU6Mn0pXHJcbiAgICAgICAgICAgIC5ieSgxLHtvcGFjaXR5OjB9KVxyXG4gICAgICAgICAgICAuZGVsYXkoMC41KVxyXG4gICAgICAgICAgICAuY2FsbCgoKSA9PntcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5jb2xvciA9IGNjLmNvbG9yKDI1NSwyNTUsMjU1KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoaXROb2RlLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gbnVtICsgXCJcIjtcclxuICAgICAgICBjYy50d2VlbihoaXROb2RlLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkpXHJcbiAgICAgICAgLnRvKDAuNSx7c3RyaW5nOnRydW4rXCJcIn0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIGxldCByZWNvcmQgPSBjYy5meC5HYW1lQ29uZmkuR01fSU5GTy5zY29yZTtcclxuICAgICAgICBpZihkYXRhLnNjb3JlID49IHJlY29yZCl7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZkRhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGZOb2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZihoaXROb2RlKXtcclxuICAgICAgICAgICAgaGl0Tm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZihkYXRhLm5pY2tOYW1lLmxlbmd0aCA+PSA0KVxyXG4gICAgICAgICAgICAgICAgZGF0YS5uaWNrTmFtZSA9IGNjLmZ4LkdhbWVUb29sLnN1Yk5hbWUoZGF0YS5uaWNrTmFtZSw0KTtcclxuICAgICAgICAgICAgaGl0Tm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5hbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkYXRhLm5pY2tOYW1lO1xyXG4gICAgICAgICAgICBoaXROb2RlLmdldENoaWxkQnlOYW1lKFwidG90YWxcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkYXRhLnNjb3JlO1xyXG4gICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0UGljKGhpdE5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJwaWNcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLGRhdGEucGljKTtcclxuICAgICAgICB9XHJcbiAgICB9ICAgXHJcbn1cclxuIl19 -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/GameScene.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, 'e8b235WjRBErajwLmN8xFUz', 'GameScene'); -// Script/GameScene.js - -// cc.Class({ -// extends: cc.Component, -// properties: { -// localTest: { -// default: false, -// tooltip: '本地测试时勾选,避免tz_url和Configure报错,提交前勾掉' -// }, -// clientTest: { -// default: false, -// tooltip: '客户端测试时勾选,展示版本标记方便测试区分,上线前勾掉' -// }, -// clientTestVersion: { -// default: '', -// tooltip: '版本标记' -// }, -// testVersion: cc.Label, -// score: cc.Label, -// double_hit: cc.Node, -// add: cc.Node, -// add2: cc.Node, -// double_title: cc.Node, -// count_time: cc.Node, -// beginNode: cc.Node, -// ball_nomal: [cc.SpriteFrame], -// bg_nomal: [cc.SpriteFrame], -// ball_light: [cc.SpriteFrame], -// kuang_Frame: [cc.SpriteFrame], -// daojishi: cc.Label, -// pause_anniu: cc.Sprite, -// mask: cc.Node, -// flashUI: { -// default: null, -// type: cc.SpriteAtlas -// }, -// }, -// onLoad() { -// }, -// update(dt) { -// }, -// }); -"use strict"; - -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lU2NlbmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFFQTtBQUVBO0FBRUEiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4vLyBjYy5DbGFzcyh7XHJcbi8vICAgICBleHRlbmRzOiBjYy5Db21wb25lbnQsXHJcbi8vICAgICBwcm9wZXJ0aWVzOiB7XHJcbi8vICAgICAgICAgbG9jYWxUZXN0OiB7XHJcbi8vICAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4vLyAgICAgICAgICAgICB0b29sdGlwOiAn5pys5Zyw5rWL6K+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/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/GameManager.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, 'df248lSLllOZpCHwGqQ5Ye3', 'GameManager'); -// Script/GameManager.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 MiniGameSdk_1 = require("./Sdk/MiniGameSdk"); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var GameManager = /** @class */ (function (_super) { - __extends(GameManager, _super); - function GameManager() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.label = null; - _this.text = 'hello'; - _this.Block_Array = []; - _this.Wall_Prefab = []; - _this.Block_Color = []; - // @property({type: [cc.ParticleSystem], tooltip:"粒子数组"}) - // particleEffects : Array = []; - _this.load1 = false; - _this.load2 = false; - _this.load3 = false; - _this.load4 = false; - _this.load5 = false; - return _this; - } - GameManager_1 = GameManager; - // LIFE-CYCLE CALLBACKS: - GameManager.prototype.onLoad = function () { - var _this = this; - window.initMgr(); - this.timeNumber = 3; - 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(); - }, 200); - if (GameManager_1._instance == null) { - GameManager_1._instance = this; - cc.game.addPersistRootNode(this.node); - } - else { - return; - } - var path = 'prefab/block'; - var path2 = 'prefab/wall'; - cc.resources.loadDir(path, cc.Prefab, function (err, assets) { - if (err) { - console.error('动态加载 Prefab 失败:', err); - cc.director.loadScene("LoadScene"); - return; - } - // 将加载的 Prefab 赋值给 Block_Array - _this.Block_Array = assets; - _this.setSort(); - _this.load1 = true; - }); - cc.resources.loadDir(path2, cc.Prefab, function (err, assets) { - if (err) { - console.error('动态加载 Prefab 失败:', err); - cc.director.loadScene("LoadScene"); - return; - } - // 将加载的 Prefab 赋值给 Block_Array - _this.Wall_Prefab = assets; - _this.load2 = true; - _this.setWallPrefabSort(); - }); - // debugger; - // setTimeout(() => { - // cc.director.preloadScene("HomeScene", (err) => { - // if (err) { - // console.error('预加载 HomeScene 场景失败:', err); - // return; - // } - // }); - // }, 1000); - // 检测微信小游戏切到后台 - if (cc.sys.platform === cc.sys.WECHAT_GAME) { - //@ts-ignore - wx.onHide(function () { - _this.onHide(); - }); - // 检测微信小游戏回到前台 - //@ts-ignore - wx.onShow(function () { - _this.onShow(); - }); - } - }; - GameManager.prototype.onHide = function () { - cc.audioEngine.stopMusic(); - cc.game.pause(); - }; - GameManager.prototype.onShow = function () { - cc.audioEngine.resumeMusic(); - cc.game.resume(); - }; - GameManager.prototype.loadParticleEffects = function () { - }; - GameManager.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; - }); - }; - GameManager.prototype.setParticleSort = function () { - var order = ['top', 'bot', 'rig', 'lef']; - this.particleEffects.sort(function (a, b) { - 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; - }); - }; - GameManager.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; - }); - }; - GameManager.prototype.start = function () { - }; - GameManager.prototype.startGame = function () { - console.log("进入场景之前_____________", cc.fx.GameConfig.GM_INFO.first); - cc.director.loadScene("HomeScene"); - }; - GameManager.prototype.returnHome = function () { - cc.tween(this.node.getChildByName("Game")) - .to(0.5, { opacity: 100 }) - .call(function () { - // 预加载成功后加载场景 - cc.director.loadScene("HomeScene", function (err) { - if (err) { - console.error('加载 HomeScene 场景失败:', err); - } - else { - cc.director.loadScene("HomeScene"); - } - }); - }) - .start(); - cc.tween(this.node.getChildByName("mask")) - .to(0.5, { opacity: 255 }) - .start(); - // cc.loader.releaseAll(); - // 预加载 HomeScene 场景 - }; - GameManager.prototype.readUserData = function (retryCount) { - var _this = this; - if (retryCount === void 0) { retryCount = 0; } - //@ts-ignore - if (typeof wx !== 'undefined' && wx !== null) { - var levelInfo = cc.fx.StorageMessage.getStorage("level"); - //旧的读取数据设置数据方法,以强联网为主 - if (levelInfo == undefined || levelInfo == "" || levelInfo == null) { - this.oldReadData(retryCount); - } - //新的读取数据设置方法,以本地为主 - else { - this.newReadData(); - } - console.log("即将读取体力值"); - cc.fx.GameTool.getHealth(function (data) { - console.log("体力值完成进入游戏"); - _this.load5 = true; - }); - } - else { - this.load3 = true; - this.load4 = true; - this.load5 = true; - cc.fx.GameTool.getHealth(null); - } - // 存储用户数据 - }; - GameManager.prototype.readMusicConfig = function () { - var audioInfo = cc.fx.StorageMessage.getStorage("music"); - if (audioInfo == undefined || audioInfo == "" || audioInfo == null) { - audioInfo = { - "musicOpen": true, - "effectOpen": true, - "vibrateOpen": true, - }; - cc.fx.StorageMessage.setStorage("music", audioInfo); - } - else { - cc.fx.GameConfig.GM_INFO.musicOpen = audioInfo.musicOpen; - cc.fx.GameConfig.GM_INFO.effectOpen = audioInfo.effectOpen; - cc.fx.GameConfig.GM_INFO.vibrateOpen = audioInfo.vibrateOpen; - } - }; - //新用户,有本地缓存读取配置 - GameManager.prototype.newReadData = function () { - var _this = this; - console.log("读取新信息"); - var openid = cc.fx.StorageMessage.getStorage("openid"); - if (openid == null || openid == "" || openid == undefined) { - console.log("没有openid"); - //@ts-ignore - wx.cloud.callFunction({ - name: 'userData', - data: { - action: 'read' - }, - success: function (res) { - console.log('读取用户数据成功', res.result); - if (res.result.code == 404 && res.result.message == "未找到用户数据") { - } - else if (res.result.code == 200) { - if (res.result.data) { - cc.fx.GameConfig.GM_INFO.openid = res.result.openid; - cc.fx.GameConfig.GM_INFO.username = res.result.data.username; - cc.fx.GameConfig.GM_INFO.useravatar = res.result.data.useravatar; - var register_time = res.result.data.register_time; - MiniGameSdk_1.MiniGameSdk.API.shushu_userSet(register_time); - cc.fx.StorageMessage.setStorage("openid", cc.fx.GameConfig.GM_INFO.openid); - } - } - }, - fail: function (err) { - console.error('读取用户数据失败', err); - } - }); - } - else { - if (openid) - cc.fx.GameConfig.GM_INFO.openid = openid; - } - //等级信息 - cc.fx.GameTool.getUserLevel(function (data) { - var timestamp = Date.now(); - var levelInfo = cc.fx.StorageMessage.getStorage("level"); - if (data.result.code == 404 && data.result.message == "未找到关卡数据") { - // console.log("没有等级信息,从用户接口拿到数据"); - if (levelInfo.level) { - cc.fx.GameConfig.GM_INFO.level = levelInfo.level; - } - _this.load4 = true; - cc.fx.GameTool.setUserLevel(function (data) { - }); - } - else if (data.result.code == 200) { - // console.log("有等级信息,从关卡接口拿到数据",data.result.data); - //游戏前端存储 新于服务器端,以游戏前端信息为主,放服务器存储 - var temp = data.result.timestamp - levelInfo.timestamp; - console.log("等级时间差:", temp); - if ((data.result.timestamp - levelInfo.timestamp) < 10000) { - if (levelInfo.level) { - console.log("以游戏前端等级为准", data.result.data); - cc.fx.GameConfig.GM_INFO.level = levelInfo.level; - // console.log("等级为:",cc.fx.GameConfig.GM_INFO.level); - cc.fx.GameTool.setUserLevel(function (data) { - }); - } - } - //服务器端存储时间新于游戏端,以服务器端为主,往前端存储 - else { - console.log("以服务器等级为准", data.result.data); - cc.fx.GameConfig.GM_INFO.level = data.result.data; - levelInfo.level = cc.fx.GameConfig.GM_INFO.level; - levelInfo.timestamp = timestamp; - // console.log("1111111存储关卡数据:",cc.fx.GameConfig.GM_INFO.level); - cc.fx.StorageMessage.setStorage("level", levelInfo); - } - _this.load4 = true; - } - }); - //金币信息 - cc.fx.GameTool.getUserCoin(function (data) { - var timestamp = Date.now(); - var coinInfo = cc.fx.StorageMessage.getStorage("coin"); - if (data.result.code == 404 && data.result.message == "未找到金币数据") { - if (coinInfo.coin) - cc.fx.GameConfig.GM_INFO.coin = coinInfo.coin; - console.log("没有金币信息,从用户接口拿到数据", cc.fx.GameConfig.GM_INFO.coin); - _this.load3 = true; - cc.fx.GameTool.setUserCoin(function (data) { - }); - } - else if (data.result.code == 200) { - // console.log("有金币信息,从金币接口拿到数据",data.result.data); - //游戏前端存储 新于服务器端,以游戏前端信息为主,放服务器存储 - var temp = data.result.timestamp - coinInfo.timestamp; - console.log("金币时间差:", temp); - if ((data.result.timestamp - coinInfo.timestamp) < 10000) { - console.log("以前端金幣为准:", coinInfo); - if (coinInfo.coin) - cc.fx.GameConfig.GM_INFO.coin = coinInfo.coin; - else { - cc.fx.GameConfig.GM_INFO.coin = data.result.data; - coinInfo.coin = cc.fx.GameConfig.GM_INFO.coin; - coinInfo.timestamp = timestamp; - console.log("11111111111"); - cc.fx.StorageMessage.setStorage("coin", coinInfo); - } - console.log("改变后金币:", cc.fx.GameConfig.GM_INFO.coin); - cc.fx.GameTool.setUserCoin(function (data) { - }); - } - //服务器端存储时间新于游戏端,以服务器端为主,往前端存储 - else { - console.log("以服务器金幣为准:", data.result.data); - cc.fx.GameConfig.GM_INFO.coin = data.result.data; - coinInfo.coin = cc.fx.GameConfig.GM_INFO.coin; - coinInfo.timestamp = timestamp; - console.log("2222222222"); - cc.fx.StorageMessage.setStorage("coin", coinInfo); - } - _this.load3 = true; - } - }); - //道具信息 - cc.fx.GameTool.getUserProp(function (data) { - var timestamp = Date.now(); - var propInfo = cc.fx.StorageMessage.getStorage("prop"); - if (data.result.code == 404 && data.result.message == "未找到道具数据") { - console.log("没有道具信息,从用户接口拿到数据", propInfo); - if (propInfo.freezeAmount == undefined || propInfo.hammerAmount == undefined || propInfo.magicAmount == undefined) { - console.log("2222222道具数据异常"); - cc.fx.GameConfig.GM_INFO.freezeAmount = 0; - cc.fx.GameConfig.GM_INFO.hammerAmount = 0; - cc.fx.GameConfig.GM_INFO.magicAmoun = 0; - var propInfoNew = { - "freezeAmount": cc.fx.GameConfig.GM_INFO.freezeAmount, - "hammerAmount": cc.fx.GameConfig.GM_INFO.hammerAmount, - "magicAmount": cc.fx.GameConfig.GM_INFO.magicAmoun, - "timestamp": timestamp - }; - console.log("1111111上传道具信息:", propInfoNew); - cc.fx.StorageMessage.setStorage("prop", propInfoNew); - } - else { - cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze; - cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer; - cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand; - } - cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; - cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; - cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; - cc.fx.GameTool.setUserProp(0, 0, function (data) { - }); - } - else if (data.result.code == 200) { - // console.log("本地时间戳",propInfo.timestamp,"服务器时间戳",data.result.timestamp); - if ((data.result.timestamp - propInfo.timestamp) < 10000) { - console.log("以前端道具为主:", propInfo); - if (propInfo.freezeAmount == undefined || propInfo.hammerAmount == undefined || propInfo.magicAmount == undefined) { - console.log("111111道具数据异常", data.result.data); - cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze; - cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer; - cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand; - var propInfoNew = { - "freezeAmount": cc.fx.GameConfig.GM_INFO.freezeAmount, - "hammerAmount": cc.fx.GameConfig.GM_INFO.hammerAmount, - "magicAmount": cc.fx.GameConfig.GM_INFO.magicAmount, - "timestamp": timestamp - }; - console.log("333333上传道具信息:", propInfoNew); - cc.fx.StorageMessage.setStorage("prop", propInfoNew); - } - else { - console.log("道具数据正常"); - cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; - cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; - cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; - cc.fx.GameTool.setUserProp(0, 0, function (data) { - }); - } - } - else { - cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze; - cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer; - cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand; - var propInfoNew = { - "freezeAmount": cc.fx.GameConfig.GM_INFO.freezeAmount, - "hammerAmount": cc.fx.GameConfig.GM_INFO.hammerAmount, - "magicAmount": cc.fx.GameConfig.GM_INFO.magicAmount, - "timestamp": timestamp - }; - console.log("22222222上传道具信息:", propInfoNew, data.result); - cc.fx.StorageMessage.setStorage("prop", propInfoNew); - } - } - }); - }; - //旧用户,无本地缓存读取配置 - GameManager.prototype.oldReadData = function (retryCount) { - var _this = this; - console.log("读取旧信息"); - var MAX_RETRIES = 15; - var timestamp = Date.now(); - // 读取用户数据 - //@ts-ignore - wx.cloud.callFunction({ - name: 'userData', - data: { - action: 'read' - }, - success: function (res) { - console.log('读取用户数据成功', res.result); - if (res.result.code == 404 && res.result.message == "未找到用户数据") { - if (res.result.openid) { - cc.fx.GameConfig.GM_INFO.openid = res.result.openid; - } - cc.fx.GameConfig.GM_INFO.first = true; - _this.load3 = true; - _this.load4 = true; - var levelInfo = { "level": 0, "timestamp": timestamp }; - cc.fx.StorageMessage.setStorage("level", levelInfo); - var coinInfo = { "coin": 0, "timestamp": timestamp }; - console.log("33333333333"); - cc.fx.StorageMessage.setStorage("coin", coinInfo); - var propInfo = { - "freezeAmount": 0, - "hammerAmount": 0, - "magicAmount": 0, - "timestamp": timestamp, - }; - cc.fx.StorageMessage.setStorage("prop", propInfo); - cc.fx.GameTool.setUserInfo(function (data) { - if (data.result.code == 200) { - console.log("上传用户信息成功", data); - //@ts-ignore - wx.cloud.callFunction({ - name: 'userData', - data: { - action: 'read' - }, - success: function (res) { - console.log("上传后,读取用户信息,为上报注册时间"); - if (res.result.code == 200) { - var time = res.result.data.register_time; - MiniGameSdk_1.MiniGameSdk.API.shushu_userSet(time); - } - } - }); - } - }); - console.log("服务器也没有金币信息", cc.fx.GameConfig.GM_INFO.coin); - cc.fx.GameTool.setUserCoin(cc.fx.GameConfig.GM_INFO.coin, function (data) { - }); - cc.fx.GameTool.setUserLevel(function (data) { - }); - setTimeout(function () { - cc.fx.GameConfig.GM_INFO.freezeAmount = 0; - cc.fx.GameConfig.GM_INFO.hammerAmount = 0; - cc.fx.GameConfig.GM_INFO.magicAmount = 0; - cc.fx.GameTool.setUserProp(0, 0, function (data) { - if (data.result.code == 200) { - console.log("上传道具信息成功", data); - } - else { - MiniGameSdk_1.MiniGameSdk.API.showToast("网络异常,正在努力加载"); - setTimeout(function () { - _this.oldReadData(0); - }, 1000); - } - }); - }, 0); - } - else if (res.result.code == 200) { - if (res.result.data) { - cc.fx.GameConfig.GM_INFO.openid = res.result.openid; - cc.fx.GameConfig.GM_INFO.level = res.result.data.level; - cc.fx.GameConfig.GM_INFO.coin = res.result.data.coinAmount; - cc.fx.GameConfig.GM_INFO.freezeAmount = res.result.data.freezeAmount; - cc.fx.GameConfig.GM_INFO.hammerAmount = res.result.data.hammerAmount; - cc.fx.GameConfig.GM_INFO.magicAmount = res.result.data.magicAmount; - cc.fx.GameConfig.GM_INFO.username = res.result.data.username; - cc.fx.GameConfig.GM_INFO.useravatar = res.result.data.useravatar; - cc.fx.StorageMessage.setStorage("openid", cc.fx.GameConfig.GM_INFO.openid); - var register_time = res.result.data.register_time; - MiniGameSdk_1.MiniGameSdk.API.shushu_userSet(register_time); - } - setTimeout(function () { - cc.fx.GameTool.getUserCoin(function (data) { - if (data.result.code == 404 && data.result.message == "未找到金币数据") { - var coinInfo = { "coin": 0, "timestamp": timestamp }; - cc.fx.GameConfig.GM_INFO.coin = 0; - cc.fx.StorageMessage.setStorage("coin", coinInfo); - console.log("没有金币信息,从用户接口拿到数据", cc.fx.GameConfig.GM_INFO.coin); - cc.fx.GameTool.setUserCoin(function (data) { - // console.log("上传",data); - _this.load3 = true; - }); - } - else if (data.result.code == 200) { - // console.log("有金币信息,从金币接口拿到数据",data.result.data); - cc.fx.GameConfig.GM_INFO.coin = data.result.data; - var coinInfo = { "coin": cc.fx.GameConfig.GM_INFO.coin, "timestamp": timestamp }; - console.log("存储金币信息:", cc.fx.GameConfig.GM_INFO.coin); - console.log("4444444444"); - cc.fx.StorageMessage.setStorage("coin", coinInfo); - _this.load3 = true; - } - }); - }, 500); - cc.fx.GameTool.getUserLevel(function (data) { - if (data.result.code == 404 && data.result.message == "未找到关卡数据") { - console.log("没有等级信息,从用户接口拿到数据"); - var levelInfo = { "level": 0, "timestamp": timestamp }; - // console.log("333333存储关卡数据:",levelInfo); - cc.fx.GameConfig.GM_INFO.level = 0; - cc.fx.StorageMessage.setStorage("level", levelInfo); - cc.fx.GameTool.setUserLevel(function (data) { - console.log("拿到的数据", data); - _this.load4 = true; - }); - } - else if (data.result.code == 200) { - console.log("有等级信息,从关卡接口拿到数据", data.result.data); - cc.fx.GameConfig.GM_INFO.level = data.result.data; - var levelInfo = { "level": cc.fx.GameConfig.GM_INFO.level, "timestamp": timestamp }; - // console.log("444444存储关卡信息:",levelInfo); - cc.fx.StorageMessage.setStorage("level", levelInfo); - _this.load4 = true; - } - }); - setTimeout(function () { - cc.fx.GameTool.getUserProp(function (data) { - if (data.result.code == 404 && data.result.message == "未找到道具数据") { - console.log("没有道具信息,从用户接口拿到数据"); - cc.fx.GameConfig.GM_INFO.freezeAmount = 0; - cc.fx.GameConfig.GM_INFO.hammerAmount = 0; - cc.fx.GameConfig.GM_INFO.magicAmount = 0; - var propInfo = { - "freezeAmount": 0, - "hammerAmount": 0, - "magicAmount": 0, - "timestamp": timestamp, - }; - console.log("上传道具信息:", propInfo); - cc.fx.StorageMessage.setStorage("prop", propInfo); - cc.fx.GameTool.setUserProp(0, 0, function (data) { - }); - } - else if (data.result.code == 200) { - console.log("有道具信息,从道具接口拿到数据", data.result.data); - cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze || 0; - cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer || 0; - cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand || 0; - var propInfo = { - "freezeAmount": cc.fx.GameConfig.GM_INFO.freezeAmount, - "hammerAmount": cc.fx.GameConfig.GM_INFO.hammerAmount, - "magicAmount": cc.fx.GameConfig.GM_INFO.magicAmount, - "timestamp": timestamp, - }; - console.log("上传道具信息:", propInfo); - cc.fx.StorageMessage.setStorage("prop", propInfo); - } - }); - }, 0); - } - }, - fail: function (err) { - console.error('读取用户数据失败', err); - if (retryCount < MAX_RETRIES) { - console.error("\u8BFB\u53D6\u7528\u6237\u6570\u636E\u5931\u8D25\uFF0C\u7B2C " + (retryCount + 1) + " \u6B21\u91CD\u8BD5\uFF0C\u9519\u8BEF\u4FE1\u606F:", err); - // 延迟 2 秒后重试 - setTimeout(function () { - _this.readUserData(retryCount + 1); - }, 2000); - } - else { - console.error('读取用户数据失败,达到最大重试次数,退出游戏', err); - // 退出游戏 - cc.game.end(); - } - } - }); - }; - GameManager.prototype.setUserData = function () { - cc.fx.GameConfig.GameTool(function (data) { - console.log("上传", data); - }); - }; - GameManager.prototype.startTimeCutDown = function () { - this.scheduleCallback = function () { - if (this.timeNumber <= 0) { - this.stopTimeCutDown(); - } - else { - this.timeNumber -= 1; - } - }.bind(this); - this.schedule(this.scheduleCallback, 1); - }; - GameManager.prototype.stopTimeCutDown = function () { - if (this.scheduleCallback) { - this.unschedule(this.scheduleCallback); - } - }; - 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(); - this.startGame(); - } - }; - var GameManager_1; - GameManager._instance = null; - __decorate([ - property(cc.Label) - ], GameManager.prototype, "label", void 0); - __decorate([ - property - ], GameManager.prototype, "text", void 0); - __decorate([ - property({ type: [cc.Prefab], tooltip: "方块数组" }) - ], GameManager.prototype, "Block_Array", void 0); - __decorate([ - property({ type: [cc.Prefab], tooltip: "墙壁数组" }) - ], GameManager.prototype, "Wall_Prefab", void 0); - __decorate([ - property({ type: [cc.SpriteAtlas], tooltip: "方块颜色" }) - ], GameManager.prototype, "Block_Color", void 0); - GameManager = GameManager_1 = __decorate([ - ccclass - ], GameManager); - return GameManager; -}(cc.Component)); -exports.default = GameManager; - -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdsRixpREFBZ0Q7QUFFMUMsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBeUMsK0JBQVk7SUFBckQ7UUFBQSxxRUF1cEJDO1FBcHBCRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFJdkIsaUJBQVcsR0FBc0IsRUFBRSxDQUFDO1FBR3BDLGlCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUdwQyxpQkFBVyxHQUEyQixFQUFFLENBQUM7UUFHekMseURBQXlEO1FBQ3pELG1EQUFtRDtRQUVuRCxXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7O0lBNm5CM0IsQ0FBQztvQkF2cEJvQixXQUFXO0lBK0I1Qix3QkFBd0I7SUFFeEIsNEJBQU0sR0FBTjtRQUFBLGlCQTRFQztRQTFFRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxD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QUFDLEtBQUssQ0FBQzs4Q0FDSTtJQUd2QjtRQURDLFFBQVE7NkNBQ2M7SUFJdkI7UUFEQyxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFDLE1BQU0sRUFBQyxDQUFDO29EQUNWO0lBR3BDO1FBREMsUUFBUSxDQUFDLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBQyxNQUFNLEVBQUMsQ0FBQztvREFDVjtJQUdwQztRQURDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUMsTUFBTSxFQUFDLENBQUM7b0RBQ1Y7SUFoQnhCLFdBQVc7UUFEL0IsT0FBTztPQUNhLFdBQVcsQ0F1cEIvQjtJQUFELGtCQUFDO0NBdnBCRCxBQXVwQkMsQ0F2cEJ3QyxFQUFFLENBQUMsU0FBUyxHQXVwQnBEO2tCQXZwQm9CLFdBQVciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgeyBNaW5pR2FtZU1hbmFnZXIgfSBmcm9tIFwiLi9TZGsvTWluaUdhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBsYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgdGV4dDogc3RyaW5nID0gJ2hlbGxvJztcclxuICAgIHN0YXRpYyBfaW5zdGFuY2UgOiBHYW1lTWFuYWdlciA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuaWueWdl+aVsOe7hFwifSlcclxuICAgIEJsb2NrX0FycmF5IDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlByZWZhYl0sIHRvb2x0aXA6XCLlopnlo4HmlbDnu4RcIn0pXHJcbiAgICBXYWxsX1ByZWZhYiA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5TcHJpdGVBdGxhc10sIHRvb2x0aXA6XCLmlrnlnZfpopzoibJcIn0pXHJcbiAgICBCbG9ja19Db2xvciA6IEFycmF5PGNjLlNwcml0ZUF0bGFzPiA9IFtdO1xyXG5cclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gQHByb3BlcnR5KHt0eXBlOiBbY2MuUGFydGljbGVTeXN0ZW1dLCB0b29sdGlwOlwi57KS5a2Q5pWw57uEXCJ9KVxyXG4gICAgLy8gcGFydGljbGVFZmZlY3RzIDogQXJyYXk8Y2MuUGFydGljbGVTeXN0ZW0+ID0gW107XHJcblxyXG4gICAgbG9hZDEgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQyIDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMyA6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZDQgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQ1IDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBzY2hlZHVsZUNhbGxiYWNrOiBhbnk7XHJcbiAgICB0aW1lTnVtYmVyOiBudW1iZXI7XHJcblxyXG4gICAgXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgICAgICB3aW5kb3cuaW5pdE1ncigpO1xyXG4gICAgICAgIHRoaXMudGltZU51bWJlciA9IDM7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5pbml0KHRydWUpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lU3RhdGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlYWRNdXNpY0NvbmZpZygpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6Z+z5LmQ5byA5YWzXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3Blbik7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5TXVzaWNHYW1lKCk7XHJcblxyXG4gICAgICAgIHRoaXMubG9hZDEgPSB0aGlzLmxvYWQyID0gdGhpcy5sb2FkMyA9IHRoaXMubG9hZDQgPSB0aGlzLmxvYWQ1ID1mYWxzZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZWFkVXNlckRhdGEoKTtcclxuICAgICAgICB9LCAyMDApO1xyXG4gXHJcblxyXG4gICAgICAgIGlmIChHYW1lTWFuYWdlci5faW5zdGFuY2UgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBHYW1lTWFuYWdlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgICAgICAgICBjYy5nYW1lLmFkZFBlcnNpc3RSb290Tm9kZSh0aGlzLm5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcGF0aCA9ICdwcmVmYWIvYmxvY2snO1xyXG4gICAgICAgIGNvbnN0IHBhdGgyID0gJ3ByZWZhYi93YWxsJztcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZERpcihwYXRoLCBjYy5QcmVmYWIsIChlcnIsIGFzc2V0czogY2MuUHJlZmFiW10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5bCG5Yqg6L2955qEIFByZWZhYiDotYvlgLznu5kgQmxvY2tfQXJyYXlcclxuICAgICAgICAgICAgdGhpcy5CbG9ja19BcnJheSA9IGFzc2V0cztcclxuICAgICAgICAgICAgdGhpcy5zZXRTb3J0KCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDEgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZERpcihwYXRoMiwgY2MuUHJlZmFiLCAoZXJyLCBhc3NldHM6IGNjLlByZWZhYltdKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5bCG5Yqg6L2955qEIFByZWZhYiDotYvlgLznu5kgQmxvY2tfQXJyYXlcclxuICAgICAgICAgICAgdGhpcy5XYWxsX1ByZWZhYiA9IGFzc2V0cztcclxuICAgICAgICAgICAgdGhpcy5sb2FkMiA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0V2FsbFByZWZhYlNvcnQoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gZGVidWdnZXI7XHJcblxyXG4gICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIC8vICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVycikgPT4ge1xyXG4gICAgICAgIC8vICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+mihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIC8vICAgICAgICAgfVxyXG4gICAgICAgIC8vICAgICB9KTtcclxuICAgICAgICAvLyB9LCAxMDAwKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyDmo4DmtYvlvq7kv6HlsI/muLjmiI/liIfliLDlkI7lj7BcclxuICAgICAgICBpZiAoY2Muc3lzLnBsYXRmb3JtID09PSBjYy5zeXMuV0VDSEFUX0dBTUUpIHtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4Lm9uSGlkZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uSGlkZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgLy8g5qOA5rWL5b6u5L+h5bCP5ri45oiP5Zue5Yiw5YmN5Y+wXHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5vblNob3coKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblNob3coKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBvbkhpZGUgKCkge1xyXG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnN0b3BNdXNpYygpO1xyXG4gICAgICAgIGNjLmdhbWUucGF1c2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNob3cgKCkge1xyXG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnJlc3VtZU11c2ljKCk7XHJcbiAgICAgICAgY2MuZ2FtZS5yZXN1bWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkUGFydGljbGVFZmZlY3RzKCkge1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuXHJcbiAgICBzZXRXYWxsUHJlZmFiU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsnZG93bicsICdkb3duTGVmdCcsICdkb3duUmlnaHQnLCAnbGVmdCcsJ3JpZ2h0JywndXAnLCd1cExlZnQnLCd1cFJpZ2h0J107XHJcbiAgICAgICAgdGhpcy5XYWxsX1ByZWZhYi5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhBID09PSAtMSkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEIgPT09IC0xKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIHJldHVybiBpbmRleEEgLSBpbmRleEI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgc2V0UGFydGljbGVTb3J0KCkge1xyXG4gICAgICAgIGNvbnN0IG9yZGVyID0gWyd0b3AnLCAnYm90JywgJ3JpZycsICdsZWYnXTtcclxuICAgICAgICB0aGlzLnBhcnRpY2xlRWZmZWN0cy5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lLnN1YnN0cigwLDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUuc3Vic3RyKDAsMykpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhBID09PSAtMSkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEIgPT09IC0xKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIHJldHVybiBpbmRleEEgLSBpbmRleEI7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U29ydCgpe1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQXJyYXkuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyDku47lkI3np7DkuK3mj5Dlj5bmlbDlrZfpg6jliIZcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQSA9IHBhcnNlSW50KGEubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bWJlckIgPSBwYXJzZUludChiLm5hbWUubWF0Y2goL1xcZCsvKT8uWzBdIHx8ICcwJywgMTApO1xyXG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyQSAtIG51bWJlckI7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzdGFydEdhbWUoKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIui/m+WFpeWcuuaZr+S5i+WJjV9fX19fX19fX19fX19cIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCl7XHJcbiAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKSlcclxuICAgICAgICAgICAgLnRvKDAuNSwge29wYWNpdHk6IDEwMH0pXHJcbiAgICAgICAgICAgIC5jYWxsKCgpID0+IHtcclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIC8vIOmihOWKoOi9veaIkOWKn+WQjuWKoOi9veWcuuaZr1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuXHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikpXHJcbiAgICAgICAgICAgIC50bygwLjUse29wYWNpdHk6IDI1NX0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgICAgICAvLyBjYy5sb2FkZXIucmVsZWFzZUFsbCgpO1xyXG4gICAgICAgIC8vIOmihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmvXHJcblxyXG4gICBcclxuICAgIH1cclxuXHJcblxyXG4gICAgcmVhZFVzZXJEYXRhKHJldHJ5Q291bnQgPSAwKXtcclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHsgXHJcbiAgICAgICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcImxldmVsXCIpO1xyXG4gICAgICAgICAgICAgICAgLy/ml6fnmoTor7vlj5bmlbDmja7orr7nva7mlbDmja7mlrnms5Us5Lul5by66IGU572R5Li65Li7XHJcbiAgICAgICAgICAgICAgICBpZihsZXZlbEluZm8gPT0gdW5kZWZpbmVkIHx8IGxldmVsSW5mbyA9PSBcIlwiIHx8IGxldmVsSW5mbyA9PSBudWxsKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9sZFJlYWREYXRhKHJldHJ5Q291bnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy/mlrDnmoTor7vlj5bmlbDmja7orr7nva7mlrnms5XvvIzku6XmnKzlnLDkuLrkuLtcclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXdSZWFkRGF0YSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLljbPlsIbor7vlj5bkvZPlipvlgLxcIik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgoKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkvZPlipvlgLzlrozmiJDov5vlhaXmuLjmiI9cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkNSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgIH1cclxuICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQ1ID0gdHJ1ZTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0SGVhbHRoKG51bGwpO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgLy8g5a2Y5YKo55So5oi35pWw5o2uXHJcbiAgICB9XHJcblxyXG4gICAgcmVhZE11c2ljQ29uZmlnKCl7XHJcbiAgICAgICAgbGV0IGF1ZGlvSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJtdXNpY1wiKTtcclxuICAgICAgICBpZihhdWRpb0luZm8gPT0gdW5kZWZpbmVkIHx8IGF1ZGlvSW5mbyA9PSBcIlwiIHx8IGF1ZGlvSW5mbyA9PSBudWxsKXtcclxuICAgICAgICAgICAgYXVkaW9JbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgXCJtdXNpY09wZW5cIjogdHJ1ZSwgICAgICAgICAgICAgLy/pn7PkuZBcclxuICAgICAgICAgICAgICAgIFwiZWZmZWN0T3BlblwiOiB0cnVlLCAgICAgICAgICAgIC8v6Z+z5pWIXHJcbiAgICAgICAgICAgICAgICBcInZpYnJhdGVPcGVuXCI6IHRydWUsICAgICAgICAgICAvL+mch+WKqFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJtdXNpY1wiLGF1ZGlvSW5mbyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tdXNpY09wZW4gPSBhdWRpb0luZm8ubXVzaWNPcGVuO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiA9IGF1ZGlvSW5mby5lZmZlY3RPcGVuO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udmlicmF0ZU9wZW4gPSBhdWRpb0luZm8udmlicmF0ZU9wZW47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvL+aWsOeUqOaIt++8jOacieacrOWcsOe8k+WtmOivu+WPlumFjee9rlxyXG4gICAgbmV3UmVhZERhdGEoKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuivu+WPluaWsOS/oeaBr1wiKTtcclxuICAgICAgICBsZXQgb3BlbmlkID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcIm9wZW5pZFwiKTtcclxuICAgICAgICBpZihvcGVuaWQgPT0gbnVsbCB8fCBvcGVuaWQgPT0gXCJcIiB8fCBvcGVuaWQgPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnIlvcGVuaWRcIik7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlckRhdGEnLFxyXG4gICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygn6K+75Y+W55So5oi35pWw5o2u5oiQ5YqfJywgcmVzLnJlc3VsdClcclxuICAgICAgICAgICAgICAgICAgICBpZihyZXMucmVzdWx0LmNvZGUgPT0gNDA0ICYmIHJlcy5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOeUqOaIt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihyZXMucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5kYXRhKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSByZXMucmVzdWx0Lm9wZW5pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VybmFtZSA9IHJlcy5yZXN1bHQuZGF0YS51c2VybmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VyYXZhdGFyID0gcmVzLnJlc3VsdC5kYXRhLnVzZXJhdmF0YXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdpc3Rlcl90aW1lID0gcmVzLnJlc3VsdC5kYXRhLnJlZ2lzdGVyX3RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X3VzZXJTZXQocmVnaXN0ZXJfdGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwib3BlbmlkXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfor7vlj5bnlKjmiLfmlbDmja7lpLHotKUnLCBlcnIpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKG9wZW5pZClcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSBvcGVuaWQ7XHJcbiAgICAgICAgfVxyXG4gICBcclxuXHJcblxyXG4gICAgICAgIC8v562J57qn5L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckxldmVsKChkYXRhKSA9PntcclxuICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJsZXZlbFwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOWFs+WNoeaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ562J57qn5L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIpO1xyXG4gICAgICAgICAgICAgICAgaWYobGV2ZWxJbmZvLmxldmVsKXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBsZXZlbEluZm8ubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pyJ562J57qn5L+h5oGv77yM5LuO5YWz5Y2h5o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAvL+a4uOaIj+WJjeerr+WtmOWCqCDmlrDkuo7mnI3liqHlmajnq68s5Lul5ri45oiP5YmN56uv5L+h5oGv5Li65Li777yM5pS+5pyN5Yqh5Zmo5a2Y5YKoXHJcbiAgICAgICAgICAgICAgICBsZXQgdGVtcCA9IGRhdGEucmVzdWx0LnRpbWVzdGFtcCAtIGxldmVsSW5mby50aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuetiee6p+aXtumXtOW3rjpcIix0ZW1wKTtcclxuICAgICAgICAgICAgICAgIGlmKChkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBsZXZlbEluZm8udGltZXN0YW1wKSA8IDEwMDAwKXtcclxuICAgICAgICAgICAgICAgICAgICBpZihsZXZlbEluZm8ubGV2ZWwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7pea4uOaIj+WJjeerr+etiee6p+S4uuWHhlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBsZXZlbEluZm8ubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi562J57qn5Li6OlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8v5pyN5Yqh5Zmo56uv5a2Y5YKo5pe26Ze05paw5LqO5ri45oiP56uv77yM5Lul5pyN5Yqh5Zmo56uv5Li65Li7LOW+gOWJjeerr+WtmOWCqFxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peacjeWKoeWZqOetiee6p+S4uuWHhlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IGRhdGEucmVzdWx0LmRhdGE7IFxyXG4gICAgICAgICAgICAgICAgICAgIGxldmVsSW5mby5sZXZlbCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbDtcclxuICAgICAgICAgICAgICAgICAgICBsZXZlbEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiMTExMTExMeWtmOWCqOWFs+WNoeaVsOaNrjpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8v6YeR5biB5L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckNvaW4oKGRhdGEpID0+e1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgY29pbkluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwiY29pblwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmHkeW4geaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIGlmKGNvaW5JbmZvLmNvaW4pXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBjb2luSW5mby5jb2luO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInph5HluIHkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmnInph5HluIHkv6Hmga/vvIzku47ph5HluIHmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgIC8v5ri45oiP5YmN56uv5a2Y5YKoIOaWsOS6juacjeWKoeWZqOerryzku6XmuLjmiI/liY3nq6/kv6Hmga/kuLrkuLvvvIzmlL7mnI3liqHlmajlrZjlgqhcclxuICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gY29pbkluZm8udGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLph5HluIHml7bpl7Tlt646XCIsdGVtcCk7XHJcbiAgICAgICAgICAgICAgICBpZigoZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gY29pbkluZm8udGltZXN0YW1wKSA8IDEwMDAwKXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peWJjeerr+mHkeW5o+S4uuWHhjpcIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY29pbkluZm8uY29pbilcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBjb2luSW5mby5jb2luO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gZGF0YS5yZXN1bHQuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29pbkluZm8uY29pbiA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2luSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMTExMTExMTExMTFcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaUueWPmOWQjumHkeW4gTpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckNvaW4oKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvL+acjeWKoeWZqOerr+WtmOWCqOaXtumXtOaWsOS6jua4uOaIj+err++8jOS7peacjeWKoeWZqOerr+S4uuS4uyzlvoDliY3nq6/lrZjlgqhcclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLku6XmnI3liqHlmajph5HluaPkuLrlh4Y6XCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBkYXRhLnJlc3VsdC5kYXRhOyBcclxuICAgICAgICAgICAgICAgICAgICBjb2luSW5mby5jb2luID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW47XHJcbiAgICAgICAgICAgICAgICAgICAgY29pbkluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMjIyMjIyMjIyMlwiKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8v6YGT5YW35L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlclByb3AoKGRhdGEpID0+e1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmBk+WFt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ6YGT5YW35L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgaWYocHJvcEluZm8uZnJlZXplQW1vdW50ID09IHVuZGVmaW5lZCB8fCBwcm9wSW5mby5oYW1tZXJBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLm1hZ2ljQW1vdW50ID09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMjIyMjIyMumBk+WFt+aVsOaNruW8guW4uFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91biA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mb05ldyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIxMTExMTEx5LiK5Lyg6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmZyZWV6ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5tYWdpY193YW5kO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IHByb3BJbmZvLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBwcm9wSW5mby5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBwcm9wSW5mby5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDAsMCwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pys5Zyw5pe26Ze05oizXCIscHJvcEluZm8udGltZXN0YW1wLFwi5pyN5Yqh5Zmo5pe26Ze05oizXCIsZGF0YS5yZXN1bHQudGltZXN0YW1wKTtcclxuICAgICAgICAgICAgICAgIGlmKChkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBwcm9wSW5mby50aW1lc3RhbXApIDwgMTAwMDApe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5Lul5YmN56uv6YGT5YW35Li65Li7OlwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBpZihwcm9wSW5mby5mcmVlemVBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLmhhbW1lckFtb3VudCA9PSB1bmRlZmluZWQgfHwgcHJvcEluZm8ubWFnaWNBbW91bnQgPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIxMTExMTHpgZPlhbfmlbDmja7lvILluLhcIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuZnJlZXplO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IGRhdGEucmVzdWx0LmRhdGEubWFnaWNfd2FuZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvTmV3ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIzMzMzMzPkuIrkvKDpgZPlhbfkv6Hmga86XCIscHJvcEluZm9OZXcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLpgZPlhbfmlbDmja7mraPluLhcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBwcm9wSW5mby5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBwcm9wSW5mby5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IHByb3BJbmZvLm1hZ2ljQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgwLDAsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuZnJlZXplO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmhhbW1lcjtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvTmV3ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXBcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIyMjIyMjIyMuS4iuS8oOmBk+WFt+S/oeaBrzpcIixwcm9wSW5mb05ldyxkYXRhLnJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvL+aXp+eUqOaIt++8jOaXoOacrOWcsOe8k+WtmOivu+WPlumFjee9rlxyXG4gICAgb2xkUmVhZERhdGEocmV0cnlDb3VudDpudW1iZXIpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6K+75Y+W5pen5L+h5oGvXCIpO1xyXG4gICAgICAgIGNvbnN0IE1BWF9SRVRSSUVTID0gMTU7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAvLyDor7vlj5bnlKjmiLfmlbDmja5cclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgIG5hbWU6ICd1c2VyRGF0YScsXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICBhY3Rpb246ICdyZWFkJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3VjY2VzczogcmVzID0+IHsgICBcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ+ivu+WPlueUqOaIt+aVsOaNruaIkOWKnycsIHJlcy5yZXN1bHQpXHJcbiAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQuY29kZSA9PSA0MDQgJiYgcmVzLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw55So5oi35pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5vcGVuaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSByZXMucmVzdWx0Lm9wZW5pZFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZpcnN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0ge1wibGV2ZWxcIjowLFwidGltZXN0YW1wXCI6dGltZXN0YW1wfTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICBsZXQgY29pbkluZm8gPSB7XCJjb2luXCI6MCxcInRpbWVzdGFtcFwiOnRpbWVzdGFtcH07XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjMzMzMzMzMzMzMzXCIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjowLFxyXG4gICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOnRpbWVzdGFtcCxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VySW5mbygoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg55So5oi35L+h5oGv5oiQ5YqfXCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3VzZXJEYXRhJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdyZWFkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOWQju+8jOivu+WPlueUqOaIt+S/oeaBr++8jOS4uuS4iuaKpeazqOWGjOaXtumXtFwiKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0aW1lID0gcmVzLnJlc3VsdC5kYXRhLnJlZ2lzdGVyX3RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfdXNlclNldCh0aW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuacjeWKoeWZqOS5n+ayoeaciemHkeW4geS/oeaBr1wiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyTGV2ZWwoKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMCwwLChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOmBk+WFt+S/oeaBr+aIkOWKn1wiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi572R57uc5byC5bi477yM5q2j5Zyo5Yqq5Yqb5Yqg6L29XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbGRSZWFkRGF0YSgwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKHJlcy5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5kYXRhKXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkID0gcmVzLnJlc3VsdC5vcGVuaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gcmVzLnJlc3VsdC5kYXRhLmxldmVsO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gcmVzLnJlc3VsdC5kYXRhLmNvaW5BbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLm1hZ2ljQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VybmFtZSA9IHJlcy5yZXN1bHQuZGF0YS51c2VybmFtZTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcmF2YXRhciA9IHJlcy5yZXN1bHQuZGF0YS51c2VyYXZhdGFyO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJvcGVuaWRcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdpc3Rlcl90aW1lID0gcmVzLnJlc3VsdC5kYXRhLnJlZ2lzdGVyX3RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV91c2VyU2V0KHJlZ2lzdGVyX3RpbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckNvaW4oKGRhdGEpID0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw6YeR5biB5pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvaW5JbmZvID0ge1wiY29pblwiOjAsXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuayoeaciemHkeW4geS/oeaBr++8jOS7jueUqOaIt+aOpeWPo+aLv+WIsOaVsOaNrlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiK5LygXCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pyJ6YeR5biB5L+h5oGv77yM5LuO6YeR5biB5o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IGRhdGEucmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29pbkluZm8gPSB7XCJjb2luXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLlrZjlgqjph5HluIHkv6Hmga86XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCI0NDQ0NDQ0NDQ0XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9LCA1MDApO1xyXG5cclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJMZXZlbCgoZGF0YSkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOWFs+WNoeaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInnrYnnuqfkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsZXZlbEluZm8gPSB7XCJsZXZlbFwiOjAsXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIjMzMzMzM+WtmOWCqOWFs+WNoeaVsOaNrjpcIixsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImxldmVsXCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckxldmVsKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmi7/liLDnmoTmlbDmja5cIixkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuacieetiee6p+S/oeaBr++8jOS7juWFs+WNoeaOpeWPo+aLv+WIsOaVsOaNrlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBkYXRhLnJlc3VsdC5kYXRhOyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IHtcImxldmVsXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsLFwidGltZXN0YW1wXCI6dGltZXN0YW1wfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCI0NDQ0NDTlrZjlgqjlhbPljaHkv6Hmga86XCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImxldmVsXCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJQcm9wKChkYXRhKSA9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmBk+WFt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ6YGT5YW35L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjowLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOnRpbWVzdGFtcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMCwwLChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmnInpgZPlhbfkv6Hmga/vvIzku47pgZPlhbfmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmZyZWV6ZSB8fCAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuaGFtbWVyIHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOmBk+WFt+S/oeaBrzpcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfSwgMCk7XHJcbiAgICBcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9LFxyXG4gICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+ivu+WPlueUqOaIt+aVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgaWYgKHJldHJ5Q291bnQgPCBNQVhfUkVUUklFUykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYOivu+WPlueUqOaIt+aVsOaNruWksei0pe+8jOesrCAke3JldHJ5Q291bnQgKyAxfSDmrKHph43or5XvvIzplJnor6/kv6Hmga86YCwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyDlu7bov58gMiDnp5LlkI7ph43or5VcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWFkVXNlckRhdGEocmV0cnlDb3VudCArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMDApO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfor7vlj5bnlKjmiLfmlbDmja7lpLHotKXvvIzovr7liLDmnIDlpKfph43or5XmrKHmlbDvvIzpgIDlh7rmuLjmiI8nLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOmAgOWHuua4uOaIj1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmdhbWUuZW5kKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHNldFVzZXJEYXRhKCl7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HYW1lVG9vbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKBcIixkYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0VGltZUN1dERvd24oKXtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICBpZih0aGlzLnRpbWVOdW1iZXIgPD0gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVOdW1iZXIgLT0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjaywgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcFRpbWVDdXREb3duKCl7XHJcbiAgICAgICAgaWYodGhpcy5zY2hlZHVsZUNhbGxiYWNrKXtcclxuICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjayk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZSAoZHQpIHtcclxuICAgICAgICBpZih0aGlzLmxvYWQxICYmIHRoaXMubG9hZDIgJiYgdGhpcy5sb2FkMyAgJiYgdGhpcy5sb2FkNCAmJiB0aGlzLmxvYWQ1ICYmIHRoaXMudGltZU51bWJlciA8PSAwKXtcclxuICAgICAgICAgICAgdGhpcy5sb2FkMSA9IHRoaXMubG9hZDIgPSBmYWxzZTtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV9Jbml0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRHYW1lKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ== -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/JiaZai.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, '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 || - ({ __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 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; - 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); - } - }; - 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; - } - }; - //开始倒计时 - 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("体力值不足"); - 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.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.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) - ], 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({ 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); - 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxKaWFaYWkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkNBQXdDO0FBQ3hDLGlEQUE0QztBQUM1QyxpREFBZ0Q7QUFDaEQsMkVBQXNFO0FBQ2hFLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBOFBDO1FBM1BHLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsV0FBSyxHQUFZLElBQUksQ0FBQztRQUd0QixXQUFLLEdBQVksSUFBSSxDQUFDO1FBS3RCLGlCQUFXLEdBQTJCLEVBQUUsQ0FBQztRQUd6QyxZQUFNLEdBQWUsSUFBSSxDQUFDO1FBSzFCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsVUFBSSxHQUFZLElBQUksQ0FBQztRQUdyQixhQUFPLEdBQVksSUFBSSxDQUFDOztRQWlPeEIsaUJBQWlCO0lBQ3JCLENBQUM7SUEvTkcsd0JBQXdCO0lBRXhCLHlCQUFNLEdBQU47UUFDSSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QixtQ0FBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakMsMEJBQTBCO1FBQzFCLG9CQUFvQjtRQUNwQixxQkFBVyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyRCxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUM7WUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFD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OzJDQUNJO0lBR3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFHckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzs2Q0FDTTtJQTVCUCxRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBOFA1QjtJQUFELGVBQUM7Q0E5UEQsQUE4UEMsQ0E5UHFDLEVBQUUsQ0FBQyxTQUFTLEdBOFBqRDtrQkE5UG9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgR2FtZU1hbmFnZXIgZnJvbSBcIi4vR2FtZU1hbmFnZXJcIjtcclxuaW1wb3J0IE51bWJlclRvSW1hZ2UgZnJvbSBcIi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5pbXBvcnQge0xRQ29sbGlkZVN5c3RlbX0gZnJvbSBcIi4vbHFfY29sbGlkZV9zeXN0ZW0vbHFfY29sbGlkZV9zeXN0ZW1cIjtcclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMjogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMzogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgXHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOlwi5pa55Z2X6aKc6ImyXCJ9KVxyXG4gICAgQmxvY2tfQ29sb3IgOiBBcnJheTxjYy5TcHJpdGVBdGxhcz4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuRWRpdEJveClcclxuICAgIGN1c3RvbTogY2MuRWRpdEJveCA9IG51bGw7XHJcbiAgICBcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBsZXZlbDogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBjb2luOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIFN0YW1pbmE6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgc2NoZWR1bGVDYWxsYmFjazogYW55O1xyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgY2MuZ2FtZS5zZXRGcmFtZVJhdGUoNjMpOyBcclxuICAgICAgICBMUUNvbGxpZGVTeXN0ZW0uaXNfZW5hYmxlID0gdHJ1ZTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWKoOi9veWFs+WNoemFjee9rjJcIik7XHJcbiAgICAgICAgLy8gd2luZG93LmluaXRNZ3IoKTtcclxuICAgICAgICBHYW1lTWFuYWdlci5faW5zdGFuY2UuQmxvY2tfQ29sb3IgPSB0aGlzLkJsb2NrX0NvbG9yO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCl7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOWHhuWkh+azqOWGjOS6i+S7tlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQpO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkICE9IFwiXCIpe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLigJTigJTigJTigJTigJTigJTigJTigJTlj5HpgIHms6jlhozkuovku7ZcIik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZWdpc3RlclwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIixudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsXCJ1cFwiLGZhbHNlKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW3sue7j+i/m+WFpUhvbWXnlYzpnaJcIik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLph5HluIFcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlhbPljaFcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwrMSk7XHJcblxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldEhlYWx0aChudWxsKTtcclxuICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwwKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCsxKSwyNSwxNSxcImJpZ19cIix0aGlzLmxldmVsLGZhbHNlKTtcclxuICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sMzAsMTUsXCJjb2luX1wiLHRoaXMuY29pbix0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRIZWFsdGhJbmZvKCk7XHJcbiAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmdhbWVTdGF0ZSl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjJcIixudWxsKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcImRvd25cIixmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwiZG93blwiICYmICFjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKCFjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+WAkuiuoeaXtlxyXG4gICAgc3RhcnRUaW1lQ3V0RG93bigpe1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVDYWxsYmFjayA9IGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMucGF1c2UpIHJldHVybjtcclxuICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lIDw9IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoMSwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRIZWFsdGhJbmZvKCk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWluX1RpbWUgLT0gMTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjaywgMSk7XHJcbiAgICB9XHJcbiAgICAvLyDlgZzmraLlgJLorqHml7ZcclxuICAgIHN0b3BUaW1lQ3V0RG93bigpe1xyXG4gICAgICAgIGlmKHRoaXMuc2NoZWR1bGVDYWxsYmFjayl7XHJcbiAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2spO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgc2V0SGVhbHRoSW5mbygpe1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA9PSA1KXtcclxuICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwibWFuXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcImhlYWx0aFwiKS5hY3RpdmUgPSBmYWxzZTsgXHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJtYW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJoZWFsdGhcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHApLDI1LDE1LFwiY29pbl9cIix0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJoZWFsdGhcIiksZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lICE9IDApe1xyXG4gICAgICAgICAgICAgICAgbGV0IHRpbWUgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGltZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA8IDEpe1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85LiN6LazXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxvYWRcIikuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydEJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxvYWRcIikuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydEJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gaWYodGhpcy5jdXN0b20uc3RyaW5nICE9IFwiXCIpe1xyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gcGFyc2VJbnQodGhpcy5jdXN0b20uc3RyaW5nKSAtIDE7XHJcbiAgICAgICAgICAgIC8vICAgICAvLyBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwudG9TdHJpbmcoKSk7IFxyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgLy8gZWxzZXtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLG51bGwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLFwidXBcIixmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLDEwMDApO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgICAgICAgICAgXHJcblxyXG4gICAgXHJcbiAgY2xvc2VSYW5rKCl7XHJcbiAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJhbmtcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvcGVuUmFuaygpe1xyXG4gICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJSYW5rXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvcGVuUmV3YXJkKCl7XHJcbiAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJld2FyZFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tTaG9wKCkge1xyXG4gICAgLy8g5YGH6K6+5bey57uP6I635Y+W5Yiw5LqGIHVzZXJJZCDlkowgcHJvZHVjdElkXHJcbiAgICBjb25zdCB1c2VySWQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkOyBcclxuICAgIGNvbnN0IHByb2R1Y3RJZCA9ICcxJzsgXHJcbiAgICBjb25zb2xlLmxvZyhcIuWNs+WwhuWIm+W7umNyZWF0ZW9yZGVyXCIpO1xyXG4gICAgLy9AdHMtaWdub3JlXHJcbiAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgIG5hbWU6IFwiY3JlYXRlT3JkZXJcIixcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIFwidXNlcklkXCI6dXNlcklkLFxyXG4gICAgICAgICAgICBcInByb2R1Y3RJZFwiOnByb2R1Y3RJZCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuICAgICAgICAgICAgLy8g5Y+W5b6X5LqR5Ye95pWw6L+U5Zue55qE6K6i5Y2V5L+h5oGvXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY3JlYXRlT3JkZXLnu5Pmnpw6XCIscmVzLnJlc3VsdCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHBheW1lbnQgPSByZXMucmVzdWx0LnBheW1lbnRSZXN1bHQucGF5bWVudDtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJwYXltZW50OlwiLHBheW1lbnQpO1xyXG4gICAgICAgICAgICAvLyDosIPotbflvq7kv6HlrqLmiLfnq6/mlK/ku5hcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIC8vIOiwg+i1t+W+ruS/oeWuouaIt+err+aUr+S7mFxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3gucmVxdWVzdFBheW1lbnQoe1xyXG4gICAgICAgICAgICAgICAgLy8g5pe26Ze05oiz77yM5LuOIDE5NzAg5bm0IDEg5pyIIDEg5pelIDAwOjAwOjAwIOiHs+S7iueahOenkuaVsO+8jOWNs+W9k+WJjeeahOaXtumXtFxyXG4gICAgICAgICAgICAgICAgdGltZVN0YW1wOiBwYXltZW50LnRpbWVTdGFtcCxcclxuICAgICAgICAgICAgICAgIC8vIOmaj+acuuWtl+espuS4su+8jOmVv+W6puS4ujMy5Liq5a2X56ym5Lul5LiLXHJcbiAgICAgICAgICAgICAgICBub25jZVN0cjogcGF5bWVudC5ub25jZVN0cixcclxuICAgICAgICAgICAgICAgIC8vIOe7n+S4gOS4i+WNleaOpeWPo+i/lOWbnueahCBwcmVwYXlfaWQg5Y+C5pWw5YC8XHJcbiAgICAgICAgICAgICAgICBwYWNrYWdlOiBwYXltZW50LnBhY2thZ2UsXHJcbiAgICAgICAgICAgICAgICAvLyDnrb7lkI3nrpfms5XvvIzmmoLmlK/mjIEgTUQ144CBSE1BQy1TSEEyNTZcclxuICAgICAgICAgICAgICAgIHNpZ25UeXBlOiBwYXltZW50LnNpZ25UeXBlIHx8ICdNRDUnLFxyXG4gICAgICAgICAgICAgICAgLy8g5pSv5LuY562+5ZCNXHJcbiAgICAgICAgICAgICAgICBwYXlTaWduOiBwYXltZW50LnBheVNpZ24sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzKHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qIOaIkOWKn+WbnuiwgyAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pSv5LuY5oiQ5YqfXCIscmVzKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBmYWlsKHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qIOWksei0peWbnuiwgyAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pSv5LuY5aSx6LSlXCIscmVzKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjb21wbGV0ZShyZXMpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pSv5LuY5a6M5oiQXCIscmVzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIG9wZW5QYXVzZSgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLG51bGwpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTyk7XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IHRydWU7IFxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmdldENoaWxkQnlOYW1lKFwib3BlbklEXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZDtcclxuICB9XHJcblxyXG4gIGNsb3NlUGF1c2UoKXtcclxuICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLG51bGwpO1xyXG4gICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuYWN0aXZlID0gZmFsc2U7IFxyXG5cclxuICB9XHJcblxyXG4gIGNsb3NlUmV3YXJkKCl7XHJcbiAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJld2FyZFwiKS5hY3RpdmUgPSBmYWxzZTsgXHJcbiAgfVxyXG5cclxuICBvcGVuU3RhbWluYSgpe1xyXG4gICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJTdGFtaW5hXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZVN0YW1pbmEoKXtcclxuICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiU3RhbWluYVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 -//------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/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/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() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/NewMode.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, '7fe14dRFQZKSKKAoEn4S7OU', 'NewMode'); -// Script/NewMode.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.text = 'hello'; - _this.btnStatic = 0; - _this.propName = ""; - return _this; - // update (dt) {} - } - // LIFE-CYCLE CALLBACKS: - // onLoad () {} - NewClass.prototype.start = function () { - var _this = this; - for (var i = 0; i < cc.fx.GameConfig.NEW_LEVEL.length; i++) { - if ((cc.fx.GameConfig.GM_INFO.level + 1) == cc.fx.GameConfig.NEW_LEVEL[i].level) { - this.propName = cc.fx.GameConfig.NEW_LEVEL[i].name; - var path = 'Window_Prop/' + this.propName; - cc.resources.load(path, cc.SpriteFrame, function (err, spriteFrame) { - if (err) { - console.error('动态加载背景图失败:', err); - return; - } - _this.node.getChildByName("icon").getComponent(cc.Sprite).spriteFrame = spriteFrame; - }); - break; - } - } - }; - NewClass.prototype.setMode = function (mode) { - this.btnStatic = mode; - var name = "GameScene"; - if (mode == 1) { - name = "HomeScene"; - } - cc.director.preloadScene(name, function () { - }); - }; - NewClass.prototype.clickBtn = function () { - cc.fx.AudioManager._instance.playEffect("anniu_Big", null); - if (this.btnStatic == 1) { - cc.director.loadScene("HomeScene"); - } - else if (this.btnStatic == 2) { - cc.director.loadScene("GameScene"); - } - }; - __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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxOZXdNb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVFLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBdURDO1FBcERHLFdBQUssR0FBYSxJQUFJLENBQUM7UUFHdkIsVUFBSSxHQUFXLE9BQU8sQ0FBQztRQUV2QixlQUFTLEdBQVcsQ0FBQyxDQUFDO1FBRXRCLGNBQVEsR0FBVyxFQUFFLENBQUM7O1FBNEN0QixpQkFBaUI7SUFDckIsQ0FBQztJQTNDRyx3QkFBd0I7SUFFeEIsZUFBZTtJQUVmLHdCQUFLLEdBQUw7UUFBQSxpQkFlQztRQWRHLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO1lBQ2xELElBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUM7Z0JBQ3pFLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDbkQsSUFBTSxJQUFJLEdBQUcsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQzVDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQUMsR0FBRyxFQUFFLFdBQTJCO29CQUNyRSxJQUFJLEdBQUcsRUFBRTt3QkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDakMsT0FBTztxQkFDVjtvQkFDRCxLQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7Z0JBQ3ZGLENBQUMsQ0FBQyxDQUFBO2dCQUNGLE1BQU07YUFDVDtTQUNKO0lBQ0wsQ0FBQztJQUVELDBCQUFPLEdBQVAsVUFBUSxJQUFXO1FBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxJQUFJLEdBQUcsV0FBVyxDQUFDO1FBQ3ZCLElBQUcsSUFBSSxJQUFJLENBQUMsRUFBQztZQUNULElBQUksR0FBRyxXQUFXLENBQUM7U0FDdEI7UUFDRCxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUU7UUFFL0IsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsMkJBQVEsR0FBUjtRQUNJLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELElBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLEVBQUM7WUFDbkIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDdEM7YUFDSSxJQUFHLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxFQUFDO1lBQ3hCLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQztJQWpERDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDOzJDQUNJO0lBR3ZCO1FBREMsUUFBUTswQ0FDYztJQU5OLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0F1RDVCO0lBQUQsZUFBQztDQXZERCxBQXVEQyxDQXZEcUMsRUFBRSxDQUFDLFNBQVMsR0F1RGpEO2tCQXZEb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5XHJcbiAgICB0ZXh0OiBzdHJpbmcgPSAnaGVsbG8nO1xyXG5cclxuICAgIGJ0blN0YXRpYzogbnVtYmVyID0gMDtcclxuXHJcbiAgICBwcm9wTmFtZTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuXHJcbiAgICAvLyBvbkxvYWQgKCkge31cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8Y2MuZnguR2FtZUNvbmZpZy5ORVdfTEVWRUwubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZigoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsKzEpID09IGNjLmZ4LkdhbWVDb25maWcuTkVXX0xFVkVMW2ldLmxldmVsKXtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvcE5hbWUgPSBjYy5meC5HYW1lQ29uZmlnLk5FV19MRVZFTFtpXS5uYW1lO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9ICdXaW5kb3dfUHJvcC8nICsgdGhpcy5wcm9wTmFtZTtcclxuICAgICAgICAgICAgICAgIGNjLnJlc291cmNlcy5sb2FkKHBhdGgsIGNjLlNwcml0ZUZyYW1lLCAoZXJyLCBzcHJpdGVGcmFtZTogY2MuU3ByaXRlRnJhbWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9veiDjOaZr+WbvuWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gc3ByaXRlRnJhbWU7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TW9kZShtb2RlOm51bWJlcil7XHJcbiAgICAgICAgdGhpcy5idG5TdGF0aWMgPSBtb2RlO1xyXG4gICAgICAgIGxldCBuYW1lID0gXCJHYW1lU2NlbmVcIjtcclxuICAgICAgICBpZihtb2RlID09IDEpe1xyXG4gICAgICAgICAgICBuYW1lID0gXCJIb21lU2NlbmVcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKG5hbWUsICgpPT57XHJcblxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgY2xpY2tCdG4oKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIixudWxsKTtcclxuICAgICAgICBpZih0aGlzLmJ0blN0YXRpYyA9PSAxKXtcclxuICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMuYnRuU3RhdGljID09IDIpeyBcclxuICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ== -//------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) { - }); - var data = { - time: Map_1.default._instance.count_Time, - add_Time: Map_1.default._instance.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.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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTY2VuZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkJBQWdDO0FBQ2hDLGlEQUFnRDtBQUUxQyxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUEwQyxnQ0FBWTtJQUF0RDtRQUFBLHFFQW1RQztRQWhRRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFHdkIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUd2QixZQUFNLEdBQVksSUFBSSxDQUFDO1FBR3ZCLGdCQUFVLEdBQVksSUFBSSxDQUFDO1FBRzNCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFJdEIsaUJBQVcsR0FBc0IsRUFBRSxDQUFDO1FBR3BDLGlCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUdwQyx5REFBeUQ7UUFDekQsbURBQW1EO1FBRW5ELFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGFBQU8sR0FBVyxFQUFFLENBQUM7O0lBaU96QixDQUFDO0lBN05HLHdCQUF3QjtJQUV4Qiw2QkFBTSxHQUFOO1FBQ0ksRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLFVBQVUsQ0FBQztZQUNQLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUc7Z0JBQ3RDLElBQUksR0FBRyxFQUFFO29CQUNMLDZDQUE2QztvQkFDN0MsT0FBTztpQkFDVjtnQkFDRCxxQ0FBcUM7WUFDekMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFYixDQUFDO0lBRUQsK0JBQVEsR0FBUjtRQUFBLGlCQVVDO1FBVEcsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLElBQU0sSUFBSSxHQUFHLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDOUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxXQUFXLEVBQUUsVUFBQyxHQUFHLEVBQUUsV0FBMkI7WUFDckUsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2pDLE9BQU87YUFDVjtZQUNELEtBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDNUcsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsMENBQW1CLEdBQW5CO1FBQUEsaUJBYUM7UUFaRyxJQUFNLElBQUksR0FBRyxVQUFVLENBQUM7UUFDeEIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBQyxHQUFHLEVBQUUsTUFBMEI7WUFDekUsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2xDLE9BQU87YUFDVjtZQUVELEtBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDO1lBQzlCLEtBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixLQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixxRUFBcUU7UUFDekUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsd0NBQWlCLEdBQWpCO1FBQ0ksSUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxRQUFRLEVBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQztZQUN2QixJQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxJQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxJQUFJLE1BQU0sS0FBSyxDQUFDLENBQUM7Z0JBQUUsT0FBTyxDQUFDLENBQUM7WUFDNUIsSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDN0IsT0FBTyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUVELHNDQUFlLEdBQWY7UUFDSSxJQUFNLEtBQUssR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0Isc0RBQXNEO1lBQ3RELElBQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakQsSUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRCxJQUFJLE1BQU0sS0FBSyxDQUFDLENBQUM7Z0JBQUUsT0FBTyxDQUFDLENBQUM7WUFDNUIsSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDN0IsT0FBTyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELDhCQUFPLEdBQVA7UUFDSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsRUFBRSxDQUFDOztZQUN2QixhQUFhO1lBQ2IsSUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLDBDQUFHLENBQUMsTUFBSyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUQsSUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLDBDQUFHLENBQUMsTUFBSyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUQsT0FBTyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELDRCQUFLLEdBQUw7SUFFQSxDQUFDO0lBRUQsZ0NBQVMsR0FBVDtRQUNJLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUc7WUFDbkMsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUM1QztpQkFBTTtnQkFDSCxxQ0FBcUM7Z0JBQ3JDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3RDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFUCxDQUFDO0lBRUQsaUNBQVUsR0FBVjtRQUNJLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEVBQUM7WUFDekYsSUFBRyxhQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUM7Z0JBQ3ZDLHlCQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbkMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLFVBQUMsSUFBSTtnQkFDckMsQ0FBQyxDQUFDLENBQUE7Z0JBQ0YsSUFBSSxJQUFJLEdBQUc7b0JBQ1AsSUFBSSxFQUFDLGFBQVcsQ0FBQyxTQUFTLENBQUMsVUFBVTtvQkFDckMsUUFBUSxFQUFDLGFBQVcsQ0FBQyxTQUFTLENBQUMsUUFBUTtvQkFDdkMsTUFBTSxFQUFDLFNBQVM7aUJBQ25CLENBQUE7Z0JBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBQyxJQUFJLENBQUMsQ0FBQzthQUNwRDtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25HLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxLQUFLLENBQUMsQ0FBQztZQUM1RixFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsVUFBQyxHQUFHLEVBQUUsS0FBSztnQkFDN0MsSUFBSSxHQUFHLEVBQUU7b0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDdEMsT0FBTztpQkFDVjtZQUVMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsVUFBVSxDQUFDO2dCQUNQLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNaO0lBQ0wsQ0FBQztJQUdELDJDQUFvQixHQUFwQixVQUFxQixLQUFnQixFQUFFLFFBQW9CO1FBQTNELGlCQXdCQztRQXZCRyxJQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQyxZQUFZO1FBQ25DLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVkLElBQU0sWUFBWSxHQUFHO1lBQ2pCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNkLE9BQU8sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxHQUFHLFVBQVUsRUFBRTtnQkFDL0MsSUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixJQUFJLElBQUksRUFBRTtvQkFFTixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztpQkFDdkI7Z0JBQ0QsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsS0FBSyxFQUFFLENBQUM7YUFDWDtZQUVELElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RCLEtBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3RDO2lCQUFNO2dCQUNILFFBQVEsRUFBRSxDQUFDO2FBQ2Q7UUFDTCxDQUFDLENBQUM7UUFFRixZQUFZLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsYUFBYTtJQUNiLHlDQUFrQixHQUFsQjtRQUNJLElBQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO1FBQ2pELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUU7WUFDaEMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZ0NBQVMsR0FBVDtRQUNJLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdELElBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxFQUFDO1lBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ2hELGFBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUN0QztJQUVMLENBQUM7SUFFRCxpQ0FBVSxHQUFWO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDakQsSUFBRyxhQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLEVBQUM7WUFDdkUsYUFBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztJQUVELGtDQUFXLEdBQVgsVUFBWSxJQUFJO1FBQ1osYUFBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvRSxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUN6QixVQUFVLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkQsVUFBVSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ25ELFVBQVUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNsRCxVQUFVLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0UsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ2xELENBQUM7SUFFRCwrQkFBUSxHQUFSO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9FLElBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxFQUFDO1lBQ3BFLFVBQVUsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoRixJQUFHLElBQUksQ0FBQyxPQUFPLElBQUksUUFBUTtnQkFDekIsYUFBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztpQkFDL0IsSUFBRyxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVE7Z0JBQzlCLGFBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7aUJBQy9CLElBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPO2dCQUM3QixhQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQztJQUlELG1DQUFZLEdBQVo7UUFDSSxhQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDcEMsSUFBSSxTQUFTLEdBQUcsYUFBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckcsSUFBSSxTQUFTLEdBQUcsYUFBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEcsSUFBSSxRQUFRLEdBQUcsYUFBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckcsSUFBRyxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVE7WUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM1RSxJQUFHLElBQUksQ0FBQyxPQUFPLElBQUksUUFBUTtZQUFFLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2pGLElBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPO1lBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEYsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDakYsQ0FBQztJQUVELDZCQUFNLEdBQU4sVUFBUSxFQUFFO0lBRVYsQ0FBQztJQS9QRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDOytDQUNJO0lBR3ZCO1FBREMsUUFBUTs4Q0FDYztJQUd2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO2dEQUNLO0lBR3ZCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7Z0RBQ0s7SUFHdkI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztvREFDUztJQUczQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOytDQUNJO0lBSXRCO1FBREMsUUFBUSxDQUFDLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBQyxNQUFNLEVBQUMsQ0FBQztxREFDVjtJQUdwQztRQURDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUMsTUFBTSxFQUFDLENBQUM7cURBQ1Y7SUF6Qm5CLFlBQVk7UUFEaEMsT0FBTztPQUNhLFlBQVksQ0FtUWhDO0lBQUQsbUJBQUM7Q0FuUUQsQUFtUUMsQ0FuUXlDLEVBQUUsQ0FBQyxTQUFTLEdBbVFyRDtrQkFuUW9CLFlBQVkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4vTWFwXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjZW5lTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHlcclxuICAgIHRleHQ6IHN0cmluZyA9ICdoZWxsbyc7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmcmVlemU6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgaGFtbWVyOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hZ2ljX3dhbmQ6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgcGF1c2U6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5QcmVmYWJdLCB0b29sdGlwOlwi5pa55Z2X5pWw57uEXCJ9KVxyXG4gICAgQmxvY2tfQXJyYXkgOiBBcnJheTxjYy5QcmVmYWI+ID0gW107XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuWimeWjgeaVsOe7hFwifSlcclxuICAgIFdhbGxfUHJlZmFiIDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gQHByb3BlcnR5KHt0eXBlOiBbY2MuUGFydGljbGVTeXN0ZW1dLCB0b29sdGlwOlwi57KS5a2Q5pWw57uEXCJ9KVxyXG4gICAgLy8gcGFydGljbGVFZmZlY3RzIDogQXJyYXk8Y2MuUGFydGljbGVTeXN0ZW0+ID0gW107XHJcblxyXG4gICAgbG9hZDEgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQyIDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMyA6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gICAgYnRuTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgICBjYWxsQmFjazogYW55O1xyXG5cclxuICAgIFxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICBjYy5nYW1lLnNldEZyYW1lUmF0ZSg2Myk7IFxyXG4gICAgICAgIHRoaXMuY2hhbmdlQmcoKTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcign6aKE5Yqg6L29IEhvbWVTY2VuZSDlnLrmma/lpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5oiQ5Yqf6aKE5Yqg6L29IEhvbWVTY2VuZSDlnLrmma8nKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNoYW5nZUJnKCl7XHJcbiAgICAgICAgbGV0IG51bWJlciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDgpICsgMTtcclxuICAgICAgICBjb25zdCBwYXRoID0gJ2JnL2JnJyArIG51bWJlcjtcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZChwYXRoLCBjYy5TcHJpdGVGcmFtZSwgKGVyciwgc3ByaXRlRnJhbWU6IGNjLlNwcml0ZUZyYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9veiDjOaZr+WbvuWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpLmdldENoaWxkQnlOYW1lKFwiYmdcIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBzcHJpdGVGcmFtZTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIGxvYWRQYXJ0aWNsZUVmZmVjdHMoKSB7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9ICdQYXJ0aWNsZSc7XHJcbiAgICAgICAgY2MucmVzb3VyY2VzLmxvYWREaXIocGF0aCwgY2MuUGFydGljbGVBc3NldCwgKGVyciwgYXNzZXRzOiBjYy5QYXJ0aWNsZUFzc2V0W10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L2957KS5a2Q54m55pWI5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucGFydGljbGVFZmZlY3RzID0gYXNzZXRzO1xyXG4gICAgICAgICAgICB0aGlzLnNldFBhcnRpY2xlU29ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygn57KS5a2Q54m55pWI5Yqg6L295oiQ5Yqf77yM5YWx5Yqg6L295LqGJywgdGhpcy5wYXJ0aWNsZUVmZmVjdHMubGVuZ3RoLCAn5Liq57KS5a2Q54m55pWIJyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0V2FsbFByZWZhYlNvcnQoKSB7XHJcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBbJ2Rvd24nLCAnZG93bkxlZnQnLCAnZG93blJpZ2h0JywgJ2xlZnQnLCdyaWdodCcsJ3VwJywndXBMZWZ0JywndXBSaWdodCddO1xyXG4gICAgICAgIHRoaXMuV2FsbF9QcmVmYWIuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEEgPSBvcmRlci5pbmRleE9mKGEubmFtZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QiA9IG9yZGVyLmluZGV4T2YoYi5uYW1lKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QSA9PT0gLTEpIHJldHVybiAxO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhCID09PSAtMSkgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXhBIC0gaW5kZXhCO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIHNldFBhcnRpY2xlU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsndG9wJywgJ2JvdCcsICdyaWcnLCAnbGVmJ107XHJcbiAgICAgICAgdGhpcy5wYXJ0aWNsZUVmZmVjdHMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhhLm5hbWUuc3Vic3RyKDAsMyksYi5uYW1lLnN1YnN0cigwLDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhBID0gb3JkZXIuaW5kZXhPZihhLm5hbWUuc3Vic3RyKDAsMykpO1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEIgPSBvcmRlci5pbmRleE9mKGIubmFtZS5zdWJzdHIoMCwzKSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEEgPT09IC0xKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QiA9PT0gLTEpIHJldHVybiAtMTtcclxuICAgICAgICAgICAgcmV0dXJuIGluZGV4QSAtIGluZGV4QjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRTb3J0KCl7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOS7juWQjeensOS4reaPkOWPluaVsOWtl+mDqOWIhlxyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJBID0gcGFyc2VJbnQoYS5uYW1lLm1hdGNoKC9cXGQrLyk/LlswXSB8fCAnMCcsIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQiA9IHBhcnNlSW50KGIubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIHJldHVybiBudW1iZXJBIC0gbnVtYmVyQjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5oiQ5Yqf5YiH5o2i5YiwIEhvbWVTY2VuZSDlnLrmma8nKTtcclxuICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCl7XHJcbiAgICAgICAgaWYodGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJidG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpe1xyXG4gICAgICAgICAgICBpZihNYXBDb25yb2xlci5faW5zdGFuY2UuZ2FtZVN0YXJ0ID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOWHj+WwkVwiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoLTEsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGltZTpNYXBDb25yb2xlci5faW5zdGFuY2UuY291bnRfVGltZSwgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBhZGRfVGltZTpNYXBDb25yb2xlci5faW5zdGFuY2UuYWRkX1RpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OlwiZ2l2ZV91cFwiXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJmaW5pc2hfc3RhZ2VcIixkYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJQYXVzZVwiKS5nZXRDaGlsZEJ5TmFtZShcImJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsbnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLFwidXBcIixmYWxzZSk7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgICAgIH0sIDEyMDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgZGVzdHJveU5vZGVzSW5GcmFtZXMobm9kZXM6IGNjLk5vZGVbXSwgY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcclxuICAgICAgICBjb25zdCBCQVRDSF9TSVpFID0gMTA7IC8vIOavj+W4p+mUgOavgeeahOiKgueCueaVsOmHj1xyXG4gICAgICAgIGxldCBpbmRleCA9IDA7XHJcblxyXG4gICAgICAgIGNvbnN0IGRlc3Ryb3lCYXRjaCA9ICgpID0+IHtcclxuICAgICAgICAgICAgbGV0IGNvdW50ID0gMDtcclxuICAgICAgICAgICAgd2hpbGUgKGluZGV4IDwgbm9kZXMubGVuZ3RoICYmIGNvdW50IDwgQkFUQ0hfU0laRSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW2luZGV4XTtcclxuICAgICAgICAgICAgICAgIGlmIChub2RlKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIG5vZGUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICAgICAgY291bnQrKztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGluZGV4IDwgbm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlT25jZShkZXN0cm95QmF0Y2gsIDYpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGRlc3Ryb3lCYXRjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOaUuei/m+WQjueahOWIh+aNouWcuuaZr+aWueazlVxyXG4gICAgc3dpdGNoVG9FbXB0eVNjZW5lKCkge1xyXG4gICAgICAgIGNvbnN0IGFsbE5vZGVzID0gY2MuZGlyZWN0b3IuZ2V0U2NlbmUoKS5jaGlsZHJlbjtcclxuICAgICAgICB0aGlzLmRlc3Ryb3lOb2Rlc0luRnJhbWVzKGFsbE5vZGVzLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuUGF1c2UoKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9saXR0bGVcIixudWxsKTtcclxuICAgICAgICBpZih0aGlzLnBhdXNlLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKXtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUGF1c2UoKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9saXR0bGVcIixudWxsKTtcclxuICAgICAgICB0aGlzLnBhdXNlLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuYWN0aXZlID0gZmFsc2U7IFxyXG4gICAgICAgIGlmKE1hcENvbnJvbGVyLl9pbnN0YW5jZS5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB9IFxyXG4gICAgfVxyXG5cclxuICAgIG9wZW5Qcm9wQnV5KG5hbWUpe1xyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5idG5OYW1lID0gbmFtZTtcclxuICAgICAgICBsZXQgcHJvcFdpbmRvdyA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVcIikuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpO1xyXG4gICAgICAgIHByb3BXaW5kb3cuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwiZnJlZXplXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJoYW1tZXJcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcIm1hZ2ljXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJidXlfQnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShuYW1lKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrQnRuKCl7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsbnVsbCk7XHJcbiAgICAgICAgbGV0IHByb3BXaW5kb3cgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpLmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKTtcclxuICAgICAgICBpZihwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwiYnV5X0J0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCl7XHJcbiAgICAgICAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcImJ1eV9CdG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgaWYodGhpcy5idG5OYW1lID09IFwiZnJlZXplXCIpXHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuYnV5RnJlZXplKCk7XHJcbiAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLmJ0bk5hbWUgPT0gXCJoYW1tZXJcIilcclxuICAgICAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5idXlIYW1tZXIoKTtcclxuICAgICAgICAgICAgICBlbHNlIGlmKHRoaXMuYnRuTmFtZSA9PSBcIm1hZ2ljXCIpXHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuYnV5TWFnaWMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBjbG9zZVByb3BCdXkoKXtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICBsZXQgZnJlZXplQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwidGltZUJ0blwiKTtcclxuICAgICAgICBsZXQgaGFtbWVyQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSBNYXBDb25yb2xlci5faW5zdGFuY2Uubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJtYWdpY0J0blwiKTtcclxuICAgICAgICBpZih0aGlzLmJ0bk5hbWUgPT0gXCJmcmVlemVcIikgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgZWxzZSBpZih0aGlzLmJ0bk5hbWUgPT0gXCJoYW1tZXJcIikgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7IFxyXG4gICAgICAgIGVsc2UgaWYodGhpcy5idG5OYW1lID09IFwibWFnaWNcIikgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKS5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlIChkdCkge1xyXG5cclxuICAgIH1cclxufVxyXG4iXX0= -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/RankManager.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, '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/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() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/Wall.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, '87a44m5f/pPAKIrsyArSr/V', 'Wall'); -// Script/Wall.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.WallColor = exports.WallType = exports.WallSpecial = void 0; -var Map_1 = require("./Map"); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var WallSpecial; -(function (WallSpecial) { - /*普通门*/ - WallSpecial[WallSpecial["\u666E\u901A\u95E8"] = 0] = "\u666E\u901A\u95E8"; - /*星星门*/ - WallSpecial[WallSpecial["\u661F\u661F\u95E8"] = 1] = "\u661F\u661F\u95E8"; - /*开关门*/ - WallSpecial[WallSpecial["\u5F00\u5173\u95E8"] = 2] = "\u5F00\u5173\u95E8"; - /*冻结门 */ - WallSpecial[WallSpecial["\u51BB\u7ED3\u95E8"] = 3] = "\u51BB\u7ED3\u95E8"; -})(WallSpecial = exports.WallSpecial || (exports.WallSpecial = {})); -var WallType; -(function (WallType) { - /*普通地块 */ - WallType[WallType["\u95E8\u6A2A\u5411\u4E0B"] = 0] = "\u95E8\u6A2A\u5411\u4E0B"; - /*起点地块 */ - WallType[WallType["\u95E8\u6A2A\u5411\u4E0A"] = 1] = "\u95E8\u6A2A\u5411\u4E0A"; - /*湿地 */ - WallType[WallType["\u95E8\u7AD6\u5411\u53F3"] = 2] = "\u95E8\u7AD6\u5411\u53F3"; - /*山峰 */ - WallType[WallType["\u95E8\u7AD6\u5411\u5DE6"] = 3] = "\u95E8\u7AD6\u5411\u5DE6"; - /*终点地块 */ - WallType[WallType["\u5899\u6A2A\u5411\u4E0B"] = 4] = "\u5899\u6A2A\u5411\u4E0B"; - /*息壤 */ - WallType[WallType["\u5899\u6A2A\u5411\u4E0A"] = 5] = "\u5899\u6A2A\u5411\u4E0A"; - /*加固 */ - WallType[WallType["\u5899\u7AD6\u5411\u53F3"] = 6] = "\u5899\u7AD6\u5411\u53F3"; - /*加固 */ - WallType[WallType["\u5899\u7AD6\u5411\u5DE6"] = 7] = "\u5899\u7AD6\u5411\u5DE6"; -})(WallType = exports.WallType || (exports.WallType = {})); -var WallColor; -(function (WallColor) { - /*普通地块 */ - WallColor[WallColor["\u7D2B\u8272"] = 0] = "\u7D2B\u8272"; - /*湿地 */ - WallColor[WallColor["\u9EC4\u8272"] = 1] = "\u9EC4\u8272"; - /*山峰 */ - WallColor[WallColor["\u7EFF\u8272"] = 2] = "\u7EFF\u8272"; - /*终点地块 */ - WallColor[WallColor["\u84DD\u8272"] = 3] = "\u84DD\u8272"; - /*息壤 */ - WallColor[WallColor["\u7C89\u8272"] = 4] = "\u7C89\u8272"; - /*加固 */ - WallColor[WallColor["\u6A58\u9EC4\u8272"] = 5] = "\u6A58\u9EC4\u8272"; - /*加固 */ - WallColor[WallColor["\u9752\u8272"] = 6] = "\u9752\u8272"; - /*加固 */ - WallColor[WallColor["\u767D\u8272"] = 7] = "\u767D\u8272"; - /*普通地块 */ - WallColor[WallColor["\u7EA2\u8272"] = 8] = "\u7EA2\u8272"; - /*普通地块 */ - WallColor[WallColor["\u7070\u8272"] = 9] = "\u7070\u8272"; -})(WallColor = exports.WallColor || (exports.WallColor = {})); -var Wall = /** @class */ (function (_super) { - __extends(Wall, _super); - function Wall() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.number = null; - _this.type = WallType.墙横向下; - _this.special = WallSpecial.普通门; - _this.color = WallColor.紫色; - _this.wall_SpriteFrames = null; - _this.down_SpriteFrames = null; - return _this; - // update (dt) {} - } - // LIFE-CYCLE CALLBACKS: - // onLoad () {} - Wall.prototype.start = function () { - // console.log(this.type); - }; - Wall.prototype.jsonDeepClone = function (obj) { - return JSON.parse(JSON.stringify(obj)); - }; - Wall.prototype.init = function (wall_Info, posX, posY, direction) { - this.wall_Info = this.jsonDeepClone(wall_Info); - // this.open = true; - if (wall_Info == null) { - this.posX = posX; - this.posY = posY; - if (direction) - this.direction = direction; - // console.log("门方向赋值",direction); - if (direction == "up") { - this.node.parent.zIndex = 100 + this.posX - this.posY * 3; - } - else if (direction == "down" || direction == "right" || - direction == "rightdown" || direction == "downright" - || direction == "rightup" || direction == "upright") { - this.node.parent.zIndex = 30 + this.posX - this.posY * 3; - } - else if (direction == "left" || direction == "leftdown" || direction == "downleft") { - this.node.parent.zIndex = 70 + this.posX - this.posY * 3; - } - else - this.node.parent.zIndex = 70 + this.posX - this.posY * 3; - Map_1.default._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id = "Wall"; - //console.log(this.posX,this.posY,MapConroler._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id); - // console.log(this.posX,this.posY,this.node.zIndex); - //this.node.getChildByName("num").getComponent(cc.Label).string = direction; - //this.node.getChildByName("num").getComponent(cc.Label).string = ":" + this.node.parent.zIndex; - } - if (wall_Info != null) { - this.color = wall_Info.color; - this.special = wall_Info.special; - this.initType(); - if (wall_Info.length > 0) { - this.initColor(wall_Info.length); - } - else - this.node.removeComponent("cc.Sprite"); - if (this.posX != null) { - Map_1.default._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id = "Wall"; - //console.log(this.posX,this.posY,MapConroler._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id); - } - } - // setTimeout(() => { - // this.node.getChildByName("num").getComponent(cc.Label).string = ":" + this.node.parent.zIndex; - // }, 1000); - }; - //创建门的颜色 - Wall.prototype.initColor = function (length) { - var direction = this.node.parent.name; - var double = 0; - if (direction == "left" || direction == "right") { - double = 3; - } - // debugger; - if (this.wall_SpriteFrames) { - var name = this.color + "color" + (length + double); - var spriteFrame = this.wall_SpriteFrames._spriteFrames[name]; - this.node.getComponent(cc.Sprite).spriteFrame = spriteFrame; - } - if (this.down_SpriteFrames) { - var name2 = this.color + "down" + (length + double); - var downFrame = this.down_SpriteFrames._spriteFrames[name2]; - this.node.parent.getChildByName("down").getComponent(cc.Sprite).spriteFrame = downFrame; - } - }; - //创建特殊类型门 - Wall.prototype.initType = function () { - switch (this.special) { - case WallSpecial.星星门: - var star = cc.instantiate(Map_1.default._instance.Block_Prop[this.special]); - star.parent = this.node.parent; - // console.log("门的方向",this.direction,"长度",this.wall_Info.length); - // star.scaleX = star.scaleY = 0.5; - if (this.wall_Info.length > 0) { - if (this.direction == "right" || this.direction == "left") { - star.children[this.wall_Info.length + 2].active = true; - } - else if (this.direction == "up" || this.direction == "down") { - star.children[this.wall_Info.length - 1].active = true; - } - } - star.setPosition(this.node.width / 2 + this.node.x, this.node.height / 2 + this.node.y); - break; - case WallSpecial.开关门: - var name = "open" + this.wall_Info.length; - this.openNode = this.node.parent.getChildByName("open").getChildByName(name); - this.openNode.active = true; - if (this.wall_Info.lock == false) { - this.open = true; - this.openNode.children[0].scaleX *= 0.01; - this.openNode.children[1].scaleX *= 0.01; - } - else { - this.open = false; - } - break; - case WallSpecial.冻结门: - var freeze = "freeze" + this.wall_Info.length; - this.freezeNode = this.node.parent.getChildByName("freeze").getChildByName(freeze); - this.freezeNode.active = true; - if (this.wall_Info.freeze) { - this.freezeNode.getChildByName("num").getComponent(cc.Label).string = this.wall_Info.freeze + ""; - } - break; - } - }; - //播放星星门通过 - Wall.prototype.playStarDoor = function () { - if (this.node.parent.getChildByName("star")) { - var star = this.node.parent.getChildByName("star"); - for (var i = 0; i < star.children.length; i++) { - if (star.children[i].active == true) { - var starChild = star.children[i]; - for (var j = 0; j < starChild.children.length; j++) { - starChild.children[j].active = true; - starChild.children[j].getComponent(sp.Skeleton).setAnimation(1, "taopao1", false); - } - } - } - } - }; - //改变开关门状态 - Wall.prototype.changeLock = function () { - this.open = !this.open; - console.log("开关门状态改变", this.open); - if (!this.openNode.active) { - this.openNode.active = true; - } - var fill = this.openNode.children[0].scaleX == 1 ? 0.01 : 1; - if (this.openNode.children[0].scaleX < 0) - fill = -fill; - // console.log("目标",fill); - cc.tween(this.openNode.children[0]) - .to(0.3, { scaleX: this.openNode.children[0].scaleX < 0 ? -fill : fill }) - .call(function () { - // console.log("左边完成"); - }) - .start(); - cc.tween(this.openNode.children[1]) - .to(0.3, { scaleX: this.openNode.children[1].scaleX < 0 ? -fill : fill }) - .call(function () { - // console.log("右边完成"); - }) - .start(); - }; - Wall.prototype.changeFreeze = function () { - var numStr = this.freezeNode.getChildByName("num").getComponent(cc.Label); - var num = parseInt(numStr.string); - num -= 1; - this.freezeNode.getChildByName("num").getComponent(cc.Label).string = num + ""; - if (num == 0) { - this.freezeNode.parent.active = false; - } - }; - Wall.prototype.downDoor = function () { - if (this.openNode) { - if (this.openNode.children[0].scaleX == 1) - return; - } - if (this.freezeNode) { - if (this.freezeNode.active == true) - return; - } - this.node.opacity = 0; - if (this.special == WallSpecial.星星门) { - this.node.parent.getChildByName("star").y -= 10; - } - this.node.parent.getChildByName("down").active = true; - }; - Wall.prototype.upDoor = function () { - if (this.special == WallSpecial.星星门) { - this.node.parent.getChildByName("star").y += 10; - } - this.node.parent.getChildByName("down").active = false; - this.node.opacity = 250; - }; - __decorate([ - property(cc.Label) - ], Wall.prototype, "number", void 0); - __decorate([ - property({ - tooltip: '墙或者门的方向', - type: cc.Enum(WallType), - }) - ], Wall.prototype, "type", void 0); - __decorate([ - property({ - tooltip: '墙或者门的方向', - type: cc.Enum(WallSpecial), - }) - ], Wall.prototype, "special", void 0); - __decorate([ - property({ - tooltip: '门的颜色', - type: cc.Enum(WallColor), - }) - ], Wall.prototype, "color", void 0); - __decorate([ - property(cc.SpriteAtlas) - ], Wall.prototype, "wall_SpriteFrames", void 0); - __decorate([ - property(cc.SpriteAtlas) - ], Wall.prototype, "down_SpriteFrames", void 0); - Wall = __decorate([ - ccclass - ], Wall); - return Wall; -}(cc.Component)); -exports.default = Wall; - -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxXYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRiw2QkFBZ0M7QUFFMUIsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFFMUMsSUFBWSxXQVNYO0FBVEQsV0FBWSxXQUFXO0lBQ25CLE9BQU87SUFDUCx5RUFBUyxDQUFBO0lBQ1QsT0FBTztJQUNQLHlFQUFTLENBQUE7SUFDVCxPQUFPO0lBQ1AseUVBQVMsQ0FBQTtJQUNULFFBQVE7SUFDUix5RUFBUyxDQUFBO0FBQ2IsQ0FBQyxFQVRXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBU3RCO0FBRUQsSUFBWSxRQWtCWDtBQWxCRCxXQUFZLFFBQVE7SUFFaEIsU0FBUztJQUNULCtFQUFVLENBQUE7SUFDVixTQUFTO0lBQ1QsK0VBQVUsQ0FBQTtJQUNWLE9BQU87SUFDUCwrRUFBVSxDQUFBO0lBQ1YsT0FBTztJQUNQLCtFQUFVLENBQUE7SUFDVixTQUFTO0lBQ1QsK0VBQVUsQ0FBQTtJQUNWLE9BQU87SUFDUCwrRUFBVSxDQUFBO0lBQ1YsT0FBTztJQUNQLCtFQUFVLENBQUE7SUFDVixPQUFPO0lBQ1AsK0VBQVUsQ0FBQTtBQUNkLENBQUMsRUFsQlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFrQm5CO0FBRUQsSUFBWSxTQXFCWDtBQXJCRCxXQUFZLFNBQVM7SUFDakIsU0FBUztJQUNULHlEQUFRLENBQUE7SUFDUixPQUFPO0lBQ1AseURBQVEsQ0FBQTtJQUNSLE9BQU87SUFDUCx5REFBUSxDQUFBO0lBQ1IsU0FBUztJQUNULHlEQUFRLENBQUE7SUFDUixPQUFPO0lBQ1AseURB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LFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUM3QixDQUFDO3lDQUNxQztJQU12QztRQUpDLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRSxNQUFNO1lBQ2YsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQzNCLENBQUM7dUNBQzhCO0lBR2hDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7bURBQ2dCO0lBR3pDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7bURBQ2dCO0lBM0J4QixJQUFJO1FBRHhCLE9BQU87T0FDYSxJQUFJLENBcVB4QjtJQUFELFdBQUM7Q0FyUEQsQUFxUEMsQ0FyUGlDLEVBQUUsQ0FBQyxTQUFTLEdBcVA3QztrQkFyUG9CLElBQUkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4vTWFwXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbmV4cG9ydCBlbnVtIFdhbGxTcGVjaWFse1xyXG4gICAgLyrmma7pgJrpl6gqL1xyXG4gICAgXCLmma7pgJrpl6hcIiA9IDAsICBcclxuICAgIC8q5pif5pif6ZeoKi9cclxuICAgIFwi5pif5pif6ZeoXCIgPSAxLCAgXHJcbiAgICAvKuW8gOWFs+mXqCovXHJcbiAgICBcIuW8gOWFs+mXqFwiID0gMiwgIFxyXG4gICAgLyrlhrvnu5Ppl6ggKi9cclxuICAgIFwi5Ya757uT6ZeoXCIgPSAzLCAgXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFdhbGxUeXBle1xyXG4gICAgXHJcbiAgICAvKuaZrumAmuWcsOWdlyAqL1xyXG4gICAgXCLpl6jmqKrlkJHkuItcIiA9IDAsICBcclxuICAgIC8q6LW354K55Zyw5Z2XICovXHJcbiAgICBcIumXqOaoquWQkeS4ilwiID0gMSwgIFxyXG4gICAgLyrmub/lnLAgKi9cclxuICAgIFwi6Zeo56uW5ZCR5Y+zXCIgPSAyLCAgXHJcbiAgICAvKuWxseWzsCAqL1xyXG4gICAgXCLpl6jnq5blkJHlt6ZcIiA9IDMsICBcclxuICAgIC8q57uI54K55Zyw5Z2XICovXHJcbiAgICBcIuWimeaoquWQkeS4i1wiID0gNCwgIFxyXG4gICAgLyrmga/lo6QgKi9cclxuICAgIFwi5aKZ5qiq5ZCR5LiKXCIgPSA1LCAgXHJcbiAgICAvKuWKoOWbuiAqL1xyXG4gICAgXCLlopnnq5blkJHlj7NcIiA9IDYsICBcclxuICAgIC8q5Yqg5Zu6ICovXHJcbiAgICBcIuWimeerluWQkeW3plwiID0gNywgIFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBXYWxsQ29sb3J7XHJcbiAgICAvKuaZrumAmuWcsOWdlyAqL1xyXG4gICAgXCLntKvoibJcIiA9IDAsICBcclxuICAgIC8q5rm/5ZywICovXHJcbiAgICBcIum7hOiJslwiID0gMSwgIFxyXG4gICAgLyrlsbHls7AgKi9cclxuICAgIFwi57u/6ImyXCIgPSAyLCAgXHJcbiAgICAvKue7iOeCueWcsOWdlyAqL1xyXG4gICAgXCLok53oibJcIiA9IDMsICBcclxuICAgIC8q5oGv5aOkICovXHJcbiAgICBcIueyieiJslwiID0gNCwgIFxyXG4gICAgLyrliqDlm7ogKi9cclxuICAgIFwi5qmY6buE6ImyXCIgPSA1LCAgXHJcbiAgICAvKuWKoOWbuiAqL1xyXG4gICAgXCLpnZLoibJcIiA9IDYsICBcclxuICAgIC8q5Yqg5Zu6ICovXHJcbiAgICBcIueZveiJslwiID0gNywgIFxyXG4gICAgLyrmma7pgJrlnLDlnZcgKi9cclxuICAgIFwi57qi6ImyXCIgPSA4LCBcclxuICAgIC8q5pmu6YCa5Zyw5Z2XICovXHJcbiAgICBcIueBsOiJslwiID0gOSwgXHJcbn1cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdhbGwgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIG51bWJlcjogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7XHJcbiAgICAgICAgdG9vbHRpcDogJ+WimeaIluiAhemXqOeahOaWueWQkScsXHJcbiAgICAgICAgdHlwZTogY2MuRW51bShXYWxsVHlwZSksXHJcbiAgICB9KVxyXG4gICAgdHlwZTogV2FsbFR5cGUgPSBXYWxsVHlwZS7lopnmqKrlkJHkuIs7XHJcblxyXG4gICAgQHByb3BlcnR5KHtcclxuICAgICAgICB0b29sdGlwOiAn5aKZ5oiW6ICF6Zeo55qE5pa55ZCRJyxcclxuICAgICAgICB0eXBlOiBjYy5FbnVtKFdhbGxTcGVjaWFsKSxcclxuICAgIH0pXHJcbiAgICBzcGVjaWFsOiBXYWxsU3BlY2lhbCA9IFdhbGxTcGVjaWFsLuaZrumAmumXqDtcclxuXHJcbiAgICBAcHJvcGVydHkoe1xyXG4gICAgICAgIHRvb2x0aXA6ICfpl6jnmoTpopzoibInLFxyXG4gICAgICAgIHR5cGU6IGNjLkVudW0oV2FsbENvbG9yKSxcclxuICAgIH0pXHJcbiAgICBjb2xvcjogV2FsbENvbG9yID0gV2FsbENvbG9yLue0q+iJsjtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuU3ByaXRlQXRsYXMpXHJcbiAgICB3YWxsX1Nwcml0ZUZyYW1lczogY2MuU3ByaXRlQXRsYXMgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5TcHJpdGVBdGxhcylcclxuICAgIGRvd25fU3ByaXRlRnJhbWVzOiBjYy5TcHJpdGVBdGxhcyA9IG51bGw7XHJcblxyXG5cclxuICAgIHBvc1g6IG51bWJlcjtcclxuICAgIHBvc1k6IG51bWJlcjtcclxuICAgIGRpcmVjdGlvbjogYW55O1xyXG4gICAgd2FsbF9JbmZvOiBhbnk7XHJcbiAgICBvcGVuTm9kZTogY2MuTm9kZTtcclxuICAgIGZyZWV6ZU5vZGU6IGNjLk5vZGU7XHJcbiAgICBvcGVuOmJvb2xlYW47XHJcbiAgICBcclxuXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuXHJcbiAgICAvLyBvbkxvYWQgKCkge31cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy50eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBqc29uRGVlcENsb25lPFQ+KG9iajogVCk6IFQge1xyXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQod2FsbF9JbmZvLCBwb3NYOiBudW1iZXIsIHBvc1k6IG51bWJlciwgZGlyZWN0aW9uOiBhbnkpe1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMud2FsbF9JbmZvID0gdGhpcy5qc29uRGVlcENsb25lKHdhbGxfSW5mbyk7XHJcbiAgICAgICAgLy8gdGhpcy5vcGVuID0gdHJ1ZTtcclxuICAgICAgICBpZih3YWxsX0luZm8gPT0gbnVsbCl7XHJcbiAgICAgICAgICAgIHRoaXMucG9zWCA9IHBvc1g7XHJcbiAgICAgICAgICAgIHRoaXMucG9zWSA9IHBvc1k7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZihkaXJlY3Rpb24pdGhpcy5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6Zeo5pa55ZCR6LWL5YC8XCIsZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgaWYoZGlyZWN0aW9uID09IFwidXBcIiApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC56SW5kZXggPSAxMDAgKyB0aGlzLnBvc1ggLSB0aGlzLnBvc1kqMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKCBkaXJlY3Rpb24gPT0gXCJkb3duXCIgfHwgZGlyZWN0aW9uID09IFwicmlnaHRcIiB8fCBcclxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9PSBcInJpZ2h0ZG93blwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25yaWdodFwiXHJcbiAgICAgICAgICAgIHx8IGRpcmVjdGlvbiA9PSBcInJpZ2h0dXBcIiB8fCBkaXJlY3Rpb24gPT0gXCJ1cHJpZ2h0XCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC56SW5kZXggPSAzMCArIHRoaXMucG9zWCAtIHRoaXMucG9zWSozO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKCBkaXJlY3Rpb24gPT0gXCJsZWZ0XCJ8fCBkaXJlY3Rpb24gPT0gXCJsZWZ0ZG93blwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25sZWZ0XCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC56SW5kZXggPSA3MCArIHRoaXMucG9zWCAtIHRoaXMucG9zWSozOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHRoaXMubm9kZS5wYXJlbnQuekluZGV4ID0gNzAgKyB0aGlzLnBvc1ggLSB0aGlzLnBvc1kqMztcclxuXHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5tYXBCbG9ja3NXYWxsW3RoaXMucG9zWF1bdGhpcy5wb3NZXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCA9IFwiV2FsbFwiO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMucG9zWCx0aGlzLnBvc1ksTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbdGhpcy5wb3NYXVt0aGlzLnBvc1ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5wb3NYLHRoaXMucG9zWSx0aGlzLm5vZGUuekluZGV4KTtcclxuICAgICAgICAgICAgLy90aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkaXJlY3Rpb247XHJcbiAgICAgICAgICAgLy90aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBcIjpcIiArIHRoaXMubm9kZS5wYXJlbnQuekluZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih3YWxsX0luZm8gIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPSB3YWxsX0luZm8uY29sb3I7XHJcbiAgICAgICAgICAgIHRoaXMuc3BlY2lhbCA9IHdhbGxfSW5mby5zcGVjaWFsO1xyXG4gICAgICAgICAgICB0aGlzLmluaXRUeXBlKCk7XHJcbiAgICAgICAgICAgIGlmKHdhbGxfSW5mby5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdENvbG9yKHdhbGxfSW5mby5sZW5ndGgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5ub2RlLnJlbW92ZUNvbXBvbmVudChcImNjLlNwcml0ZVwiKTtcclxuICAgICAgICAgICAgaWYodGhpcy5wb3NYICE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbdGhpcy5wb3NYXVt0aGlzLnBvc1ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkID0gXCJXYWxsXCI7XHJcbiAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMucG9zWCx0aGlzLnBvc1ksTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbdGhpcy5wb3NYXVt0aGlzLnBvc1ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAvLyAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI6XCIgKyB0aGlzLm5vZGUucGFyZW50LnpJbmRleDtcclxuICAgICAgICAvLyB9LCAxMDAwKTtcclxuIFxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu66Zeo55qE6aKc6ImyXHJcbiAgICBpbml0Q29sb3IobGVuZ3RoOiBudW1iZXIpe1xyXG4gICAgICAgIGxldCBkaXJlY3Rpb24gPSB0aGlzLm5vZGUucGFyZW50Lm5hbWU7XHJcbiAgICAgICAgbGV0IGRvdWJsZSA9IDA7XHJcbiAgICAgICAgaWYoZGlyZWN0aW9uID09IFwibGVmdFwiICB8fCBkaXJlY3Rpb24gPT0gXCJyaWdodFwiKXtcclxuICAgICAgICAgICAgZG91YmxlID0gMztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgIGlmKHRoaXMud2FsbF9TcHJpdGVGcmFtZXMpe1xyXG4gICAgICAgICAgICBsZXQgbmFtZSA9IHRoaXMuY29sb3IrXCJjb2xvclwiICsgKGxlbmd0aCtkb3VibGUpO1xyXG4gICAgICAgICAgICB2YXIgc3ByaXRlRnJhbWUgPSB0aGlzLndhbGxfU3ByaXRlRnJhbWVzLl9zcHJpdGVGcmFtZXNbbmFtZV07XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHNwcml0ZUZyYW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0aGlzLmRvd25fU3ByaXRlRnJhbWVzKXtcclxuICAgICAgICAgICAgbGV0IG5hbWUyID0gdGhpcy5jb2xvciArIFwiZG93blwiICsgKGxlbmd0aCtkb3VibGUpO1xyXG4gICAgICAgICAgICB2YXIgZG93bkZyYW1lID0gdGhpcy5kb3duX1Nwcml0ZUZyYW1lcy5fc3ByaXRlRnJhbWVzW25hbWUyXTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcImRvd25cIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBkb3duRnJhbWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIFxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu654m55q6K57G75Z6L6ZeoXHJcbiAgICBpbml0VHlwZSgpe1xyXG4gICAgICAgIHN3aXRjaCh0aGlzLnNwZWNpYWwpe1xyXG4gICAgICAgICAgICBjYXNlIFdhbGxTcGVjaWFsLuaYn+aYn+mXqDpcclxuICAgICAgICAgICAgICAgIGxldCBzdGFyID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbdGhpcy5zcGVjaWFsXSk7XHJcbiAgICAgICAgICAgICAgICBzdGFyLnBhcmVudCA9IHRoaXMubm9kZS5wYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIumXqOeahOaWueWQkVwiLHRoaXMuZGlyZWN0aW9uLFwi6ZW/5bqmXCIsdGhpcy53YWxsX0luZm8ubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgIC8vIHN0YXIuc2NhbGVYID0gc3Rhci5zY2FsZVkgPSAwLjU7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLndhbGxfSW5mby5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmRpcmVjdGlvbiA9PSBcInJpZ2h0XCIgfHwgdGhpcy5kaXJlY3Rpb24gPT0gXCJsZWZ0XCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFyLmNoaWxkcmVuW3RoaXMud2FsbF9JbmZvLmxlbmd0aCArIDJdLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5kaXJlY3Rpb24gPT0gXCJ1cFwiIHx8IHRoaXMuZGlyZWN0aW9uID09IFwiZG93blwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Rhci5jaGlsZHJlblt0aGlzLndhbGxfSW5mby5sZW5ndGggLSAxXS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHN0YXIuc2V0UG9zaXRpb24odGhpcy5ub2RlLndpZHRoLzIrdGhpcy5ub2RlLngsdGhpcy5ub2RlLmhlaWdodC8yK3RoaXMubm9kZS55KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFdhbGxTcGVjaWFsLuW8gOWFs+mXqDpcclxuICAgICAgICAgICAgICAgIGxldCBuYW1lID0gXCJvcGVuXCIgKyB0aGlzLndhbGxfSW5mby5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5Ob2RlID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIm9wZW5cIikuZ2V0Q2hpbGRCeU5hbWUobmFtZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5Ob2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLndhbGxfSW5mby5sb2NrID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW4gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0uc2NhbGVYICo9IDAuMDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuTm9kZS5jaGlsZHJlblsxXS5zY2FsZVggKj0gMC4wMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBXYWxsU3BlY2lhbC7lhrvnu5Ppl6g6XHJcbiAgICAgICAgICAgICAgICBsZXQgZnJlZXplID0gXCJmcmVlemVcIiArIHRoaXMud2FsbF9JbmZvLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplTm9kZSA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJmcmVlemVcIikuZ2V0Q2hpbGRCeU5hbWUoZnJlZXplKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplTm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy53YWxsX0luZm8uZnJlZXplKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZU5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxfSW5mby5mcmVlemUrXCJcIjtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9IFxyXG4gICAgfVxyXG5cclxuICAgIC8v5pKt5pS+5pif5pif6Zeo6YCa6L+HXHJcbiAgICBwbGF5U3RhckRvb3IoKXtcclxuICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwic3RhclwiKSl7XHJcbiAgICAgICAgICAgIGxldCBzdGFyID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInN0YXJcIik7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHN0YXIuY2hpbGRyZW4ubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgaWYoc3Rhci5jaGlsZHJlbltpXS5hY3RpdmUgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHN0YXJDaGlsZCA9IHN0YXIuY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBqPTA7IGo8c3RhckNoaWxkLmNoaWxkcmVuLmxlbmd0aDsgaisrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhckNoaWxkLmNoaWxkcmVuW2pdLmFjdGl2ZSA9IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhckNoaWxkLmNoaWxkcmVuW2pdLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsXCJ0YW9wYW8xXCIsZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy/mlLnlj5jlvIDlhbPpl6jnirbmgIFcclxuICAgIGNoYW5nZUxvY2soKXtcclxuICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi5byA5YWz6Zeo54q25oCB5pS55Y+YXCIsdGhpcy5vcGVuKTtcclxuICAgICAgICBpZighdGhpcy5vcGVuTm9kZS5hY3RpdmUpe1xyXG4gICAgICAgICAgICB0aGlzLm9wZW5Ob2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gIFxyXG5cclxuICAgICAgICBsZXQgZmlsbCA9IHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0uc2NhbGVYPT0xID8gMC4wMToxO1xyXG4gICAgICAgIGlmKHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0uc2NhbGVYIDwgMCkgZmlsbCA9IC1maWxsO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi55uu5qCHXCIsZmlsbCk7XHJcblxyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0pXHJcbiAgICAgICAgLnRvKDAuMywge3NjYWxlWDogdGhpcy5vcGVuTm9kZS5jaGlsZHJlblswXS5zY2FsZVggPCAwPy1maWxsOmZpbGx9KVxyXG4gICAgICAgIC5jYWxsKCgpPT57XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5bem6L655a6M5oiQXCIpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMV0pXHJcbiAgICAgICAgLnRvKDAuMywge3NjYWxlWDogdGhpcy5vcGVuTm9kZS5jaGlsZHJlblsxXS5zY2FsZVggPCAwPy1maWxsOmZpbGx9KVxyXG4gICAgICAgIC5jYWxsKCgpPT57XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+z6L655a6M5oiQXCIpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlRnJlZXplKCl7XHJcbiAgICAgICAgbGV0IG51bVN0ciA9IHRoaXMuZnJlZXplTm9kZS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpO1xyXG4gICAgICAgIGxldCBudW0gPSBwYXJzZUludChudW1TdHIuc3RyaW5nKTtcclxuICAgICAgICBudW0gLT0gMTtcclxuICAgICAgICB0aGlzLmZyZWV6ZU5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBudW0rXCJcIjtcclxuICAgICAgICBpZihudW0gPT0gMCl7XHJcbiAgICAgICAgICAgIHRoaXMuZnJlZXplTm9kZS5wYXJlbnQuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRvd25Eb29yKCl7XHJcbiAgICAgICAgaWYodGhpcy5vcGVuTm9kZSl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0uc2NhbGVYID09IDEpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMuZnJlZXplTm9kZSl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuZnJlZXplTm9kZS5hY3RpdmUgPT0gdHJ1ZSlcclxuICAgICAgICAgICAgICAgIHJldHVybjsgXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm5vZGUub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgaWYodGhpcy5zcGVjaWFsID09IFdhbGxTcGVjaWFsLuaYn+aYn+mXqCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFyXCIpLnkgLT0gMTA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJkb3duXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdXBEb29yKCl7XHJcbiAgICAgICAgaWYodGhpcy5zcGVjaWFsID09IFdhbGxTcGVjaWFsLuaYn+aYn+mXqCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFyXCIpLnkgKz0gMTA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJkb3duXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 -//------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 - -"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.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; - } - 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); - } - }); - }; - MiniGameManager.prototype.update = function (deltaTime) { - }; - /** - * 弹出广告横幅。 - * 此方法用于加载并显示广告横幅。它首先加载指定广告位的横幅广告,然后显示广告。 - * 加载广告和显示广告是通过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 }); - }; - /** - * 隐藏广告横幅的函数。 - * - * 该函数调用MiniGameSdk.AdvertManager实例的方法,用于隐藏广告横幅。 - * 当需要暂时停止展示广告或用户主动请求隐藏广告时,可以调用此函数。 - * - * @remarks - * 此函数不接受任何参数,也不返回任何值。 - * 它单纯地触发广告横幅的隐藏操作,具体实现依赖于AdvertManager的实现。 - */ - MiniGameManager.prototype.onHideBanner = function () { - MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideBanner(); - }; - /** - * 显示插屏广告的函数。 - * - * 此函数调用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([ - ccclass - ], MiniGameManager); - return MiniGameManager; -}(cc.Component)); -exports.MiniGameManager = MiniGameManager; - -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXE1pbmlHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkNBQTRDO0FBQ3RDLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBQzVDLElBQUssU0FFSjtBQUZELFdBQUssU0FBUztJQUNWLG1EQUFzQyxDQUFBO0FBQzFDLENBQUMsRUFGSSxTQUFTLEtBQVQsU0FBUyxRQUViO0FBR0Q7SUFBcUMsbUNBQVk7SUFBakQ7UUFBQSxxRUEyVUM7UUF4VUcsa0JBQVksR0FBWSxJQUFJLENBQUM7O0lBd1VqQyxDQUFDO3dCQTNVWSxlQUFlO0lBa0J4QixzQkFBVywyQkFBUTthQUFuQjtZQUNJLElBQUksQ0FBQyxpQkFBZSxDQUFDLFNBQVMsRUFBRTtnQkFDNUIsaUJBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxpQkFBZSxFQUFFLENBQUM7YUFDckQ7WUFDRCxPQUFPLGlCQUFlLENBQUMsU0FBUyxDQUFDO1FBQ3JDLENBQUM7OztPQUFBO0lBRUQsK0JBQUssR0FBTDtRQUNJLFdBQVc7UUFDWCxvQ0FBb0M7UUFDcEMsa0RBQWtEO1FBQ2xELGtDQUFrQztRQUNsQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsK0JBQStCO1FBQy9CLGdHQUFnRztRQUNoRyx3QkFBd0I7UUFDeEIsY0FBYztRQUNkLElBQUk7UUFFSix5QkFBeUI7UUFFekIsSUFBSSx5QkFBVyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQzNCLGNBQWM7WUFDZCx5QkFBVyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxVQUFDLE9BQWdCO2dCQUN2RCxzQkFBc0I7Z0JBQ3RCLG1DQUFtQztZQUN2QyxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxzQkFBc0I7WUFDdEIsZUFBZTtZQUNmLGdDQUFnQztTQUNuQztRQUVELHNCQUFzQjtRQUN0Qix5QkFBVyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLFVBQUMsT0FBZ0I7WUFDNUQsZ0JBQWdCO1lBQ2hCLElBQUksT0FBTyxFQUFFO2dCQUNULHlCQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDekM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxnQ0FBTSxHQUFOLFVBQU8sU0FBaUI7SUFFeEIsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsc0NBQVksR0FBWjtRQUNJLGdCQUFnQjtRQUNoQix5QkFBVyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFekUsY0FBYztRQUNkLFdBQVc7UUFDWCx5QkFBVyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFaEQscUJBQXFCO1FBQ3JCLGtCQUFrQjtRQUNsQixtSEFBbUg7UUFFbkgscUJBQXFCO1FBQ3JCLFdBQVc7UUFDWCxvR0FBb0c7SUFDeEcsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILHNDQUFZLEdBQVo7UUFDSSx5QkFBVyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILDRDQUFrQixHQUFsQjtRQUNJLHlCQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNDQUFZLEdBQVo7UUFDSSxnQkFBZ0I7UUFDaEIseUJBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEUsZUFBZTtRQUNmLHlCQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxzQ0FBWSxHQUFaO1FBQ0kseUJBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxxQ0FBVyxHQUFYO1FBQ0ksc0JBQXNCO1FBQ3RCLFlBQVk7UUFDWiwwQkFBMEI7UUFDMUIsK0JBQStCO1FBQy9CLHlCQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEVBQUUsVUFBQyxHQUErQixFQUFFLEtBQWE7WUFDOUcsY0FBYztZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRW5DLHNCQUFzQjtZQUN0QixRQUFRLEdBQUcsRUFBRTtnQkFDVCxLQUFLLHlCQUFXLENBQUMsY0FBYyxDQUFDLE1BQU07b0JBQ2xDLG1CQUFtQjtvQkFDbkIseUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUN6QyxNQUFNO2dCQUNWLEtBQUsseUJBQVcsQ0FBQyxjQUFjLENBQUMsTUFBTTtvQkFDbEMsb0JBQW9CO29CQUNwQix5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQ3pDLE1BQU07Z0JBQ1YsS0FBSyx5QkFBVyxDQUFDLGNBQWMsQ0FBQyxLQUFLO29CQUNqQyxrQkFBa0I7b0JBQ2xCLHlCQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDMUMsTUFBTTtnQkFDVjtvQkFDSSxZQUFZO29CQUNaLE1BQU07YUFDYjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsaUNBQU8sR0FBUDtRQUNJLHlCQUFXLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHFDQUFXLEdBQVg7UUFDSSx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsb0NBQVUsR0FBVjtRQUNJLHlCQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsa0NBQVEsR0FBUjtRQUNJLHlCQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZ0NBQU0sR0FBTjtRQUNJLHlCQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILHlDQUFlLEdBQWY7UUFDSSx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILG9DQUFVLEdBQVY7UUFDSSx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0I7SUFDdkQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaURBQXVCLEdBQXZCO1FBQ0ksbUNBQW1DO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHdDQUFjLEdBQWQ7UUFDSSx1Q0FBdUM7UUFDdkMseUJBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQUMsSUFBWSxFQUFFLGFBQXFCO1lBQ3RELGVBQWU7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQy9DLGNBQWM7WUFDZCwyREFBMkQ7WUFDM0QsSUFBRyxJQUFJLEVBQUM7Z0JBQ0osaUVBQWlFO2FBQ3BFO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLDBEQUEwRDtJQUMxRCxxREFBcUQ7SUFDckQsSUFBSTtJQUVKLHFCQUFxQjtJQUNyQiw2Q0FBNkM7SUFDN0Msc0JBQXNCO0lBQ3RCLHFEQUFxRDtJQUNyRCxxREFBcUQ7SUFDckQsNkNBQTZDO0lBQzdDLHlDQUF5QztJQUV6QyxRQUFRO0lBQ1IsZ0hBQWdIO0lBQ2hILHNDQUFzQztJQUN0QyxrREFBa0Q7SUFDbEQsb0NBQW9DO0lBQ3BDLFVBQVU7SUFDVixJQUFJO0lBRUo7Ozs7OztPQU1HO0lBQ0gsc0NBQVksR0FBWjtRQUNJLG1DQUFtQztRQUNuQyx5QkFBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUNoQyx5QkFBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQy9CLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQ3JCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvQixZQUFZO1FBQ1oseUJBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7O0lBdlVEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7eURBQ1c7SUFIcEIsZUFBZTtRQUQzQixPQUFPO09BQ0ssZUFBZSxDQTJVM0I7SUFBRCxzQkFBQztDQTNVRCxBQTJVQyxDQTNVb0MsRUFBRSxDQUFDLFNBQVMsR0EyVWhEO0FBM1VZLDBDQUFlIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vTWluaUdhbWVTZGtcIjtcclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuZW51bSBFV2VjaGF0QUQge1xyXG4gICAgQ1VNU1RPTV8wMSA9ICdhZHVuaXQtZjdjMjQxN2ViMmMyZTQ3MydcclxufVxyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGNsYXNzIE1pbmlHYW1lTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBlbnRyYW5jZVZpZXc6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgLyoqXHJcbiAgICAgKiDlvIDlp4vmuLjmiI/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() { - 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 -//------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/peizhi.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, '7d800jRKkRGfqSS3fhSet26', 'peizhi'); -// Script/peizhi.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.start = function () { - // cc.fx.AudioManager.Instance.init(); - // this.testVersion.string = this.clientTestVersion; - // cc.director.loadScene("GameScene"); - // cc.director.preloadScene("GameScene", ()=>{ - // // debugger; - // }) - }; - //判断来源 - 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwZWl6aGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUF3QyxFQUFFLENBQUMsVUFBVSxFQUFwRCxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxnQkFBZ0Isc0JBQWlCLENBQUM7QUFHNUQ7SUFBc0MsNEJBQVk7SUFBbEQ7UUFBQSxxRUE0RUM7UUF4RUcsV0FBSyxHQUFZLElBQUksQ0FBQztRQUd0QixXQUFLLEdBQVksSUFBSSxDQUFDO1FBR3RCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsZUFBUyxHQUFZLEtBQUssQ0FBQztRQUczQix1QkFBaUIsR0FBVyxPQUFPLENBQUM7UUFHcEMsaUJBQVcsR0FBYSxJQUFJLENBQUM7O1FBd0NqQywyQkFBMkI7UUFFM0IsV0FBVztRQUNYLGlDQUFpQztRQUNqQyxzQ0FBc0M7UUFDdEMsaUNBQWlDO1FBQ2pDLHNDQUFzQztRQUN0QyxnQ0FBZ0M7UUFFaEMsdUJBQXVCO1FBRXZCLGVBQWU7UUFDZiwrQkFBK0I7UUFDL0IsK0JBQStCO1FBQy9CLG9CQUFvQjtRQUNwQixvREFBb0Q7UUFDcEQsaUNBQWlDO0lBQ2pDLENBQUM7SUF2REcsd0JBQUssR0FBTDtRQUVJLHNDQUFzQztRQUN0QyxvREFBb0Q7UUFFcEQsc0NBQXNDO1FBRXRDLDhDQUE4QztRQUM5QyxtQkFBbUI7UUFFbkIsS0FBSztJQUNULENBQUM7SUFFRCxNQUFNO0lBQ04sZ0NBQWEsR0FBYixVQUFjLEdBQUc7UUFFYixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWM7SUFDZCw0QkFBUyxHQUFUO1FBQ0ksRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkMsdUNBQXVDO0lBQzNDLENBQUM7SUFDRCxnQkFBZ0I7SUFDaEIsMkJBQVEsR0FBUixVQUFTLEtBQUssRUFBQyxJQUFJO1FBQ2YsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELE9BQU87SUFDUCwyQkFBUSxHQUFSO1FBQ0ksRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUdTLHlCQUFNLEdBQWhCLFVBQWlCLEVBQVU7SUFDM0IsQ0FBQztJQXJERDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNJO0lBR3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MkNBQ0k7SUFHdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzsyQ0FDSTtJQUd0QjtRQURDLFFBQVEsQ0FBQyxLQUFLLENBQUM7K0NBQ1c7SUFHM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDO3VEQUN1QjtJQUdwQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO2lEQUNVO0lBbkJaLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0E0RTVCO0lBQUQsZUFBQztDQTVFRCxBQTRFQyxDQTVFcUMsRUFBRSxDQUFDLFNBQVMsR0E0RWpEO2tCQTVFb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5LCByZXF1aXJlQ29tcG9uZW50fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbm9kZTE6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbm9kZTI6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbm9kZTM6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShmYWxzZSlcclxuICAgIGxvY2FsVGVzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBwcm9wZXJ0eShcIlwiKVxyXG4gICAgY2xpZW50VGVzdFZlcnNpb246IHN0cmluZyA9IFwiMS4wLjBcIjtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICB0ZXN0VmVyc2lvbjogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuXHJcbiAgICAgICAgLy8gY2MuZnguQXVkaW9NYW5hZ2VyLkluc3RhbmNlLmluaXQoKTtcclxuICAgICAgICAvLyB0aGlzLnRlc3RWZXJzaW9uLnN0cmluZyA9IHRoaXMuY2xpZW50VGVzdFZlcnNpb247XHJcblxyXG4gICAgICAgIC8vIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuXHJcbiAgICAgICAgLy8gY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIsICgpPT57XHJcbiAgICAgICAgLy8gICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgICBcclxuICAgICAgICAvLyB9KVxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yik5pat5p2l5rqQXHJcbiAgICBjb250YWluc1RyYWluKHN0cikge1xyXG4gICAgXHJcbiAgICAgICAgcmV0dXJuIC9mcm9tPXRyYWluL2kudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5byA5aeL5ri45oiP77yM6Lez6L2s6Iez5byV5a+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/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; - 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxCYXJyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDZCQUFnQztBQUUxQixJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFtQyx5QkFBWTtJQUEvQztRQUFBLHFFQXlGQztRQXZGRyxTQUFTO1FBQ0Qsc0JBQWdCLEdBQXFCLEVBQUUsQ0FBQztRQUN4QyxxQkFBZSxHQUFxQixFQUFFLENBQUM7UUFDL0MsY0FBYztRQUNkLHNDQUFzQztRQUN0QyxnQ0FBZ0M7UUFDaEMsbUNBQW1DO1FBQ25DLDBCQUEwQjtRQUMxQixLQUFLO1FBS0wsd0JBQXdCO1FBQ3hCLDRCQUE0QjtRQUM1Qiw2QkFBNkI7UUFDckIsd0JBQWtCLEdBQVksSUFBSSxDQUFDO1FBQ25DLHFCQUFlLEdBQUcsR0FBRyxDQUFDLENBQUMsVUFBVTtRQUd6QyxnQkFBVSxHQUFZLElBQUksQ0FBQyxDQUFLLEtBQUs7UUFDckMsYUFBTyxHQUFZLEtBQUssQ0FBQyxDQUFPLE1BQU07UUFDdEMsVUFBSSxHQUFXLENBQUMsQ0FBQyxDQUFlLFNBQVM7UUFDekMsVUFBSSxHQUFXLENBQUMsQ0FBQyxDQUFlLFNBQVM7UUFDekMsY0FBUSxHQUFZLElBQUksQ0FBQyxDQUFNLFNBQVM7UUFDeEMsZUFBUyxHQUFZLElBQUksQ0FBQyxDQUFLLFNBQVM7UUFDeEMsWUFBTSxHQUFZLElBQUksQ0FBQyxDQUFRLFNBQVM7UUFDeEMsY0FBUSxHQUFZLElBQUksQ0FBQyxDQUFNLFNBQVM7UUFDeEMsZ0JBQVUsR0FBVyxDQUFDLENBQUMsQ0FBUSxRQUFRO1FBQ3ZDLFdBQUssR0FBVSxDQUFDLENBQUMsQ0FBVSxXQUFXO1FBQ3RDLFdBQUssR0FBVSxDQUFDLENBQUMsQ0FBVSxXQUFXO1FBQ3RDLGlCQUFXLEdBQVcsQ0FBQyxDQUFDLENBQVEsU0FBUztRQUN6QyxpQkFBVyxHQUFXLENBQUMsQ0FBQyxDQUFRLFNBQVM7UUFDekMsYUFBTyxHQUFXLENBQUMsQ0FBQyxDQUFZLE9BQU87UUFFdkMsV0FBSyxHQUFXLENBQUMsQ0FBQyxDQUFZLFNBQVM7UUFDdkMsUUFBRSxHQUFZLEtBQUssQ0FBQzs7SUFtRHhCLENBQUM7SUF6Q0csc0JBQU0sR0FBTjtRQUNJLHNFQUFzRTtRQUN0RSxzRUFBc0U7UUFDdEUsdUVBQXVFO1FBQ3ZFLG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLDRFQUE0RTtRQUM1RSx5Q0FBeUM7SUFDN0MsQ0FBQztJQUdELHFCQUFLLEdBQUw7SUFFQSxDQUFDO0lBRUQsNkJBQWEsR0FBYixVQUFpQixHQUFNO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELG9CQUFJLEdBQUosVUFBSyxVQUFVLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxJQUFJLE9BQU8sR0FBRyxhQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUM1QyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztZQUMvQixJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDNUMsK0NBQStDO1lBQy9DLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUE7WUFDbEUsSUFBRyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFDO2dCQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2hDLENBQUMsR0FBRSxLQUFLLENBQUM7Z0JBQ1QsTUFBTTthQUNUO1NBQ0o7SUFFTCxDQUFDO0lBdkZnQixLQUFLO1FBRHpCLE9BQU87T0FDYSxLQUFLLENBeUZ6QjtJQUFELFlBQUM7Q0F6RkQsQUF5RkMsQ0F6RmtDLEVBQUUsQ0FBQyxTQUFTLEdBeUY5QztrQkF6Rm9CLEtBQUsiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29sbGlzaW9uRGV0ZWN0aW9uIGZyb20gXCIuL0NvbGxpc2lvbkRldGVjdGlvblwiO1xyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4vTWFwXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJsb2NrIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICAvLyDmlrDlop7nvJPlrZjlj5jph49cclxuICAgIHByaXZhdGUgc2VsZkJveENvbGxpZGVyczogY2MuQm94Q29sbGlkZXJbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBhbGxCb3hDb2xsaWRlcnM6IGNjLkJveENvbGxpZGVyW10gPSBbXTtcclxuICAgIC8vIEBwcm9wZXJ0eSh7XHJcbiAgICAvLyAgICAgdG9vbHRpcDogJ+eisOaSnuW9oueKtu+8jE5vbmXlsLHmmK/ml6DmlYzvvIzkuI3lj4LkuI7norDmkp4nLFxyXG4gICAgLy8gICAgIHR5cGU6IGNjLkVudW0oQmxvY2tUeXBlKSxcclxuICAgIC8vICAgICAvLyBkZWZhdWx0OiBCbG9ja1R5cGUuTm9tYWwsXHJcbiAgICAvLyAgICAgZGlzcGxheU5hbWU6ICfnorDmkp7lvaLnirYnXHJcbiAgICAvLyB9KVxyXG5cclxuXHJcblxyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG4gICAgLy8gQHByb3BlcnR5KGNjLlNwcml0ZUF0bGFzKVxyXG4gICAgLy8gVUk6IGNjLlNwcml0ZUF0bGFzID0gbnVsbDtcclxuICAgIHByaXZhdGUgaW5pdGlhbFRvdWNoT2Zmc2V0OiBjYy5WZWMyID0gbnVsbDtcclxuICAgIHByaXZhdGUgb2Zmc2V0VG9sZXJhbmNlID0gMTAwOyAvLyDlgY/np7vlrrnlv43luqY7IFxyXG5cclxuICAgIGFsbEJsb2Nrczphbnk7ICAgICAgIC8v5omA5pyJ55qE5pa55Z2XLOeUqOS6juiuoeeul3Bvc1gscG9zWea2iOmZpFxyXG4gICAgdG91Y2hQb2ludDogY2MuVmVjMiA9IG51bGw7ICAgICAvL+inpuaRuOeCuVxyXG4gICAgaXNUb3VjaDogYm9vbGVhbiA9IGZhbHNlOyAgICAgICAvL+aYr+WQpuinpuaRuFxyXG4gICAgcG9zWDogbnVtYmVyID0gMDsgICAgICAgICAgICAgICAvL+WcsOWbvuWdl+eahFjlnZDmoIdcclxuICAgIHBvc1k6IG51bWJlciA9IDA7ICAgICAgICAgICAgICAgLy/lnLDlm77lnZfnmoRZ5Z2Q5qCHXHJcbiAgICBtb3ZlTGVmdDogYm9vbGVhbiA9IHRydWU7ICAgICAgLy/mmK/lkKblj6/ku6Xlt6bnp7s7XHJcbiAgICBtb3ZlUmlnaHQ6IGJvb2xlYW4gPSB0cnVlOyAgICAgLy/mmK/lkKblj6/ku6Xlj7Pnp7s7XHJcbiAgICBtb3ZlVXA6IGJvb2xlYW4gPSB0cnVlOyAgICAgICAgLy/mmK/lkKblj6/ku6XkuIrnp7s7XHJcbiAgICBtb3ZlRG93bjogYm9vbGVhbiA9IHRydWU7ICAgICAgLy/mmK/lkKblj6/ku6XkuIvnp7s7XHJcbiAgICBtb3ZlQ29ybmVyOiBudW1iZXIgPSAwOyAgICAgICAgLy/mmK/lkKbnorDmkp7op5LokL1cclxuICAgIG1vdmVZOm51bWJlciA9IDA7ICAgICAgICAgIC8v5piv5ZCm5Y+v5Lul5LiK5LiL56e75YqoO1xyXG4gICAgbW92ZVg6bnVtYmVyID0gMDsgICAgICAgICAgLy/mmK/lkKblj6/ku6Xlt6blj7Pnp7vliqg7XHJcbiAgICB0b3VjaFBvaW50WDogbnVtYmVyID0gMDsgICAgICAgIC8v6Kem5pG454K5WOWdkOaghztcclxuICAgIHRvdWNoUG9pbnRZOiBudW1iZXIgPSAwOyAgICAgICAgLy/op6bmkbjngrlZ5Z2Q5qCHO1xyXG4gICAgYmxvY2tJZDogbnVtYmVyID0gMDsgICAgICAgICAgICAvL+aWueWdl0lEO1xyXG4gICAgc3RhY2tpbmc6IGNjLlZlYzI7ICAgICAgICAvL+WPoOWKoOaWueWdl1xyXG4gICAgbGV2ZWw6IG51bWJlciA9IDA7ICAgICAgICAgICAgLy/lj6DliqDmlrnlnZflsYLmlbA7XHJcbiAgICBwejogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgY29sbGlkZXI6IGFueTtcclxuICAgIGJsb2NrX0luZm86YW55O1xyXG4gICAgX3RvdWNoTGlzdGVuZXI6IGFueTtcclxuICAgIHJlbGF0aXZlX1Bvc2l0aW9uOmNjLlZlYzI7ICAvL+eCueWHu+WSjOaWueWdl+ebuOWvueS9jee9rlxyXG4gICAgcHJpdmF0ZSBfZXZlbnRNYW5hZ2VyOiBhbnk7XHJcbiAgICBoaXQ6IGNjLk5vZGU7XHJcblxyXG5cclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9TVEFSVCwgdGhpcy50b3VjaFN0YXJ0LCB0aGlzKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfTU9WRSwgdGhpcy50b3VjaE1vdmUsIHRoaXMpOyAgXHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0NBTkNFTCwgdGhpcy50b3VjaEVuZCwgdGhpcyk7ICBcclxuICAgICAgICAvLyB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfRU5ELCB0aGlzLnRvdWNoRW5kLCB0aGlzKTsgIFxyXG4gICAgICAgIHRoaXMucHogPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnN0YWNraW5nID0gY2MudjIoMCwwKTtcclxuICAgICAgICAvLyB0aGlzLnNlbGZCb3hDb2xsaWRlcnMgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50c0luQ2hpbGRyZW4oY2MuQm94Q29sbGlkZXIpXHJcbiAgICAgICAgLy8gLmZpbHRlcihjb2xsaWRlciA9PiBjb2xsaWRlci50YWcgPCA0KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBqc29uRGVlcENsb25lPFQ+KG9iajogVCk6IFQge1xyXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQoYmxvY2tfSW5mbyxwb3NYLHBvc1ksbm9kZSl7XHJcbiAgICAgICAgdGhpcy5ibG9ja19JbmZvID0gdGhpcy5qc29uRGVlcENsb25lKGJsb2NrX0luZm8pO1xyXG4gICAgICAgIGxldCBtYXBJbmZvID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEluZm87XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8bWFwSW5mby5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGxldCBibG9ja1JlY3QgPSBtYXBJbmZvW2ldLmdldEJvdW5kaW5nQm94KCk7XHJcbiAgICAgICAgICAgIC8vIOS9v+eUqCBjYy5JbnRlcnNlY3Rpb24ucG9pbnRJblJlY3Qg5pa55rOV5Yik5pat54K55piv5ZCm5Zyo55+p5b2i6IyD5Zu05YaFXHJcbiAgICAgICAgICAgIGxldCBwb2ludCA9IGNjLnYyKHRoaXMubm9kZS5wb3NpdGlvbi54LTUsIHRoaXMubm9kZS5wb3NpdGlvbi55KzEwKVxyXG4gICAgICAgICAgICBpZihibG9ja1JlY3QuY29udGFpbnMocG9pbnQpKXtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zWCA9IG1hcEluZm9baV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWDtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zWSA9IG1hcEluZm9baV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGV2ZWwgPSA1MCArIHRoaXMucG9zWCAtIHRoaXMucG9zWSozO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnpJbmRleCA9IHRoaXMubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUueCA9IG1hcEluZm9baV0ueCArIDY1O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnkgPSBtYXBJbmZvW2ldLnkgLSA2MDtcclxuICAgICAgICAgICAgICAgIGk9IDEwMDAwO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuXHJcbiJdfQ== -//------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"; -// 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 btnControl = /** @class */ (function (_super) { - __extends(btnControl, _super); - function btnControl() { - return _super !== null && _super.apply(this, arguments) || this; - } - btnControl.prototype.onLoad = function () { - this._touch = true; - }; - btnControl.prototype.start = function () { - }; - btnControl.prototype.setTouch = function (type) { - this._touch = type; - }; - btnControl.prototype.update = function (dt) { - }; - btnControl = __decorate([ - ccclass - ], btnControl); - return btnControl; -}(cc.Component)); -exports.default = btnControl; - -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxidG5Db250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRzVFLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBSTFDO0lBQXdDLDhCQUFZO0lBQXBEOztJQWtCQSxDQUFDO0lBYkcsMkJBQU0sR0FBTjtRQUNJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCwwQkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELDZCQUFRLEdBQVIsVUFBUyxJQUFJO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELDJCQUFNLEdBQU4sVUFBUSxFQUFFO0lBQ1YsQ0FBQztJQWpCZ0IsVUFBVTtRQUQ5QixPQUFPO09BQ2EsVUFBVSxDQWtCOUI7SUFBRCxpQkFBQztDQWxCRCxBQWtCQyxDQWxCdUMsRUFBRSxDQUFDLFNBQVMsR0FrQm5EO2tCQWxCb0IsVUFBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBidG5Db250cm9sIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIF90b3VjaDogYm9vbGVhbjtcclxuXHJcblxyXG4gICAgb25Mb2FkICgpIHsgXHJcbiAgICAgICAgdGhpcy5fdG91Y2ggPSB0cnVlO1xyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VG91Y2godHlwZSl7XHJcbiAgICAgICAgdGhpcy5fdG91Y2ggPSB0eXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZSAoZHQpIHtcclxuICAgIH1cclxufVxyXG4iXX0= //------QC-SOURCE-SPLIT------ (function() { @@ -8403,6 +5688,7 @@ var MapConroler = /** @class */ (function (_super) { var _this = this; var blockArray = cc.fx.GameConfig.BLOCK_INFO[0]; blockArray = this.sortBlock(blockArray); + console.log("创建方块", blockArray); var index = 0; // 当前要创建的方块索引 var BLOCKS_PER_FRAME = 1; // 初始每帧创建的方块数量 var MAX_PER_FRAME = 10; // 每帧最大创建数量 @@ -10110,13 +7396,13 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RzVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7a0RBQ1E7SUFHMUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzttREFDUztJQUczQjtRQURLLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO21EQUNLO0lBSTNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7Z0RBQ007SUFyRFAsV0FBVztRQUQvQixPQUFPO09BQ2EsV0FBVyxDQW0rRC9CO0lBQUQsa0JBQUM7Q0FuK0RELEFBbStEQyxDQW4rRHdDLEVBQUUsQ0FBQyxTQUFTLEdBbStEcEQ7a0JBbitEb0IsV0FBVyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmltcG9ydCBHYW1lTWFuYWdlciBmcm9tIFwiLi9HYW1lTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBMUUNvbGxpZGUgfSBmcm9tIFwiLi9scV9jb2xsaWRlX3N5c3RlbS9scV9jb2xsaWRlXCI7XHJcbmltcG9ydCBOdW1iZXJUb0ltYWdlIGZyb20gXCIuL051bWJlclRvSW1hZ2VcIjtcclxuaW1wb3J0IHsgTWluaUdhbWVTZGsgfSBmcm9tIFwiLi9TZGsvTWluaUdhbWVTZGtcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNYXBDb25yb2xlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBzdGF0aWMgX2luc3RhbmNlOiBhbnk7XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlByZWZhYl0sIHRvb2x0aXA6XCLmlrnlnZfmlbDnu4RcIn0pXHJcbiAgICBCbG9ja19BcnJheSA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5QcmVmYWJdLCB0b29sdGlwOlwi5pa55Z2X6YGT5YW35pWw57uEXCJ9KVxyXG4gICAgQmxvY2tfUHJvcCA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgTWFwQmxvY2tQcmVmYWI6IGNjLlByZWZhYiA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOlwi5pa55Z2X6aKc6ImyXCJ9KVxyXG4gICAgQmxvY2tfQ29sb3IgOiBBcnJheTxjYy5TcHJpdGVBdGxhcz4gPSBbXTtcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuWimeWjgeaVsOe7hFwifSlcclxuICAgIFdhbGxfUHJlZmFiIDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICBcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgd2FsbFR1cm5QcmVmYWI6IGNjLlByZWZhYiA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkJ1dHRvbilcclxuICAgIHRpbWVCdG46IGNjLkJ1dHRvbiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQnV0dG9uKVxyXG4gICAgZGVzdHJveUJ0bjogY2MuQnV0dG9uID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5CdXR0b24pXHJcbiAgICBtYWdpY0J0bjogY2MuQnV0dG9uID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGljZUxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBoYW1tZXJMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbWFnaWNMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbWFnaWNNYXNrOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGhhbW1lck1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgICAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZyZWV6ZU1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIFxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBjb2luUG9wOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICB0aW1lTGFiZWw6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgbGV2ZWxMYWJlbDogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgbmV3X21vZGU6IG51bWJlciA9IDA7XHJcbiAgICBtYXBXaWR0aDogbnVtYmVyID0gMDtcclxuICAgIG1hcEhlaWdodDogbnVtYmVyID0gMDtcclxuICAgIHdhbGxOdW06IG51bWJlciA9IDA7XHJcbiAgICBibG9ja051bTogbnVtYmVyID0gMDtcclxuICAgIG1hcEJsb2Nrc1dhbGw6IGFueTsgICAgICAvL+WcsOWbvueahOaJgOacieW6leWdl1xyXG4gICAgbWFwSW5mbzogYW55OyAgICAgICAvL+WcsOWbvumZpOS6huW6leWdl+eahOWFtuS7luS/oeaBr1xyXG4gICAgYmxvY2tzOiBhbnk7ICAgICAgICAvL+aWueWdl+aVsOe7hFxyXG4gICAgd2FsbEluZm86IGFueTsgICAgICAvL+WimeWjgeaVsOe7hFxyXG4gICAgd2FsbEFycmF5OmFueTsgICAgICAvL1xyXG4gICAgb3BlbldhbGw6IGFueTsgICAgICAvL+W8gOWFs+WimeaVsOe7hFxyXG4gICAgZnJlZXplV2FsbDogYW55OyAgICAvL+WGu+e7k+WimeaVsOe7hFxyXG4gICAgcmlzZUZhbGxCbGNvazphbnk7ICAvL+WNh+mZjeWcsOWdl+aVsOe7hFxyXG4gICAgc2NoZWR1bGVDYWxsYmFjazogYW55Oy8v5YCS6K6h5pe255SoXHJcbiAgICBob21lQ2FuVG91Y2g6Ym9vbGVhbiA9IHRydWU7Ly/mjInpkq7lj6/nlKjnirbmgIFcclxuICAgIGFnYWluQ2FuVG91Y2g6Ym9vbGVhbiA9ICB0cnVlOy8v6YeN546p5oyJ6ZKu5Y+v5Lul55So54q25oCBXHJcbiAgICBnYW1lT3ZlcjogYm9vbGVhbiA9IGZhbHNlOy8v5ri45oiP57uT5p2f54q25oCBXHJcbiAgICBnYW1lV2luOiBib29sZWFuID0gZmFsc2U7Ly/muLjmiI/og5zliKnnirbmgIFcclxuICAgIGdhbWVTdGFydDogYm9vbGVhbiA9IGZhbHNlOy8v5ri45oiP5byA5aeL54q25oCBXHJcbiAgICB0aW1lTnVtYmVyOiBudW1iZXIgPSAwOyAvL+a4uOaIj+aXtumXtCDnlKjkuo7lgJLorqHml7ZcclxuICAgIGNvdW50X1RpbWU6IG51bWJlciA9IDA7IC8v55So5LqO57uf6K6h5oC75ri45oiP5pe26ZW/XHJcbiAgICBhZGRfVGltZTogbnVtYmVyID0gMDsgICAvL+Wkjea0u+aXtumXtFxyXG4gICAgbWFwQmxvY2tBcnJheTogYW55OyAgLy/lnLDlm77nmoTmiYDmnInmoLzlrZDnirbmgIHlrZjlgqhcclxuICAgIHBhdXNlOmJvb2xlYW4gPSBmYWxzZTsvL+aaguWBnOeKtuaAgVxyXG4gICAgaGFtbWVyOmJvb2xlYW4gPSBmYWxzZTsvL+mUpOWtkOeKtuaAgVxyXG4gICAgZnJlZXplQXJyYXk6IGFueTsgLy/lhrvnu5NcclxuICAgIGxvYWNrQXJyYXk6IGFueTsgLy/kuIrplIFcclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gbGVmdERvb3JzOiBbXTsgLy/lt6bpl6hcclxuICAgIHJpZ2h0RG9vcnM6IGFueTsgLy/lj7Ppl6hcclxuICAgIHRvcERvb3JzOiBhbnk7IC8v5LiK6ZeoXHJcbiAgICBib3R0b21Eb29yczogYW55OyAvL+S4i+mXqFxyXG4gICAgbGVmdERvb3JzOiBhbnk7XHJcblxyXG5cclxuICAgIC8vIG1hcEluZm86IG51bWJlcltdW10gPSBbXTtcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID0gMDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZVN0YXRlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1hc2sub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiQWRoZXNpdmVcIikuekluZGV4ID0gNTAwO1xyXG4gICAgICAgIGNjLmdhbWUuc2V0RnJhbWVSYXRlKDYzKTsgXHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4yXCIsbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcImRvd25cIixmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJkb3duXCIpIHtcclxuICAgICAgICAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYmxvY2tzID0gW107XHJcbiAgICAgICAgdGhpcy5sZWZ0RG9vcnMgPSBbXTsgLy/lt6bpl6hcclxuICAgICAgICB0aGlzLnJpZ2h0RG9vcnMgPSBbXTsgLy/lj7Ppl6hcclxuICAgICAgICB0aGlzLnRvcERvb3JzID0gW107IC8v5LiK6ZeoXHJcbiAgICAgICAgdGhpcy5ib3R0b21Eb29ycyA9IFtdOyAvL+S4i+mXqFxyXG4gICAgICAgIHRoaXMuZ2FtZVdpbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2FtZU92ZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdhbWVTdGFydCA9IGZhbHNlOyBcclxuICAgICAgICB0aGlzLmhvbWVDYW5Ub3VjaCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5hZ2FpbkNhblRvdWNoID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5ld19tb2RlID0gMDtcclxuIFxyXG4gICAgICAgIHRoaXMuaWNlTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuICAgXHJcbiAgICAgICAgLy8gY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIsIGFzc2V0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L29IEhvbWVTY2VuZSDlpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6L+b5YWlR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQXJyYXkgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UuQmxvY2tfQXJyYXk7XHJcbiAgICAgICAgdGhpcy5XYWxsX1ByZWZhYiA9IEdhbWVNYW5hZ2VyLl9pbnN0YW5jZS5XYWxsX1ByZWZhYjtcclxuICAgICAgICB0aGlzLkJsb2NrX0NvbG9yID0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLkJsb2NrX0NvbG9yO1xyXG4gICAgICAgIC8vIHRoaXMucGFydGljbGVFZmZlY3RzID0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLnBhcnRpY2xlRWZmZWN0cztcclxuICAgICAgIFxyXG4gICAgICAgIHRoaXMuaW5pdE1hcCgpO1xyXG4gICBcclxuICAgIH1cclxuXHJcbiAgICBzdGFydFVwZGF0ZSgpe1xyXG4gICAgICAgIGlmKHRoaXMuZ2FtZVN0YXJ0ID09IGZhbHNlKXtcclxuICAgICAgICAgICAgdGhpcy5nYW1lU3RhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL+WPkemAgeaVsOaVsOS6i+S7tuKAlOKAlOi/m+WFpeWFs+WNoVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWHhuWkh+i/m+WFpeS4i+S4gOWFsyzlj5HpgIHkuIvkuIDlhbPov5vlhaVcIik7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcImVudGVyX3N0YWdlXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgZm9yKGxldCBpID0wOyBpPHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNil7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3NbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJib29tXCIpLmdldENvbXBvbmVudChcIkJvb21cIikuc3RhcnRCb29tKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdE1hcCgpe1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIikuekluZGV4ID0gMTA7XHJcbiAgICAgICAgdGhpcy50aW1lTGFiZWwgPSAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIik7XHJcbiAgICAgICAgdGhpcy5sZXZlbExhYmVsID0gIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJUb3BcIikuZ2V0Q2hpbGRCeU5hbWUoXCJsZXZlbFwiKTtcclxuICAgICAgICB0aGlzLnRpbWVOdW1iZXIgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0udGltZTtcclxuICAgICAgICB0aGlzLmNvdW50X1RpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMuYWRkX1RpbWUgPSAwO1xyXG4gICAgICAgIE51bWJlclRvSW1hZ2UuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIsNTAsXCJ0aW1lX1wiLHRoaXMudGltZUxhYmVsKVxyXG4gICAgICAgIC8vIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyKTtcclxuICAgICAgICAvLyB0aGlzLnRpbWVMYWJlbC5zdHJpbmcgPSB0aW1lVGVtcC50b1N0cmluZygpO1xyXG4gICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwrMSksNTAsMjAsXCJsZXZlbF9cIix0aGlzLmxldmVsTGFiZWwsZmFsc2UpXHJcbiAgICAgICAgXHJcbiAgICAgICAgLy90aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXBXaWR0aCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5tYXBbMF07XHJcbiAgICAgICAgdGhpcy5tYXBIZWlnaHQgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0ubWFwWzFdO1xyXG4gICAgICAgIGxldCBnYXAgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0uZ2FwO1xyXG4gICAgICAgIGxldCByaXNlZmFsbCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5yaXNlZmFsbDtcclxuXHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaGFtbWVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy53YWxsTnVtID0gMDtcclxuICAgICAgICB0aGlzLnNldE1hcEluZm8oKTtcclxuICAgICAgICB0aGlzLmJsb2NrcyA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwQmxvY2tzV2FsbCA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwSW5mbyA9IFtdO1xyXG4gICAgICAgIHRoaXMud2FsbEluZm8gPSBbXTtcclxuICAgICAgICB0aGlzLm9wZW5XYWxsID0gW107XHJcbiAgICAgICAgdGhpcy53YWxsQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmZyZWV6ZVdhbGwgPSBbXTtcclxuICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2sgPSBbXTtcclxuICAgICAgICB0aGlzLm1hcEJsb2NrQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmZyZWV6ZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sb2Fja0FycmF5ID0gW107XHJcblxyXG4gICAgICBcclxuICAgICAgICBsZXQgc3RhcnRYID0gIHRoaXMubWFwV2lkdGglMj09MD8tKHRoaXMubWFwV2lkdGgtMSkqNjA6LSh0aGlzLm1hcFdpZHRoLTEpKjYwO1xyXG4gICAgICAgIGxldCBzdGFydFkgPSAgdGhpcy5tYXBIZWlnaHQlMj09MD8tKHRoaXMubWFwSGVpZ2h0LTEpKjYwOi0odGhpcy5tYXBIZWlnaHQtMSkqNjA7XHJcbiAgICAgICAgLy8gc3RhcnRYID0odGhpcy5tYXBXaWR0aC0xKSo2MCArIDYwO1xyXG4gICAgICAgIC8vIHN0YXJ0WSA9LSh0aGlzLm1hcEhlaWdodC0xKSo2MCAtIDYwO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0aGlzLm1hcFdpZHRoOyBpKyspe1xyXG4gICAgICAgICAgICB0aGlzLm1hcEJsb2Nrc1dhbGxbaV0gPSBbXTtcclxuXHJcbiAgICAgICAgICAgIGZvcihsZXQgaiA9IDA7IGogPCB0aGlzLm1hcEhlaWdodDsgaisrKXtcclxuICAgICAgICAgICAgICAgIGxldCBibG9jayA9IGNjLmluc3RhbnRpYXRlKHRoaXMuTWFwQmxvY2tQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgYmxvY2sucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibWFwQmxvY2tcIik7XHJcbiAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5pbml0KGksaik7ICAgIFxyXG4gICAgICAgICAgICAgICAgLy8gYmxvY2suZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBpICsgXCI6XCIgKyBqO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suc2V0UG9zaXRpb24oY2MudjIoc3RhcnRYICsgaSAqIDEyMCwgc3RhcnRZICsgaiAqIDEyMCkpXHJcbiAgICAgICAgICAgICAgICBpZihyaXNlZmFsbCAhPSBudWxsKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm1hcFJpc2VGYWxsKGNjLnYyKGksaikscmlzZWZhbGwsYmxvY2spKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKGdhcCE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKCF0aGlzLm1hcEdhcChjYy52MihpLGopLGdhcCkgfHwgaSA9PSAwIHx8IGkgPT0gdGhpcy5tYXBXaWR0aC0xXHJcbiAgICAgICAgICAgICAgICAgICAgfHwgaiA9PSAwIHx8IGogPT0gdGhpcy5tYXBIZWlnaHQgLSAxKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sub3BhY2l0eSA9IDI1NDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sucmVtb3ZlQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEluZm8ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMubWFwSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoIGkgPT0gMCB8fCBpID09IHRoaXMubWFwV2lkdGgtMVxyXG4gICAgICAgICAgICAgICAgICAgIHx8IGogPT0gMCB8fCBqID09IHRoaXMubWFwSGVpZ2h0IC0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm9wYWNpdHkgPSAyNTQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUNvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5yZW1vdmVBbGxDaGlsZHJlbigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndhbGxJbmZvLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMubWFwSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hcEJsb2Nrc1dhbGxbaV0ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMud2FsbEluaXQoKTtcclxuICAgICAgICB0aGlzLmJsb2NrSW5pdCgpO1xyXG4gICAgIFxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu65pa55Z2XXHJcbi8vIC4uLiDlt7LmnInku6PnoIEgLi4uXHJcblxyXG4vL+WIm+W7uuaWueWdl1xyXG4vLyAuLi4g5bey5pyJ5Luj56CBIC4uLlxyXG5cclxuXHJcblxyXG5cclxuYmxvY2tJbml0KCkge1xyXG4gICAgbGV0IGJsb2NrQXJyYXkgPSBjYy5meC5HYW1lQ29uZmlnLkJMT0NLX0lORk9bMF07XHJcbiAgICBibG9ja0FycmF5ID0gdGhpcy5zb3J0QmxvY2soYmxvY2tBcnJheSk7IFxyXG5cclxuICAgIGxldCBpbmRleCA9IDA7IC8vIOW9k+WJjeimgeWIm+W7uueahOaWueWdl+e0ouW8lVxyXG4gICAgbGV0IEJMT0NLU19QRVJfRlJBTUUgPSAxOyAvLyDliJ3lp4vmr4/luKfliJvlu7rnmoTmlrnlnZfmlbDph49cclxuICAgIGNvbnN0IE1BWF9QRVJfRlJBTUUgPSAxMDsgLy8g5q+P5bin5pyA5aSn5Yib5bu65pWw6YePXHJcbiAgICBjb25zdCBNSU5fUEVSX0ZSQU1FID0gMTsgLy8g5q+P5bin5pyA5bCP5Yib5bu65pWw6YePXHJcblxyXG4gICAgY29uc3QgY3JlYXRlQmxvY2tzID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQkxPQ0tTX1BFUl9GUkFNRSAmJiBpbmRleCA8IGJsb2NrQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGJsb2NrSW5mbyA9IGJsb2NrQXJyYXlbaW5kZXhdO1xyXG4gICAgICAgICAgICAvLyDnvJPlrZggQmxvY2tfQXJyYXkg6K6/6ZeuXHJcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrUHJlZmFiID0gdGhpcy5CbG9ja19BcnJheVtibG9ja0luZm8uYmxvY2tdOyBcclxuICAgICAgICAgICAgbGV0IGJsb2NrID0gY2MuaW5zdGFudGlhdGUoYmxvY2tQcmVmYWIpO1xyXG4gICAgICAgICAgICBibG9jay5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgIGJsb2NrLnNldFBvc2l0aW9uKGNjLnYyKGJsb2NrSW5mby5wb3NpdGlvbi54LCBibG9ja0luZm8ucG9zaXRpb24ueSkpO1xyXG4gICAgICAgICAgICBpZiAoYmxvY2tJbmZvLmJsb2NrICE9IDIzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIGlmIChibG9ja0luZm8udHlwZSA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBibG9ja0luZm8uaWQgKyAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jazogYmxvY2tJbmZvLmJsb2NrLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmxvY2tJbmZvLnN0YWNraW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAxMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGJsb2NrSW5mby5wb3NpdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tpbmc6IGJsb2NrSW5mby5jb2xvclxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g57yT5a2YIEJsb2NrX0FycmF5IOiuv+mXrlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrVXBQcmVmYWIgPSB0aGlzLkJsb2NrX0FycmF5W2luZm8uYmxvY2tdOyBcclxuICAgICAgICAgICAgICAgICAgICBsZXQgYmxvY2tVcCA9IGNjLmluc3RhbnRpYXRlKGJsb2NrVXBQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrVXAucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrVXAuc2V0UG9zaXRpb24oY2MudjIoaW5mby5wb3NpdGlvbi54LCBpbmZvLnBvc2l0aW9uLnkpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3MucHVzaChibG9ja1VwKTtcclxuICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGJsb2NrSW5mbywgbnVsbCwgbnVsbCwgYmxvY2tVcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGluZm8sIG51bGwsIG51bGwsIGJsb2NrKTtcclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChibG9ja0luZm8udHlwZSA9PSA5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoYmxvY2tJbmZvLmFkaGVzaXZlVGltZSA8IDIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaW5mbyA9IGJsb2NrQXJyYXlbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOe8k+WtmCBCbG9ja19BcnJheSDorr/pl65cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9ja1VwUHJlZmFiID0gdGhpcy5CbG9ja19BcnJheVtpbmZvLmJsb2NrXTsgXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJsb2NrVXAgPSBjYy5pbnN0YW50aWF0ZShibG9ja1VwUHJlZmFiKTtcclxuICAgICAgICAgICAgICAgICAgICBibG9ja1VwLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgICAgICBibG9ja1VwLnNldFBvc2l0aW9uKGNjLnYyKGluZm8ucG9zaXRpb24ueCwgaW5mby5wb3NpdGlvbi55KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnB1c2goYmxvY2tVcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChibG9ja0luZm8sIG51bGwsIG51bGwsIGJsb2NrVXAsZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9ja1VwLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoaW5mbywgbnVsbCwgbnVsbCwgYmxvY2ssdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoYmxvY2tJbmZvKTtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJhcnJpZXJcIikuaW5pdChibG9ja0luZm8pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGVuZFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICBjb25zdCBmcmFtZVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lO1xyXG4gICAgICAgIC8vIOWmguaenOW9k+WJjeW4p+aJp+ihjOaXtumXtOi/h+mVv++8jOWHj+Wwkeavj+W4p+WIm+W7uuaVsOmHj1xyXG4gICAgICAgIGlmIChmcmFtZVRpbWUgPiAxNikgeyBcclxuICAgICAgICAgICAgQkxPQ0tTX1BFUl9GUkFNRSA9IE1hdGgubWF4KEJMT0NLU19QRVJfRlJBTUUgLSAxLCBNSU5fUEVSX0ZSQU1FKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBCTE9DS1NfUEVSX0ZSQU1FID0gTWF0aC5taW4oQkxPQ0tTX1BFUl9GUkFNRSArIDEsIE1BWF9QRVJfRlJBTUUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5aaC5p6c6L+Y5pyJ5pa55Z2X5pyq5Yib5bu677yM5LiL5LiA5bin57un57ut5Yib5bu6XHJcbiAgICAgICAgaWYgKGluZGV4IDwgYmxvY2tBcnJheS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgLy8g5L2/55SoIHNjaGVkdWxlT25jZSDlnKjkuIvkuIDluKfmiafooYwgY3JlYXRlQmxvY2tzXHJcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNyZWF0ZUJsb2NrcygpO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIOW8gOWni+WIhuW4p+WIm+W7uuaWueWdl1xyXG4gICAgY3JlYXRlQmxvY2tzKCk7XHJcbn1cclxuLy/nu5nliJvlu7rmlrnlnZfmjpLluo/vvIznlKjmnaXpmY3kvY5kcmF3Y2FsbCDlkIjmiblcclxuc29ydEJsb2NrKGFsbEJsb2NrczogeyBjb2xvcjogbnVtYmVyOyBibG9jazogbnVtYmVyOyB0eXBlOiBudW1iZXIgfVtdKSB7XHJcbiAgICByZXR1cm4gYWxsQmxvY2tzLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAvLyDlhYjlpITnkIYgdHlwZSDkuLogMSDnmoTmg4XlhrXvvIzlsIblhbbmlL7liLDmnIDlkI5cclxuICAgICAgICBpZiAoYS50eXBlID09PSAxICYmIGIudHlwZSAhPT0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGEudHlwZSAhPT0gMSAmJiBiLnR5cGUgPT09IDEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5a+5IHR5cGUg5LiN5Li6IDAg55qE5YWD57Sg5oyJIHR5cGUg5o6S5bqPXHJcbiAgICAgICAgaWYgKGEudHlwZSAhPT0gMCAmJiBiLnR5cGUgIT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGEudHlwZSAtIGIudHlwZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGEudHlwZSAhPT0gMCAmJiBiLnR5cGUgPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhLnR5cGUgPT09IDAgJiYgYi50eXBlICE9PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIOWGjeWkhOeQhiBibG9jayDkuLogMjMg55qE5oOF5Ya177yM5bCG5YW25pS+5Yiw5pyA5YmN6Z2iXHJcbiAgICAgICAgaWYgKGEuYmxvY2sgPT09IDIzICYmIGIuYmxvY2sgIT09IDIzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGEuYmxvY2sgIT09IDIzICYmIGIuYmxvY2sgPT09IDIzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5YW25L2Z5oyJIGNvbG9yIOWNh+W6j+aOkuWIl1xyXG4gICAgICAgIHJldHVybiBhLmNvbG9yIC0gYi5jb2xvcjtcclxuICAgIH0pO1xyXG59XHJcblxyXG5cclxuLy/liJvlu7rlopnlo4FcclxuXHJcbndhbGxJbml0KCkge1xyXG4gICAgbGV0IGluZGV4ID0gMDsgLy8g5b2T5YmN6KaB5Yib5bu655qE5aKZ5aOB57Si5byVXHJcbiAgICBsZXQgV0FMTFNfUEVSX0ZSQU1FID0gMTsgLy8g5Yid5aeL5q+P5bin5Yib5bu655qE5aKZ5aOB5pWw6YePXHJcbiAgICBjb25zdCBNQVhfUEVSX0ZSQU1FID0gMTA7IC8vIOavj+W4p+acgOWkp+WIm+W7uuaVsOmHj1xyXG4gICAgY29uc3QgTUlOX1BFUl9GUkFNRSA9IDE7IC8vIOavj+W4p+acgOWwj+WIm+W7uuaVsOmHj1xyXG5cclxuICAgIGNvbnN0IGNyZWF0ZVdhbGxzID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgV0FMTFNfUEVSX0ZSQU1FICYmIGluZGV4IDwgdGhpcy53YWxsSW5mby5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgYmxvY2sgPSB0aGlzLndhbGxJbmZvW2luZGV4XTtcclxuICAgICAgICAgICAgbGV0IGRpciA9IHRoaXMuZ2V0V2xsRGlyYWN0aW9uKFwid2FsbFwiLCBjYy52MihibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZKSk7XHJcbiAgICAgICAgICAgIGlmIChkaXIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVXYWxsKGRpciwgYmxvY2spO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGVuZFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICBjb25zdCBmcmFtZVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lO1xyXG4gICAgICAgIC8vIOWmguaenOW9k+WJjeW4p+aJp+ihjOaXtumXtOi/h+mVv++8jOWHj+Wwkeavj+W4p+WIm+W7uuaVsOmHj1xyXG4gICAgICAgIGlmIChmcmFtZVRpbWUgPiAxNikgeyBcclxuICAgICAgICAgICAgV0FMTFNfUEVSX0ZSQU1FID0gTWF0aC5tYXgoV0FMTFNfUEVSX0ZSQU1FIC0gMSwgTUlOX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgV0FMTFNfUEVSX0ZSQU1FID0gTWF0aC5taW4oV0FMTFNfUEVSX0ZSQU1FICsgMSwgTUFYX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDlpoLmnpzov5jmnInlopnlo4HmnKrliJvlu7rvvIzkuIvkuIDluKfnu6fnu63liJvlu7pcclxuICAgICAgICBpZiAoaW5kZXggPCB0aGlzLndhbGxJbmZvLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxlT25jZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjcmVhdGVXYWxscygpO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyDmiYDmnInlopnlo4HliJvlu7rlrozmiJDlkI7vvIzliJvlu7rmi5Dop5LoioLngrlcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVDb3JuZXJOb2RlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLy8g5byA5aeL5YiG5bin5Yib5bu65aKZ5aOBXHJcbiAgICBjcmVhdGVXYWxscygpO1xyXG59XHJcblxyXG4vLyAuLi4g5bey5pyJ5Luj56CBIC4uLlxyXG5cclxuICAgIGdldFdsbERpcmFjdGlvbih0eXBlLHBvaW50QSl7XHJcbiAgICAgICAgbGV0IGRpciA9IFtdO1xyXG4gICAgICAgIGxldCBwb2ludEIgPSBjYy52Mihwb2ludEEueCArIDEscG9pbnRBLnkpO1xyXG4gICAgICAgIGxldCBwb2ludEMgPSBjYy52Mihwb2ludEEueCAtIDEscG9pbnRBLnkpO1xyXG4gICAgICAgIGxldCBwb2ludEQgPSBjYy52Mihwb2ludEEueCxwb2ludEEueSArIDEpO1xyXG4gICAgICAgIGxldCBwb2ludEUgPSBjYy52Mihwb2ludEEueCxwb2ludEEueSAtIDEpO1xyXG4gICAgICAgIGxldCBvcGFjaXR5ID0gMDtcclxuICAgICAgICBpZih0eXBlID09IFwid2FsbFwiKSBvcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgIGlmKHR5cGUgPT0gXCJ0dXJuXCIpIG9wYWNpdHkgPSAyNTA7XHJcbiAgICAgIFxyXG4gICAgICAgIGlmKHBvaW50Qi54IDwgdGhpcy5tYXBXaWR0aCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEIueF1bcG9pbnRCLnldLm9wYWNpdHkgPT0gb3BhY2l0eSApe1xyXG4gICAgICAgICAgICAgICAgaWYodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRCLnhdW3BvaW50Qi55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJyaWdodFwiKXtcclxuICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBkaXIucHVzaChcInJpZ2h0XCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHBvaW50Qy54ID49IDApe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRDLnhdW3BvaW50Qy55XS5vcGFjaXR5ID09IG9wYWNpdHkpe1xyXG4gICAgICAgICAgICAgICAgaWYodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRDLnhdW3BvaW50Qy55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJsZWZ0XCIpe1xyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgZGlyLnB1c2goXCJsZWZ0XCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHBvaW50RC55IDwgdGhpcy5tYXBIZWlnaHQpe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRELnhdW3BvaW50RC55XS5vcGFjaXR5ID09IG9wYWNpdHkpe1xyXG4gICAgICAgICAgICAgICAgaWYodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRELnhdW3BvaW50RC55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJ1cFwiKXtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwidXBcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYocG9pbnRFLnkgPj0gMCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEUueF1bcG9pbnRFLnldLm9wYWNpdHkgPT0gb3BhY2l0eSl7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEUueF1bcG9pbnRFLnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcImRvd25cIil7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwiZG93blwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihkaXIubGVuZ3RoID4gMil7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoZGlyLmxlbmd0aCA9PSAxKXtcclxuICAgICAgICAgICAgaWYodHlwZSA9PSBcIndhbGxcIilcclxuICAgICAgICAgICAgICAgIHJldHVybiBkaXJbMF07XHJcbiAgICAgICAgICAgIGVsc2UgXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihkaXIubGVuZ3RoID09IDIpe1xyXG4gICAgICAgICAgICByZXR1cm4gZGlyWzBdICsgZGlyWzFdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVDb3JuZXJOb2RlcygpIHtcclxuICAgICAgICAvLyDlrprkuYnmi5Dop5LkvY3nva5cclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLndhbGxJbmZvLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgbGV0IGJsb2NrID0gdGhpcy53YWxsSW5mb1tpXTtcclxuICAgICAgICAgICAgaWYoYmxvY2sub3BhY2l0eSAhPSAyNTApe1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpciA9IHRoaXMuZ2V0V2xsRGlyYWN0aW9uKFwidHVyblwiLGNjLnYyKGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSkpO1xyXG4gICAgICAgICAgICAgICAgaWYoZGlyICE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlVHVybihkaXIsYmxvY2ssYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVdhbGwoZGlyZWN0aW9uLG5vZGUpe1xyXG4gICAgICAgIGxldCB3YWxsID0gbnVsbDtcclxuICAgICAgICBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnNldERpcmFjdGlvbihkaXJlY3Rpb24pO1xyXG4gICAgICAgIHN3aXRjaChkaXJlY3Rpb24pe1xyXG4gICAgICAgICAgICBjYXNlIFwicmlnaHRcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzRdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdERvb3JzLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBicmVhazsgXHJcbiAgICAgICAgICAgIGNhc2UgXCJsZWZ0XCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYlszXSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0RG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZih3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMykgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls1XSk7XHJcbiAgICAgICBcclxuICAgICAgICAgICAgICAgICAgIHRoaXMudG9wRG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZih3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAzKSBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZVdhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93blwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbMF0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5ib3R0b21Eb29ycy5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cHJpZ2h0XCIgOiBjYXNlIFwicmlnaHR1cFwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjQ5O1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbN10pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsyXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMF0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblsxXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidXBsZWZ0XCIgOiBjYXNlIFwibGVmdHVwXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNDk7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls2XSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsxXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblswXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzFdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMV0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3ducmlnaHRcIiA6IGNhc2UgXCJyaWdodGRvd25cIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzJdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25sZWZ0XCIgOiBjYXNlIFwibGVmdGRvd25cIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzFdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIFxyXG4gICAgICAgIC8vIGlmKHdhbGxUdXJuKXtcclxuICAgICAgICAvLyAgICAgd2FsbFR1cm4uZ2V0Q29tcG9uZW50KFwid2FsbFR1bnJcIikuaW5pdCh3YWxsKTtcclxuICAgICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RG9vckluZm8od2FsbCl7XHJcbiAgICAgICAgbGV0IGRvb3JJbmZvID0gY2MuZnguR2FtZUNvbmZpZy5XQUxMX0lORk9bMF07XHJcblxyXG4gICAgICAgIGlmKGRvb3JJbmZvKXtcclxuICAgICAgICAgICAgZm9yKGxldCBqID0gMDsgaiA8IGRvb3JJbmZvLmxlbmd0aDsgaisrKXtcclxuICAgICAgICAgICAgICAgIGlmKGRvb3JJbmZvW2pdLm51bSA9PSB0aGlzLndhbGxOdW0pe1xyXG4gICAgICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KGRvb3JJbmZvW2pdLG51bGwsbnVsbCxudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndhbGxBcnJheS5wdXNoKHdhbGwucGFyZW50KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlVHVybihkaXJlY3Rpb24sbm9kZSxwb3NYLHBvc1kpe1xyXG4gICAgICAgIGxldCB3YWxsID0gbnVsbDtcclxuICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy53YWxsVHVyblByZWZhYik7XHJcbiAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgc3dpdGNoKGRpcmVjdGlvbil7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cHJpZ2h0XCIgOiBjYXNlIFwicmlnaHR1cFwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IDA7XHJcbiAgICAgXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwbGVmdFwiIDogY2FzZSBcImxlZnR1cFwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDkwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYW5nbGUgPSAtOTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS55ICs9IDU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS54IC09IDEuMztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93bnJpZ2h0XCIgOiBjYXNlIFwicmlnaHRkb3duXCI6XHJcbiAgICAgICAgICAgICAgICB3YWxsLmFuZ2xlID0gMjcwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYW5nbGUgPSAtMjcwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueCArPSAyLjU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS55ICs9IDE7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25sZWZ0XCIgOiBjYXNlIFwibGVmdGRvd25cIjpcclxuICAgICAgICAgICAgICAgIHdhbGwuYW5nbGUgPSAxODA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IC0xODA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS54ICs9IDQuNTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnkgKz0gMy4yO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBpZihkaXJlY3Rpb24gPT0gXCJyaWdodGRvd25cIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3ducmlnaHRcIikge1xyXG4gICAgICAgIC8vICAgICB3YWxsLnpJbmRleCA9IDUwICsgcG9zWCAtIHBvc1kqMztcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gZWxzZSBcclxuICAgICAgICAvLyAgICAgd2FsbC56SW5kZXggPSA1MCArIHBvc1ggLSBwb3NZKjM7XHJcblxyXG4gICAgICAgIGlmKGRpcmVjdGlvbiA9PSBcInVwXCIgfHwgZGlyZWN0aW9uID09IFwibGVmdHVwXCIgfHwgZGlyZWN0aW9uID09IFwidXBsZWZ0XCJcclxuICAgICAgICApe1xyXG4gICAgICAgICAgICB3YWxsLnpJbmRleCA9IDEwMCArIHBvc1ggLSBwb3NZKjM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoZGlyZWN0aW9uID09IFwicmlnaHR1cFwiIHx8IGRpcmVjdGlvbiA9PSBcInVwcmlnaHRcIiB8fCBkaXJlY3Rpb24gPT0gXCJyaWdodGRvd25cIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3ducmlnaHRcIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3dubGVmdFwiKXtcclxuICAgICAgICAgICAgd2FsbC56SW5kZXggPSAzMCArIHBvc1ggLSBwb3NZKjM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKCBkaXJlY3Rpb24gPT0gXCJsZWZ0XCIgfHwgZGlyZWN0aW9uID09IFwibGVmdGRvd25cIil7XHJcbiAgICAgICAgICAgIHdhbGwuekluZGV4ID0gNzAgKyBwb3NYIC0gcG9zWSozOyBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB3YWxsLnpJbmRleCA9IDcwICsgcG9zWCAtIHBvc1kqMztcclxuICAgICAgICBcclxuICAgICAgICAvLyB3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmFuZ2xlID0gLXdhbGwuYW5nbGU7XHJcbiAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gZGlyZWN0aW9uO1xyXG4gICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHdhbGwuekluZGV4KyBcIlwiO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHBvc1gscG9zWSx3YWxsLnpJbmRleCk7XHJcbiAgICAgICAgLy8gdGhpcy53YWxsTnVtICs9ICAxO1xyXG4gICAgICAgIC8vIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0gKyBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Zyw5Zu+5bqV5Z2X57y65Y+j5Yik5patXHJcbiAgICBtYXBHYXAocG9pbnQsZ2FwKXtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTxnYXAubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZihwb2ludC54ID09IGdhcFtpXS54ICYmIHBvaW50LnkgPT0gZ2FwW2ldLnkpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvL+WNh+mZjeWcsOWdl+WIpOaWrVxyXG4gICAgbWFwUmlzZUZhbGwocG9pbnQscmlzZWZhbGwsYmxvY2spe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHJpc2VmYWxsLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYocG9pbnQueCA9PSByaXNlZmFsbFtpXS5wb3MueCAmJiBwb2ludC55ID09IHJpc2VmYWxsW2ldLnBvcy55KXtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENoaWxkQnlOYW1lKFwiY29sb3JcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSByaXNlZmFsbFtpXS5jb2xvcitcIlwiO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuYWRkQ29tcG9uZW50KGNjLkJveENvbGxpZGVyKTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcikuc2l6ZSA9IGNjLnNpemUoMTEwLDExMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvL+WNh+mZjeWcsOWdl1xyXG4gICAgY2hhbmdlUmlzZUZhbGwoY29sb3IsZG93bil7XHJcbiAgICAgICAgY29sb3IgPSBjb2xvci50b1N0cmluZygpO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMucmlzZUZhbGxCbGNvay5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKGNvbG9yID09IHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZShcInJpc2VmYWxsXCIpLmdldENoaWxkQnlOYW1lKFwiY29sb3JcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpe1xyXG4gICAgICAgICAgICAgICAgaWYoZG93bil7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLnJlbW92ZUNvbXBvbmVudChjYy5Cb3hDb2xsaWRlcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZShcInJpc2VmYWxsXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmFkZENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcikuc2l6ZSA9IGNjLnNpemUoMTEwLDExMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLy/mn6Xor6Llj6DliqDlv6tpZFxyXG4gICAgZm91bmREb3duQmxvY2soaWQpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tJZCA9PSBpZCl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ibG9ja3NbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liKDpmaTlnZdcclxuICAgIHJlbW92ZUJsb2NrKGlkKXtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmJsb2NrSWQgPT0gaWQpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmxvY2tzW2ldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE1pbkFuZE1heChibG9jayl7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gTWF0aC5mbG9vcihibG9jay53aWR0aCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IGhlaWdodCA9IE1hdGguZmxvb3IoYmxvY2suaGVpZ2h0IC8gMTIwKTtcclxuXHJcbiAgICAgICAgbGV0IG1pblggPSB3aWR0aDtcclxuICAgICAgICBsZXQgbWF4WCA9IHRoaXMubWFwV2lkdGgtMjtcclxuICAgICAgICBsZXQgbWluWSA9IDE7XHJcbiAgICAgICAgbGV0IG1heFkgPSB0aGlzLm1hcEhlaWdodC0yIC0gaGVpZ2h0ICsgMTtcclxuXHJcbiAgICAgICAgaWYoYmxvY2submFtZSA9PSBcImJsb2NrMTBcIil7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aC0xO1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcFdpZHRoID4gMykgbWF4WCA9IG1heFgtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihibG9jay5uYW1lID09IFwiYmxvY2sxMVwiKXtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoLTI7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwV2lkdGggPiAzKSBtYXhYID0gbWF4WC0yO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSBpZihibG9jay5uYW1lID09IFwiYmxvY2sxNFwiKXtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoLTE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYLTE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoYmxvY2submFtZSA9PSBcImJsb2NrMTZcIil7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aC0xO1xyXG4gICAgICAgICAgICBtYXhYID0gbWF4WC0xO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGJsb2NrLm5hbWUgPT0gXCJibG9jazE4XCIpe1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGgtMTtcclxuICAgICAgICAgICAgbWF4WCA9IG1heFgtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihibG9jay5uYW1lID09IFwiYmxvY2syMVwiKXtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoLTE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYLTE7XHJcbiAgICAgICAgfVxyXG4gICAgIFxyXG4gICAgICAgIHJldHVybiB7bWluWDptaW5YLG1heFg6bWF4WCxtaW5ZOm1pblksbWF4WTptYXhZfTtcclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+iQveeCueaYr+WQpuWPr+S7pea2iOmZpFxyXG4gICAgY2hlY2tQYXNzKG5vZGUsYmxvY2tzKSB7XHJcbiAgICAgICAgbGV0IG1pbkFuZE1heCA9IHRoaXMuZ2V0TWluQW5kTWF4KG5vZGUpO1xyXG4gICAgICAgIGxldCBtaW5YID0gbWluQW5kTWF4Lm1pblg7XHJcbiAgICAgICAgbGV0IG1heFggPSBtaW5BbmRNYXgubWF4WDtcclxuICAgICAgICBsZXQgbWluWSA9IG1pbkFuZE1heC5taW5ZO1xyXG4gICAgICAgIGxldCBtYXhZID0gbWluQW5kTWF4Lm1heFk7XHJcblxyXG4gICAgICAgIGxldCBub2RlUG9zID0gY2MudjIobm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1kpO1xyXG5cclxuICAgICAgICAvLyDojrflj5blnLDlm77ovrnnlYzkv6Hmga9cclxuXHJcbiAgICAgICAgbGV0IGFsbEJsb2NrcyA9IFtdO1xyXG4gICAgICAgIGZvcihsZXQgaT0wO2k8YmxvY2tzLmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBhbGxCbG9ja3MucHVzaChjYy52Mihub2RlUG9zLnggKyBibG9ja3NbaV0ueCwgbm9kZVBvcy55ICsgYmxvY2tzW2ldLnkpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNvbnN0IGRhdGUxID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlsIblsI/lnZfmlL7lhaXmlbDnu4TnmoTml7bpl7RcIixkYXRlMSk7XHJcbiAgIFxyXG4gICAgICAgIGxldCBqZyA9IC0xO1xyXG4gICAgICAgIGxldCBweiA9IDA7XHJcbiAgICAgICAgLy8g6I635Y+W5omA5pyJ5aKZ5aOB6IqC54K5XHJcbiAgICAgICAgLy8gbGV0IHdhbGwgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgbGV0IGRpcmVjdGlvbiA9IHRoaXMuY2hlY2tEaXJhY3Rpb24oYWxsQmxvY2tzLG1heFgsbWF4WSk7XHJcblxyXG4gICAgICAgIC8vIOWIpOaWreaWueWdl+aYr+WQpuWcqOWcsOWbvui+uee8mFxyXG4gICAgICAgIGlmIChub2RlUG9zLnggPD0gbWluWCB8fCBkaXJlY3Rpb25bMF0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlMiA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOW3pui+uee8mFwiLGRhdGUyKTtcclxuICAgICAgICAgICAgcHogKz0gMTtcclxuICAgICAgICAgICAgbGV0IGxlZnRXYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGhpcy5sZWZ0RG9vcnMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxMZWZ0ID0gdGhpcy5sZWZ0RG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsTGVmdC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1gsd2FsbExlZnQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS55ID09IHdhbGxQb3MueSAmJiBhbGxCbG9ja3NbaV0ueCA+IHdhbGxQb3MueCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRXYWxscy5wdXNoKHdhbGxMZWZ0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlvpfliLDlt6bovrnlopnlo4HmlbDnu4RcIixkYXRlNik7XHJcbiAgICAgICAgICAgIGlmKGxlZnRXYWxscy5sZW5ndGggIT0gMCl7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kZXRlY3RpbmdCbG9jayhcImxlZnRcIixub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLGFsbEJsb2Nrcyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQgPT0gdHJ1ZSkgcmVzdWx0ID0gdGhpcy5wYXNzV2FsbChyZXN1bHQsbGVmdFdhbGxzLG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDlt6bovrnnvJjnu5Pmnpw6XCIsamcpO1xyXG4gICAgICAgICAgICAgICAgaWYocmVzdWx0KXtcclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSxqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChub2RlUG9zLnggPj0gbWF4WCB8fCBkaXJlY3Rpb25bMV0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlMyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOWPs+i+uee8mFwiLGRhdGUzKTtcclxuICAgICAgICAgICAgcHogKz0gMTtcclxuICAgICAgICAgICAgbGV0IHJpZ2h0V2FsbHMgPSBbXTtcclxuICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRoaXMucmlnaHREb29ycy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFJpZ2h0ID0gdGhpcy5yaWdodERvb3JzW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUG9zID0gY2MudjIod2FsbFJpZ2h0LmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCx3YWxsUmlnaHQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS55ID09IHdhbGxQb3MueSAmJiBhbGxCbG9ja3NbaV0ueCA8IHdhbGxQb3MueCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0V2FsbHMucHVzaCh3YWxsUmlnaHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYocmlnaHRXYWxscy5sZW5ndGggIT0gMCl7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kZXRlY3RpbmdCbG9jayhcInJpZ2h0XCIsbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSxhbGxCbG9ja3MpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCxyaWdodFdhbGxzLG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDlj7PovrnnvJjnu5Pmnpw6XCIsamcpO1xyXG4gICAgICAgICAgICAgICAgaWYocmVzdWx0KXtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwZWNpYWxfVHJlYXRtZW50KG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gMztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBhcnRpY2xlKG5vZGUsamcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICBcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vZGVQb3MueSAgPD0gbWluWSB8fCBkaXJlY3Rpb25bMl0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlNCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mFwiLGRhdGU0KTtcclxuICAgICAgICAgICAgbGV0IGRvd25XYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGhpcy50b3BEb29ycy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbEJvdHRvbSA9IHRoaXMudG9wRG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsQm90dG9tLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCx3YWxsQm90dG9tLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWSk7XHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbHVvY2hhID0gTWF0aC5hYnMoYWxsQmxvY2tzW2ldLnkgLSB3YWxsUG9zLnkpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYoYWxsQmxvY2tzW2ldLnggPT0gd2FsbFBvcy54ICYmIGFsbEJsb2Nrc1tpXS55ID4gd2FsbFBvcy55ICYmIGx1b2NoYSA8PSBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnNodSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvd25XYWxscy5wdXNoKHdhbGxCb3R0b20pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYoZG93bldhbGxzLmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwiZG93blwiLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksYWxsQmxvY2tzKTtcclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCxkb3duV2FsbHMsbm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mOe7k+aenDpcIixqZyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQpe1xyXG4gICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSxqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgIFxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vZGVQb3MueSAgPj0gbWF4WSB8fCBkaXJlY3Rpb25bM10gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlNSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4iui+uee8mFwiLGRhdGU1KTtcclxuICAgICAgICAgICAgbGV0IHVwV2FsbHMgPSBbXTtcclxuICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRoaXMuYm90dG9tRG9vcnMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxUb3AgPSB0aGlzLmJvdHRvbURvb3JzW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUG9zID0gY2MudjIod2FsbFRvcC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1gsd2FsbFRvcC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGx1b2NoYSA9IE1hdGguYWJzKGFsbEJsb2Nrc1tpXS55IC0gd2FsbFBvcy55KVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS54ID09IHdhbGxQb3MueCAmJiBhbGxCbG9ja3NbaV0ueSA8IHdhbGxQb3MueSAmJiBsdW9jaGEgPD0gbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5zaHUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cFdhbGxzLnB1c2god2FsbFRvcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZih1cFdhbGxzLmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwidXBcIixub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLGFsbEJsb2Nrcyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQgPT0gdHJ1ZSkgcmVzdWx0ID0gdGhpcy5wYXNzV2FsbChyZXN1bHQsdXBXYWxscyxub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiK6L6557yY57uT5p6cOlwiLHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQpe1xyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSxqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihweiA9PSAwIClqZyA9IC0xO1xyXG4gICAgICAgIC8vIGNvbnN0IGRhdGUxMCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5omA5pyJ5qOA5rWL57uT5p2f6ICX5pe2XCIsZGF0ZTEwLGpnKTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlU3RhdGUoKXtcclxuICAgICAgICBpZih0aGlzLm9wZW5XYWxsLmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5vcGVuV2FsbC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNoYW5nZUxvY2soKTsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKHRoaXMuZnJlZXplV2FsbC5sZW5ndGghPSAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5mcmVlemVXYWxsLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbFtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jaGFuZ2VGcmVlemUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+aYr+WQpuWPr+S7pemAmui/h+mXqFxyXG4gICAgcGFzc1dhbGwoamcsd2FsbEFycmF5LG5vZGUpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wO2k8d2FsbEFycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBpZih3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLlsJ3or5XpgJrov4flvIDlhbPpl6g6XCIsd2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikub3Blbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYod2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyICYmIHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLm9wZW4gPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2cod2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNvbG9yLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuY29sb3IpXHJcbiAgICAgICAgICAgIGlmKHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNvbG9yICE9IG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuY29sb3Ipe1xyXG5cclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNSl7XHJcbiAgICAgICAgICAgICAgICBpZih3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsICE9IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoamcgPT0gdHJ1ZSAgJiYgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDUpe1xyXG4gICAgICAgICAgICBmb3IobGV0IGo9MDtqPHdhbGxBcnJheS5sZW5ndGg7aisrKXtcclxuICAgICAgICAgICAgICAgIGlmKHdhbGxBcnJheVtqXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMSAmJiB3YWxsQXJyYXlbal0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS53YWxsX0luZm8ubGVuZ3RoICE9IDApe1xyXG4gICAgICAgICAgICAgICAgICAgIHdhbGxBcnJheVtqXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBsYXlTdGFyRG9vcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnN0IGRhdGU4ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmo4DmtYvpopzoibLmmK/lkKbog73lpJ/pgJrov4fpl6hcIixkYXRlOCk7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5qOA5rWL5pa55Z2X5ZKM6Zeo5Lit6Ze05pyJ5rKh5pyJ5aS55p2C5YW25LuW5Z2XXHJcbiAgICBkZXRlY3RpbmdCbG9jayhkaXJlY3Rpb24scG9zWCxwb3NZLGJsb2Nrcyl7XHJcbiAgICAgICAgbGV0IGpnID0gdHJ1ZTtcclxuICAgICAgICBsZXQgaWQgPSBcIlwiO1xyXG4gICAgICAgIGlmKGJsb2Nrcy5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8YmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MgPSBibG9ja3NbaV07XHJcbiAgICAgICAgICAgICAgICBsZXQgeCA9IHBvcy54O1xyXG4gICAgICAgICAgICAgICAgbGV0IHkgPSBwb3MueTsgXHJcbiAgICAgICAgICAgICAgICBpZCA9IHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZDtcclxuICAgICAgICAgICAgICAgIGpnID0gdGhpcy5jaGVja0FsbERpcmVjdGlvbnMoaWQsZGlyZWN0aW9uLHgseSk7XHJcbiAgICAgICAgICAgICAgICBpZighamcpe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pa55ZCR5qOA5rWL5rKh6L+HXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGkgPSAxMDAwMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTcgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaWueWQkeajgOa1i+mAmui/h1wiLGRhdGU3LGpnKTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgLy/mo4DmtYvniankvZPlkITmlrnlkJHmmK/lkKbmnInliKvnmoTnianlnZfvvIzpmLLmraLnorDliLDlopnlo4HkuobkvYbmmK/mmK/lh7nlh7jlvaLnirbvvIzlopnkuI7lnZfkuYvpl7TmnInpmLvmjKHnianlnZdcclxuICAgIGNoZWNrQWxsRGlyZWN0aW9ucyhpZCxkaXJlY3Rpb24seCx5KXtcclxuICAgICAgICBsZXQgamcgPSB0cnVlO1xyXG4gXHJcbiAgICAgICAgaWYoZGlyZWN0aW9uID09IFwibGVmdFwiKXtcclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3gtMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeC0xXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4LTFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkICl7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW3puS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeC0xXVt5XS5vcGFjaXR5ID09IDI0OSl7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKCh4IC0gMikgPj0gMCl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeC0yXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4LTJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4LTJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkICl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlt6bkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4LTJdW3ldLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGRpcmVjdGlvbiA9PSBcInJpZ2h0XCIpe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeCsxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4KzFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3grMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+z5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4KzFdW3ldLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoKHggKyAyKSA8PSB0aGlzLm1hcEJsb2Nrc1dhbGwubGVuZ3RoLTEpe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3grMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCsyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCsyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCApe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+z5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeCsyXVt5XS5vcGFjaXR5ID09IDI0OSl7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoZGlyZWN0aW9uID09IFwidXBcIil7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3krMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSsxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3krMV0ub3BhY2l0eSA9PSAyNDkpe1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZigoeSArIDIpIDw9IHRoaXMubWFwQmxvY2tzV2FsbFt4XS5sZW5ndGgtMSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSsyXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkICl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzJdLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihkaXJlY3Rpb24gPT0gXCJkb3duXCIpe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beS0xXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5LTFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiL5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5LTFdLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoKHkgLSAyKSA+PSAwKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5LTJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4i+S+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMl0ub3BhY2l0eSA9PSAyNDkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5qOA5rWL54mp5L2T5ZCE5pa55ZCR5piv5ZCm5pyJ5Yir55qE54mp5Z2XXCIsamcpO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja0RpcmFjdGlvbihhbGxCbG9ja3MsbWF4WCxtYXhZKXtcclxuICAgICAgICBsZXQgamcgPSBbZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2VdO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS54ID4gMCAmJiBqZ1swXSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLngtMV1bYWxsQmxvY2tzW2ldLnldLm9wYWNpdHkgPT0gMjUwKXtcclxuICAgICAgICAgICAgICAgICAgICBqZ1swXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKCBqZ1sxXSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLngrMV1bYWxsQmxvY2tzW2ldLnldLm9wYWNpdHkgPT0gMjUwKXtcclxuICAgICAgICAgICAgICAgICAgICBqZ1sxXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS55ID4gMCAmJiBqZ1syXSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLnhdW2FsbEJsb2Nrc1tpXS55LTFdLm9wYWNpdHkgPT0gMjUwKXtcclxuICAgICAgICAgICAgICAgICAgICBqZ1syXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGpnWzNdID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueF1bYWxsQmxvY2tzW2ldLnkrMV0ub3BhY2l0eSA9PSAyNTApe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzNdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrTGVmdChhbGxCbG9ja3Mpe1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1JpZ2h0KGFsbEJsb2NrcyxtYXgpe1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tEb3duKGFsbEJsb2Nrcyl7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8YWxsQmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuIFxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tVcChhbGxCbG9ja3MsbWF4KXtcclxuICAgICAgICBsZXQgamcgPSBmYWxzZTtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTxhbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG4gICAgXHJcblxyXG4gICAgLy/nibnmrorlpITnkIbvvIzmlrnlnZfluKbpgZPlhbfmiJbogIXpnIDopoHmtojpmaTlhrDlnZdcclxuICAgIHNwZWNpYWxfVHJlYXRtZW50KG5vZGUpe1xyXG4gICAgICAgIGxldCBmcmVlemVCbG9jayA9IHRoaXMubm9kZS5jaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICBpZihjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKSl7XHJcbiAgICAgICAgICAgICAgICBpZihjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDQpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZihmcmVlemVCbG9jay5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8ZnJlZXplQmxvY2subGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgZnJlZXplQmxvY2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJmcmVlemVcIikuZ2V0Q29tcG9uZW50KFwiRnJlZXplXCIpLnJlZHVjZSgxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYobm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDIgfHwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDQpe1xyXG4gICAgICAgICAgICBsZXQgbG9ja0Jsb2NrID0gdGhpcy5ub2RlLmNoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2hpbGQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSAzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmKGxvY2tCbG9jay5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8bG9ja0Jsb2NrLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICBsb2NrQmxvY2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJsb2NrXCIpLmdldENvbXBvbmVudChcIkxvY2tcIikucmVkdWNlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvcihsZXQgaT0wO2k8dGhpcy5ibG9ja3MubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tzW2ldID09IG5vZGUpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja3Muc3BsaWNlKGksMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgLy/liKTmlq3muLjmiI/miJDlip/kuIvkuIDlhbNcclxuICAgIG5leHRMZXZlbCgpe1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9wZW5JY2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy5ibG9ja051bSA9IHRoaXMuYmxvY2tzLmxlbmd0aDtcclxuIFxyXG4gICAgICAgIGlmKHRoaXMuYmxvY2tOdW0gPT0gMCAmJiAhdGhpcy5nYW1lV2luICYmICF0aGlzLmdhbWVPdmVyKXtcclxuICAgICAgICAgICAgLy8gYWxlcnQoXCLmuLjmiI/miJDlip9cIik7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FtZVdpbiA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaIkOWKn+a2iOmZpOS4gOS4qlwiKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuY2hhbmdlQ29pbig0MCk7XHJcbiAgICAgICAgICAgIGxldCB0aW1lRGF0YSA9IHtcclxuICAgICAgICAgICAgICAgIGNvdW50X1RpbWU6dGhpcy5jb3VudF9UaW1lLFxyXG4gICAgICAgICAgICAgICAgYWRkX1RpbWU6dGhpcy5hZGRfVGltZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmFkZExldmVsKHRpbWVEYXRhKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tfTmV3TW9kZSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH0sIDY2MCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5ri45oiP5oiQ5YqfXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBpZih0aGlzLmdhbWVPdmVyID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mYWlsTGV2ZWwobnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tfTmV3TW9kZSgpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPGNjLmZ4LkdhbWVDb25maWcuTkVXX0xFVkVMLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCsxKSA9PSBjYy5meC5HYW1lQ29uZmlnLk5FV19MRVZFTFtpXS5sZXZlbCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld19tb2RlID0gMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB3aW5MZXZlbCgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA+IDE1Nil7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IDE1NjtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgIFxyXG4gICAgICAgICAgICBpZih0aGlzLm5ld19tb2RlID09IDMpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJXaW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5OZXdNb2RlKDIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQoZmFsc2UsMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcInVwXCIsZmFsc2UpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcblxyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICB9IFxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4i+S4gOWFs1wiKTtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmKHRoaXMubmV3X21vZGUgPT0gMyl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMub3Blbk5ld01vZGUoMik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIixudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsXCJ1cFwiLGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwidXBcIikge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLDApO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICBcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmRlc3Ryb3koKTtcclxuICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFnYWluTGV2ZWwoKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIixudWxsKTtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPCAxKXtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOS4jei2s1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gXHJcbiAgICAgICAgaWYoIXRoaXMuYWdhaW5DYW5Ub3VjaCkgcmV0dXJuO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuYWdhaW5DYW5Ub3VjaCA9IGZhbHNlO1xyXG4gICAgICAgIFxyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGw7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcInVwXCIsZmFsc2UpO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRDb21wbGV0ZUxpc3RlbmVyKChlbnRyeSkgPT4ge1xyXG4gICAgICAgIC8vICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwidXBcIikge1xyXG4gICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgLy8gICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLDApO1xyXG4gICAgICAgIH0sIDEyMDApO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV2aWV3TGV2ZWwoKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIixudWxsKTtcclxuICAgICAgICBsZXQgY29pbiA9IDkwMDtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDEpIGNvaW4gPSAxOTAwO1xyXG4gICAgICAgIGVsc2UgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAyKSBjb2luID0gMjUwMDtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuiHqui6q+mHkeW4gTpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbixcIua2iOiAl+mHkeW4gTpcIixjb2luKTtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IE1hdGguYWJzKGNvaW4pKXtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazleWKoOaXtumXtFwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLnJ1blJld2l2ZSgtY29pbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJ1blJld2l2ZShkYXRhKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuWkjea0u+Wbnuiwg+WHveaVsOWGhVwiLGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmNoYW5nZUNvaW4oZGF0YSk7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIue7p+e7rea4uOaIj1wiKTtcclxuICAgXHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA8IDIpXHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgKz0gMTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmdhbWVPdmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW1lTnVtYmVyID0gMjE7XHJcbiAgICAgICAgdGhpcy5hZGRfVGltZSArPSAyMDtcclxuICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgIFxyXG4gICAgaG9tZUJ0bigpe1xyXG4gICAgICAgIC8vIGFsZXJ0KFwi5ri45oiP5aSx6LSlXCIpO1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKCF0aGlzLmhvbWVDYW5Ub3VjaCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuaG9tZUNhblRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJCb29tXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkxvY2tcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiSGVhbHRoXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgIHRpbWU6dGhpcy5jb3VudF9UaW1lLCAgICAgICAgIFxyXG4gICAgICAgICAgICBhZGRfVGltZTp0aGlzLmFkZF9UaW1lLFxyXG4gICAgICAgICAgICByZXN1bHQ6XCJmYWlsXCJcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZmluaXNoX3N0YWdlXCIsZGF0YSk7XHJcbiAgICAgICAgaWYodGhpcy5nYW1lU3RhcnQgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoLTEsKGRhdGEpPT57XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuSG9tZSgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGwpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLkvZPlipvlgLzlh4/lsJFcIik7XHJcbiAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwwKTtcclxuICAgICAgICBpZih0aGlzLm5ld19tb2RlID09IDMpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5vcGVuTmV3TW9kZSgxKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIixudWxsKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLFwidXBcIixmYWxzZSk7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIsIGFzc2V0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgfSwgMTIwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liKTmlq3muLjmiI/lpLHotKVcclxuICAgIGZhaWxMZXZlbCh0eXBlKXtcclxuICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgIGlmKHRoaXMuZ2FtZU92ZXI9PSB0cnVlIHx8dGhpcy5nYW1lV2luID09IHRydWUpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy5nYW1lT3ZlciA9IHRydWU7XHJcbiAgICAgICAgaWYodHlwZSA9PSBcImJvb21cIil7XHJcbiAgICAgICAgICAgIHRpbWUgPSAyMDAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiQm9vbVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGxldCBidXlCdG4gPSB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmdldENoaWxkQnlOYW1lKFwiYnV5QnRuXCIpO1xyXG4gICAgICAgICAgICAgICAgYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjFcIikuYWN0aXZlID0gYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjJcIikuYWN0aXZlID0gYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjNcIikuYWN0aXZlID1mYWxzZTsgXHJcbiAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDApYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjFcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAxKSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMlwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDIpIGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4zXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0eXBlID09IFwiYm9vbVwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiQm9vbVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICB9LCB0aW1lKTtcclxuICAgIFxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5ri45oiP5aSx6LSlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5omT5byA5paw5qih5byP5by556qXXHJcbiAgICBvcGVuTmV3TW9kZSh0eXBlKXtcclxuICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICAgIGNvbnN0IEJMT0NLU19QRVJfRlJBTUUgPSA1OyAvLyDmr4/luKfplIDmr4HnmoTmlrnlnZfmlbDph49cclxuICAgICAgICBjb25zdCBkZXN0cm95QmxvY2tzID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBlbmRJbmRleCA9IE1hdGgubWluKGluZGV4ICsgQkxPQ0tTX1BFUl9GUkFNRSwgdGhpcy5ibG9ja3MubGVuZ3RoKTtcclxuICAgICAgICAgICAgZm9yICg7IGluZGV4IDwgZW5kSW5kZXg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpbmRleF0pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1tpbmRleF0uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOWmguaenOi/mOacieaWueWdl+acqumUgOavge+8jOS4i+S4gOW4p+e7p+e7rVxyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCB0aGlzLmJsb2Nrcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKGRlc3Ryb3lCbG9ja3MsIDApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvLyDlvIDlp4vliIbluKfplIDmr4HmlrnlnZdcclxuICAgICAgICBkZXN0cm95QmxvY2tzKCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJOZXdNb2RlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJOZXdNb2RlXCIpLmdldENvbXBvbmVudChcIk5ld01vZGVcIikuc2V0TW9kZSh0eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIGRvd25Eb29yKGNvbG9yLHR5cGUpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMud2FsbEFycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBpZih0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jb2xvciA9PSBjb2xvcil7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0eXBlID09IDUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiggdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAxKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmRvd25Eb29yKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSAgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuZG93bkRvb3IoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuZG93bkRvb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cERvb3IoKXtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLndhbGxBcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgaWYodGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLm9wYWNpdHkgPT0gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS51cERvb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgIC8v5byA5aeL5YCS6K6h5pe2XHJcbiAgIHN0YXJ0VGltZUN1dERvd24oKXtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICBpZih0aGlzLnBhdXNlKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmKHRoaXMudGltZU51bWJlciA8PSAwKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLDUwLFwidGltZV9cIix0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMudGltZUxhYmVsLnN0cmluZyA9IHRpbWVUZW1wLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICBpZighdGhpcy5wYXVzZSl0aGlzLmZhaWxMZXZlbChcInRpbWVcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMudGltZU51bWJlciAtPSAxO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudF9UaW1lICs9IDE7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLDUwLFwidGltZV9cIix0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMudGltZUxhYmVsLnN0cmluZyA9IHRpbWVUZW1wLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2ssIDEpO1xyXG4gICAgfVxyXG4gICAgLy8g5YGc5q2i5YCS6K6h5pe2XHJcbiAgICBzdG9wVGltZUN1dERvd24oKXtcclxuICAgICAgICBpZih0aGlzLnNjaGVkdWxlQ2FsbGJhY2spe1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/kvb/nlKjml7bpl7TpgZPlhbdcclxuICAgIHVzZVRpbWVQcm9wKCl7XHJcbiAgICAgICAgaWYodGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLmhhbW1lciA9PSB0cnVlIFxyXG4gICAgICAgIHx8IHRoaXMubWFnaWNNYXNrLmFjdGl2ZT09IHRydWUgfHwgdGhpcy50aW1lTnVtYmVyIDw9IDEpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgICBsZXQgZnJlZXplQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgaWYoZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKXtcclxuICAgICAgICAgICAgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50IDwgMSl7XHJcbiAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLm9wZW5Qcm9wQnV5KFwiZnJlZXplXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBpZighdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgJiYgIXRoaXMucGF1c2Upe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVNYXNrLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJUb3BcIikuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPCAwKSAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pY2VMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcEluZm8uZnJlZXplQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMjAwMSxjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOlwiMjAwMVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBudW06LTFcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwicmVzb3VyY2VfY29zdFwiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YGT5YW35L2/55So5Lit77yM6K+356iN5ZCO5YaN6K+VXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/op6PlvIDml7bpl7Tlhrvnu5NcclxuICAgIG9wZW5JY2UoKXtcclxuICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSl7XHJcbiAgICAgICAgICAgIHRoaXMuZnJlZXplTWFzay5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lQnRuXCIpO1xyXG4gICAgICAgICAgICBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyB0aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGhhbmRsZUJ1eVN1Y2Nlc3MoZGF0YSl7XHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlm57osIPlh73mlbDlhoU6XCIsdGhpcy5wYXVzZSk7XHJcbiAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lQnRuXCIpO1xyXG4gICAgICAgIGxldCBoYW1tZXJCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwibWFnaWNCdG5cIik7XHJcbiAgICAgICAgaWYoZGF0YSA9PSBcImZyZWV6ZUFtb3VudFwiKSBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBlbHNlIGlmKGRhdGEgPT0gXCJoYW1tZXJBbW91bnRcIikgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7IFxyXG4gICAgICAgIGVsc2UgaWYoZGF0YSA9PSBcIm1hZ2ljQW1vdW50XCIpIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgaWYoZGF0YSA9PSBcImZyZWV6ZUFtb3VudFwiKXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8uZnJlZXplQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5jbG9zZVByb3BCdXkoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmljZUxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLotK3kubDlhrvnu5Pml7bpl7TpgZPlhbfmiJDlip9cIik7XHJcbiAgICAgICAgICAgIH0sIDIwMCk7XHJcblxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihkYXRhID09IFwibWFnaWNBbW91bnRcIil7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8ubWFnaWNBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikuY2xvc2VQcm9wQnV5KCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIui0reS5sOmUpOWtkOmBk+WFt+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgfSwgMjAwKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoZGF0YSA9PSBcImhhbW1lckFtb3VudFwiKXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8uaGFtbWVyQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5jbG9zZVByb3BCdXkoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhbW1lckxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLotK3kubDprZTms5Xmo5LpgZPlhbfmiJDlip9cIik7XHJcbiAgICAgICAgICAgIH0sIDIwMCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/kvb/nlKjplKTlrZDpgZPlhbdcclxuICAgIHVzZUhhbW1lcigpe1xyXG4gICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IHRydWUgfHwgdGhpcy5oYW1tZXIgPT0gdHJ1ZSBcclxuICAgICAgICB8fCB0aGlzLm1hZ2ljTWFzay5hY3RpdmU9PSB0cnVlIHx8IHRoaXMudGltZU51bWJlciA8PSAxKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgaGFtbWVyQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcImRlc3Ryb3lCdG5cIik7XHJcbiAgICAgICAgaWYoaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKXtcclxuICAgICAgICAgICAgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50IDwgMSl7XHJcbiAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikub3BlblByb3BCdXkoXCJoYW1tZXJcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGlmKCF0aGlzLmhhbW1lcil7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbW1lck1hc2suYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW1tZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50IDwgMCkgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6ZSk5a2Q6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby5oYW1tZXJBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgyMDAyLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6XCIyMDAyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bTotMVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9jb3N0XCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLpgZPlhbfkvb/nlKjkuK3vvIzor7fnqI3lkI7lho3or5VcIik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuIFxyXG4gICAgYnV5TWFnaWMoKXtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmJ1eVByb3AoMjAwMyx0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLFwibWFnaWNBbW91bnRcIikpO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1eUhhbW1lcigpe1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCl7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuYnV5UHJvcCgyMDAyLCB0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLFwiaGFtbWVyQW1vdW50XCIpKTtcclxuICAgIH1cclxuXHJcbiAgICBidXlGcmVlemUoKXtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmJ1eVByb3AoMjAwMSx0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLFwiZnJlZXplQW1vdW50XCIpKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+S9v+eUqOmtlOazleajkumaj+acuua2iOmZpOS4pOS4quaWueWdl1xyXG4gICAgdXNlTWFnaWMoKXtcclxuICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMuaGFtbWVyID09IHRydWUgXHJcbiAgICAgICAgfHwgdGhpcy5tYWdpY01hc2suYWN0aXZlPT0gdHJ1ZSB8fCB0aGlzLnRpbWVOdW1iZXIgPD0gMSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG1hZ2ljQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcIm1hZ2ljQnRuXCIpO1xyXG4gICAgICAgIGlmKG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKXtcclxuICAgICAgICAgICAgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA8IDEpe1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKXtcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLm9wZW5Qcm9wQnV5KFwibWFnaWNcIik7XHJcbiAgICAgICAgICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6a2U5rOV5qOS5pWw6YeP5LiN6LazLOiHquWKqOi0reS5sOmtlOazleajklwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNNYXNrLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hZ2ljTWFzay5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSwgMTAwMCk7XHJcbiBcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50IDwgMCkgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICAgICAgcHJvcEluZm8ubWFnaWNBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDIwMDMsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDpcIjIwMDNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtOi0xXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwicmVzb3VyY2VfY29zdFwiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IG5vbWFsQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMubWFnaWNCdG4ubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9MDsgaTx0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlrnlnZfnsbvlnotcIix0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDMpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWNrQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tfSW5mby5ub2RlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja19JbmZvLm5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugbm9tYWxBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihub21hbEFycmF5Lmxlbmd0aCA+IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXkgPSBjYy5meC5HYW1lVG9vbC5zaHVmZmxlQXJyYXkobm9tYWxBcnJheSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYobm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEgfHwgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZih0aW1lID4gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVsxXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVsxXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYobm9tYWxBcnJheS5sZW5ndGggPT0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYobm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEgfHwgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5mcmVlemVBcnJheS5sZW5ndGggPT0gMCAmJiB0aGlzLmxvYWNrQXJyYXkubGVuZ3RoID09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlj6rliankuIvkuIDkuKrlnZfpgZPlhbfkvb/nlKjlrozmr5VcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubG9hY2tBcnJheS5sZW5ndGggIT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmtojpmaTkuIDkuKrmma7pgJrlnZflkI7vvIzmtojpmaTkuIDkuKrluKbplIHlnZdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Fja0FycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5mcmVlemVBcnJheS5sZW5ndGghPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIua2iOmZpOS4gOS4quaZrumAmuWdl+WQju+8jOa2iOmZpOS4gOS4quWGu+e7k+Wdl1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZUFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMjAwK3RpbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgY291bnQgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubG9hY2tBcnJheS5sZW5ndGghPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5sb2Fja0FycmF5Lmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ5pmu6YCa5b+r77yM6a2U5rOV5raI6Zmk5LiA5Liq5bim6ZSB5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Fja0FycmF5W2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpOyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb3VudCA9PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb3VudCAhPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMuZnJlZXplQXJyYXkubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ5pmu6YCa5b+r77yM6a2U5rOV5raI6Zmk5LiA5Liq5Ya757uT5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZnJlZXplQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb3VudCA9PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/mjInkuIvmmoLlgZzmjInpkq5cclxuICAgIHVzZVBhdXNlKCl7XHJcbiAgICAgICAgaWYodGhpcy5wYXVzZSl7XHJcbiAgICAgICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLy/moLnmja7lhbPljaHorr7nva7lnLDlm77lpKflsI9cclxuICAgIHNldE1hcEluZm8oKXtcclxuICAgICAgICBsZXQgd2lkdGggPSAwO1xyXG4gICAgICAgIGlmKHRoaXMubWFwV2lkdGggPCAxMCl7XHJcbiAgICAgICAgICAgIHdpZHRoID0gMC4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMubWFwV2lkdGggPCAxNyl7XHJcbiAgICAgICAgICAgIHdpZHRoID0gMC4xNSAtICh0aGlzLm1hcFdpZHRoLTExKSowLjAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5ub2RlLnNjYWxlID0gMS42ICsgKDYgLSB0aGlzLm1hcFdpZHRoKSAqIHdpZHRoO1xyXG5cclxuICAgICAgICBpZih0aGlzLm1hcFdpZHRoID09IDggJiYgdGhpcy5tYXBIZWlnaHQgPiAxMyl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAxO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5zY2FsZSA9IHRoaXMubm9kZS5zY2FsZTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAwLjU7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5ub2RlLnNjYWxlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu66Zeo55qE57KS5a2Q54m55pWIXHJcbiAgICBjcmVhdGVQYXJ0aWNsZShibG9jayxqZyl7XHJcbiAgICAgICAgbGV0IHBhcnRpY2xlID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbOV0pO1xyXG4gICAgICAgIHBhcnRpY2xlLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICBwYXJ0aWNsZS56SW5kZXggPSAxMDAwO1xyXG4gICAgICAgIGxldCB3aWR0aCA9IE1hdGguZmxvb3IoYmxvY2sud2lkdGggLyAxMjApO1xyXG4gICAgICAgIGxldCBoZWlnaHQgPSBNYXRoLmZsb29yKGJsb2NrLmhlaWdodCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBcIlwiO1xyXG5cclxuICAgICAgICBpZihqZyA9PSAwIHx8IGpnID09IDEpe1xyXG4gICAgICAgICAgICBsZXQgeSA9IGJsb2NrLnkgKyBibG9jay5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGxldCB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoLzI7XHJcbiAgICAgICAgICAgIG5hbWUgPSBcInRvcF9cIiArIHdpZHRoICsgXCJfXCIgKyBoZWlnaHQ7XHJcbiAgICAgICAgICAgIGlmKGpnID09IDEpe1xyXG4gICAgICAgICAgICAgICAgbmFtZSA9IFwiYm90X1wiICsgd2lkdGggKyBcIl9cIiArIGhlaWdodDtcclxuICAgICAgICAgICAgICAgIHkgPSBibG9jay55O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGJsb2NrLmFuY2hvclggPT0gMC41KXtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjMzKXtcclxuICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCooMC41LTAuMzMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjY2KXtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGgqKDAuNS0wLjY2KTsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcGFydGljbGUuc2V0UG9zaXRpb24oeCwgeSk7IFxyXG4gICAgICAgIH0gXHJcbiAgICAgICAgZWxzZSBpZihqZyA9PSAyIHx8IGpnID09IDMpe1xyXG4gICAgICAgICAgICBuYW1lID0gXCJsZWZ0X1wiICsgaGVpZ2h0ICsgXCJfXCIgKyB3aWR0aDtcclxuICAgICAgICAgICAgbGV0IHggPSBibG9jay54IC0gYmxvY2sud2lkdGg7XHJcbiAgICAgICAgICAgIGxldCB5ID0gYmxvY2sueSArIGJsb2NrLmhlaWdodC8yO1xyXG4gICAgICAgICAgICBpZihibG9jay5hbmNob3JYID09IDAuNSl7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoLzI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihibG9jay5hbmNob3JYID09IDAuMzMpe1xyXG4gICAgICAgICAgICAgICB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoKjAuMzM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihibG9jay5hbmNob3JYID09IDAuNjYpe1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCowLjY2OyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihqZyA9PSAzKXtcclxuICAgICAgICAgICAgICAgIG5hbWUgPSBcInJpZ2h0X1wiICsgaGVpZ2h0ICsgXCJfXCIgKyB3aWR0aDtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54O1xyXG4gICAgICAgICAgICAgICAgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjUpe1xyXG4gICAgICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGgvMjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjMzKXtcclxuICAgICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGgqMC42NjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjY2KXtcclxuICAgICAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoKjAuMzM7IFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwYXJ0aWNsZS5zZXRQb3NpdGlvbih4LCB5KTsgXHJcbiAgICAgICAgfSBcclxuXHJcbiAgICAgICAgbGV0IHBhcnRpY2xlTm9kZSA9ICBwYXJ0aWNsZS5nZXRDaGlsZEJ5TmFtZShuYW1lKTtcclxuICAgICAgICBsZXQgY29sb3IgPSBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5jb2xvciAtIDE7XHJcblxyXG4gICAgICAgIHBhcnRpY2xlTm9kZS5nZXRDb21wb25lbnQoY2MuUGFydGljbGVTeXN0ZW0pLnNwcml0ZUZyYW1lID0gcGFydGljbGUuZ2V0Q29tcG9uZW50KFwiUmVkdWNlXCIpLkJsb2NrX0NvbG9yW2NvbG9yXTtcclxuICAgICAgICBwYXJ0aWNsZU5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY2MudHdlZW4ocGFydGljbGUpXHJcbiAgICAgICAgICAgIC50bygyLCB7b3BhY2l0eTogMH0pXHJcbiAgICAgICAgICAgIC5jYWxsKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmRlc3Ryb3koKTsgXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgIH0sIDEyMDApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZU9uZUJsb2NrKCkge1xyXG4gICAgICAgIC8vIOenu+mZpOaJgOacieaWueWdl1xyXG4gICAgICAgIGZvcihsZXQgaSA9MCA7IGk8dGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZih0aGlzLmJsb2Nrc1tpXS5vcGFjaXR5ID09IDApe1xyXG4gICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzW2ldLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5zcGxpY2UoaSwxKTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgXHJcblxyXG4gICAgdXBkYXRlIChkdCkge1xyXG5cclxuICAgIH1cclxufVxyXG4iXX0= +//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFHckIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM1RixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQy9GLHFDQUFxQztRQUNyQyx1Q0FBdUM7UUFFdkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFM0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JDLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNoRCxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNwRCxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLDJFQUEyRTtnQkFDM0UsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLE1BQU0sR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQTtnQkFDNUQsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFO29CQUNsQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFO3dCQUNoRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDbEM7aUJBQ0o7Z0JBQ0QsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFO29CQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQzsyQkFDL0QsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUU7d0JBQ3RDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO3dCQUNwQixLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDakMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUM7d0JBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUM3Qjs7d0JBQ0ksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2pDO3FCQUNJO29CQUNELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDOzJCQUM3QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRTt3QkFDdEMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7d0JBQ3BCLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUNqQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzt3QkFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQzdCOzt3QkFDSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDakM7Z0JBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDckM7U0FDSjtRQUVELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFFckIsQ0FBQztJQUVELE1BQU07SUFDTixlQUFlO0lBRWYsTUFBTTtJQUNOLGVBQWU7SUFLZiwrQkFBUyxHQUFUO1FBQUEsaUJBMkZDO1FBMUZHLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNoQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhO1FBQzVCLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYztRQUN4QyxJQUFNLGFBQWEsR0FBRyxFQUFFLENBQUMsQ0FBQyxXQUFXO1FBQ3JDLElBQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVc7UUFFcEMsSUFBTSxZQUFZLEdBQUc7WUFDakIsSUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO29DQUMzQixDQUFDO2dCQUNOLElBQUksU0FBUyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEMsb0JBQW9CO2dCQUNwQixJQUFNLFdBQVcsR0FBRyxLQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEMsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFJLENBQUMsSUFBSSxDQUFDO2dCQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyRSxJQUFJLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFO29CQUN2QixLQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztvQkFDbkIsS0FBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3hCLElBQUksU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUU7d0JBQ3JCLElBQUksSUFBSSxHQUFHOzRCQUNQLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRSxHQUFHLENBQUM7NEJBQ3BCLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSzs0QkFDdEIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxRQUFROzRCQUN6QixJQUFJLEVBQUUsRUFBRTs0QkFDUixRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVE7NEJBQzVCLFFBQVEsRUFBRSxTQUFTLENBQUMsS0FBSzt5QkFDNUIsQ0FBQzt3QkFDRixvQkFBb0I7d0JBQ3BCLElBQU0sYUFBYSxHQUFHLEtBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNuRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUM1QyxPQUFPLENBQUMsTUFBTSxHQUFHLEtBQUksQ0FBQyxJQUFJLENBQUM7d0JBQzNCLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBRTdELEtBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUMxQixLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDakUsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBRTVELEtBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO3FCQUN0Qjt5QkFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFO3dCQUM1QixJQUFJLFNBQVMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFOzRCQUM1QixLQUFLLEVBQUUsQ0FBQzs7eUJBRVg7d0JBQ0QsS0FBSyxFQUFFLENBQUM7d0JBQ1IsSUFBSSxNQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUM3QixvQkFBb0I7d0JBQ3BCLElBQU0sYUFBYSxHQUFHLEtBQUksQ0FBQyxXQUFXLENBQUMsTUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNuRCxJQUFJLFNBQU8sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUM1QyxTQUFPLENBQUMsTUFBTSxHQUFHLEtBQUksQ0FBQyxJQUFJLENBQUM7d0JBQzNCLFNBQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBRTdELEtBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQU8sQ0FBQyxDQUFDO3dCQUMxQixLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQ3hFLFVBQVUsQ0FBQzs0QkFDUCxTQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7d0JBQ3RFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDUixLQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztxQkFDdEI7eUJBQU07d0JBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7cUJBQy9DO2lCQUNKO3FCQUNJO29CQUNELEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUNqRDtnQkFDRCxLQUFLLEVBQUUsQ0FBQzs7WUF4RFosS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixJQUFJLEtBQUssR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTt3QkFBN0QsQ0FBQzthQXlEVDtZQUNELElBQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQyxJQUFNLFNBQVMsR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUFDO1lBQ3RDLHVCQUF1QjtZQUN2QixJQUFJLFNBQVMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2hCLGdCQUFnQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2FBQ3BFO2lCQUFNO2dCQUNILGdCQUFnQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2FBQ3BFO1lBRUQsb0JBQW9CO1lBQ3BCLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQzNCLHNDQUFzQztnQkFDdEMsS0FBSSxDQUFDLFlBQVksQ0FBQztvQkFDZCxZQUFZLEVBQUUsQ0FBQztnQkFDbkIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ1Q7aUJBQU07YUFFTjtRQUNMLENBQUMsQ0FBQztRQUVGLFdBQVc7UUFDWCxZQUFZLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ0QseUJBQXlCO0lBQ3pCLCtCQUFTLEdBQVQsVUFBVSxTQUEyRDtRQUNqRSxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQztZQUN2QiwwQkFBMEI7WUFDMUIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtnQkFDOUIsT0FBTyxDQUFDLENBQUM7YUFDWjtZQUNELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDYjtZQUVELDJCQUEyQjtZQUMzQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO2dCQUM5QixPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUMxQjtZQUNELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLE9BQU8sQ0FBQyxDQUFDO2FBQ1o7WUFDRCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO2dCQUM5QixPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ2I7WUFFRCw2QkFBNkI7WUFDN0IsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDbEMsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUNiO1lBQ0QsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDbEMsT0FBTyxDQUFDLENBQUM7YUFDWjtZQUVELGlCQUFpQjtZQUNqQixPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFHRCxNQUFNO0lBRU4sOEJBQVEsR0FBUjtRQUFBLGlCQXNDQztRQXJDRyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhO1FBQzVCLElBQUksZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWM7UUFDdkMsSUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDLENBQUMsV0FBVztRQUNyQyxJQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXO1FBRXBDLElBQU0sV0FBVyxHQUFHO1lBQ2hCLElBQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxJQUFJLEtBQUssR0FBRyxLQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDdEUsSUFBSSxLQUFLLEdBQUcsS0FBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakMsSUFBSSxHQUFHLEdBQUcsS0FBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3hILElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtvQkFDYixLQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDL0I7Z0JBQ0QsS0FBSyxFQUFFLENBQUM7YUFDWDtZQUNELElBQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQyxJQUFNLFNBQVMsR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUFDO1lBQ3RDLHVCQUF1QjtZQUN2QixJQUFJLFNBQVMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2hCLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsR0FBRyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7YUFDbEU7aUJBQU07Z0JBQ0gsZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQzthQUNsRTtZQUVELG9CQUFvQjtZQUNwQixJQUFJLEtBQUssR0FBRyxLQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDOUIsS0FBSSxDQUFDLFlBQVksQ0FBQztvQkFDZCxXQUFXLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ1Q7aUJBQU07Z0JBQ0gsbUJBQW1CO2dCQUNuQixLQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzthQUM1QjtRQUNMLENBQUMsQ0FBQztRQUVGLFdBQVc7UUFDWCxXQUFXLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsZUFBZTtJQUVmLHFDQUFlLEdBQWYsVUFBZ0IsSUFBSSxFQUFFLE1BQU07UUFDeEIsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksSUFBSSxJQUFJLE1BQU07WUFBRSxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLElBQUksSUFBSSxJQUFJLE1BQU07WUFBRSxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBRWxDLElBQUksTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzFCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLEVBQUU7Z0JBQzNELElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsSUFBSSxPQUFPLEVBQUU7aUJBRTNHOztvQkFDSSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzFCO1NBQ0o7UUFDRCxJQUFJLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2YsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sRUFBRTtnQkFDM0QsSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxJQUFJLE1BQU0sRUFBRTtpQkFFMUc7O29CQUNJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDekI7U0FDSjtRQUNELElBQUksTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzNCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLEVBQUU7Z0JBQzNELElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7aUJBRXhHOztvQkFDSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3ZCO1NBQ0o7UUFDRCxJQUFJLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2YsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sRUFBRTtnQkFDM0QsSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxJQUFJLE1BQU0sRUFBRTtpQkFFMUc7O29CQUNJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDekI7U0FDSjtRQUNELElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFFaEIsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDakIsSUFBSSxJQUFJLElBQUksTUFBTTtnQkFDZCxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7Z0JBRWQsT0FBTyxJQUFJLENBQUM7U0FDbkI7YUFDSSxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFFRCx1Q0FBaUIsR0FBakI7UUFDSSxTQUFTO1FBQ1QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzNDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRTtnQkFDdEIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3hILElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtvQkFDYixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDekc7YUFDSjtTQUVKO0lBRUwsQ0FBQztJQUVELGdDQUFVLEdBQVYsVUFBVyxTQUFTLEVBQUUsSUFBSTtRQUN0QixJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEQsUUFBUSxTQUFTLEVBQUU7WUFDZixLQUFLLE9BQU87Z0JBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ25CLElBQUksR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzFCLGtEQUFrRDtnQkFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQy9JLDRHQUE0RztnQkFDNUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO2dCQUNsQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDO29CQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDeEIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQztvQkFDbEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRS9CLE1BQU07WUFDVixLQUFLLE1BQU07Z0JBQ1AsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ25CLElBQUksR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0Msa0RBQWtEO2dCQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDL0ksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlDLDRHQUE0RztnQkFDNUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUM7Z0JBQ2xCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUM7b0JBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUN4QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDO29CQUNsRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsTUFBTTtZQUNWLEtBQUssSUFBSTtnQkFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDbkIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUUzQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekIsa0RBQWtEO2dCQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUV4QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUMvSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDOUMsNEdBQTRHO2dCQUM1RyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFDbEIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQztvQkFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ3hCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUM7b0JBQ2xFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMvQixNQUFNO1lBQ1YsS0FBSyxNQUFNO2dCQUNQLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO2dCQUNuQixJQUFJLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM1QixrREFBa0Q7Z0JBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLGlEQUFpRDtnQkFDakQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDL0ksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlDLDRHQUE0RztnQkFDNUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUM7Z0JBQ2xCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUM7b0JBQzdELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUN4QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDO29CQUNsRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsTUFBTTtZQUNWLEtBQUssU0FBUyxDQUFDO1lBQUMsS0FBSyxTQUFTO2dCQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDbkIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxrREFBa0Q7Z0JBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BJLGlHQUFpRztnQkFDakcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO2dCQUNsQixpR0FBaUc7Z0JBQ2pHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFFbEIsTUFBTTtZQUNWLEtBQUssUUFBUSxDQUFDO1lBQUMsS0FBSyxRQUFRO2dCQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDbkIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxrREFBa0Q7Z0JBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BJLGlHQUFpRztnQkFDakcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO2dCQUNsQixpR0FBaUc7Z0JBQ2pHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFFbEIsTUFBTTtZQUNWLEtBQUssV0FBVyxDQUFDO1lBQUMsS0FBSyxXQUFXO2dCQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDbkIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxrREFBa0Q7Z0JBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BJLGlHQUFpRztnQkFDakcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO2dCQUNsQixpR0FBaUc7Z0JBQ2pHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFFbEIsTUFBTTtZQUNWLEtBQUssVUFBVSxDQUFDO1lBQUMsS0FBSyxVQUFVO2dCQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztnQkFDbkIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxrREFBa0Q7Z0JBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3BJLGlHQUFpRztnQkFDakcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO2dCQUNsQixpR0FBaUc7Z0JBQ2pHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFFbEIsTUFBTTtTQUViO1FBR0QsZ0JBQWdCO1FBQ2hCLG9EQUFvRDtRQUNwRCxJQUFJO0lBQ1IsQ0FBQztJQUVELGlDQUFXLEdBQVgsVUFBWSxJQUFJO1FBQ1osSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdDLElBQUksUUFBUSxFQUFFO1lBQ1YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDOUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNwQzthQUNKO1NBQ0o7SUFDTCxDQUFDO0lBRUQsZ0NBQVUsR0FBVixVQUFXLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7UUFDbEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLElBQUksR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsUUFBUSxTQUFTLEVBQUU7WUFDZixLQUFLLFNBQVMsQ0FBQztZQUFDLEtBQUssU0FBUztnQkFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUV0QyxNQUFNO1lBQ1YsS0FBSyxRQUFRLENBQUM7WUFBQyxLQUFLLFFBQVE7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUM7Z0JBQ3JDLE1BQU07WUFDVixLQUFLLFdBQVcsQ0FBQztZQUFDLEtBQUssV0FBVztnQkFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsTUFBTTtZQUNWLEtBQUssVUFBVSxDQUFDO1lBQUMsS0FBSyxVQUFVO2dCQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztnQkFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQztnQkFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO2dCQUNyQyxNQUFNO1NBQ2I7UUFFRCw2REFBNkQ7UUFDN0Qsd0NBQXdDO1FBQ3hDLElBQUk7UUFDSixRQUFRO1FBQ1Isd0NBQXdDO1FBRXhDLElBQUksU0FBUyxJQUFJLElBQUksSUFBSSxTQUFTLElBQUksUUFBUSxJQUFJLFNBQVMsSUFBSSxRQUFRLEVBQ3JFO1lBQ0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7U0FDdkM7YUFDSSxJQUFJLFNBQVMsSUFBSSxTQUFTLElBQUksU0FBUyxJQUFJLFNBQVMsSUFBSSxTQUFTLElBQUksV0FBVyxJQUFJLFNBQVMsSUFBSSxXQUFXLElBQUksU0FBUyxJQUFJLFVBQVUsRUFBRTtZQUMxSSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUN0QzthQUNJLElBQUksU0FBUyxJQUFJLE1BQU0sSUFBSSxTQUFTLElBQUksVUFBVSxFQUFFO1lBQ3JELElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQ3RDOztZQUNJLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRXhDLGtEQUFrRDtRQUNsRCx1RUFBdUU7UUFDdkUsNkVBQTZFO1FBQzdFLHNDQUFzQztRQUN0QyxzQkFBc0I7UUFDdEIsZ0ZBQWdGO0lBQ3BGLENBQUM7SUFFRCxVQUFVO0lBQ1YsNEJBQU0sR0FBTixVQUFPLEtBQUssRUFBRSxHQUFHO1FBQ2IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDakMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM1QyxPQUFPLEtBQUssQ0FBQzthQUNoQjtTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFFBQVE7SUFDUixpQ0FBVyxHQUFYLFVBQVksS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLO1FBQzlCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3RDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUM5RCxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQy9DLEtBQUssQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNoSCxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzlELEtBQUssQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZGLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7U0FDSjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxNQUFNO0lBQ04sb0NBQWMsR0FBZCxVQUFlLEtBQUssRUFBRSxJQUFJO1FBQ3RCLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2hELElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRTtnQkFDakgsSUFBSSxJQUFJLEVBQUU7b0JBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztvQkFDaEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFDcEY7cUJBQ0k7b0JBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDL0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDOUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQzFHO2FBQ0o7U0FFSjtJQUNMLENBQUM7SUFJRCxTQUFTO0lBQ1Qsb0NBQWMsR0FBZCxVQUFlLEVBQUU7UUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFO2dCQUNwRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDekI7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxLQUFLO0lBQ0wsaUNBQVcsR0FBWCxVQUFZLEVBQUU7UUFDVixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFO2dCQUNwRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDekI7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQ0FBWSxHQUFaLFVBQWEsS0FBSztRQUNkLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMxQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFFNUMsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFFM0MsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLFNBQVMsRUFBRTtZQUN6QixJQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNqQixJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQztnQkFBRSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUMxQzthQUNJLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxTQUFTLEVBQUU7WUFDOUIsSUFBSSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDakIsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUM7Z0JBQUUsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7U0FDMUM7YUFFSSxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxFQUFFO1lBQzlCLElBQUksR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQ25CO2FBQ0ksSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLFNBQVMsRUFBRTtZQUM5QixJQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNqQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUNuQjthQUNJLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxTQUFTLEVBQUU7WUFDOUIsSUFBSSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7U0FDbkI7YUFDSSxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxFQUFFO1lBQzlCLElBQUksR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQ25CO1FBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0lBRUQsWUFBWTtJQUNaLCtCQUFTLEdBQVQsVUFBVSxJQUFJLEVBQUUsTUFBTTtRQUNsQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDMUIsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztRQUMxQixJQUFJLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQzFCLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFFMUIsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXRGLFdBQVc7UUFFWCxJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDcEMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNFO1FBRUQsc0NBQXNDO1FBQ3RDLG1DQUFtQztRQUVuQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNaLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNYLFdBQVc7UUFDWCx3QkFBd0I7UUFDeEIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTNELGNBQWM7UUFDZCxJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDM0Msc0NBQXNDO1lBQ3RDLDhCQUE4QjtZQUM5QixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ1IsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDNUMsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hELElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUYsS0FBSyxJQUFJLEdBQUMsR0FBRyxDQUFDLEVBQUUsR0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsR0FBQyxFQUFFLEVBQUU7b0JBQ3ZDLElBQUksU0FBUyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRTt3QkFDM0QsK0VBQStFO3dCQUMvRSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3FCQUM1QjtpQkFDSjthQUNKO1lBQ0QsaUNBQWlDO1lBQ2pDLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUN0SCxJQUFJLE1BQU0sSUFBSSxJQUFJO29CQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3BFLDhCQUE4QjtnQkFDOUIsSUFBSSxNQUFNLEVBQUU7b0JBRVIsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUM7b0JBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDN0IsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUM7aUJBQ2I7YUFDSjtTQUNKO1FBQ0QsSUFBSSxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQzNDLHNDQUFzQztZQUN0Qyw4QkFBOEI7WUFDOUIsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNSLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUNwQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzdDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlGLEtBQUssSUFBSSxHQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUMsRUFBRSxFQUFFO29CQUN2QyxJQUFJLFNBQVMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUU7d0JBQzNELCtFQUErRTt3QkFDL0UsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztxQkFDOUI7aUJBQ0o7YUFDSjtZQUVELElBQUksVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7Z0JBQ3hCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUV2SCxJQUFJLE1BQU0sSUFBSSxJQUFJO29CQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3JFLDhCQUE4QjtnQkFDOUIsSUFBSSxNQUFNLEVBQUU7b0JBRVIsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUM7b0JBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDN0IsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUM7aUJBQ2I7YUFDSjtTQUdKO1FBQ0QsSUFBSSxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQzNDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDUixzQ0FBc0M7WUFDdEMsOEJBQThCO1lBQzlCLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUNuQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hHLEtBQUssSUFBSSxHQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUMsRUFBRSxFQUFFO29CQUN2QyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUNqRCxJQUFJLFNBQVMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFO3dCQUN2RywrRUFBK0U7d0JBQy9FLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7cUJBQzlCO2lCQUNKO2FBQ0o7WUFFRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUN2QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDdEgsSUFBSSxNQUFNLElBQUksSUFBSTtvQkFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNwRSw4QkFBOEI7Z0JBQzlCLElBQUksTUFBTSxFQUFFO29CQUVSLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO29CQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzdCLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzlCLE9BQU8sRUFBRSxDQUFDO2lCQUNiO2FBQ0o7U0FHSjtRQUNELElBQUksT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRTtZQUMzQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ1Isc0NBQXNDO1lBQ3RDLDhCQUE4QjtZQUM5QixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUM5QyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDekQsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMxRixLQUFLLElBQUksR0FBQyxHQUFHLENBQUMsRUFBRSxHQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxHQUFDLEVBQUUsRUFBRTtvQkFDdkMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDakQsSUFBSSxTQUFTLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRTt3QkFDdkcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDekI7aUJBQ0o7YUFDSjtZQUVELElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7Z0JBQ3JCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNwSCxJQUFJLE1BQU0sSUFBSSxJQUFJO29CQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2xFLGtDQUFrQztnQkFDbEMsSUFBSSxNQUFNLEVBQUU7b0JBRVIsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUM7b0JBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDN0IsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUM7aUJBQ2I7YUFDSjtTQUVKO1FBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQztZQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNyQix1Q0FBdUM7UUFDdkMscUNBQXFDO1FBQ3JDLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELGlDQUFXLEdBQVg7UUFDSSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUMzQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUM3RTtTQUNKO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDN0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDakY7U0FDSjtJQUNMLENBQUM7SUFFRCxXQUFXO0lBQ1gsOEJBQVEsR0FBUixVQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSTtRQUN4QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2QyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsRUFBRTtnQkFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuRTtZQUNELElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxJQUFJLEtBQUssRUFBRTtnQkFDbkcsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDWCxNQUFNO2FBQ1Q7WUFDRCw4R0FBOEc7WUFDOUcsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRTtnQkFFN0UsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDWCxNQUFNO2FBQ1Q7WUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRTtnQkFDdEMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUU7b0JBQ2hELEVBQUUsR0FBRyxLQUFLLENBQUM7b0JBQ1gsTUFBTTtpQkFDVDthQUNKO1NBQ0o7UUFDRCxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFO1lBQ3BELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN2QyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO29CQUMzRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO2lCQUNwRDthQUNKO1NBQ0o7UUFDRCxzQ0FBc0M7UUFDdEMsb0NBQW9DO1FBQ3BDLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixvQ0FBYyxHQUFkLFVBQWUsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTTtRQUN4QyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDZCxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDWixJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNwQyxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDZCxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUNoRSxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLENBQUMsRUFBRSxFQUFFO29CQUNMLHlCQUF5QjtvQkFDekIsQ0FBQyxHQUFHLE9BQU8sQ0FBQztvQkFDWixPQUFPLEVBQUUsQ0FBQztpQkFDYjthQUNKO1NBQ0o7UUFDRCxzQ0FBc0M7UUFDdEMsa0NBQWtDO1FBQ2xDLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELDBDQUEwQztJQUMxQyx3Q0FBa0IsR0FBbEIsVUFBbUIsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNsQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFZCxJQUFJLFNBQVMsSUFBSSxNQUFNLEVBQUU7WUFDckIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLE1BQU07bUJBQzdJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFO2dCQUN6RSx1QkFBdUI7Z0JBQ3ZCLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLENBQUM7YUFDYjtZQUNELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRTtnQkFDN0MsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQzthQUNiO1lBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLE1BQU07dUJBQzdJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFO29CQUN6RSx1QkFBdUI7b0JBQ3ZCLEVBQUUsR0FBRyxLQUFLLENBQUM7b0JBQ1gsT0FBTyxFQUFFLENBQUM7aUJBQ2I7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFO29CQUM3QyxFQUFFLEdBQUcsS0FBSyxDQUFDO29CQUNYLE9BQU8sRUFBRSxDQUFDO2lCQUNiO2FBQ0o7U0FDSjthQUNJLElBQUksU0FBUyxJQUFJLE9BQU8sRUFBRTtZQUMzQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksTUFBTTttQkFDN0ksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUU7Z0JBQ3pFLHVCQUF1QjtnQkFDdkIsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQzthQUNiO1lBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFO2dCQUM3QyxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUNYLE9BQU8sRUFBRSxDQUFDO2FBQ2I7WUFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDMUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLE1BQU07dUJBQzdJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFO29CQUN6RSx1QkFBdUI7b0JBQ3ZCLEVBQUUsR0FBRyxLQUFLLENBQUM7b0JBQ1gsT0FBTyxFQUFFLENBQUM7aUJBQ2I7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFO29CQUM3QyxFQUFFLEdBQUcsS0FBSyxDQUFDO29CQUNYLE9BQU8sRUFBRSxDQUFDO2lCQUNiO2FBQ0o7U0FDSjtRQUNELElBQUksU0FBUyxJQUFJLElBQUksRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksTUFBTTttQkFDN0ksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUU7Z0JBQ3pFLHVCQUF1QjtnQkFDdkIsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQzthQUNiO1lBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFO2dCQUM3QyxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUNYLE9BQU8sRUFBRSxDQUFDO2FBQ2I7WUFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDN0MsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxJQUFJLE1BQU07dUJBQzdJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFO29CQUN6RSx1QkFBdUI7b0JBQ3ZCLEVBQUUsR0FBRyxLQUFLLENBQUM7b0JBQ1gsT0FBTyxFQUFFLENBQUM7aUJBQ2I7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFO29CQUM3QyxFQUFFLEdBQUcsS0FBSyxDQUFDO29CQUNYLE9BQU8sRUFBRSxDQUFDO2lCQUNiO2FBQ0o7U0FDSjtRQUNELElBQUksU0FBUyxJQUFJLE1BQU0sRUFBRTtZQUNyQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksTUFBTTttQkFDN0ksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUU7Z0JBQ3pFLHVCQUF1QjtnQkFDdkIsRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQzthQUNiO1lBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFO2dCQUM3QyxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUNYLE9BQU8sRUFBRSxDQUFDO2FBQ2I7WUFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDZCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLElBQUksTUFBTTt1QkFDN0ksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUU7b0JBQ3pFLHVCQUF1QjtvQkFDdkIsRUFBRSxHQUFHLEtBQUssQ0FBQztvQkFDWCxPQUFPLEVBQUUsQ0FBQztpQkFDYjtnQkFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUU7b0JBQzdDLEVBQUUsR0FBRyxLQUFLLENBQUM7b0JBQ1gsT0FBTyxFQUFFLENBQUM7aUJBQ2I7YUFDSjtTQUNKO1FBQ0Qsb0NBQW9DO1FBQ3BDLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELG9DQUFjLEdBQWQsVUFBZSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUk7UUFDaEMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2QyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUU7Z0JBQ3RDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFO29CQUN2RSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUNoQjthQUNKO1lBQ0QsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFO2dCQUNoQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRTtvQkFDdkUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztpQkFDaEI7YUFDSjtZQUNELElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRTtnQkFDdEMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUU7b0JBQ3ZFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQ2hCO2FBQ0o7WUFDRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUU7Z0JBQ2hCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFO29CQUN2RSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUNoQjthQUNKO1NBQ0o7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCwrQkFBUyxHQUFULFVBQVUsU0FBUztRQUNmLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNmLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELGdDQUFVLEdBQVYsVUFBVyxTQUFTLEVBQUUsR0FBRztRQUNyQixJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDZixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtTQUUxQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELCtCQUFTLEdBQVQsVUFBVSxTQUFTO1FBQ2YsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ2YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7U0FFMUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCw2QkFBTyxHQUFQLFVBQVEsU0FBUyxFQUFFLEdBQUc7UUFDbEIsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ2YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7U0FFMUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFHRCxvQkFBb0I7SUFDcEIsdUNBQWlCLEdBQWpCLFVBQWtCLElBQUk7UUFDbEIsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQUEsS0FBSztZQUM3QyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzdCLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztvQkFDckMsT0FBTyxLQUFLLENBQUE7YUFDbkI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3pDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM1RTtTQUNKO1FBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFO1lBQzlFLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFBLEtBQUs7Z0JBQzNDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRTtvQkFDN0IsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO3dCQUNyQyxPQUFPLEtBQUssQ0FBQTtpQkFDbkI7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUNwQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDdkMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQ3JFO1NBRVI7UUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzVCO1NBQ0o7SUFFTCxDQUFDO0lBRUQsV0FBVztJQUNYLCtCQUFTLEdBQVQ7UUFBQSxpQkE4QkM7UUE3QkcsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUVuQyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDdkQsaUJBQWlCO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBRXBCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2Qix5QkFBeUI7WUFDekIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlCLElBQUksUUFBUSxHQUFHO2dCQUNYLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDM0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQzFCLENBQUE7WUFDRCxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFbEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLFVBQVUsQ0FBQztnQkFDUCxLQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDaEUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ1IsdUJBQXVCO1NBQzFCO2FBQ0k7WUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO2dCQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3hCO1NBQ0o7SUFDTCxDQUFDO0lBRUQsbUNBQWEsR0FBYjtRQUNJLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3hELElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUU7Z0JBQzdFLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO2FBQ3JCO1NBQ0o7SUFDTCxDQUFDO0lBRUQsOEJBQVEsR0FBUjtRQUNJLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNELElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDdEMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDckMsYUFBVyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFFN0IsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUM3RCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPO2FBQ1Y7WUFDRCwwQ0FBMEM7WUFDMUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25ILHlIQUF5SDtZQUN6SCwyQ0FBMkM7WUFDM0MsMEJBQTBCO1lBQzFCLHNGQUFzRjtZQUN0RixRQUFRO1lBQ1IsTUFBTTtZQUVOLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUcsRUFBRSxLQUFLO2dCQUM3QyxJQUFJLEdBQUcsRUFBRTtvQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUN0QyxPQUFPO2lCQUNWO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxVQUFVLENBQUM7Z0JBQ1AsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ1o7YUFDSTtZQUVELHNCQUFzQjtZQUN0QixhQUFXLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUU3QixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxFQUFFO2dCQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQzdELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLE9BQU87YUFDVjtZQUNELEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDMUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuSCx5SEFBeUg7WUFDekgsMkNBQTJDO1lBQzNDLDBCQUEwQjtZQUMxQixzRkFBc0Y7WUFDdEYsUUFBUTtZQUNSLE1BQU07WUFDTixVQUFVLENBQUM7Z0JBQ1AsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5QyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFVCw0Q0FBNEM7U0FFL0M7SUFDTCxDQUFDO0lBRUQsZ0NBQVUsR0FBVjtRQUNJLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNELElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDakMseUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU87UUFFaEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFFM0IsYUFBVyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDN0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ILHlIQUF5SDtRQUN6SCwyQ0FBMkM7UUFDM0MsMEJBQTBCO1FBQzFCLHNGQUFzRjtRQUN0RixRQUFRO1FBQ1IsTUFBTTtRQUNOLFVBQVUsQ0FBQztZQUNQLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ1QsNENBQTRDO0lBQ2hELENBQUM7SUFFRCxpQ0FBVyxHQUFYO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0QsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDO2FBQ2pELElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsSUFBSSxHQUFHLElBQUksQ0FBQztRQUMzRCxtRUFBbUU7UUFDbkUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEQseUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3hDLE9BQU87U0FDVjthQUNJO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVELCtCQUFTLEdBQVQsVUFBVSxJQUFJO1FBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLHlCQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVsQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNuQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDOUQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUlELDZCQUFPLEdBQVA7UUFDSSxpQkFBaUI7UUFDakIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNyRixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDckYsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUN0RixJQUFJLElBQUksR0FBRztZQUNQLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVTtZQUNyQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsTUFBTSxFQUFFLE1BQU07U0FDakIsQ0FBQTtRQUNELEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtZQUN4QixFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBQyxJQUFJO1lBQ3RDLENBQUMsQ0FBQyxDQUFBO1NBQ0w7UUFDRCw0Q0FBNEM7SUFDaEQsQ0FBQztJQUVELGdDQUFVLEdBQVY7UUFDSSxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxJQUFJLGFBQVcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxFQUFFO1lBQzlCLE9BQU87U0FDVjtRQUNELHNDQUFzQztRQUN0QyxhQUFXLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUM3QixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQzdELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsT0FBTztTQUNWO1FBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ILEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUcsRUFBRSxLQUFLO1lBQzdDLElBQUksR0FBRyxFQUFFO2dCQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3RDLE9BQU87YUFDVjtRQUVMLENBQUMsQ0FBQyxDQUFDO1FBRUgsVUFBVSxDQUFDO1lBQ1AsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFFBQVE7SUFDUiwrQkFBUyxHQUFULFVBQVUsSUFBSTtRQUFkLGlCQTZCQztRQTVCRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRTtZQUMvQyxPQUFPO1NBQ1Y7UUFFRCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLElBQUksSUFBSSxNQUFNLEVBQUU7WUFDaEIsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNmO1FBQ0QsVUFBVSxDQUFDO1lBQ1AsS0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQzdELEtBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDcEYsS0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNyRixJQUFJLE1BQU0sR0FBRyxLQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQzlILElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDO2dCQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztpQkFDbEYsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUM7Z0JBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2lCQUN2RixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQztnQkFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDNUYsSUFBSSxJQUFJLEVBQUU7Z0JBQ04sSUFBSSxJQUFJLElBQUksTUFBTSxFQUFFO29CQUNoQixLQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO29CQUNyRixLQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2lCQUN2RjthQUNKO1FBQ0wsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRVQsdUJBQXVCO0lBQzNCLENBQUM7SUFFRCxTQUFTO0lBQ1QsaUNBQVcsR0FBWCxVQUFZLElBQUk7UUFBaEIsaUJBb0JDO1FBbkJHLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWTtRQUN4QyxJQUFNLGFBQWEsR0FBRztZQUNsQixJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsRUFBRSxLQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hFLE9BQU8sS0FBSyxHQUFHLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxLQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNwQixLQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2lCQUNoQzthQUNKO1lBQ0Qsa0JBQWtCO1lBQ2xCLElBQUksS0FBSyxHQUFHLEtBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUM1QixLQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN2QztpQkFBTTthQUNOO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsV0FBVztRQUNYLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUdELDhCQUFRLEdBQVIsVUFBUyxLQUFLLEVBQUUsSUFBSTtRQUNoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssRUFBRTtnQkFDOUUsSUFBSSxJQUFJLEVBQUU7b0JBQ04sSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFO3dCQUNYLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUU7NEJBQzVFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt5QkFDNUU7cUJBQ0o7O3dCQUNJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDakY7O29CQUNJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNqRjtTQUNKO0lBQ0wsQ0FBQztJQUVELDRCQUFNLEdBQU47UUFDSSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFO2dCQUN2RCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDMUU7U0FDSjtJQUNMLENBQUM7SUFFRCxPQUFPO0lBQ1Asc0NBQWdCLEdBQWhCO1FBQ0ksSUFBSSxDQUFDLGdCQUFnQixHQUFHO1lBQ3BCLElBQUksSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTztZQUN2QixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxFQUFFO2dCQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzdELHVCQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7Z0JBQ3pFLCtDQUErQztnQkFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO29CQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDM0M7aUJBQ0k7Z0JBQ0QsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO2dCQUNyQixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM3RCx1QkFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO2dCQUN6RSwrQ0FBK0M7YUFDbEQ7UUFDTCxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELFFBQVE7SUFDUixxQ0FBZSxHQUFmO1FBQ0ksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUMxQztJQUNMLENBQUM7SUFFRCxRQUFRO0lBQ1IsaUNBQVcsR0FBWDtRQUNJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJO2VBQ3pFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBRTtZQUMxRCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BGLElBQUksU0FBUyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDN0MsU0FBUyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckQsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUMsRUFBRTtnQkFDM0MsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRTtvQkFDdEMseUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUN6QyxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDcEQsT0FBTztpQkFDVjtnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ25FLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNyRjtpQkFDSTtnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQy9ELElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO29CQUU5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztvQkFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFFM0UsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7b0JBQzNDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxDQUFDO3dCQUN6QyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDeEUsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN2RCxRQUFRLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7b0JBQzlELFFBQVEsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO29CQUMvQixFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUNsRCxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsVUFBQyxJQUFJO29CQUM3RSxDQUFDLENBQUMsQ0FBQTtvQkFDRixJQUFJLElBQUksR0FBRzt3QkFDUCxFQUFFLEVBQUUsTUFBTTt3QkFDVixHQUFHLEVBQUUsQ0FBQyxDQUFDO3FCQUNWLENBQUE7b0JBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDdEQ7O29CQUNJLHlCQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNqRDtTQUNKO0lBR0wsQ0FBQztJQUVELFFBQVE7SUFDUiw2QkFBTyxHQUFQO1FBQ0ksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQy9DLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BGLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3RELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUM1RSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQiwyQkFBMkI7U0FDOUI7SUFDTCxDQUFDO0lBRUQsc0NBQWdCLEdBQWhCLFVBQWlCLElBQUk7UUFBckIsaUJBcURDO1FBcERHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM3QixvQ0FBb0M7UUFDcEMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZGLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEYsSUFBSSxJQUFJLElBQUksY0FBYztZQUFFLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzNFLElBQUksSUFBSSxJQUFJLGNBQWM7WUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNoRixJQUFJLElBQUksSUFBSSxhQUFhO1lBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkYsSUFBSSxJQUFJLElBQUksY0FBYyxFQUFFO1lBQ3hCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO1lBQzNDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RCxRQUFRLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDOUQsUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDL0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMzRSxVQUFVLENBQUM7Z0JBQ1AsS0FBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDeEUseUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUdYO2FBQ0ksSUFBSSxJQUFJLElBQUksYUFBYSxFQUFFO1lBQzVCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO1lBQzFDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RCxRQUFRLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7WUFDNUQsUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDL0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMzRSxVQUFVLENBQUM7Z0JBQ1AseUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUN0QyxLQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUVYO2FBQ0ksSUFBSSxJQUFJLElBQUksY0FBYyxFQUFFO1lBQzdCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO1lBQzNDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RCxRQUFRLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFDOUQsUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDL0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMzRSxVQUFVLENBQUM7Z0JBQ1AsS0FBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDM0UseUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUVYO0lBSUwsQ0FBQztJQUVELFFBQVE7SUFDUiwrQkFBUyxHQUFUO1FBQ0ksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUk7ZUFDekUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxFQUFFO1lBQzFELE9BQU87U0FDVjtRQUNELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkYsSUFBSSxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUM3QyxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyRCxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFO2dCQUMzQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFFO29CQUN0Qyx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQ3pDLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNwRCxPQUFPO2lCQUNWO2dCQUNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDbkUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JGO2lCQUNJO2dCQUNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUNkLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO29CQUU5QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDbkIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7b0JBQzNDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxDQUFDO3dCQUN6QyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDM0UsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN2RCxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDakMsUUFBUSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO29CQUM5RCxRQUFRLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztvQkFDL0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDbEQsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQUMsSUFBSTtvQkFDN0UsQ0FBQyxDQUFDLENBQUE7b0JBQ0YsSUFBSSxJQUFJLEdBQUc7d0JBQ1AsRUFBRSxFQUFFLE1BQU07d0JBQ1YsR0FBRyxFQUFFLENBQUMsQ0FBQztxQkFDVixDQUFBO29CQUNELEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQ3REOztvQkFDSSx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDakQ7U0FFSjtJQUVMLENBQUM7SUFFRCw4QkFBUSxHQUFSO1FBQ0ksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRTtZQUN0Qyx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekMsT0FBTztTQUNWO1FBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCwrQkFBUyxHQUFUO1FBQ0ksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRTtZQUN0Qyx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekMsT0FBTztTQUNWO1FBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCwrQkFBUyxHQUFUO1FBQ0ksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRTtZQUN0Qyx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekMsT0FBTztTQUNWO1FBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxlQUFlO0lBQ2YsOEJBQVEsR0FBUjtRQUFBLGlCQW1JQztRQWxJRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSTtlQUN6RSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLEVBQUU7WUFDMUQsT0FBTztTQUNWO1FBQ0QsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRixJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQzVDLFFBQVEsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BELElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUU7Z0JBQzFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUU7b0JBQ3RDLHlCQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDekMsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ25ELE9BQU87aUJBQ1Y7Z0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUNuRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2pGLGdEQUFnRDthQUNuRDtpQkFDSTtnQkFDRCxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDN0IsVUFBVSxDQUFDO29CQUNQLEtBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztvQkFDOUIsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZELENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFFVCxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLENBQUM7b0JBQ3hDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN6RSxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3ZELFFBQVEsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDNUQsUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7Z0JBQy9CLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ2xELEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxVQUFDLElBQUk7Z0JBQzVFLENBQUMsQ0FBQyxDQUFBO2dCQUNGLElBQUksSUFBSSxHQUFHO29CQUNQLEVBQUUsRUFBRSxNQUFNO29CQUNWLEdBQUcsRUFBRSxDQUFDLENBQUM7aUJBQ1YsQ0FBQTtnQkFDRCxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLFlBQVUsR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLHFDQUFxQztnQkFDckMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUN6QyxpRUFBaUU7b0JBQ2pFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRTt3QkFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUN4Qzt5QkFDSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUU7d0JBQ3JELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDekM7eUJBQ0ksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFO3dCQUN0RCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7NEJBQ3RELFlBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN6RTs7NEJBQ0ksWUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3hDO3lCQUNJO3dCQUNELFlBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNuQztpQkFDSjtnQkFDRCxJQUFJLFlBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUN2QixZQUFVLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVUsQ0FBQyxDQUFDO29CQUNyRCxZQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNoRCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7b0JBQ2IsSUFBSSxZQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksWUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFO3dCQUNoRyxJQUFJLEdBQUcsR0FBRyxDQUFDO3FCQUNkO29CQUNELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRTt3QkFDVixVQUFVLENBQUM7NEJBQ1AsWUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQzt3QkFDcEQsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUNULE9BQU87cUJBQ1Y7eUJBQ0k7d0JBQ0QsWUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQzt3QkFDaEQsT0FBTztxQkFDVjtpQkFDSjtxQkFDSSxJQUFJLFlBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO29CQUM3QixZQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNoRCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7b0JBQ2IsSUFBSSxZQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksWUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFO3dCQUNoRyxJQUFJLEdBQUcsR0FBRyxDQUFDO3FCQUNkO29CQUNELFVBQVUsQ0FBQzt3QkFDUCxJQUFJLEtBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxLQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7NEJBQzdELCtCQUErQjt5QkFDbEM7NkJBQ0k7NEJBQ0QsSUFBSSxLQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7Z0NBQzdCLG1DQUFtQztnQ0FDbkMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7Z0NBQ3JELE9BQU87NkJBQ1Y7aUNBQ0ksSUFBSSxLQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7Z0NBQ25DLG1DQUFtQztnQ0FDbkMsS0FBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7Z0NBQ3RELE9BQU87NkJBQ1Y7eUJBQ0o7b0JBQ0wsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztpQkFDbEI7cUJBQ0k7b0JBQ0QsSUFBSSxPQUFLLEdBQUcsQ0FBQyxDQUFDO29CQUNkLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO3dCQUM3QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7NEJBQzdDLGtDQUFrQzs0QkFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7NEJBQ3JELE9BQUssSUFBSSxDQUFDLENBQUM7NEJBQ1gsSUFBSSxPQUFLLElBQUksQ0FBQyxFQUFFO2dDQUNaLE1BQU07NkJBQ1Q7eUJBQ0o7cUJBQ0o7b0JBRUQsVUFBVSxDQUFDO3dCQUNQLElBQUksT0FBSyxJQUFJLENBQUMsRUFBRTs0QkFDWixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0NBQzlDLGtDQUFrQztnQ0FDbEMseURBQXlEO2dDQUN6RCxPQUFLLElBQUksQ0FBQyxDQUFDO2dDQUNYLElBQUksT0FBSyxJQUFJLENBQUMsRUFBRTtvQ0FDWixNQUFNO2lDQUNUOzZCQUNKO3lCQUNKO29CQUNMLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDWDthQUNKO1NBQ0o7SUFDTCxDQUFDO0lBRUQsUUFBUTtJQUNSLDhCQUFRLEdBQVI7UUFDSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztTQUN0QjthQUNJO1lBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDckI7SUFDTCxDQUFDO0lBSUQsWUFBWTtJQUNaLGdDQUFVLEdBQVY7UUFDSSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxFQUFFO1lBQ3BCLEtBQUssR0FBRyxHQUFHLENBQUM7U0FDZjthQUNJLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLEVBQUU7WUFDekIsS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzlDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUM7UUFFcEQsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7U0FDdkI7UUFFRCx1QkFBdUI7UUFDdkIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNqRCx5QkFBeUI7UUFDekIsZ0NBQWdDO1FBQ2hDLHVCQUF1QjtJQUMzQixDQUFDO0lBRUQsVUFBVTtJQUNWLG9DQUFjLEdBQWQsVUFBZSxLQUFLLEVBQUUsRUFBRTtRQUNwQixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLGFBQVcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkUsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzVCLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMxQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRWQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQy9CLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDbEMsSUFBSSxHQUFHLE1BQU0sR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQztZQUNyQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ1QsSUFBSSxHQUFHLE1BQU0sR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQztnQkFDckMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDZjtZQUNELElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUU7Z0JBQ3RCLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ2Y7aUJBQ0ksSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRTtnQkFDNUIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQzthQUM1QztpQkFDSSxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO2dCQUM1QixDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQzVDO1lBQ0QsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDOUI7YUFDSSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRTtZQUN6QixJQUFJLEdBQUcsT0FBTyxHQUFHLE1BQU0sR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUM5QixJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUU7Z0JBQ3RCLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2FBQ2pDO2lCQUNJLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7Z0JBQzVCLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2FBQ3BDO2lCQUNJLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7Z0JBQzVCLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2FBQ3BDO1lBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNULElBQUksR0FBRyxRQUFRLEdBQUcsTUFBTSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNaLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxHQUFHLEVBQUU7b0JBQ3RCLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2lCQUNqQztxQkFDSSxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO29CQUM1QixDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztpQkFDcEM7cUJBQ0ksSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRTtvQkFDNUIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7aUJBQ3BDO2FBQ0o7WUFFRCxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM5QjtRQUVELElBQUksWUFBWSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRWxELFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RyxZQUFZLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUMzQixVQUFVLENBQUM7WUFDUCxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztpQkFDYixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUNyQixJQUFJLENBQUM7Z0JBQ0YsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLENBQUMsQ0FBQztpQkFDRCxLQUFLLEVBQUUsQ0FBQztRQUNqQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsb0NBQWMsR0FBZDtRQUNJLFNBQVM7UUFDVCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUM1QjtTQUNKO0lBQ0wsQ0FBQztJQUlELDRCQUFNLEdBQU4sVUFBTyxFQUFFO0lBRVQsQ0FBQzs7SUE3OUREO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztvREFDZDtJQUduQztRQURDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUM7bURBQ2pCO0lBR2xDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7dURBQ2E7SUFHakM7UUFEQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO29EQUNkO0lBSXhDO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztvREFDZDtJQUtuQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO3VEQUNhO0lBR2pDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7Z0RBQ007SUFFMUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQzttREFDUztJQUU3QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO2lEQUNPO0lBRzNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7NkNBQ0c7SUFHckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztpREFDTztJQUUxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO29EQUNVO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7bURBQ1M7SUFHNUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztrREFDUTtJQUcxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO21EQUNTO0lBRzNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7bURBQ1M7SUFJM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnREFDTTtJQXJEUCxXQUFXO1FBRC9CLE9BQU87T0FDYSxXQUFXLENBbStEL0I7SUFBRCxrQkFBQztDQW4rREQsQUFtK0RDLENBbitEd0MsRUFBRSxDQUFDLFNBQVMsR0FtK0RwRDtrQkFuK0RvQixXQUFXIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IEdhbWVNYW5hZ2VyIGZyb20gXCIuL0dhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IExRQ29sbGlkZSB9IGZyb20gXCIuL2xxX2NvbGxpZGVfc3lzdGVtL2xxX2NvbGxpZGVcIjtcclxuaW1wb3J0IE51bWJlclRvSW1hZ2UgZnJvbSBcIi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcblxyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWFwQ29ucm9sZXIgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfQXJyYXk6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfpgZPlhbfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfUHJvcDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICBNYXBCbG9ja1ByZWZhYjogY2MuUHJlZmFiID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOiBcIuaWueWdl+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/kuIrpl6hcclxuICAgICAgICB0aGlzLmJvdHRvbURvb3JzID0gW107IC8v5LiL6ZeoXHJcbiAgICAgICAgdGhpcy5nYW1lV2luID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5nYW1lT3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2FtZVN0YXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ob21lQ2FuVG91Y2ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuYWdhaW5DYW5Ub3VjaCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5uZXdfbW9kZSA9IDA7XHJcblxyXG4gICAgICAgIHRoaXMuaWNlTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgLy8gY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gSG9tZVNjZW5lIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLov5vlhaVHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheSA9IEdhbWVNYW5hZ2VyLl9pbnN0YW5jZS5CbG9ja19BcnJheTtcclxuICAgICAgICB0aGlzLldhbGxfUHJlZmFiID0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLldhbGxfUHJlZmFiO1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQ29sb3IgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UuQmxvY2tfQ29sb3I7XHJcbiAgICAgICAgLy8gdGhpcy5wYXJ0aWNsZUVmZmVjdHMgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UucGFydGljbGVFZmZlY3RzO1xyXG5cclxuICAgICAgICB0aGlzLmluaXRNYXAoKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnRVcGRhdGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ2FtZVN0YXJ0ID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FtZVN0YXJ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy/lj5HpgIHmlbDmlbDkuovku7bigJTigJTov5vlhaXlhbPljaFcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLlh4blpIfov5vlhaXkuIvkuIDlhbMs5Y+R6YCB5LiL5LiA5YWz6L+b5YWlXCIpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJlbnRlcl9zdGFnZVwiKTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDYpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1tpXS5nZXRDaGlsZEJ5TmFtZShcImJvb21cIikuZ2V0Q29tcG9uZW50KFwiQm9vbVwiKS5zdGFydEJvb20oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0TWFwKCkge1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIikuekluZGV4ID0gMTA7XHJcbiAgICAgICAgdGhpcy50aW1lTGFiZWwgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwidGltZVwiKTtcclxuICAgICAgICB0aGlzLmxldmVsTGFiZWwgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwibGV2ZWxcIik7XHJcbiAgICAgICAgdGhpcy50aW1lTnVtYmVyID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLnRpbWU7XHJcbiAgICAgICAgdGhpcy5jb3VudF9UaW1lID0gMDtcclxuICAgICAgICB0aGlzLmFkZF9UaW1lID0gMDtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLCA1MCwgXCJ0aW1lX1wiLCB0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAvLyB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgLy8gdGhpcy50aW1lTGFiZWwuc3RyaW5nID0gdGltZVRlbXAudG9TdHJpbmcoKTtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2RlcygoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSksIDUwLCAyMCwgXCJsZXZlbF9cIiwgdGhpcy5sZXZlbExhYmVsLCBmYWxzZSlcclxuXHJcbiAgICAgICAgLy90aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXBXaWR0aCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5tYXBbMF07XHJcbiAgICAgICAgdGhpcy5tYXBIZWlnaHQgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0ubWFwWzFdO1xyXG4gICAgICAgIGxldCBnYXAgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0uZ2FwO1xyXG4gICAgICAgIGxldCByaXNlZmFsbCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5yaXNlZmFsbDtcclxuXHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaGFtbWVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy53YWxsTnVtID0gMDtcclxuICAgICAgICB0aGlzLnNldE1hcEluZm8oKTtcclxuICAgICAgICB0aGlzLmJsb2NrcyA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwQmxvY2tzV2FsbCA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwSW5mbyA9IFtdO1xyXG4gICAgICAgIHRoaXMud2FsbEluZm8gPSBbXTtcclxuICAgICAgICB0aGlzLm9wZW5XYWxsID0gW107XHJcbiAgICAgICAgdGhpcy53YWxsQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmZyZWV6ZVdhbGwgPSBbXTtcclxuICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2sgPSBbXTtcclxuICAgICAgICB0aGlzLm1hcEJsb2NrQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmZyZWV6ZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sb2Fja0FycmF5ID0gW107XHJcblxyXG5cclxuICAgICAgICBsZXQgc3RhcnRYID0gdGhpcy5tYXBXaWR0aCAlIDIgPT0gMCA/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+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgdGhpcy5nYW1lV2luID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5oiQ5Yqf5raI6Zmk5LiA5LiqXCIpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5jaGFuZ2VDb2luKDQwKTtcclxuICAgICAgICAgICAgbGV0IHRpbWVEYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgY291bnRfVGltZTogdGhpcy5jb3VudF9UaW1lLFxyXG4gICAgICAgICAgICAgICAgYWRkX1RpbWU6IHRoaXMuYWRkX1RpbWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5hZGRMZXZlbCh0aW1lRGF0YSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrX05ld01vZGUoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9LCA2NjApO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIua4uOaIj+aIkOWKn1wiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmdhbWVPdmVyID09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmFpbExldmVsKG51bGwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrX05ld01vZGUoKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYy5meC5HYW1lQ29uZmlnLk5FV19MRVZFTC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCArIDEpID09IGNjLmZ4LkdhbWVDb25maWcuTkVXX0xFVkVMW2ldLmxldmVsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld19tb2RlID0gMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB3aW5MZXZlbCgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA+IDE1Nikge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSAxNTY7XHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5uZXdfbW9kZSA9PSAzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMub3Blbk5ld01vZGUoMik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwgMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcblxyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcblxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4i+S4gOWFs1wiKTtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm5ld19tb2RlID09IDMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTmV3TW9kZSgyKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KGZhbHNlLCAwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIiwgbnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcInVwXCIsIGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwidXBcIikge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KHRydWUsIDApO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhZ2FpbkxldmVsKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLCBudWxsKTtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwIDwgMSkge1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85LiN6LazXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5hZ2FpbkNhblRvdWNoKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuYWdhaW5DYW5Ub3VjaCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsO1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcInVwXCIsIGZhbHNlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAvLyAgICAgaWYgKGVudHJ5LmFuaW1hdGlvbi5uYW1lID09PSBcInVwXCIpIHtcclxuICAgICAgICAvLyAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLCAwKTtcclxuICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldmlld0xldmVsKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLCBudWxsKTtcclxuICAgICAgICBsZXQgY29pbiA9IDkwMDtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAxKSBjb2luID0gMTkwMDtcclxuICAgICAgICBlbHNlIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDIpIGNvaW4gPSAyNTAwO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6Ieq6Lqr6YeR5biBOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLFwi5raI6ICX6YeR5biBOlwiLGNvaW4pO1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IE1hdGguYWJzKGNvaW4pKSB7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XliqDml7bpl7RcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucnVuUmV3aXZlKC1jb2luKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcnVuUmV3aXZlKGRhdGEpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuWkjea0u+Wbnuiwg+WHveaVsOWGhVwiLCBkYXRhKTtcclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5jaGFuZ2VDb2luKGRhdGEpO1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLnu6fnu63muLjmiI9cIik7XHJcblxyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3IDwgMilcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyArPSAxO1xyXG5cclxuICAgICAgICB0aGlzLmdhbWVPdmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW1lTnVtYmVyID0gMjE7XHJcbiAgICAgICAgdGhpcy5hZGRfVGltZSArPSAyMDtcclxuICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgaG9tZUJ0bigpIHtcclxuICAgICAgICAvLyBhbGVydChcIua4uOaIj+Wksei0pVwiKTtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhvbWVDYW5Ub3VjaCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuaG9tZUNhblRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJCb29tXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkxvY2tcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiSGVhbHRoXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgIHRpbWU6IHRoaXMuY291bnRfVGltZSxcclxuICAgICAgICAgICAgYWRkX1RpbWU6IHRoaXMuYWRkX1RpbWUsXHJcbiAgICAgICAgICAgIHJlc3VsdDogXCJmYWlsXCJcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZmluaXNoX3N0YWdlXCIsIGRhdGEpO1xyXG4gICAgICAgIGlmICh0aGlzLmdhbWVTdGFydCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoLTEsIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuSG9tZSgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85YeP5bCRXCIpO1xyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGw7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQoZmFsc2UsIDApO1xyXG4gICAgICAgIGlmICh0aGlzLm5ld19tb2RlID09IDMpIHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJXaW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMub3Blbk5ld01vZGUoMSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+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/prop/Lock.js'; + var __filename = 'preview-scripts/assets/Script/Reduce.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -10124,8 +7410,8 @@ cc._RF.pop(); }; 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 +cc._RF.push(module, 'ca599IU5hFEYYrzoN59YOpT', 'Reduce'); +// Script/Reduce.ts "use strict"; // Learn TypeScript: @@ -10154,42 +7440,33 @@ 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 Lock = /** @class */ (function (_super) { - __extends(Lock, _super); - function Lock() { +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { var _this = _super !== null && _super.apply(this, arguments) || this; - _this.time = 0; + _this.Block_Color = []; + _this.level = null; return _this; // update (dt) {} } - // mapInfo: number[][] = []; - Lock.prototype.onLoad = function () { + // LIFE-CYCLE CALLBACKS: + NewClass.prototype.onLoad = function () { }; - Lock.prototype.start = function () { + NewClass.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([ + __decorate([ + property({ type: [cc.SpriteFrame], tooltip: "方块颜色图片" }) + ], NewClass.prototype, "Block_Color", void 0); + __decorate([ + property(cc.Label) + ], NewClass.prototype, "level", void 0); + NewClass = __decorate([ ccclass - ], Lock); - return Lock; + ], NewClass); + return NewClass; }(cc.Component)); -exports.default = Lock; +exports.default = NewClass; cc._RF.pop(); } @@ -10202,7 +7479,1245 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxMb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR2xGLGtEQUE2QztBQUV2QyxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUsxQztJQUFrQyx3QkFBWTtJQUE5QztRQUFBLHFFQStCQztRQTdCRyxVQUFJLEdBQVcsQ0FBQyxDQUFDOztRQTRCakIsaUJBQWlCO0lBQ3JCLENBQUM7SUEzQkcsNEJBQTRCO0lBRTVCLHFCQUFNLEdBQU47SUFFQSxDQUFDO0lBRUQsb0JBQUssR0FBTDtJQUNBLENBQUM7SUFFRCxtQkFBSSxHQUFKLFVBQUssSUFBSTtRQUNMLElBQUcsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDL0MsdUJBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXBHLENBQUM7SUFFRCxxQkFBTSxHQUFOO1FBQ0ksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7UUFDZix1QkFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEcsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBQztZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ2hDO0lBQ0wsQ0FBQztJQTVCZ0IsSUFBSTtRQUR4QixPQUFPO09BQ2EsSUFBSSxDQStCeEI7SUFBRCxXQUFDO0NBL0JELEFBK0JDLENBL0JpQyxFQUFFLENBQUMsU0FBUyxHQStCN0M7a0JBL0JvQixJQUFJIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IE1hcENvbnJvbGVyIGZyb20gXCIuLi9NYXBcIjtcclxuaW1wb3J0IE51bWJlclRvSW1hZ2UgZnJvbSBcIi4uL051bWJlclRvSW1hZ2VcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2NrIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIHRpbWU6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLy8gbWFwSW5mbzogbnVtYmVyW11bXSA9IFtdO1xyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcblxyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCh0aW1lKXtcclxuICAgICAgICBpZih0aW1lKSB0aGlzLnRpbWUgPSB0aW1lO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2Rlcyh0aGlzLnRpbWUsMjAsOCxcImxvY2tfXCIsdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKSxmYWxzZSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJlZHVjZSgpe1xyXG4gICAgICAgIHRoaXMudGltZSAtPSAxO1xyXG4gICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKHRoaXMudGltZSwyMCw4LFwibG9ja19cIix0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLGZhbHNlKTtcclxuICAgICAgICBpZih0aGlzLnRpbWUgPD0gMCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9IDA7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 +//# 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/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) { + }); + var data = { + time: Map_1.default._instance.count_Time, + add_Time: Map_1.default._instance.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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTY2VuZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkJBQWdDO0FBQ2hDLGlEQUFnRDtBQUUxQyxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUEwQyxnQ0FBWTtJQUF0RDtRQUFBLHFFQW1SQztRQWhSRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFHdkIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUd2QixZQUFNLEdBQVksSUFBSSxDQUFDO1FBR3ZCLGdCQUFVLEdBQVksSUFBSSxDQUFDO1FBRzNCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFJdEIsaUJBQVcsR0FBcUIsRUFBRSxDQUFDO1FBR25DLGlCQUFXLEdBQXFCLEVBQUUsQ0FBQztRQUduQyx5REFBeUQ7UUFDekQsbURBQW1EO1FBRW5ELFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGFBQU8sR0FBVyxFQUFFLENBQUM7O0lBaVB6QixDQUFDO0lBN09HLHdCQUF3QjtJQUV4Qiw2QkFBTSxHQUFOO1FBQ0ksRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLFVBQVUsQ0FBQztZQUNQLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUc7Z0JBQ3RDLElBQUksR0FBRyxFQUFFO29CQUNMLDZDQUE2Qztv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QUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnREFDSztJQUd2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO2dEQUNLO0lBR3ZCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7b0RBQ1M7SUFHM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzsrQ0FDSTtJQUl0QjtRQURDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7cURBQ2Q7SUFHbkM7UUFEQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO3FEQUNkO0lBekJsQixZQUFZO1FBRGhDLE9BQU87T0FDYSxZQUFZLENBbVJoQztJQUFELG1CQUFDO0NBblJELEFBbVJDLENBblJ5QyxFQUFFLENBQUMsU0FBUyxHQW1SckQ7a0JBblJvQixZQUFZIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IE1hcENvbnJvbGVyIGZyb20gXCIuL01hcFwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjZW5lTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHlcclxuICAgIHRleHQ6IHN0cmluZyA9ICdoZWxsbyc7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmcmVlemU6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgaGFtbWVyOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hZ2ljX3dhbmQ6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgcGF1c2U6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfQXJyYXk6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLlopnlo4HmlbDnu4RcIiB9KVxyXG4gICAgV2FsbF9QcmVmYWI6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBwYXJ0aWNsZUVmZmVjdHM6IGNjLlBhcnRpY2xlQXNzZXRbXTtcclxuICAgIC8vIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlBhcnRpY2xlU3lzdGVtXSwgdG9vbHRpcDpcIueykuWtkOaVsOe7hFwifSlcclxuICAgIC8vIHBhcnRpY2xlRWZmZWN0cyA6IEFycmF5PGNjLlBhcnRpY2xlU3lzdGVtPiA9IFtdO1xyXG5cclxuICAgIGxvYWQxOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZDM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGJ0bk5hbWU6IHN0cmluZyA9ICcnO1xyXG4gICAgY2FsbEJhY2s6IGFueTtcclxuXHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkKCkge1xyXG4gICAgICAgIGNjLmdhbWUuc2V0RnJhbWVSYXRlKDYzKTtcclxuICAgICAgICB0aGlzLmNoYW5nZUJnKCk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ+mihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+aIkOWKn+mihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmvJyk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIDEwMDApO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VCZygpIHtcclxuICAgICAgICBsZXQgbnVtYmVyID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogOCkgKyAxO1xyXG4gICAgICAgIGNvbnN0IHBhdGggPSAnYmcvYmcnICsgbnVtYmVyO1xyXG4gICAgICAgIGNjLnJlc291cmNlcy5sb2FkKHBhdGgsIGNjLlNwcml0ZUZyYW1lLCAoZXJyLCBzcHJpdGVGcmFtZTogY2MuU3ByaXRlRnJhbWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L296IOM5pmv5Zu+5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKS5nZXRDaGlsZEJ5TmFtZShcImJnXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gc3ByaXRlRnJhbWU7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBsb2FkUGFydGljbGVFZmZlY3RzKCkge1xyXG4gICAgICAgIGNvbnN0IHBhdGggPSAnUGFydGljbGUnO1xyXG4gICAgICAgIGNjLnJlc291cmNlcy5sb2FkRGlyKHBhdGgsIGNjLlBhcnRpY2xlQXNzZXQsIChlcnIsIGFzc2V0czogY2MuUGFydGljbGVBc3NldFtdKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9veeykuWtkOeJueaViOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnBhcnRpY2xlRWZmZWN0cyA9IGFzc2V0cztcclxuICAgICAgICAgICAgdGhpcy5zZXRQYXJ0aWNsZVNvcnQoKTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ+eykuWtkOeJueaViOWKoOi9veaIkOWKn++8jOWFseWKoOi9veS6hicsIHRoaXMucGFydGljbGVFZmZlY3RzLmxlbmd0aCwgJ+S4queykuWtkOeJueaViCcpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFdhbGxQcmVmYWJTb3J0KCkge1xyXG4gICAgICAgIGNvbnN0IG9yZGVyID0gWydkb3duJywgJ2Rvd25MZWZ0JywgJ2Rvd25SaWdodCcsICdsZWZ0JywgJ3JpZ2h0JywgJ3VwJywgJ3VwTGVmdCcsICd1cFJpZ2h0J107XHJcbiAgICAgICAgdGhpcy5XYWxsX1ByZWZhYi5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhBID09PSAtMSkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEIgPT09IC0xKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIHJldHVybiBpbmRleEEgLSBpbmRleEI7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHNldFBhcnRpY2xlU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsndG9wJywgJ2JvdCcsICdyaWcnLCAnbGVmJ107XHJcbiAgICAgICAgdGhpcy5wYXJ0aWNsZUVmZmVjdHMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhhLm5hbWUuc3Vic3RyKDAsMyksYi5uYW1lLnN1YnN0cigwLDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhBID0gb3JkZXIuaW5kZXhPZihhLm5hbWUuc3Vic3RyKDAsIDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUuc3Vic3RyKDAsIDMpKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QSA9PT0gLTEpIHJldHVybiAxO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhCID09PSAtMSkgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXhBIC0gaW5kZXhCO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFNvcnQoKSB7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOS7juWQjeensOS4reaPkOWPluaVsOWtl+mDqOWIhlxyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJBID0gcGFyc2VJbnQoYS5uYW1lLm1hdGNoKC9cXGQrLyk/LlswXSB8fCAnMCcsIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQiA9IHBhcnNlSW50KGIubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIHJldHVybiBudW1iZXJBIC0gbnVtYmVyQjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnRHYW1lKCkge1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5oiQ5Yqf5YiH5o2i5YiwIEhvbWVTY2VuZSDlnLrmma8nKTtcclxuICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJQYXVzZVwiKS5nZXRDaGlsZEJ5TmFtZShcImJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCkge1xyXG4gICAgICAgICAgICBpZiAoTWFwQ29ucm9sZXIuX2luc3RhbmNlLmdhbWVTdGFydCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85YeP5bCRXCIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckhlYWx0aCgtMSwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICB0aW1lOiBNYXBDb25yb2xlci5faW5zdGFuY2UuY291bnRfVGltZSxcclxuICAgICAgICAgICAgICAgICAgICBhZGRfVGltZTogTWFwQ29ucm9sZXIuX2luc3RhbmNlLmFkZF9UaW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdDogXCJnaXZlX3VwXCJcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcImZpbmlzaF9zdGFnZVwiLCBkYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJQYXVzZVwiKS5nZXRDaGlsZEJ5TmFtZShcImJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJ1cFwiLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGRlc3Ryb3lOb2Rlc0luRnJhbWVzKG5vZGVzOiBjYy5Ob2RlW10sIGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XHJcbiAgICAgICAgY29uc3QgQkFUQ0hfU0laRSA9IDEwOyAvLyDmr4/luKfplIDmr4HnmoToioLngrnmlbDph49cclxuICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG5cclxuICAgICAgICBjb25zdCBkZXN0cm95QmF0Y2ggPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICAgICAgICAgIHdoaWxlIChpbmRleCA8IG5vZGVzLmxlbmd0aCAmJiBjb3VudCA8IEJBVENIX1NJWkUpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBub2Rlc1tpbmRleF07XHJcbiAgICAgICAgICAgICAgICBpZiAobm9kZSkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IG5vZGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU9uY2UoZGVzdHJveUJhdGNoLCA2KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBkZXN0cm95QmF0Y2goKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDmlLnov5vlkI7nmoTliIfmjaLlnLrmma/mlrnms5VcclxuICAgIHN3aXRjaFRvRW1wdHlTY2VuZSgpIHtcclxuICAgICAgICBjb25zdCBhbGxOb2RlcyA9IGNjLmRpcmVjdG9yLmdldFNjZW5lKCkuY2hpbGRyZW47XHJcbiAgICAgICAgdGhpcy5kZXN0cm95Tm9kZXNJbkZyYW1lcyhhbGxOb2RlcywgKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlblBhdXNlKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLCBudWxsKTtcclxuICAgICAgICBpZiAodGhpcy5wYXVzZS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCkge1xyXG4gICAgICAgICAgICB0aGlzLnBhdXNlLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJQYXVzZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VQYXVzZSgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9saXR0bGVcIiwgbnVsbCk7XHJcbiAgICAgICAgdGhpcy5wYXVzZS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChNYXBDb25yb2xlci5faW5zdGFuY2Uubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvcGVuUHJvcEJ1eShuYW1lKSB7XHJcbiAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmJ0bk5hbWUgPSBuYW1lO1xyXG4gICAgICAgIGxldCBwcm9wV2luZG93ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKS5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIik7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJmcmVlemVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcImhhbW1lclwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwibWFnaWNcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcImJ1eV9CdG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKG5hbWUpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY2xpY2tCdG4oKSB7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsIG51bGwpO1xyXG4gICAgICAgIGxldCBwcm9wV2luZG93ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKS5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIik7XHJcbiAgICAgICAgaWYgKHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJidXlfQnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKSB7XHJcbiAgICAgICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJidXlfQnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5idG5OYW1lID09IFwiZnJlZXplXCIpXHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuYnV5RnJlZXplKCk7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuYnRuTmFtZSA9PSBcImhhbW1lclwiKVxyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLmJ1eUhhbW1lcigpO1xyXG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLmJ0bk5hbWUgPT0gXCJtYWdpY1wiKVxyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLmJ1eU1hZ2ljKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/miZPlvIDllYblupdcclxuICAgIG9wZW5TaG9wKCkge1xyXG4gICAgICAgIC8vIOWKoOi9vSBzaG9wICBidW5kbGVcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZEJ1bmRsZSgnc2hvcCcsIChlcnI6IEVycm9yLCBidW5kbGU6IGNjLkFzc2V0TWFuYWdlci5CdW5kbGUpID0+IHtcclxuICAgICAgICAgICAgYnVuZGxlLmxvYWQoJ3ByZWZhYi9zaG9wJywgY2MuUHJlZmFiLCAoZXJyOiBFcnJvciwgcHJlZmFiOiBjYy5QcmVmYWIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5lcnJvcihlcnIubWVzc2FnZSB8fCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChwcmVmYWIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaG9wTm9kZSA9IGNjLmluc3RhbnRpYXRlKHByZWZhYik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLmFkZENoaWxkKHNob3BOb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInNob3BOb2RlIHBhcmVudDpcIiwgc2hvcE5vZGUucGFyZW50KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNsb3NlUHJvcEJ1eSgpIHtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICBsZXQgZnJlZXplQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwidGltZUJ0blwiKTtcclxuICAgICAgICBsZXQgaGFtbWVyQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSBNYXBDb25yb2xlci5faW5zdGFuY2Uubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJtYWdpY0J0blwiKTtcclxuICAgICAgICBpZiAodGhpcy5idG5OYW1lID09IFwiZnJlZXplXCIpIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuYnRuTmFtZSA9PSBcImhhbW1lclwiKSBoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBlbHNlIGlmICh0aGlzLmJ0bk5hbWUgPT0gXCJtYWdpY1wiKSBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG5cclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpLmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUoZHQpIHtcclxuXHJcbiAgICB9XHJcbn1cclxuIl19 +//------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() { + return _super !== null && _super.apply(this, arguments) || this; + } + btnControl.prototype.onLoad = function () { + this._touch = true; + }; + btnControl.prototype.start = function () { + }; + btnControl.prototype.setTouch = function (type) { + this._touch = type; + }; + btnControl.prototype.update = function (dt) { + }; + btnControl = __decorate([ + ccclass + ], btnControl); + return btnControl; +}(cc.Component)); +exports.default = btnControl; + +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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxidG5Db250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdNLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBSTFDO0lBQXdDLDhCQUFZO0lBQXBEOztJQWtCQSxDQUFDO0lBYkcsMkJBQU0sR0FBTjtRQUNJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCwwQkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELDZCQUFRLEdBQVIsVUFBUyxJQUFJO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELDJCQUFNLEdBQU4sVUFBUSxFQUFFO0lBQ1YsQ0FBQztJQWpCZ0IsVUFBVTtRQUQ5QixPQUFPO09BQ2EsVUFBVSxDQWtCOUI7SUFBRCxpQkFBQztDQWxCRCxBQWtCQyxDQWxCdUMsRUFBRSxDQUFDLFNBQVMsR0FrQm5EO2tCQWxCb0IsVUFBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIGJ0bkNvbnRyb2wgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG4gICAgX3RvdWNoOiBib29sZWFuO1xyXG5cclxuXHJcbiAgICBvbkxvYWQgKCkgeyBcclxuICAgICAgICB0aGlzLl90b3VjaCA9IHRydWU7XHJcbiAgICB9IFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgIH1cclxuXHJcbiAgICBzZXRUb3VjaCh0eXBlKXtcclxuICAgICAgICB0aGlzLl90b3VjaCA9IHR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlIChkdCkge1xyXG4gICAgfVxyXG59XHJcbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/NewMode.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, '7fe14dRFQZKSKKAoEn4S7OU', 'NewMode'); +// Script/NewMode.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.text = 'hello'; + _this.btnStatic = 0; + _this.propName = ""; + return _this; + // update (dt) {} + } + // LIFE-CYCLE CALLBACKS: + // onLoad () {} + NewClass.prototype.start = function () { + var _this = this; + for (var i = 0; i < cc.fx.GameConfig.NEW_LEVEL.length; i++) { + if ((cc.fx.GameConfig.GM_INFO.level + 1) == cc.fx.GameConfig.NEW_LEVEL[i].level) { + this.propName = cc.fx.GameConfig.NEW_LEVEL[i].name; + var path = 'Window_Prop/' + this.propName; + cc.resources.load(path, cc.SpriteFrame, function (err, spriteFrame) { + if (err) { + console.error('动态加载背景图失败:', err); + return; + } + _this.node.getChildByName("icon").getComponent(cc.Sprite).spriteFrame = spriteFrame; + }); + break; + } + } + }; + NewClass.prototype.setMode = function (mode) { + this.btnStatic = mode; + var name = "GameScene"; + if (mode == 1) { + name = "HomeScene"; + } + cc.director.preloadScene(name, function () { + }); + }; + NewClass.prototype.clickBtn = function () { + cc.fx.AudioManager._instance.playEffect("anniu_Big", null); + if (this.btnStatic == 1) { + cc.director.loadScene("HomeScene"); + } + else if (this.btnStatic == 2) { + cc.director.loadScene("GameScene"); + } + }; + __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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxOZXdNb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVFLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBdURDO1FBcERHLFdBQUssR0FBYSxJQUFJLENBQUM7UUFHdkIsVUFBSSxHQUFXLE9BQU8sQ0FBQztRQUV2QixlQUFTLEdBQVcsQ0FBQyxDQUFDO1FBRXRCLGNBQVEsR0FBVyxFQUFFLENBQUM7O1FBNEN0QixpQkFBaUI7SUFDckIsQ0FBQztJQTNDRyx3QkFBd0I7SUFFeEIsZUFBZTtJQUVmLHdCQUFLLEdBQUw7UUFBQSxpQkFlQztRQWRHLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO1lBQ2xELElBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUM7Z0JBQ3pFLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDbkQsSUFBTSxJQUFJLEdBQUcsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQzVDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQUMsR0FBRyxFQUFFLFdBQTJCO29CQUNyRSxJQUFJLEdBQUcsRUFBRTt3QkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDakMsT0FBTztxQkFDVjtvQkFDRCxLQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7Z0JBQ3ZGLENBQUMsQ0FBQyxDQUFBO2dCQUNGLE1BQU07YUFDVDtTQUNKO0lBQ0wsQ0FBQztJQUVELDBCQUFPLEdBQVAsVUFBUSxJQUFXO1FBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxJQUFJLEdBQUcsV0FBVyxDQUFDO1FBQ3ZCLElBQUcsSUFBSSxJQUFJLENBQUMsRUFBQztZQUNULElBQUksR0FBRyxXQUFXLENBQUM7U0FDdEI7UUFDRCxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUU7UUFFL0IsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsMkJBQVEsR0FBUjtRQUNJLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELElBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLEVBQUM7WUFDbkIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDdEM7YUFDSSxJQUFHLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxFQUFDO1lBQ3hCLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQztJQWpERDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDOzJDQUNJO0lBR3ZCO1FBREMsUUFBUTswQ0FDYztJQU5OLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0F1RDVCO0lBQUQsZUFBQztDQXZERCxBQXVEQyxDQXZEcUMsRUFBRSxDQUFDLFNBQVMsR0F1RGpEO2tCQXZEb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5XHJcbiAgICB0ZXh0OiBzdHJpbmcgPSAnaGVsbG8nO1xyXG5cclxuICAgIGJ0blN0YXRpYzogbnVtYmVyID0gMDtcclxuXHJcbiAgICBwcm9wTmFtZTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuXHJcbiAgICAvLyBvbkxvYWQgKCkge31cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8Y2MuZnguR2FtZUNvbmZpZy5ORVdfTEVWRUwubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZigoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsKzEpID09IGNjLmZ4LkdhbWVDb25maWcuTkVXX0xFVkVMW2ldLmxldmVsKXtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvcE5hbWUgPSBjYy5meC5HYW1lQ29uZmlnLk5FV19MRVZFTFtpXS5uYW1lO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9ICdXaW5kb3dfUHJvcC8nICsgdGhpcy5wcm9wTmFtZTtcclxuICAgICAgICAgICAgICAgIGNjLnJlc291cmNlcy5sb2FkKHBhdGgsIGNjLlNwcml0ZUZyYW1lLCAoZXJyLCBzcHJpdGVGcmFtZTogY2MuU3ByaXRlRnJhbWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9veiDjOaZr+WbvuWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gc3ByaXRlRnJhbWU7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TW9kZShtb2RlOm51bWJlcil7XHJcbiAgICAgICAgdGhpcy5idG5TdGF0aWMgPSBtb2RlO1xyXG4gICAgICAgIGxldCBuYW1lID0gXCJHYW1lU2NlbmVcIjtcclxuICAgICAgICBpZihtb2RlID09IDEpe1xyXG4gICAgICAgICAgICBuYW1lID0gXCJIb21lU2NlbmVcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKG5hbWUsICgpPT57XHJcblxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgY2xpY2tCdG4oKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIixudWxsKTtcclxuICAgICAgICBpZih0aGlzLmJ0blN0YXRpYyA9PSAxKXtcclxuICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMuYnRuU3RhdGljID09IDIpeyBcclxuICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ== +//------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/GameManager.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, 'df248lSLllOZpCHwGqQ5Ye3', 'GameManager'); +// Script/GameManager.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 MiniGameSdk_1 = require("./Sdk/MiniGameSdk"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var GameManager = /** @class */ (function (_super) { + __extends(GameManager, _super); + function GameManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.label = null; + _this.text = 'hello'; + _this.Block_Array = []; + _this.Wall_Prefab = []; + _this.Block_Color = []; + // @property({type: [cc.ParticleSystem], tooltip:"粒子数组"}) + // particleEffects : Array = []; + _this.load1 = false; + _this.load2 = false; + _this.load3 = false; + _this.load4 = false; + _this.load5 = false; + return _this; + } + GameManager_1 = GameManager; + // LIFE-CYCLE CALLBACKS: + GameManager.prototype.onLoad = function () { + var _this = this; + window.initMgr(); + this.timeNumber = 3; + 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(); + }, 200); + if (GameManager_1._instance == null) { + GameManager_1._instance = this; + cc.game.addPersistRootNode(this.node); + } + else { + return; + } + var path = 'prefab/block'; + var path2 = 'prefab/wall'; + cc.resources.loadDir(path, cc.Prefab, function (err, assets) { + if (err) { + console.error('动态加载 Prefab 失败:', err); + cc.director.loadScene("LoadScene"); + return; + } + // 将加载的 Prefab 赋值给 Block_Array + _this.Block_Array = assets; + console.log('方块加载成功,共加载了', _this.Block_Array.length, '个方块'); + _this.setSort(); + _this.load1 = true; + }); + cc.resources.loadDir(path2, cc.Prefab, function (err, assets) { + if (err) { + console.error('动态加载 Prefab 失败:', err); + cc.director.loadScene("LoadScene"); + return; + } + // 将加载的 Prefab 赋值给 Block_Array + _this.Wall_Prefab = assets; + _this.load2 = true; + console.log('墙加载成功,共加载了', _this.Wall_Prefab.length, '个墙'); + _this.setWallPrefabSort(); + }); + // debugger; + // setTimeout(() => { + // cc.director.preloadScene("HomeScene", (err) => { + // if (err) { + // console.error('预加载 HomeScene 场景失败:', err); + // return; + // } + // }); + // }, 1000); + // 检测微信小游戏切到后台 + if (cc.sys.platform === cc.sys.WECHAT_GAME) { + //@ts-ignore + wx.onHide(function () { + _this.onHide(); + }); + // 检测微信小游戏回到前台 + //@ts-ignore + wx.onShow(function () { + _this.onShow(); + }); + } + }; + GameManager.prototype.onHide = function () { + cc.audioEngine.stopMusic(); + cc.game.pause(); + }; + GameManager.prototype.onShow = function () { + cc.audioEngine.resumeMusic(); + cc.game.resume(); + }; + GameManager.prototype.loadParticleEffects = function () { + }; + GameManager.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; + }); + }; + GameManager.prototype.setParticleSort = function () { + var order = ['top', 'bot', 'rig', 'lef']; + this.particleEffects.sort(function (a, b) { + 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; + }); + }; + GameManager.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; + }); + }; + GameManager.prototype.start = function () { + }; + GameManager.prototype.startGame = function () { + console.log("进入场景之前_____________", cc.fx.GameConfig.GM_INFO.first); + cc.director.loadScene("HomeScene"); + }; + GameManager.prototype.returnHome = function () { + cc.tween(this.node.getChildByName("Game")) + .to(0.5, { opacity: 100 }) + .call(function () { + // 预加载成功后加载场景 + cc.director.loadScene("HomeScene", function (err) { + if (err) { + console.error('加载 HomeScene 场景失败:', err); + } + else { + cc.director.loadScene("HomeScene"); + } + }); + }) + .start(); + cc.tween(this.node.getChildByName("mask")) + .to(0.5, { opacity: 255 }) + .start(); + // cc.loader.releaseAll(); + // 预加载 HomeScene 场景 + }; + GameManager.prototype.readUserData = function (retryCount) { + var _this = this; + if (retryCount === void 0) { retryCount = 0; } + //@ts-ignore + if (typeof wx !== 'undefined' && wx !== null) { + var levelInfo = cc.fx.StorageMessage.getStorage("level"); + //旧的读取数据设置数据方法,以强联网为主 + if (levelInfo == undefined || levelInfo == "" || levelInfo == null) { + this.oldReadData(retryCount); + } + //新的读取数据设置方法,以本地为主 + else { + this.newReadData(); + } + console.log("即将读取体力值"); + cc.fx.GameTool.getHealth(function (data) { + console.log("体力值完成进入游戏"); + _this.load5 = true; + }); + } + else { + this.load3 = true; + this.load4 = true; + this.load5 = true; + cc.fx.GameTool.getHealth(null); + } + // 存储用户数据 + }; + GameManager.prototype.readMusicConfig = function () { + var audioInfo = cc.fx.StorageMessage.getStorage("music"); + if (audioInfo == undefined || audioInfo == "" || audioInfo == null) { + audioInfo = { + "musicOpen": true, + "effectOpen": true, + "vibrateOpen": true, + }; + cc.fx.StorageMessage.setStorage("music", audioInfo); + } + else { + cc.fx.GameConfig.GM_INFO.musicOpen = audioInfo.musicOpen; + cc.fx.GameConfig.GM_INFO.effectOpen = audioInfo.effectOpen; + cc.fx.GameConfig.GM_INFO.vibrateOpen = audioInfo.vibrateOpen; + } + }; + //新用户,有本地缓存读取配置 + GameManager.prototype.newReadData = function () { + var _this = this; + console.log("读取新信息"); + var openid = cc.fx.StorageMessage.getStorage("openid"); + if (openid == null || openid == "" || openid == undefined) { + console.log("没有openid"); + //@ts-ignore + wx.cloud.callFunction({ + name: 'userData', + data: { + action: 'read' + }, + success: function (res) { + console.log('读取用户数据成功', res.result); + if (res.result.code == 404 && res.result.message == "未找到用户数据") { + } + else if (res.result.code == 200) { + if (res.result.data) { + cc.fx.GameConfig.GM_INFO.openid = res.result.openid; + cc.fx.GameConfig.GM_INFO.username = res.result.data.username; + cc.fx.GameConfig.GM_INFO.useravatar = res.result.data.useravatar; + var register_time = res.result.data.register_time; + MiniGameSdk_1.MiniGameSdk.API.shushu_userSet(register_time); + cc.fx.StorageMessage.setStorage("openid", cc.fx.GameConfig.GM_INFO.openid); + } + } + }, + fail: function (err) { + console.error('读取用户数据失败', err); + } + }); + } + else { + if (openid) + cc.fx.GameConfig.GM_INFO.openid = openid; + } + //等级信息 + cc.fx.GameTool.getUserLevel(function (data) { + var timestamp = Date.now(); + var levelInfo = cc.fx.StorageMessage.getStorage("level"); + if (data.result.code == 404 && data.result.message == "未找到关卡数据") { + // console.log("没有等级信息,从用户接口拿到数据"); + if (levelInfo.level) { + cc.fx.GameConfig.GM_INFO.level = levelInfo.level; + } + _this.load4 = true; + cc.fx.GameTool.setUserLevel(function (data) { + }); + } + else if (data.result.code == 200) { + // console.log("有等级信息,从关卡接口拿到数据",data.result.data); + //游戏前端存储 新于服务器端,以游戏前端信息为主,放服务器存储 + var temp = data.result.timestamp - levelInfo.timestamp; + console.log("等级时间差:", temp); + if ((data.result.timestamp - levelInfo.timestamp) < 10000) { + if (levelInfo.level) { + console.log("以游戏前端等级为准", data.result.data); + cc.fx.GameConfig.GM_INFO.level = levelInfo.level; + // console.log("等级为:",cc.fx.GameConfig.GM_INFO.level); + cc.fx.GameTool.setUserLevel(function (data) { + }); + } + } + //服务器端存储时间新于游戏端,以服务器端为主,往前端存储 + else { + console.log("以服务器等级为准", data.result.data); + cc.fx.GameConfig.GM_INFO.level = data.result.data; + levelInfo.level = cc.fx.GameConfig.GM_INFO.level; + levelInfo.timestamp = timestamp; + // console.log("1111111存储关卡数据:",cc.fx.GameConfig.GM_INFO.level); + cc.fx.StorageMessage.setStorage("level", levelInfo); + } + _this.load4 = true; + } + }); + //金币信息 + cc.fx.GameTool.getUserCoin(function (data) { + var timestamp = Date.now(); + var coinInfo = cc.fx.StorageMessage.getStorage("coin"); + if (data.result.code == 404 && data.result.message == "未找到金币数据") { + if (coinInfo.coin) + cc.fx.GameConfig.GM_INFO.coin = coinInfo.coin; + console.log("没有金币信息,从用户接口拿到数据", cc.fx.GameConfig.GM_INFO.coin); + _this.load3 = true; + cc.fx.GameTool.setUserCoin(function (data) { + }); + } + else if (data.result.code == 200) { + // console.log("有金币信息,从金币接口拿到数据",data.result.data); + //游戏前端存储 新于服务器端,以游戏前端信息为主,放服务器存储 + var temp = data.result.timestamp - coinInfo.timestamp; + console.log("金币时间差:", temp); + if ((data.result.timestamp - coinInfo.timestamp) < 10000) { + console.log("以前端金幣为准:", coinInfo); + if (coinInfo.coin) + cc.fx.GameConfig.GM_INFO.coin = coinInfo.coin; + else { + cc.fx.GameConfig.GM_INFO.coin = data.result.data; + coinInfo.coin = cc.fx.GameConfig.GM_INFO.coin; + coinInfo.timestamp = timestamp; + console.log("11111111111"); + cc.fx.StorageMessage.setStorage("coin", coinInfo); + } + console.log("改变后金币:", cc.fx.GameConfig.GM_INFO.coin); + cc.fx.GameTool.setUserCoin(function (data) { + }); + } + //服务器端存储时间新于游戏端,以服务器端为主,往前端存储 + else { + console.log("以服务器金幣为准:", data.result.data); + cc.fx.GameConfig.GM_INFO.coin = data.result.data; + coinInfo.coin = cc.fx.GameConfig.GM_INFO.coin; + coinInfo.timestamp = timestamp; + console.log("2222222222"); + cc.fx.StorageMessage.setStorage("coin", coinInfo); + } + _this.load3 = true; + } + }); + //道具信息 + cc.fx.GameTool.getUserProp(function (data) { + var timestamp = Date.now(); + var propInfo = cc.fx.StorageMessage.getStorage("prop"); + if (data.result.code == 404 && data.result.message == "未找到道具数据") { + console.log("没有道具信息,从用户接口拿到数据", propInfo); + if (propInfo.freezeAmount == undefined || propInfo.hammerAmount == undefined || propInfo.magicAmount == undefined) { + console.log("2222222道具数据异常"); + cc.fx.GameConfig.GM_INFO.freezeAmount = 0; + cc.fx.GameConfig.GM_INFO.hammerAmount = 0; + cc.fx.GameConfig.GM_INFO.magicAmoun = 0; + var propInfoNew = { + "freezeAmount": cc.fx.GameConfig.GM_INFO.freezeAmount, + "hammerAmount": cc.fx.GameConfig.GM_INFO.hammerAmount, + "magicAmount": cc.fx.GameConfig.GM_INFO.magicAmoun, + "timestamp": timestamp + }; + console.log("1111111上传道具信息:", propInfoNew); + cc.fx.StorageMessage.setStorage("prop", propInfoNew); + } + else { + cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze; + cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer; + cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand; + } + cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; + cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; + cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; + cc.fx.GameTool.setUserProp(0, 0, function (data) { + }); + } + else if (data.result.code == 200) { + // console.log("本地时间戳",propInfo.timestamp,"服务器时间戳",data.result.timestamp); + if ((data.result.timestamp - propInfo.timestamp) < 10000) { + console.log("以前端道具为主:", propInfo); + if (propInfo.freezeAmount == undefined || propInfo.hammerAmount == undefined || propInfo.magicAmount == undefined) { + console.log("111111道具数据异常", data.result.data); + cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze; + cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer; + cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand; + var propInfoNew = { + "freezeAmount": cc.fx.GameConfig.GM_INFO.freezeAmount, + "hammerAmount": cc.fx.GameConfig.GM_INFO.hammerAmount, + "magicAmount": cc.fx.GameConfig.GM_INFO.magicAmount, + "timestamp": timestamp + }; + console.log("333333上传道具信息:", propInfoNew); + cc.fx.StorageMessage.setStorage("prop", propInfoNew); + } + else { + console.log("道具数据正常"); + cc.fx.GameConfig.GM_INFO.freezeAmount = propInfo.freezeAmount; + cc.fx.GameConfig.GM_INFO.hammerAmount = propInfo.hammerAmount; + cc.fx.GameConfig.GM_INFO.magicAmount = propInfo.magicAmount; + cc.fx.GameTool.setUserProp(0, 0, function (data) { + }); + } + } + else { + cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze; + cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer; + cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand; + var propInfoNew = { + "freezeAmount": cc.fx.GameConfig.GM_INFO.freezeAmount, + "hammerAmount": cc.fx.GameConfig.GM_INFO.hammerAmount, + "magicAmount": cc.fx.GameConfig.GM_INFO.magicAmount, + "timestamp": timestamp + }; + console.log("22222222上传道具信息:", propInfoNew, data.result); + cc.fx.StorageMessage.setStorage("prop", propInfoNew); + } + } + }); + }; + //旧用户,无本地缓存读取配置 + GameManager.prototype.oldReadData = function (retryCount) { + var _this = this; + console.log("读取旧信息"); + var MAX_RETRIES = 15; + var timestamp = Date.now(); + // 读取用户数据 + //@ts-ignore + wx.cloud.callFunction({ + name: 'userData', + data: { + action: 'read' + }, + success: function (res) { + console.log('读取用户数据成功', res.result); + if (res.result.code == 404 && res.result.message == "未找到用户数据") { + if (res.result.openid) { + cc.fx.GameConfig.GM_INFO.openid = res.result.openid; + } + cc.fx.GameConfig.GM_INFO.first = true; + _this.load3 = true; + _this.load4 = true; + var levelInfo = { "level": 0, "timestamp": timestamp }; + cc.fx.StorageMessage.setStorage("level", levelInfo); + var coinInfo = { "coin": 0, "timestamp": timestamp }; + console.log("33333333333"); + cc.fx.StorageMessage.setStorage("coin", coinInfo); + var propInfo = { + "freezeAmount": 0, + "hammerAmount": 0, + "magicAmount": 0, + "timestamp": timestamp, + }; + cc.fx.StorageMessage.setStorage("prop", propInfo); + cc.fx.GameTool.setUserInfo(function (data) { + if (data.result.code == 200) { + console.log("上传用户信息成功", data); + //@ts-ignore + wx.cloud.callFunction({ + name: 'userData', + data: { + action: 'read' + }, + success: function (res) { + console.log("上传后,读取用户信息,为上报注册时间"); + if (res.result.code == 200) { + var time = res.result.data.register_time; + MiniGameSdk_1.MiniGameSdk.API.shushu_userSet(time); + } + } + }); + } + }); + console.log("服务器也没有金币信息", cc.fx.GameConfig.GM_INFO.coin); + cc.fx.GameTool.setUserCoin(cc.fx.GameConfig.GM_INFO.coin, function (data) { + }); + cc.fx.GameTool.setUserLevel(function (data) { + }); + setTimeout(function () { + cc.fx.GameConfig.GM_INFO.freezeAmount = 0; + cc.fx.GameConfig.GM_INFO.hammerAmount = 0; + cc.fx.GameConfig.GM_INFO.magicAmount = 0; + cc.fx.GameTool.setUserProp(0, 0, function (data) { + if (data.result.code == 200) { + console.log("上传道具信息成功", data); + } + else { + MiniGameSdk_1.MiniGameSdk.API.showToast("网络异常,正在努力加载"); + setTimeout(function () { + _this.oldReadData(0); + }, 1000); + } + }); + }, 0); + } + else if (res.result.code == 200) { + if (res.result.data) { + cc.fx.GameConfig.GM_INFO.openid = res.result.openid; + cc.fx.GameConfig.GM_INFO.level = res.result.data.level; + cc.fx.GameConfig.GM_INFO.coin = res.result.data.coinAmount; + cc.fx.GameConfig.GM_INFO.freezeAmount = res.result.data.freezeAmount; + cc.fx.GameConfig.GM_INFO.hammerAmount = res.result.data.hammerAmount; + cc.fx.GameConfig.GM_INFO.magicAmount = res.result.data.magicAmount; + cc.fx.GameConfig.GM_INFO.username = res.result.data.username; + cc.fx.GameConfig.GM_INFO.useravatar = res.result.data.useravatar; + cc.fx.StorageMessage.setStorage("openid", cc.fx.GameConfig.GM_INFO.openid); + var register_time = res.result.data.register_time; + MiniGameSdk_1.MiniGameSdk.API.shushu_userSet(register_time); + } + setTimeout(function () { + cc.fx.GameTool.getUserCoin(function (data) { + if (data.result.code == 404 && data.result.message == "未找到金币数据") { + var coinInfo = { "coin": 0, "timestamp": timestamp }; + cc.fx.GameConfig.GM_INFO.coin = 0; + cc.fx.StorageMessage.setStorage("coin", coinInfo); + console.log("没有金币信息,从用户接口拿到数据", cc.fx.GameConfig.GM_INFO.coin); + cc.fx.GameTool.setUserCoin(function (data) { + // console.log("上传",data); + _this.load3 = true; + }); + } + else if (data.result.code == 200) { + // console.log("有金币信息,从金币接口拿到数据",data.result.data); + cc.fx.GameConfig.GM_INFO.coin = data.result.data; + var coinInfo = { "coin": cc.fx.GameConfig.GM_INFO.coin, "timestamp": timestamp }; + console.log("存储金币信息:", cc.fx.GameConfig.GM_INFO.coin); + console.log("4444444444"); + cc.fx.StorageMessage.setStorage("coin", coinInfo); + _this.load3 = true; + } + }); + }, 500); + cc.fx.GameTool.getUserLevel(function (data) { + if (data.result.code == 404 && data.result.message == "未找到关卡数据") { + console.log("没有等级信息,从用户接口拿到数据"); + var levelInfo = { "level": 0, "timestamp": timestamp }; + // console.log("333333存储关卡数据:",levelInfo); + cc.fx.GameConfig.GM_INFO.level = 0; + cc.fx.StorageMessage.setStorage("level", levelInfo); + cc.fx.GameTool.setUserLevel(function (data) { + console.log("拿到的数据", data); + _this.load4 = true; + }); + } + else if (data.result.code == 200) { + console.log("有等级信息,从关卡接口拿到数据", data.result.data); + cc.fx.GameConfig.GM_INFO.level = data.result.data; + var levelInfo = { "level": cc.fx.GameConfig.GM_INFO.level, "timestamp": timestamp }; + // console.log("444444存储关卡信息:",levelInfo); + cc.fx.StorageMessage.setStorage("level", levelInfo); + _this.load4 = true; + } + }); + setTimeout(function () { + cc.fx.GameTool.getUserProp(function (data) { + if (data.result.code == 404 && data.result.message == "未找到道具数据") { + console.log("没有道具信息,从用户接口拿到数据"); + cc.fx.GameConfig.GM_INFO.freezeAmount = 0; + cc.fx.GameConfig.GM_INFO.hammerAmount = 0; + cc.fx.GameConfig.GM_INFO.magicAmount = 0; + var propInfo = { + "freezeAmount": 0, + "hammerAmount": 0, + "magicAmount": 0, + "timestamp": timestamp, + }; + console.log("上传道具信息:", propInfo); + cc.fx.StorageMessage.setStorage("prop", propInfo); + cc.fx.GameTool.setUserProp(0, 0, function (data) { + }); + } + else if (data.result.code == 200) { + console.log("有道具信息,从道具接口拿到数据", data.result.data); + cc.fx.GameConfig.GM_INFO.freezeAmount = data.result.data.freeze || 0; + cc.fx.GameConfig.GM_INFO.hammerAmount = data.result.data.hammer || 0; + cc.fx.GameConfig.GM_INFO.magicAmount = data.result.data.magic_wand || 0; + var propInfo = { + "freezeAmount": cc.fx.GameConfig.GM_INFO.freezeAmount, + "hammerAmount": cc.fx.GameConfig.GM_INFO.hammerAmount, + "magicAmount": cc.fx.GameConfig.GM_INFO.magicAmount, + "timestamp": timestamp, + }; + console.log("上传道具信息:", propInfo); + cc.fx.StorageMessage.setStorage("prop", propInfo); + } + }); + }, 0); + } + }, + fail: function (err) { + console.error('读取用户数据失败', err); + if (retryCount < MAX_RETRIES) { + console.error("\u8BFB\u53D6\u7528\u6237\u6570\u636E\u5931\u8D25\uFF0C\u7B2C " + (retryCount + 1) + " \u6B21\u91CD\u8BD5\uFF0C\u9519\u8BEF\u4FE1\u606F:", err); + // 延迟 2 秒后重试 + setTimeout(function () { + _this.readUserData(retryCount + 1); + }, 2000); + } + else { + console.error('读取用户数据失败,达到最大重试次数,退出游戏', err); + // 退出游戏 + cc.game.end(); + } + } + }); + }; + GameManager.prototype.setUserData = function () { + cc.fx.GameConfig.GameTool(function (data) { + console.log("上传", data); + }); + }; + GameManager.prototype.startTimeCutDown = function () { + this.scheduleCallback = function () { + if (this.timeNumber <= 0) { + this.stopTimeCutDown(); + } + else { + this.timeNumber -= 1; + } + }.bind(this); + this.schedule(this.scheduleCallback, 1); + }; + GameManager.prototype.stopTimeCutDown = function () { + if (this.scheduleCallback) { + this.unschedule(this.scheduleCallback); + } + }; + 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(); + this.startGame(); + } + }; + var GameManager_1; + GameManager._instance = null; + __decorate([ + property(cc.Label) + ], GameManager.prototype, "label", void 0); + __decorate([ + property + ], GameManager.prototype, "text", void 0); + __decorate([ + property({ type: [cc.Prefab], tooltip: "方块数组" }) + ], GameManager.prototype, "Block_Array", void 0); + __decorate([ + property({ type: [cc.Prefab], tooltip: "墙壁数组" }) + ], GameManager.prototype, "Wall_Prefab", void 0); + __decorate([ + property({ type: [cc.SpriteAtlas], tooltip: "方块颜色" }) + ], GameManager.prototype, "Block_Color", void 0); + GameManager = GameManager_1 = __decorate([ + ccclass + ], GameManager); + return GameManager; +}(cc.Component)); +exports.default = GameManager; + +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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdsRixpREFBZ0Q7QUFFMUMsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBeUMsK0JBQVk7SUFBckQ7UUFBQSxxRUF5cEJDO1FBdHBCRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFJdkIsaUJBQVcsR0FBc0IsRUFBRSxDQUFDO1FBR3BDLGlCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUdwQyxpQkFBVyxHQUEyQixFQUFFLENBQUM7UUFHekMseURBQXlEO1FBQ3pELG1EQUFtRDtRQUVuRCxXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7O0lBK25CM0IsQ0FBQztvQkF6cEJvQixXQUFXO0lBK0I1Qix3QkFBd0I7SUFFeEIsNEJBQU0sR0FBTjtRQUFBLGlCQThFQztRQTVFRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQzNDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTdDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRSxLQUFLLENBQUM7UUFDdEUsVUFBVSxDQUFDO1lBQ1AsS0FBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUdSLElBQUksYUFBVyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDL0IsYUFBVyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDN0IsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekM7YUFDSTtZQUNELE9BQU87U0FDVjtRQUVELElBQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQztRQUM1QixJQUFNLEtBQUssR0FBRyxhQUFhLENBQUM7UUFDNUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBQyxHQUFHLEVBQUUsTUFBbUI7WUFDM0QsSUFBSSxHQUFHLEVBQUU7Z0JBRUwsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDdEMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ25DLE9BQU87YUFDVjtZQUNELDhCQUE4QjtZQUM5QixLQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztZQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxLQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzRCxLQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixLQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQUMsR0FBRyxFQUFFLE1BQW1CO1lBQzVELElBQUksR0FBRyxFQUFFO2dCQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3RDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNuQyxPQUFPO2FBQ1Y7WUFDRCw4QkFBOEI7WUFDOUIsS0FBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7WUFDMUIsS0FBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsS0FBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekQsS0FBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxZQUFZO1FBRVoscUJBQXFCO1FBQ3JCLHVEQUF1RDtRQUN2RCxxQkFBcUI7UUFDckIseURBQXlEO1FBQ3pELHNCQUFzQjtRQUN0QixZQUFZO1FBQ1osVUFBVTtRQUNWLFlBQVk7UUFFSixjQUFjO1FBQ3RCLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUU7WUFDeEMsWUFBWTtZQUNaLEVBQUUsQ0FBQyxNQUFNLENBQUM7Z0JBQ04sS0FBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsY0FBYztZQUNkLFlBQVk7WUFDWixFQUFFLENBQUMsTUFBTSxDQUFDO2dCQUNOLEtBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FBQztTQUNOO0lBRUwsQ0FBQztJQUVELDRCQUFNLEdBQU47UUFDSSxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzNCLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELDRCQUFNLEdBQU47UUFDSSxFQUFFLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELHlDQUFtQixHQUFuQjtJQUNBLENBQUM7SUFLRCx1Q0FBaUIsR0FBakI7UUFDSSxJQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFDLFFBQVEsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLElBQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLElBQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLElBQUksTUFBTSxLQUFLLENBQUMsQ0FBQztnQkFBRSxPQUFPLENBQUMsQ0FBQztZQUM1QixJQUFJLE1BQU0sS0FBSyxDQUFDLENBQUM7Z0JBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUM3QixPQUFPLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFFUCxDQUFDO0lBRUQscUNBQWUsR0FBZjtRQUNJLElBQU0sS0FBSyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQztZQUMzQixJQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELElBQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakQsSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzVCLElBQUksTUFBTSxLQUFLLENBQUMsQ0FBQztnQkFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzdCLE9BQU8sTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCw2QkFBTyxHQUFQO1FBQ0ksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQzs7WUFDdkIsYUFBYTtZQUNiLElBQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQywwQ0FBRyxDQUFDLE1BQUssR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzlELElBQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQywwQ0FBRyxDQUFDLE1BQUssR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzlELE9BQU8sT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCwyQkFBSyxHQUFMO0lBRUEsQ0FBQztJQUVELCtCQUFTLEdBQVQ7UUFDSSxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZ0NBQVUsR0FBVjtRQUNJLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDckMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUMsQ0FBQzthQUN2QixJQUFJLENBQUM7WUFFRixhQUFhO1lBQ2IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLFVBQUMsR0FBRztnQkFDbkMsSUFBSSxHQUFHLEVBQUU7b0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDNUM7cUJBQU07b0JBQ0gsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7aUJBQ3RDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7YUFDRCxLQUFLLEVBQUUsQ0FBQztRQUVULEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDekMsRUFBRSxDQUFDLEdBQUcsRUFBQyxFQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUMsQ0FBQzthQUN0QixLQUFLLEVBQUUsQ0FBQztRQUViLDBCQUEwQjtRQUMxQixtQkFBbUI7SUFHdkIsQ0FBQztJQUdELGtDQUFZLEdBQVosVUFBYSxVQUFjO1FBQTNCLGlCQTBCQztRQTFCWSwyQkFBQSxFQUFBLGNBQWM7UUFDdkIsWUFBWTtRQUNYLElBQUksT0FBTyxFQUFFLEtBQUssV0FBVyxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDdkMsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pELHFCQUFxQjtZQUNyQixJQUFHLFNBQVMsSUFBSSxTQUFTLElBQUksU0FBUyxJQUFJLEVBQUUsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFDO2dCQUM5RCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2hDO1lBQ0Qsa0JBQWtCO2lCQUNkO2dCQUNBLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUN0QjtZQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdkIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQUMsSUFBSTtnQkFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDekIsS0FBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUM7U0FFVDthQUNHO1lBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDbEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pDO1FBQ0YsU0FBUztJQUNiLENBQUM7SUFFRCxxQ0FBZSxHQUFmO1FBQ0ksSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELElBQUcsU0FBUyxJQUFJLFNBQVMsSUFBSSxTQUFTLElBQUksRUFBRSxJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUM7WUFDOUQsU0FBUyxHQUFHO2dCQUNSLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixZQUFZLEVBQUUsSUFBSTtnQkFDbEIsYUFBYSxFQUFFLElBQUk7YUFDdEIsQ0FBQTtZQUNELEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUMsU0FBUyxDQUFDLENBQUM7U0FDdEQ7YUFDRztZQUNBLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztZQUN6RCxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUM7WUFDM0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDO1NBQ2hFO0lBQ0wsQ0FBQztJQUVELGVBQWU7SUFDZixpQ0FBVyxHQUFYO1FBQUEsaUJBcU1DO1FBcE1HLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckIsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELElBQUcsTUFBTSxJQUFJLElBQUksSUFBSSxNQUFNLElBQUksRUFBRSxJQUFJLE1BQU0sSUFBSSxTQUFTLEVBQUM7WUFDckQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN4QixZQUFZO1lBQ1osRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7Z0JBQ3RCLElBQUksRUFBRSxVQUFVO2dCQUNaLElBQUksRUFBRTtvQkFDRixNQUFNLEVBQUUsTUFBTTtpQkFDakI7Z0JBQ0QsT0FBTyxFQUFFLFVBQUEsR0FBRztvQkFDUixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7b0JBQ25DLElBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBQztxQkFDNUQ7eUJBQ0ksSUFBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUM7d0JBQzNCLElBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUM7NEJBQ2YsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQzs0QkFDcEQsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7NEJBQzdELEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDOzRCQUNqRSxJQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7NEJBQ3BELHlCQUFXLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQzs0QkFDOUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7eUJBQzdFO3FCQUNKO2dCQUNMLENBQUM7Z0JBQ0QsSUFBSSxFQUFFLFVBQUEsR0FBRztvQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtnQkFDbEMsQ0FBQzthQUNKLENBQUMsQ0FBQTtTQUNMO2FBQ0c7WUFDQSxJQUFHLE1BQU07Z0JBQ0wsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7U0FDaEQ7UUFJRCxNQUFNO1FBQ04sRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFVBQUMsSUFBSTtZQUM3QixJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDN0IsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pELElBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBQztnQkFDM0QsbUNBQW1DO2dCQUNuQyxJQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUM7b0JBQ2YsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO2lCQUNwRDtnQkFDRCxLQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztnQkFDbEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFVBQUMsSUFBSTtnQkFDakMsQ0FBQyxDQUFDLENBQUM7YUFDTjtpQkFDSSxJQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBQztnQkFDNUIsbURBQW1EO2dCQUNuRCxnQ0FBZ0M7Z0JBQ2hDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUM7Z0JBQ3ZELE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQixJQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssRUFBQztvQkFDckQsSUFBRyxTQUFTLENBQUMsS0FBSyxFQUFDO3dCQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQzFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQzt3QkFDakQsc0RBQXNEO3dCQUN0RCxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBQyxJQUFJO3dCQUNqQyxDQUFDLENBQUMsQ0FBQztxQkFDTjtpQkFFSjtnQkFDRCw2QkFBNkI7cUJBQ3pCO29CQUNBLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7b0JBQ2xELFNBQVMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztvQkFDakQsU0FBUyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7b0JBQ2hDLGdFQUFnRTtvQkFDaEUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBQyxTQUFTLENBQUMsQ0FBQztpQkFDdEQ7Z0JBQ0QsS0FBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7YUFDckI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU07UUFDTixFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBQyxJQUFJO1lBQzVCLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM3QixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkQsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksU0FBUyxFQUFDO2dCQUMzRCxJQUFHLFFBQVEsQ0FBQyxJQUFJO29CQUNaLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlELEtBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNsQixFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBQyxJQUFJO2dCQUNoQyxDQUFDLENBQUMsQ0FBQzthQUNOO2lCQUNJLElBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFDO2dCQUM1QixtREFBbUQ7Z0JBQ25ELGdDQUFnQztnQkFDaEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztnQkFDdEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLElBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxFQUFDO29CQUNwRCxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQztvQkFDakMsSUFBRyxRQUFRLENBQUMsSUFBSTt3QkFDWixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7eUJBQzlDO3dCQUNBLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7d0JBQ2pELFFBQVEsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQzt3QkFDOUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7d0JBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7d0JBQzNCLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUMsUUFBUSxDQUFDLENBQUM7cUJBQ3BEO29CQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDcEQsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQUMsSUFBSTtvQkFDaEMsQ0FBQyxDQUFDLENBQUM7aUJBQ047Z0JBQ0QsNkJBQTZCO3FCQUN6QjtvQkFDQSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUNqRCxRQUFRLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQzlDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO29CQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUMxQixFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUNwRDtnQkFDRCxLQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzthQUNyQjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTTtRQUNOLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFDLElBQUk7WUFDNUIsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzdCLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RCxJQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxTQUFTLEVBQUM7Z0JBQzNELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3pDLElBQUcsUUFBUSxDQUFDLFlBQVksSUFBSSxTQUFTLElBQUksUUFBUSxDQUFDLFlBQVksSUFBSSxTQUFTLElBQUksUUFBUSxDQUFDLFdBQVcsSUFBSSxTQUFTLEVBQUM7b0JBQ3pHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQzdCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO29CQUMxQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztvQkFDMUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7b0JBQ3hDLElBQUksV0FBVyxHQUFHO3dCQUNkLGNBQWMsRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWTt3QkFDcEQsY0FBYyxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZO3dCQUNwRCxhQUFhLEVBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVU7d0JBQ2pELFdBQVcsRUFBQyxTQUFTO3FCQUN4QixDQUFBO29CQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUMsV0FBVyxDQUFDLENBQUM7b0JBQzFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUMsV0FBVyxDQUFDLENBQUM7aUJBQzNEO3FCQUNHO29CQUNBLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO29CQUNoRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDaEUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7aUJBQ3RFO2dCQUdELEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztnQkFDOUQsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO2dCQUM5RCxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7Z0JBQzVELEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLFVBQUMsSUFBSTtnQkFDcEMsQ0FBQyxDQUFDLENBQUM7YUFDTjtpQkFDSSxJQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBQztnQkFDNUIsMEVBQTBFO2dCQUMxRSxJQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssRUFBQztvQkFDcEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ2pDLElBQUcsUUFBUSxDQUFDLFlBQVksSUFBSSxTQUFTLElBQUksUUFBUSxDQUFDLFlBQVksSUFBSSxTQUFTLElBQUksUUFBUSxDQUFDLFdBQVcsSUFBSSxTQUFTLEVBQUM7d0JBQzdHLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQzdDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO3dCQUNoRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQzt3QkFDaEUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7d0JBQ25FLElBQUksV0FBVyxHQUFHOzRCQUNkLGNBQWMsRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWTs0QkFDcEQsY0FBYyxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZOzRCQUNwRCxhQUFhLEVBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVc7NEJBQ2xELFdBQVcsRUFBQyxTQUFTO3lCQUN4QixDQUFBO3dCQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFDLFdBQVcsQ0FBQyxDQUFDO3dCQUN6QyxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFDLFdBQVcsQ0FBQyxDQUFDO3FCQUN2RDt5QkFDRzt3QkFDQSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUN0QixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7d0JBQzlELEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQzt3QkFDOUQsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO3dCQUM1RCxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxVQUFDLElBQUk7d0JBQ3BDLENBQUMsQ0FBQyxDQUFDO3FCQUNOO2lCQUNKO3FCQUNHO29CQUNBLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO29CQUNoRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDaEUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7b0JBQ25FLElBQUksV0FBVyxHQUFHO3dCQUNkLGNBQWMsRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWTt3QkFDcEQsY0FBYyxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZO3dCQUNwRCxhQUFhLEVBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVc7d0JBQ2xELFdBQVcsRUFBQyxTQUFTO3FCQUN4QixDQUFBO29CQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUMsV0FBVyxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDdkQsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBQyxXQUFXLENBQUMsQ0FBQztpQkFDdkQ7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELGVBQWU7SUFDZixpQ0FBVyxHQUFYLFVBQVksVUFBaUI7UUFBN0IsaUJBOExDO1FBN0xHLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckIsSUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM3QixTQUFTO1FBQ1QsWUFBWTtRQUNaLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ3RCLElBQUksRUFBRSxVQUFVO1lBQ2hCLElBQUksRUFBRTtnQkFDRixNQUFNLEVBQUUsTUFBTTthQUNqQjtZQUNELE9BQU8sRUFBRSxVQUFBLEdBQUc7Z0JBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2dCQUNuQyxJQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxTQUFTLEVBQUM7b0JBQ3pELElBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUM7d0JBQ2pCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUE7cUJBQ3REO29CQUNELEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO29CQUN0QyxLQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztvQkFDbEIsS0FBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7b0JBQ2xCLElBQUksU0FBUyxHQUFHLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxXQUFXLEVBQUMsU0FBUyxFQUFDLENBQUM7b0JBQ2xELEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ25ELElBQUksUUFBUSxHQUFHLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxXQUFXLEVBQUMsU0FBUyxFQUFDLENBQUM7b0JBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQzNCLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ2pELElBQUksUUFBUSxHQUFHO3dCQUNYLGNBQWMsRUFBQyxDQUFDO3dCQUNoQixjQUFjLEVBQUMsQ0FBQzt3QkFDaEIsYUFBYSxFQUFDLENBQUM7d0JBQ2YsV0FBVyxFQUFDLFNBQVM7cUJBQ3hCLENBQUE7b0JBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBQyxRQUFRLENBQUMsQ0FBQztvQkFHakQsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQUMsSUFBSTt3QkFDNUIsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUM7NEJBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFDLElBQUksQ0FBQyxDQUFDOzRCQUM3QixZQUFZOzRCQUNaLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO2dDQUNsQixJQUFJLEVBQUUsVUFBVTtnQ0FDaEIsSUFBSSxFQUFFO29DQUNGLE1BQU0sRUFBRSxNQUFNO2lDQUNqQjtnQ0FDRCxPQUFPLEVBQUUsVUFBQSxHQUFHO29DQUNSLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtvQ0FDakMsSUFBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUM7d0NBQ3RCLElBQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQzt3Q0FDM0MseUJBQVcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO3FDQUN4QztnQ0FDTCxDQUFDOzZCQUNKLENBQUMsQ0FBQTt5QkFDTDtvQkFDTCxDQUFDLENBQUMsQ0FBQztvQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3hELEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFDLFVBQUMsSUFBSTtvQkFFOUQsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFVBQUMsSUFBSTtvQkFDakMsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsVUFBVSxDQUFDO3dCQUNQLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO3dCQUMxQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQzt3QkFDMUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7d0JBQ3pDLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLFVBQUMsSUFBSTs0QkFDaEMsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUM7Z0NBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFDLElBQUksQ0FBQyxDQUFDOzZCQUNoQztpQ0FDRztnQ0FDQSx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7Z0NBQ3pDLFVBQVUsQ0FBQztvQ0FDUCxLQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUN4QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7NkJBQ1o7d0JBQ0wsQ0FBQyxDQUFDLENBQUM7b0JBQ1AsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUNUO3FCQUNJLElBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFDO29CQUMzQixJQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFDO3dCQUNmLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7d0JBQ3BELEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO3dCQUN2RCxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQzt3QkFDM0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7d0JBQ3JFLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO3dCQUNyRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzt3QkFDbkUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7d0JBQzdELEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO3dCQUNqRSxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDMUUsSUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO3dCQUNwRCx5QkFBVyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7cUJBQ2pEO29CQUNELFVBQVUsQ0FBQzt3QkFDUCxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBQyxJQUFJOzRCQUM1QixJQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxTQUFTLEVBQUM7Z0NBRTNELElBQUksUUFBUSxHQUFHLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxXQUFXLEVBQUMsU0FBUyxFQUFDLENBQUM7Z0NBQ2hELEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO2dDQUNsQyxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFDLFFBQVEsQ0FBQyxDQUFDO2dDQUNqRCxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQ0FDOUQsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQUMsSUFBSTtvQ0FDNUIsMEJBQTBCO29DQUMxQixLQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztnQ0FDdEIsQ0FBQyxDQUFDLENBQUM7NkJBQ047aUNBQ0ksSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUM7Z0NBQzVCLG1EQUFtRDtnQ0FDbkQsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQ0FDakQsSUFBSSxRQUFRLEdBQUcsRUFBQyxNQUFNLEVBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksRUFBQyxXQUFXLEVBQUMsU0FBUyxFQUFDLENBQUM7Z0NBQzVFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQ0FDckQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQ0FDMUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBQyxRQUFRLENBQUMsQ0FBQztnQ0FDakQsS0FBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7NkJBQ3JCO3dCQUNMLENBQUMsQ0FBQyxDQUFBO29CQUNOLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFFUixFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBQyxJQUFJO3dCQUM3QixJQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxTQUFTLEVBQUM7NEJBQzNELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQzs0QkFDaEMsSUFBSSxTQUFTLEdBQUcsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLFdBQVcsRUFBQyxTQUFTLEVBQUMsQ0FBQzs0QkFDbEQsMENBQTBDOzRCQUN6QyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQzs0QkFDcEMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBQyxTQUFTLENBQUMsQ0FBQzs0QkFDbkQsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFVBQUMsSUFBSTtnQ0FDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUMsSUFBSSxDQUFDLENBQUM7Z0NBQzFCLEtBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDOzRCQUN0QixDQUFDLENBQUMsQ0FBQzt5QkFDTjs2QkFDSSxJQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBQzs0QkFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUNoRCxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDOzRCQUNsRCxJQUFJLFNBQVMsR0FBRyxFQUFDLE9BQU8sRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFDLFdBQVcsRUFBQyxTQUFTLEVBQUMsQ0FBQzs0QkFDL0UsMENBQTBDOzRCQUMxQyxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFDLFNBQVMsQ0FBQyxDQUFDOzRCQUNuRCxLQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzt5QkFDckI7b0JBQ0wsQ0FBQyxDQUFDLENBQUE7b0JBQ0YsVUFBVSxDQUFDO3dCQUNQLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFDLElBQUk7NEJBQzVCLElBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBQztnQ0FDM0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dDQUNoQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztnQ0FDMUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7Z0NBQzFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO2dDQUN6QyxJQUFJLFFBQVEsR0FBRztvQ0FDWCxjQUFjLEVBQUMsQ0FBQztvQ0FDaEIsY0FBYyxFQUFDLENBQUM7b0NBQ2hCLGFBQWEsRUFBQyxDQUFDO29DQUNmLFdBQVcsRUFBQyxTQUFTO2lDQUN4QixDQUFBO2dDQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFDLFFBQVEsQ0FBQyxDQUFDO2dDQUNoQyxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFDLFFBQVEsQ0FBQyxDQUFDO2dDQUNqRCxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxVQUFDLElBQUk7Z0NBQ3BDLENBQUMsQ0FBQyxDQUFDOzZCQUNOO2lDQUNJLElBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFDO2dDQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0NBQ2hELEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztnQ0FDckUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO2dDQUNyRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUM7Z0NBQ3hFLElBQUksUUFBUSxHQUFHO29DQUNYLGNBQWMsRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWTtvQ0FDcEQsY0FBYyxFQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxZQUFZO29DQUNwRCxhQUFhLEVBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVc7b0NBQ2xELFdBQVcsRUFBQyxTQUFTO2lDQUN4QixDQUFBO2dDQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFDLFFBQVEsQ0FBQyxDQUFDO2dDQUNoQyxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFDLFFBQVEsQ0FBQyxDQUFDOzZCQUVwRDt3QkFDTCxDQUFDLENBQUMsQ0FBQTtvQkFDTixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBRVQ7WUFFTCxDQUFDO1lBQ0QsSUFBSSxFQUFFLFVBQUEsR0FBRztnQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQTtnQkFDOUIsSUFBSSxVQUFVLEdBQUcsV0FBVyxFQUFFO29CQUN0QixPQUFPLENBQUMsS0FBSyxDQUFDLG1FQUFjLFVBQVUsR0FBRyxDQUFDLHdEQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQzdELFlBQVk7b0JBQ1osVUFBVSxDQUFDO3dCQUNQLEtBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN0QyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQ1o7cUJBQU07b0JBQ0gsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDN0MsT0FBTztvQkFDUCxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2lCQUNqQjtZQUNMLENBQUM7U0FDSixDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsaUNBQVcsR0FBWDtRQUNJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFDLElBQUk7WUFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsc0NBQWdCLEdBQWhCO1FBQ0ksSUFBSSxDQUFDLGdCQUFnQixHQUFHO1lBQ3BCLElBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLEVBQUM7Z0JBQ3BCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUMxQjtpQkFDRztnQkFDQSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQzthQUN4QjtRQUNMLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQscUNBQWUsR0FBZjtRQUNJLElBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFDO1lBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDMUM7SUFDTCxDQUFDO0lBRUQsNEJBQU0sR0FBTixVQUFRLEVBQUU7UUFDTixJQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFLLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBQztZQUMzRixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ2hDLHlCQUFXLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNwQjtJQUNMLENBQUM7O0lBanBCTSxxQkFBUyxHQUFpQixJQUFJLENBQUM7SUFKdEM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQzs4Q0FDSTtJQUd2QjtRQURDLFFBQVE7NkNBQ2M7SUFJdkI7UUFEQyxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFDLE1BQU0sRUFBQyxDQUFDO29EQUNWO0lBR3BDO1FBREMsUUFBUSxDQUFDLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBQyxNQUFNLEVBQUMsQ0FBQztvREFDVjtJQUdwQztRQURDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUMsTUFBTSxFQUFDLENBQUM7b0RBQ1Y7SUFoQnhCLFdBQVc7UUFEL0IsT0FBTztPQUNhLFdBQVcsQ0F5cEIvQjtJQUFELGtCQUFDO0NBenBCRCxBQXlwQkMsQ0F6cEJ3QyxFQUFFLENBQUMsU0FBUyxHQXlwQnBEO2tCQXpwQm9CLFdBQVciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgeyBNaW5pR2FtZU1hbmFnZXIgfSBmcm9tIFwiLi9TZGsvTWluaUdhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBsYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgdGV4dDogc3RyaW5nID0gJ2hlbGxvJztcclxuICAgIHN0YXRpYyBfaW5zdGFuY2UgOiBHYW1lTWFuYWdlciA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuaWueWdl+aVsOe7hFwifSlcclxuICAgIEJsb2NrX0FycmF5IDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlByZWZhYl0sIHRvb2x0aXA6XCLlopnlo4HmlbDnu4RcIn0pXHJcbiAgICBXYWxsX1ByZWZhYiA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5TcHJpdGVBdGxhc10sIHRvb2x0aXA6XCLmlrnlnZfpopzoibJcIn0pXHJcbiAgICBCbG9ja19Db2xvciA6IEFycmF5PGNjLlNwcml0ZUF0bGFzPiA9IFtdO1xyXG5cclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gQHByb3BlcnR5KHt0eXBlOiBbY2MuUGFydGljbGVTeXN0ZW1dLCB0b29sdGlwOlwi57KS5a2Q5pWw57uEXCJ9KVxyXG4gICAgLy8gcGFydGljbGVFZmZlY3RzIDogQXJyYXk8Y2MuUGFydGljbGVTeXN0ZW0+ID0gW107XHJcblxyXG4gICAgbG9hZDEgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQyIDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMyA6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZDQgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQ1IDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBzY2hlZHVsZUNhbGxiYWNrOiBhbnk7XHJcbiAgICB0aW1lTnVtYmVyOiBudW1iZXI7XHJcblxyXG4gICAgXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgICAgICB3aW5kb3cuaW5pdE1ncigpO1xyXG4gICAgICAgIHRoaXMudGltZU51bWJlciA9IDM7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5pbml0KHRydWUpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lU3RhdGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlYWRNdXNpY0NvbmZpZygpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6Z+z5LmQ5byA5YWzXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3Blbik7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5TXVzaWNHYW1lKCk7XHJcblxyXG4gICAgICAgIHRoaXMubG9hZDEgPSB0aGlzLmxvYWQyID0gdGhpcy5sb2FkMyA9IHRoaXMubG9hZDQgPSB0aGlzLmxvYWQ1ID1mYWxzZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZWFkVXNlckRhdGEoKTtcclxuICAgICAgICB9LCAyMDApO1xyXG4gXHJcblxyXG4gICAgICAgIGlmIChHYW1lTWFuYWdlci5faW5zdGFuY2UgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBHYW1lTWFuYWdlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgICAgICAgICBjYy5nYW1lLmFkZFBlcnNpc3RSb290Tm9kZSh0aGlzLm5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcGF0aCA9ICdwcmVmYWIvYmxvY2snO1xyXG4gICAgICAgIGNvbnN0IHBhdGgyID0gJ3ByZWZhYi93YWxsJztcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZERpcihwYXRoLCBjYy5QcmVmYWIsIChlcnIsIGFzc2V0czogY2MuUHJlZmFiW10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5bCG5Yqg6L2955qEIFByZWZhYiDotYvlgLznu5kgQmxvY2tfQXJyYXlcclxuICAgICAgICAgICAgdGhpcy5CbG9ja19BcnJheSA9IGFzc2V0cztcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ+aWueWdl+WKoOi9veaIkOWKn++8jOWFseWKoOi9veS6hicsIHRoaXMuQmxvY2tfQXJyYXkubGVuZ3RoLCAn5Liq5pa55Z2XJyk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U29ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQxID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY2MucmVzb3VyY2VzLmxvYWREaXIocGF0aDIsIGNjLlByZWZhYiwgKGVyciwgYXNzZXRzOiBjYy5QcmVmYWJbXSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiTG9hZFNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOWwhuWKoOi9veeahCBQcmVmYWIg6LWL5YC857uZIEJsb2NrX0FycmF5XHJcbiAgICAgICAgICAgIHRoaXMuV2FsbF9QcmVmYWIgPSBhc3NldHM7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDIgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygn5aKZ5Yqg6L295oiQ5Yqf77yM5YWx5Yqg6L295LqGJywgdGhpcy5XYWxsX1ByZWZhYi5sZW5ndGgsICfkuKrlopknKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRXYWxsUHJlZmFiU29ydCgpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBkZWJ1Z2dlcjtcclxuXHJcbiAgICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgLy8gICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgLy8gICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgY29uc29sZS5lcnJvcign6aKE5Yqg6L29IEhvbWVTY2VuZSDlnLrmma/lpLHotKU6JywgZXJyKTtcclxuICAgICAgICAvLyAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgLy8gICAgIH0pO1xyXG4gICAgICAgIC8vIH0sIDEwMDApO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIOajgOa1i+W+ruS/oeWwj+a4uOaIj+WIh+WIsOWQjuWPsFxyXG4gICAgICAgIGlmIChjYy5zeXMucGxhdGZvcm0gPT09IGNjLnN5cy5XRUNIQVRfR0FNRSkge1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3gub25IaWRlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAvLyDmo4DmtYvlvq7kv6HlsI/muLjmiI/lm57liLDliY3lj7BcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4Lm9uU2hvdygoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uU2hvdygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG9uSGlkZSAoKSB7XHJcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUuc3RvcE11c2ljKCk7XHJcbiAgICAgICAgY2MuZ2FtZS5wYXVzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2hvdyAoKSB7XHJcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucmVzdW1lTXVzaWMoKTtcclxuICAgICAgICBjYy5nYW1lLnJlc3VtZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRQYXJ0aWNsZUVmZmVjdHMoKSB7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG5cclxuICAgIHNldFdhbGxQcmVmYWJTb3J0KCkge1xyXG4gICAgICAgIGNvbnN0IG9yZGVyID0gWydkb3duJywgJ2Rvd25MZWZ0JywgJ2Rvd25SaWdodCcsICdsZWZ0JywncmlnaHQnLCd1cCcsJ3VwTGVmdCcsJ3VwUmlnaHQnXTtcclxuICAgICAgICB0aGlzLldhbGxfUHJlZmFiLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhBID0gb3JkZXIuaW5kZXhPZihhLm5hbWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEIgPSBvcmRlci5pbmRleE9mKGIubmFtZSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEEgPT09IC0xKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QiA9PT0gLTEpIHJldHVybiAtMTtcclxuICAgICAgICAgICAgcmV0dXJuIGluZGV4QSAtIGluZGV4QjtcclxuICAgICAgICB9KTtcclxuICAgICAgICBcclxuICAgIH1cclxuXHJcbiAgICBzZXRQYXJ0aWNsZVNvcnQoKSB7XHJcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBbJ3RvcCcsICdib3QnLCAncmlnJywgJ2xlZiddO1xyXG4gICAgICAgIHRoaXMucGFydGljbGVFZmZlY3RzLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhBID0gb3JkZXIuaW5kZXhPZihhLm5hbWUuc3Vic3RyKDAsMykpO1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEIgPSBvcmRlci5pbmRleE9mKGIubmFtZS5zdWJzdHIoMCwzKSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEEgPT09IC0xKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QiA9PT0gLTEpIHJldHVybiAtMTtcclxuICAgICAgICAgICAgcmV0dXJuIGluZGV4QSAtIGluZGV4QjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRTb3J0KCl7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOS7juWQjeensOS4reaPkOWPluaVsOWtl+mDqOWIhlxyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJBID0gcGFyc2VJbnQoYS5uYW1lLm1hdGNoKC9cXGQrLyk/LlswXSB8fCAnMCcsIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQiA9IHBhcnNlSW50KGIubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIHJldHVybiBudW1iZXJBIC0gbnVtYmVyQjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6L+b5YWl5Zy65pmv5LmL5YmNX19fX19fX19fX19fX1wiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCk7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybkhvbWUoKXtcclxuICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpKVxyXG4gICAgICAgICAgICAudG8oMC41LCB7b3BhY2l0eTogMTAwfSlcclxuICAgICAgICAgICAgLmNhbGwoKCkgPT4ge1xyXG4gICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgLy8g6aKE5Yqg6L295oiQ5Yqf5ZCO5Yqg6L295Zy65pmvXHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqg6L29IEhvbWVTY2VuZSDlnLrmma/lpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgICAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibWFza1wiKSlcclxuICAgICAgICAgICAgLnRvKDAuNSx7b3BhY2l0eTogMjU1fSlcclxuICAgICAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIC8vIGNjLmxvYWRlci5yZWxlYXNlQWxsKCk7XHJcbiAgICAgICAgLy8g6aKE5Yqg6L29IEhvbWVTY2VuZSDlnLrmma9cclxuXHJcbiAgIFxyXG4gICAgfVxyXG5cclxuXHJcbiAgICByZWFkVXNlckRhdGEocmV0cnlDb3VudCA9IDApe1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICBpZiAodHlwZW9mIHd4ICE9PSAndW5kZWZpbmVkJyAmJiB3eCAhPT0gbnVsbCkgeyBcclxuICAgICAgICAgICAgICAgIGxldCBsZXZlbEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwibGV2ZWxcIik7XHJcbiAgICAgICAgICAgICAgICAvL+aXp+eahOivu+WPluaVsOaNruiuvue9ruaVsOaNruaWueazlSzku6XlvLrogZTnvZHkuLrkuLtcclxuICAgICAgICAgICAgICAgIGlmKGxldmVsSW5mbyA9PSB1bmRlZmluZWQgfHwgbGV2ZWxJbmZvID09IFwiXCIgfHwgbGV2ZWxJbmZvID09IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub2xkUmVhZERhdGEocmV0cnlDb3VudCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvL+aWsOeahOivu+WPluaVsOaNruiuvue9ruaWueazle+8jOS7peacrOWcsOS4uuS4u1xyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5ld1JlYWREYXRhKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWNs+Wwhuivu+WPluS9k+WKm+WAvFwiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldEhlYWx0aCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS9k+WKm+WAvOWujOaIkOi/m+WFpea4uOaIj1wiKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQ1ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgfVxyXG4gICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgobnVsbCk7XHJcbiAgICAgICAgIH1cclxuICAgICAgICAvLyDlrZjlgqjnlKjmiLfmlbDmja5cclxuICAgIH1cclxuXHJcbiAgICByZWFkTXVzaWNDb25maWcoKXtcclxuICAgICAgICBsZXQgYXVkaW9JbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcIm11c2ljXCIpO1xyXG4gICAgICAgIGlmKGF1ZGlvSW5mbyA9PSB1bmRlZmluZWQgfHwgYXVkaW9JbmZvID09IFwiXCIgfHwgYXVkaW9JbmZvID09IG51bGwpe1xyXG4gICAgICAgICAgICBhdWRpb0luZm8gPSB7XHJcbiAgICAgICAgICAgICAgICBcIm11c2ljT3BlblwiOiB0cnVlLCAgICAgICAgICAgICAvL+mfs+S5kFxyXG4gICAgICAgICAgICAgICAgXCJlZmZlY3RPcGVuXCI6IHRydWUsICAgICAgICAgICAgLy/pn7PmlYhcclxuICAgICAgICAgICAgICAgIFwidmlicmF0ZU9wZW5cIjogdHJ1ZSwgICAgICAgICAgIC8v6ZyH5YqoXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcIm11c2ljXCIsYXVkaW9JbmZvKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3BlbiA9IGF1ZGlvSW5mby5tdXNpY09wZW47XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5lZmZlY3RPcGVuID0gYXVkaW9JbmZvLmVmZmVjdE9wZW47XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy52aWJyYXRlT3BlbiA9IGF1ZGlvSW5mby52aWJyYXRlT3BlbjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8v5paw55So5oi377yM5pyJ5pys5Zyw57yT5a2Y6K+75Y+W6YWN572uXHJcbiAgICBuZXdSZWFkRGF0YSgpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6K+75Y+W5paw5L+h5oGvXCIpO1xyXG4gICAgICAgIGxldCBvcGVuaWQgPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwib3BlbmlkXCIpO1xyXG4gICAgICAgIGlmKG9wZW5pZCA9PSBudWxsIHx8IG9wZW5pZCA9PSBcIlwiIHx8IG9wZW5pZCA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIuayoeaciW9wZW5pZFwiKTtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgIG5hbWU6ICd1c2VyRGF0YScsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAncmVhZCdcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCfor7vlj5bnlKjmiLfmlbDmja7miJDlip8nLCByZXMucmVzdWx0KVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQuY29kZSA9PSA0MDQgJiYgcmVzLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw55So5oi35pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKHJlcy5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihyZXMucmVzdWx0LmRhdGEpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IHJlcy5yZXN1bHQub3BlbmlkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJuYW1lID0gcmVzLnJlc3VsdC5kYXRhLnVzZXJuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJhdmF0YXIgPSByZXMucmVzdWx0LmRhdGEudXNlcmF2YXRhcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lzdGVyX3RpbWUgPSByZXMucmVzdWx0LmRhdGEucmVnaXN0ZXJfdGltZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfdXNlclNldChyZWdpc3Rlcl90aW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJvcGVuaWRcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+ivu+WPlueUqOaIt+aVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgaWYob3BlbmlkKVxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IG9wZW5pZDtcclxuICAgICAgICB9XHJcbiAgIFxyXG5cclxuXHJcbiAgICAgICAgLy/nrYnnuqfkv6Hmga9cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VyTGV2ZWwoKGRhdGEpID0+e1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcImxldmVsXCIpO1xyXG4gICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw5YWz5Y2h5pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmsqHmnInnrYnnuqfkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIik7XHJcbiAgICAgICAgICAgICAgICBpZihsZXZlbEluZm8ubGV2ZWwpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IGxldmVsSW5mby5sZXZlbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckxldmVsKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmnInnrYnnuqfkv6Hmga/vvIzku47lhbPljaHmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgIC8v5ri45oiP5YmN56uv5a2Y5YKoIOaWsOS6juacjeWKoeWZqOerryzku6XmuLjmiI/liY3nq6/kv6Hmga/kuLrkuLvvvIzmlL7mnI3liqHlmajlrZjlgqhcclxuICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gbGV2ZWxJbmZvLnRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi562J57qn5pe26Ze05beuOlwiLHRlbXApO1xyXG4gICAgICAgICAgICAgICAgaWYoKGRhdGEucmVzdWx0LnRpbWVzdGFtcCAtIGxldmVsSW5mby50aW1lc3RhbXApIDwgMTAwMDApe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGxldmVsSW5mby5sZXZlbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5Lul5ri45oiP5YmN56uv562J57qn5Li65YeGXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IGxldmVsSW5mby5sZXZlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnrYnnuqfkuLo6XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckxldmVsKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy/mnI3liqHlmajnq6/lrZjlgqjml7bpl7TmlrDkuo7muLjmiI/nq6/vvIzku6XmnI3liqHlmajnq6/kuLrkuLss5b6A5YmN56uv5a2Y5YKoXHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5Lul5pyN5Yqh5Zmo562J57qn5Li65YeGXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gZGF0YS5yZXN1bHQuZGF0YTsgXHJcbiAgICAgICAgICAgICAgICAgICAgbGV2ZWxJbmZvLmxldmVsID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldmVsSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCIxMTExMTEx5a2Y5YKo5YWz5Y2h5pWw5o2uOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImxldmVsXCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy/ph5HluIHkv6Hmga9cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VyQ29pbigoZGF0YSkgPT57XHJcbiAgICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgIGxldCBjb2luSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJjb2luXCIpO1xyXG4gICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw6YeR5biB5pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgaWYoY29pbkluZm8uY29pbilcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IGNvaW5JbmZvLmNvaW47XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuayoeaciemHkeW4geS/oeaBr++8jOS7jueUqOaIt+aOpeWPo+aLv+WIsOaVsOaNrlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckNvaW4oKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgZWxzZSBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaciemHkeW4geS/oeaBr++8jOS7jumHkeW4geaOpeWPo+aLv+WIsOaVsOaNrlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgLy/muLjmiI/liY3nq6/lrZjlgqgg5paw5LqO5pyN5Yqh5Zmo56uvLOS7pea4uOaIj+WJjeerr+S/oeaBr+S4uuS4u++8jOaUvuacjeWKoeWZqOWtmOWCqFxyXG4gICAgICAgICAgICAgICAgbGV0IHRlbXAgPSBkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBjb2luSW5mby50aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIumHkeW4geaXtumXtOW3rjpcIix0ZW1wKTtcclxuICAgICAgICAgICAgICAgIGlmKChkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBjb2luSW5mby50aW1lc3RhbXApIDwgMTAwMDApe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5Lul5YmN56uv6YeR5bmj5Li65YeGOlwiLGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBpZihjb2luSW5mby5jb2luKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IGNvaW5JbmZvLmNvaW47XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBkYXRhLnJlc3VsdC5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2luSW5mby5jb2luID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvaW5JbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIxMTExMTExMTExMVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pS55Y+Y5ZCO6YeR5biBOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyQ29pbigoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8v5pyN5Yqh5Zmo56uv5a2Y5YKo5pe26Ze05paw5LqO5ri45oiP56uv77yM5Lul5pyN5Yqh5Zmo56uv5Li65Li7LOW+gOWJjeerr+WtmOWCqFxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peacjeWKoeWZqOmHkeW5o+S4uuWHhjpcIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IGRhdGEucmVzdWx0LmRhdGE7IFxyXG4gICAgICAgICAgICAgICAgICAgIGNvaW5JbmZvLmNvaW4gPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbjtcclxuICAgICAgICAgICAgICAgICAgICBjb2luSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIyMjIyMjIyMjIyXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy/pgZPlhbfkv6Hmga9cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VyUHJvcCgoZGF0YSkgPT57XHJcbiAgICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw6YGT5YW35pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInpgZPlhbfkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICBpZihwcm9wSW5mby5mcmVlemVBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLmhhbW1lckFtb3VudCA9PSB1bmRlZmluZWQgfHwgcHJvcEluZm8ubWFnaWNBbW91bnQgPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIyMjIyMjIy6YGT5YW35pWw5o2u5byC5bi4XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VuID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvTmV3ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VuLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjExMTExMTHkuIrkvKDpgZPlhbfkv6Hmga86XCIscHJvcEluZm9OZXcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuZnJlZXplO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmhhbW1lcjtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gcHJvcEluZm8uZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IHByb3BJbmZvLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IHByb3BJbmZvLm1hZ2ljQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMCwwLChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmnKzlnLDml7bpl7TmiLNcIixwcm9wSW5mby50aW1lc3RhbXAsXCLmnI3liqHlmajml7bpl7TmiLNcIixkYXRhLnJlc3VsdC50aW1lc3RhbXApO1xyXG4gICAgICAgICAgICAgICAgaWYoKGRhdGEucmVzdWx0LnRpbWVzdGFtcCAtIHByb3BJbmZvLnRpbWVzdGFtcCkgPCAxMDAwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLku6XliY3nq6/pgZPlhbfkuLrkuLs6XCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHByb3BJbmZvLmZyZWV6ZUFtb3VudCA9PSB1bmRlZmluZWQgfHwgcHJvcEluZm8uaGFtbWVyQW1vdW50ID09IHVuZGVmaW5lZCB8fCBwcm9wSW5mby5tYWdpY0Ftb3VudCA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjExMTExMemBk+WFt+aVsOaNruW8guW4uFwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5mcmVlemU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmhhbW1lcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5tYWdpY193YW5kO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm9OZXcgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImhhbW1lckFtb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjMzMzMzM+S4iuS8oOmBk+WFt+S/oeaBrzpcIixwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm9OZXcpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIumBk+WFt+aVsOaNruato+W4uFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IHByb3BJbmZvLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IHByb3BJbmZvLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gcHJvcEluZm8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDAsMCwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5mcmVlemU7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuaGFtbWVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IGRhdGEucmVzdWx0LmRhdGEubWFnaWNfd2FuZDtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm9OZXcgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOnRpbWVzdGFtcFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjIyMjIyMjIy5LiK5Lyg6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvTmV3LGRhdGEucmVzdWx0KTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8v5pen55So5oi377yM5peg5pys5Zyw57yT5a2Y6K+75Y+W6YWN572uXHJcbiAgICBvbGRSZWFkRGF0YShyZXRyeUNvdW50Om51bWJlcil7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLor7vlj5bml6fkv6Hmga9cIik7XHJcbiAgICAgICAgY29uc3QgTUFYX1JFVFJJRVMgPSAxNTtcclxuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIC8vIOivu+WPlueUqOaIt+aVsOaNrlxyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgbmFtZTogJ3VzZXJEYXRhJyxcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzdWNjZXNzOiByZXMgPT4geyAgIFxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygn6K+75Y+W55So5oi35pWw5o2u5oiQ5YqfJywgcmVzLnJlc3VsdClcclxuICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5jb2RlID09IDQwNCAmJiByZXMucmVzdWx0Lm1lc3NhZ2UgPT0gXCLmnKrmib7liLDnlKjmiLfmlbDmja5cIil7XHJcbiAgICAgICAgICAgICAgICBpZihyZXMucmVzdWx0Lm9wZW5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IHJlcy5yZXN1bHQub3BlbmlkXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGxldCBsZXZlbEluZm8gPSB7XCJsZXZlbFwiOjAsXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImxldmVsXCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgIGxldCBjb2luSW5mbyA9IHtcImNvaW5cIjowLFwidGltZXN0YW1wXCI6dGltZXN0YW1wfTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMzMzMzMzMzMzMzNcIik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOjAsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjowLFxyXG4gICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjowLFxyXG4gICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wLFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mbyk7XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJJbmZvKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKDnlKjmiLfkv6Hmga/miJDlip9cIixkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAndXNlckRhdGEnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg5ZCO77yM6K+75Y+W55So5oi35L+h5oGv77yM5Li65LiK5oql5rOo5YaM5pe26Ze0XCIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWUgPSByZXMucmVzdWx0LmRhdGEucmVnaXN0ZXJfdGltZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV91c2VyU2V0KHRpbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pyN5Yqh5Zmo5Lmf5rKh5pyJ6YeR5biB5L+h5oGvXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckNvaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgwLDAsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg6YGT5YW35L+h5oGv5oiQ5YqfXCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLnvZHnu5zlvILluLjvvIzmraPlnKjliqrlipvliqDovb1cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9sZFJlYWREYXRhKDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYocmVzLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICBpZihyZXMucmVzdWx0LmRhdGEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSByZXMucmVzdWx0Lm9wZW5pZDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSByZXMucmVzdWx0LmRhdGEubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSByZXMucmVzdWx0LmRhdGEuY29pbkFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSByZXMucmVzdWx0LmRhdGEubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJuYW1lID0gcmVzLnJlc3VsdC5kYXRhLnVzZXJuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VyYXZhdGFyID0gcmVzLnJlc3VsdC5kYXRhLnVzZXJhdmF0YXI7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcIm9wZW5pZFwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lzdGVyX3RpbWUgPSByZXMucmVzdWx0LmRhdGEucmVnaXN0ZXJfdGltZTtcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X3VzZXJTZXQocmVnaXN0ZXJfdGltZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VyQ29pbigoZGF0YSkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gNDA0ICYmIGRhdGEucmVzdWx0Lm1lc3NhZ2UgPT0gXCLmnKrmib7liLDph5HluIHmlbDmja5cIil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29pbkluZm8gPSB7XCJjb2luXCI6MCxcInRpbWVzdGFtcFwiOnRpbWVzdGFtcH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ6YeR5biB5L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckNvaW4oKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvKBcIixkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmnInph5HluIHkv6Hmga/vvIzku47ph5HluIHmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gZGF0YS5yZXN1bHQuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2luSW5mbyA9IHtcImNvaW5cIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbixcInRpbWVzdGFtcFwiOnRpbWVzdGFtcH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWtmOWCqOmHkeW4geS/oeaBrzpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjQ0NDQ0NDQ0NDRcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0sIDUwMCk7XHJcblxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckxldmVsKChkYXRhKSA9PntcclxuICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw5YWz5Y2h5pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuayoeacieetiee6p+S/oeaBr++8jOS7jueUqOaIt+aOpeWPo+aLv+WIsOaVsOaNrlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IHtcImxldmVsXCI6MCxcInRpbWVzdGFtcFwiOnRpbWVzdGFtcH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiMzMzMzMz5a2Y5YKo5YWz5Y2h5pWw5o2uOlwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIixsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyTGV2ZWwoKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaLv+WIsOeahOaVsOaNrlwiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pyJ562J57qn5L+h5oGv77yM5LuO5YWz5Y2h5o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IGRhdGEucmVzdWx0LmRhdGE7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0ge1wibGV2ZWxcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwsXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIjQ0NDQ0NOWtmOWCqOWFs+WNoeS/oeaBrzpcIixsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIixsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlclByb3AoKGRhdGEpID0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw6YGT5YW35pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInpgZPlhbfkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOjAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjowLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjowLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKDpgZPlhbfkv6Hmga86XCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgwLDAsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaciemBk+WFt+S/oeaBr++8jOS7jumBk+WFt+aOpeWPo+aLv+WIsOaVsOaNrlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuZnJlZXplIHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXIgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IGRhdGEucmVzdWx0LmRhdGEubWFnaWNfd2FuZCB8fCAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImhhbW1lckFtb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOnRpbWVzdGFtcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgIFxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcign6K+75Y+W55So5oi35pWw5o2u5aSx6LSlJywgZXJyKVxyXG4gICAgICAgICAgICBpZiAocmV0cnlDb3VudCA8IE1BWF9SRVRSSUVTKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihg6K+75Y+W55So5oi35pWw5o2u5aSx6LSl77yM56ysICR7cmV0cnlDb3VudCArIDF9IOasoemHjeivle+8jOmUmeivr+S/oeaBrzpgLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOW7tui/nyAyIOenkuWQjumHjeivlVxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlYWRVc2VyRGF0YShyZXRyeUNvdW50ICsgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMjAwMCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+ivu+WPlueUqOaIt+aVsOaNruWksei0pe+8jOi+vuWIsOacgOWkp+mHjeivleasoeaVsO+8jOmAgOWHuua4uOaIjycsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g6YCA5Ye65ri45oiPXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZ2FtZS5lbmQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgc2V0VXNlckRhdGEoKXtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdhbWVUb29sKChkYXRhKT0+e1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oFwiLGRhdGEpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnRUaW1lQ3V0RG93bigpe1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVDYWxsYmFjayA9IGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMudGltZU51bWJlciA8PSAwKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMudGltZU51bWJlciAtPSAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBzdG9wVGltZUN1dERvd24oKXtcclxuICAgICAgICBpZih0aGlzLnNjaGVkdWxlQ2FsbGJhY2spe1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlIChkdCkge1xyXG4gICAgICAgIGlmKHRoaXMubG9hZDEgJiYgdGhpcy5sb2FkMiAmJiB0aGlzLmxvYWQzICAmJiB0aGlzLmxvYWQ0ICYmIHRoaXMubG9hZDUgJiYgdGhpcy50aW1lTnVtYmVyIDw9IDApe1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQxID0gdGhpcy5sb2FkMiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X0luaXQoKTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydEdhbWUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19 //------QC-SOURCE-SPLIT------ (function() { @@ -10398,6 +8913,1739 @@ cc._RF.pop(); } })(); //# 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/peizhi.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, '7d800jRKkRGfqSS3fhSet26', 'peizhi'); +// Script/peizhi.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.start = function () { + // cc.fx.AudioManager.Instance.init(); + // this.testVersion.string = this.clientTestVersion; + // cc.director.loadScene("GameScene"); + // cc.director.preloadScene("GameScene", ()=>{ + // // debugger; + // }) + }; + //判断来源 + 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwZWl6aGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUF3QyxFQUFFLENBQUMsVUFBVSxFQUFwRCxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxnQkFBZ0Isc0JBQWlCLENBQUM7QUFHNUQ7SUFBc0MsNEJBQVk7SUFBbEQ7UUFBQSxxRUE0RUM7UUF4RUcsV0FBSyxHQUFZLElBQUksQ0FBQztRQUd0QixXQUFLLEdBQVksSUFBSSxDQUFDO1FBR3RCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsZUFBUyxHQUFZLEtBQUssQ0FBQztRQUczQix1QkFBaUIsR0FBVyxPQUFPLENBQUM7UUFHcEMsaUJBQVcsR0FBYSxJQUFJLENBQUM7O1FBd0NqQywyQkFBMkI7UUFFM0IsV0FBVztRQUNYLGlDQUFpQztRQUNqQyxzQ0FBc0M7UUFDdEMsaUNBQWlDO1FBQ2pDLHNDQUFzQztRQUN0QyxnQ0FBZ0M7UUFFaEMsdUJBQXVCO1FBRXZCLGVBQWU7UUFDZiwrQkFBK0I7UUFDL0IsK0JBQStCO1FBQy9CLG9CQUFvQjtRQUNwQixvREFBb0Q7UUFDcEQsaUNBQWlDO0lBQ2pDLENBQUM7SUF2REcsd0JBQUssR0FBTDtRQUVJLHNDQUFzQztRQUN0QyxvREFBb0Q7UUFFcEQsc0NBQXNDO1FBRXRDLDhDQUE4QztRQUM5QyxtQkFBbUI7UUFFbkIsS0FBSztJQUNULENBQUM7SUFFRCxNQUFNO0lBQ04sZ0NBQWEsR0FBYixVQUFjLEdBQUc7UUFFYixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWM7SUFDZCw0QkFBUyxHQUFUO1FBQ0ksRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkMsdUNBQXVDO0lBQzNDLENBQUM7SUFDRCxnQkFBZ0I7SUFDaEIsMkJBQVEsR0FBUixVQUFTLEtBQUssRUFBQyxJQUFJO1FBQ2YsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELE9BQU87SUFDUCwyQkFBUSxHQUFSO1FBQ0ksRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUdTLHlCQUFNLEdBQWhCLFVBQWlCLEVBQVU7SUFDM0IsQ0FBQztJQXJERDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNJO0lBR3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MkNBQ0k7SUFHdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzsyQ0FDSTtJQUd0QjtRQURDLFFBQVEsQ0FBQyxLQUFLLENBQUM7K0NBQ1c7SUFHM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDO3VEQUN1QjtJQUdwQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO2lEQUNVO0lBbkJaLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0E0RTVCO0lBQUQsZUFBQztDQTVFRCxBQTRFQyxDQTVFcUMsRUFBRSxDQUFDLFNBQVMsR0E0RWpEO2tCQTVFb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5LCByZXF1aXJlQ29tcG9uZW50fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbm9kZTE6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbm9kZTI6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbm9kZTM6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShmYWxzZSlcclxuICAgIGxvY2FsVGVzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBwcm9wZXJ0eShcIlwiKVxyXG4gICAgY2xpZW50VGVzdFZlcnNpb246IHN0cmluZyA9IFwiMS4wLjBcIjtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICB0ZXN0VmVyc2lvbjogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuXHJcbiAgICAgICAgLy8gY2MuZnguQXVkaW9NYW5hZ2VyLkluc3RhbmNlLmluaXQoKTtcclxuICAgICAgICAvLyB0aGlzLnRlc3RWZXJzaW9uLnN0cmluZyA9IHRoaXMuY2xpZW50VGVzdFZlcnNpb247XHJcblxyXG4gICAgICAgIC8vIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuXHJcbiAgICAgICAgLy8gY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIsICgpPT57XHJcbiAgICAgICAgLy8gICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgICBcclxuICAgICAgICAvLyB9KVxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yik5pat5p2l5rqQXHJcbiAgICBjb250YWluc1RyYWluKHN0cikge1xyXG4gICAgXHJcbiAgICAgICAgcmV0dXJuIC9mcm9tPXRyYWluL2kudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5byA5aeL5ri45oiP77yM6Lez6L2s6Iez5byV5a+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/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() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/JiaZai.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, '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 || + ({ __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 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; + 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); + } + }; + 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; + } + }; + //开始倒计时 + 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("体力值不足"); + 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.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) + ], 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({ 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); + 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxKaWFaYWkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkNBQXdDO0FBQ3hDLGlEQUE0QztBQUM1QyxpREFBZ0Q7QUFDaEQsMkVBQXdFO0FBQ2xFLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBaVJDO1FBOVFHLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsV0FBSyxHQUFZLElBQUksQ0FBQztRQUd0QixXQUFLLEdBQVksSUFBSSxDQUFDO1FBS3RCLGlCQUFXLEdBQTBCLEVBQUUsQ0FBQztRQUd4QyxZQUFNLEdBQWUsSUFBSSxDQUFDO1FBSzFCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsVUFBSSxHQUFZLElBQUksQ0FBQztRQUdyQixhQUFPLEdBQVksSUFBSSxDQUFDOztRQW9QeEIsaUJBQWlCO0lBQ3JCLENBQUM7SUFsUEcsd0JBQXdCO0lBRXhCLHlCQUFNLEdBQU47UUFDSSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QixtQ0FBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakMsMEJBQTBCO1FBQzFCLG9CQUFvQjtRQUNwQixxQkFBVyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyRCxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0QsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRTtnQkFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUM5QixFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDM0M7WUFDRCxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDOUYsVUFBVSxDQUFDO2dCQUNQLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUN2QyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2QyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FFWjtJQUNMLENBQUM7SUFFRCx3QkFBSyxHQUFMO1FBQ0ksNkJBQTZCO1FBQzdCLG1EQUFtRDtRQUNuRCxzREFBc0Q7UUFIMUQsaUJBZ0NDO1FBM0JHLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQiw2Q0FBNkM7UUFDN0MsVUFBVSxDQUFDO1lBQ1AsdUJBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxRyx1QkFBYSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNsRyxLQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ04sSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDckQsVUFBVSxDQUFDO2dCQUNQLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN4RCxLQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNoRyxLQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFVBQUMsS0FBSztvQkFDdkYsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO3dCQUNwRSxlQUFlO3dCQUNmLEtBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7cUJBQ3pEO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7YUFDSTtZQUNELElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSztnQkFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUM3RDtJQUlMLENBQUM7SUFFRCxPQUFPO0lBQ1AsbUNBQWdCLEdBQWhCO1FBQ0ksSUFBSSxDQUFDLGdCQUFnQixHQUFHO1lBQUEsaUJBZ0J2QjtZQWZHLElBQUksSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTztZQUN2QixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxFQUFFO2dCQUN4QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQy9FLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztnQkFDN0UsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxVQUFDLElBQUk7b0JBQ2pDLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDL0IsS0FBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN6QixDQUFDLENBQUMsQ0FBQTthQUNMO2lCQUNJO2dCQUNELEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMvRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7YUFDaEY7UUFDTCxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELFFBQVE7SUFDUixrQ0FBZSxHQUFmO1FBQ0ksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUMxQztJQUNMLENBQUM7SUFFRCxnQ0FBYSxHQUFiO1FBQ0ksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDckQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUN0RDthQUNJO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3BELHVCQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDL0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNsRCxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxFQUFFO2dCQUN4QyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMzRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ3pFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2FBQzNCO1NBQ0o7SUFDTCxDQUFDO0lBR0QsNEJBQVMsR0FBVDtRQUNJLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNELElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDakMseUJBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLE9BQU87U0FDVjtRQUNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDL0YsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkcsZ0NBQWdDO1lBQ2hDLHlFQUF5RTtZQUN6RSw4RkFBOEY7WUFDOUYsOENBQThDO1lBQzlDLElBQUk7WUFDSixRQUFRO1lBQ1IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzlGLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDN0MsSUFBSTtTQUNQO0lBSUwsQ0FBQztJQUVELE1BQU07SUFDTiwyQkFBUSxHQUFSO1FBQUEsaUJBZUM7UUFkRyxrQkFBa0I7UUFDbEIsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQUMsR0FBVSxFQUFFLE1BQThCO1lBQzFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBQyxHQUFVLEVBQUUsTUFBaUI7Z0JBQ2hFLElBQUksR0FBRyxFQUFFO29CQUNMLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQztvQkFDN0IsT0FBTztpQkFDVjtnQkFDRCxJQUFJLE1BQU0sRUFBRTtvQkFDUixJQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxLQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ3BEO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCw0QkFBUyxHQUFUO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNwRCxDQUFDO0lBRUQsMkJBQVEsR0FBUjtRQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDbkQsQ0FBQztJQUVELDZCQUFVLEdBQVY7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3JELENBQUM7SUFFRCw0QkFBUyxHQUFUO1FBQ0ksOEJBQThCO1FBQzlCLElBQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDL0MsSUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvQixZQUFZO1FBQ1osRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFDbEIsSUFBSSxFQUFFLGFBQWE7WUFDbkIsSUFBSSxFQUFFO2dCQUNGLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixXQUFXLEVBQUUsU0FBUzthQUN6QjtZQUNELE9BQU8sRUFBRSxVQUFDLEdBQUc7Z0JBQ1QsZUFBZTtnQkFDZixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsSUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO2dCQUNqRCxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDakMsWUFBWTtnQkFDWixZQUFZO2dCQUNaLFlBQVk7Z0JBQ1osWUFBWTtnQkFDWixFQUFFLENBQUMsY0FBYyxDQUFDO29CQUNkLDZDQUE2QztvQkFDN0MsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO29CQUM1QixtQkFBbUI7b0JBQ25CLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtvQkFDMUIsMEJBQTBCO29CQUMxQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87b0JBQ3hCLDJCQUEyQjtvQkFDM0IsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSztvQkFDbkMsT0FBTztvQkFDUCxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87b0JBQ3hCLE9BQU8sWUFBQyxHQUFHO3dCQUNQLFVBQVU7d0JBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQzdCLENBQUM7b0JBQ0QsSUFBSSxZQUFDLEdBQUc7d0JBQ0osVUFBVTt3QkFDVixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDN0IsQ0FBQztvQkFDRCxRQUFRLFlBQUMsR0FBRzt3QkFDUixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDN0IsQ0FBQztpQkFDSixDQUFDLENBQUM7WUFDUCxDQUFDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUdELDRCQUFTLEdBQVQ7UUFDSSxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5RCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxTQUFTLEVBQUU7WUFDOUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0MsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7U0FDeEM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQy9ILENBQUM7SUFFRCw2QkFBVSxHQUFWO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUVyRCxDQUFDO0lBRUQsOEJBQVcsR0FBWDtRQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEQsQ0FBQztJQUVELDhCQUFXLEdBQVg7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3RELENBQUM7SUFFRCwrQkFBWSxHQUFaO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN2RCxDQUFDO0lBMVFEO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MkNBQ0k7SUFHdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzsyQ0FDSTtJQUd0QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNJO0lBS3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztpREFDZDtJQUd4QztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDOzRDQUNLO0lBSzFCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MkNBQ0k7SUFHdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDRztJQUdyQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzZDQUNNO0lBNUJQLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0FpUjVCO0lBQUQsZUFBQztDQWpSRCxBQWlSQyxDQWpScUMsRUFBRSxDQUFDLFNBQVMsR0FpUmpEO2tCQWpSb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmltcG9ydCBHYW1lTWFuYWdlciBmcm9tIFwiLi9HYW1lTWFuYWdlclwiO1xyXG5pbXBvcnQgTnVtYmVyVG9JbWFnZSBmcm9tIFwiLi9OdW1iZXJUb0ltYWdlXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcbmltcG9ydCB7IExRQ29sbGlkZVN5c3RlbSB9IGZyb20gXCIuL2xxX2NvbGxpZGVfc3lzdGVtL2xxX2NvbGxpZGVfc3lzdGVtXCI7XHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMjogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMzogY2MuTm9kZSA9IG51bGw7XHJcblxyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOiBcIuaWueWdl+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== +//------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() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Wall.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, '87a44m5f/pPAKIrsyArSr/V', 'Wall'); +// Script/Wall.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.WallColor = exports.WallType = exports.WallSpecial = void 0; +var Map_1 = require("./Map"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var WallSpecial; +(function (WallSpecial) { + /*普通门*/ + WallSpecial[WallSpecial["\u666E\u901A\u95E8"] = 0] = "\u666E\u901A\u95E8"; + /*星星门*/ + WallSpecial[WallSpecial["\u661F\u661F\u95E8"] = 1] = "\u661F\u661F\u95E8"; + /*开关门*/ + WallSpecial[WallSpecial["\u5F00\u5173\u95E8"] = 2] = "\u5F00\u5173\u95E8"; + /*冻结门 */ + WallSpecial[WallSpecial["\u51BB\u7ED3\u95E8"] = 3] = "\u51BB\u7ED3\u95E8"; +})(WallSpecial = exports.WallSpecial || (exports.WallSpecial = {})); +var WallType; +(function (WallType) { + /*普通地块 */ + WallType[WallType["\u95E8\u6A2A\u5411\u4E0B"] = 0] = "\u95E8\u6A2A\u5411\u4E0B"; + /*起点地块 */ + WallType[WallType["\u95E8\u6A2A\u5411\u4E0A"] = 1] = "\u95E8\u6A2A\u5411\u4E0A"; + /*湿地 */ + WallType[WallType["\u95E8\u7AD6\u5411\u53F3"] = 2] = "\u95E8\u7AD6\u5411\u53F3"; + /*山峰 */ + WallType[WallType["\u95E8\u7AD6\u5411\u5DE6"] = 3] = "\u95E8\u7AD6\u5411\u5DE6"; + /*终点地块 */ + WallType[WallType["\u5899\u6A2A\u5411\u4E0B"] = 4] = "\u5899\u6A2A\u5411\u4E0B"; + /*息壤 */ + WallType[WallType["\u5899\u6A2A\u5411\u4E0A"] = 5] = "\u5899\u6A2A\u5411\u4E0A"; + /*加固 */ + WallType[WallType["\u5899\u7AD6\u5411\u53F3"] = 6] = "\u5899\u7AD6\u5411\u53F3"; + /*加固 */ + WallType[WallType["\u5899\u7AD6\u5411\u5DE6"] = 7] = "\u5899\u7AD6\u5411\u5DE6"; +})(WallType = exports.WallType || (exports.WallType = {})); +var WallColor; +(function (WallColor) { + /*普通地块 */ + WallColor[WallColor["\u7D2B\u8272"] = 0] = "\u7D2B\u8272"; + /*湿地 */ + WallColor[WallColor["\u9EC4\u8272"] = 1] = "\u9EC4\u8272"; + /*山峰 */ + WallColor[WallColor["\u7EFF\u8272"] = 2] = "\u7EFF\u8272"; + /*终点地块 */ + WallColor[WallColor["\u84DD\u8272"] = 3] = "\u84DD\u8272"; + /*息壤 */ + WallColor[WallColor["\u7C89\u8272"] = 4] = "\u7C89\u8272"; + /*加固 */ + WallColor[WallColor["\u6A58\u9EC4\u8272"] = 5] = "\u6A58\u9EC4\u8272"; + /*加固 */ + WallColor[WallColor["\u9752\u8272"] = 6] = "\u9752\u8272"; + /*加固 */ + WallColor[WallColor["\u767D\u8272"] = 7] = "\u767D\u8272"; + /*普通地块 */ + WallColor[WallColor["\u7EA2\u8272"] = 8] = "\u7EA2\u8272"; + /*普通地块 */ + WallColor[WallColor["\u7070\u8272"] = 9] = "\u7070\u8272"; +})(WallColor = exports.WallColor || (exports.WallColor = {})); +var Wall = /** @class */ (function (_super) { + __extends(Wall, _super); + function Wall() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.number = null; + _this.type = WallType.墙横向下; + _this.special = WallSpecial.普通门; + _this.color = WallColor.紫色; + _this.wall_SpriteFrames = null; + _this.down_SpriteFrames = null; + return _this; + // update (dt) {} + } + // LIFE-CYCLE CALLBACKS: + // onLoad () {} + Wall.prototype.start = function () { + // console.log(this.type); + }; + Wall.prototype.jsonDeepClone = function (obj) { + return JSON.parse(JSON.stringify(obj)); + }; + Wall.prototype.init = function (wall_Info, posX, posY, direction) { + this.wall_Info = this.jsonDeepClone(wall_Info); + // this.open = true; + if (wall_Info == null) { + this.posX = posX; + this.posY = posY; + if (direction) + this.direction = direction; + // console.log("门方向赋值",direction); + if (direction == "up") { + this.node.parent.zIndex = 100 + this.posX - this.posY * 3; + } + else if (direction == "down" || direction == "right" || + direction == "rightdown" || direction == "downright" + || direction == "rightup" || direction == "upright") { + this.node.parent.zIndex = 30 + this.posX - this.posY * 3; + } + else if (direction == "left" || direction == "leftdown" || direction == "downleft") { + this.node.parent.zIndex = 70 + this.posX - this.posY * 3; + } + else + this.node.parent.zIndex = 70 + this.posX - this.posY * 3; + Map_1.default._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id = "Wall"; + //console.log(this.posX,this.posY,MapConroler._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id); + // console.log(this.posX,this.posY,this.node.zIndex); + //this.node.getChildByName("num").getComponent(cc.Label).string = direction; + //this.node.getChildByName("num").getComponent(cc.Label).string = ":" + this.node.parent.zIndex; + } + if (wall_Info != null) { + this.color = wall_Info.color; + this.special = wall_Info.special; + this.initType(); + if (wall_Info.length > 0) { + this.initColor(wall_Info.length); + } + else + this.node.removeComponent("cc.Sprite"); + if (this.posX != null) { + Map_1.default._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id = "Wall"; + //console.log(this.posX,this.posY,MapConroler._instance.mapBlocksWall[this.posX][this.posY].getComponent("MapBlock").block_Id); + } + } + // setTimeout(() => { + // this.node.getChildByName("num").getComponent(cc.Label).string = ":" + this.node.parent.zIndex; + // }, 1000); + }; + //创建门的颜色 + Wall.prototype.initColor = function (length) { + var direction = this.node.parent.name; + var double = 0; + if (direction == "left" || direction == "right") { + double = 3; + } + // debugger; + if (this.wall_SpriteFrames) { + var name = this.color + "color" + (length + double); + var spriteFrame = this.wall_SpriteFrames._spriteFrames[name]; + this.node.getComponent(cc.Sprite).spriteFrame = spriteFrame; + } + if (this.down_SpriteFrames) { + var name2 = this.color + "down" + (length + double); + var downFrame = this.down_SpriteFrames._spriteFrames[name2]; + this.node.parent.getChildByName("down").getComponent(cc.Sprite).spriteFrame = downFrame; + } + }; + //创建特殊类型门 + Wall.prototype.initType = function () { + switch (this.special) { + case WallSpecial.星星门: + var star = cc.instantiate(Map_1.default._instance.Block_Prop[this.special]); + star.parent = this.node.parent; + // console.log("门的方向",this.direction,"长度",this.wall_Info.length); + // star.scaleX = star.scaleY = 0.5; + if (this.wall_Info.length > 0) { + if (this.direction == "right" || this.direction == "left") { + star.children[this.wall_Info.length + 2].active = true; + } + else if (this.direction == "up" || this.direction == "down") { + star.children[this.wall_Info.length - 1].active = true; + } + } + star.setPosition(this.node.width / 2 + this.node.x, this.node.height / 2 + this.node.y); + break; + case WallSpecial.开关门: + var name = "open" + this.wall_Info.length; + this.openNode = this.node.parent.getChildByName("open").getChildByName(name); + this.openNode.active = true; + if (this.wall_Info.lock == false) { + this.open = true; + this.openNode.children[0].scaleX *= 0.01; + this.openNode.children[1].scaleX *= 0.01; + } + else { + this.open = false; + } + break; + case WallSpecial.冻结门: + var freeze = "freeze" + this.wall_Info.length; + this.freezeNode = this.node.parent.getChildByName("freeze").getChildByName(freeze); + this.freezeNode.active = true; + if (this.wall_Info.freeze) { + this.freezeNode.getChildByName("num").getComponent(cc.Label).string = this.wall_Info.freeze + ""; + } + break; + } + }; + //播放星星门通过 + Wall.prototype.playStarDoor = function () { + if (this.node.parent.getChildByName("star")) { + var star = this.node.parent.getChildByName("star"); + for (var i = 0; i < star.children.length; i++) { + if (star.children[i].active == true) { + var starChild = star.children[i]; + for (var j = 0; j < starChild.children.length; j++) { + starChild.children[j].active = true; + starChild.children[j].getComponent(sp.Skeleton).setAnimation(1, "taopao1", false); + } + } + } + } + }; + //改变开关门状态 + Wall.prototype.changeLock = function () { + this.open = !this.open; + console.log("开关门状态改变", this.open); + if (!this.openNode.active) { + this.openNode.active = true; + } + var fill = this.openNode.children[0].scaleX == 1 ? 0.01 : 1; + if (this.openNode.children[0].scaleX < 0) + fill = -fill; + // console.log("目标",fill); + cc.tween(this.openNode.children[0]) + .to(0.3, { scaleX: this.openNode.children[0].scaleX < 0 ? -fill : fill }) + .call(function () { + // console.log("左边完成"); + }) + .start(); + cc.tween(this.openNode.children[1]) + .to(0.3, { scaleX: this.openNode.children[1].scaleX < 0 ? -fill : fill }) + .call(function () { + // console.log("右边完成"); + }) + .start(); + }; + Wall.prototype.changeFreeze = function () { + var numStr = this.freezeNode.getChildByName("num").getComponent(cc.Label); + var num = parseInt(numStr.string); + num -= 1; + this.freezeNode.getChildByName("num").getComponent(cc.Label).string = num + ""; + if (num == 0) { + this.freezeNode.parent.active = false; + } + }; + Wall.prototype.downDoor = function () { + if (this.openNode) { + if (this.openNode.children[0].scaleX == 1) + return; + } + if (this.freezeNode) { + if (this.freezeNode.active == true) + return; + } + this.node.opacity = 0; + if (this.special == WallSpecial.星星门) { + this.node.parent.getChildByName("star").y -= 10; + } + this.node.parent.getChildByName("down").active = true; + }; + Wall.prototype.upDoor = function () { + if (this.special == WallSpecial.星星门) { + this.node.parent.getChildByName("star").y += 10; + } + this.node.parent.getChildByName("down").active = false; + this.node.opacity = 250; + }; + __decorate([ + property(cc.Label) + ], Wall.prototype, "number", void 0); + __decorate([ + property({ + tooltip: '墙或者门的方向', + type: cc.Enum(WallType), + }) + ], Wall.prototype, "type", void 0); + __decorate([ + property({ + tooltip: '墙或者门的方向', + type: cc.Enum(WallSpecial), + }) + ], Wall.prototype, "special", void 0); + __decorate([ + property({ + tooltip: '门的颜色', + type: cc.Enum(WallColor), + }) + ], Wall.prototype, "color", void 0); + __decorate([ + property(cc.SpriteAtlas) + ], Wall.prototype, "wall_SpriteFrames", void 0); + __decorate([ + property(cc.SpriteAtlas) + ], Wall.prototype, "down_SpriteFrames", void 0); + Wall = __decorate([ + ccclass + ], Wall); + return Wall; +}(cc.Component)); +exports.default = Wall; + +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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxXYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRiw2QkFBZ0M7QUFFMUIsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFFMUMsSUFBWSxXQVNYO0FBVEQsV0FBWSxXQUFXO0lBQ25CLE9BQU87SUFDUCx5RUFBUyxDQUFBO0lBQ1QsT0FBTztJQUNQLHlFQUFTLENBQUE7SUFDVCxPQUFPO0lBQ1AseUVBQVMsQ0FBQTtJQUNULFFBQVE7SUFDUix5RUFBUyxDQUFBO0FBQ2IsQ0FBQyxFQVRXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBU3RCO0FBRUQsSUFBWSxRQWtCWDtBQWxCRCxXQUFZLFFBQVE7SUFFaEIsU0FBUztJQUNULCtFQUFVLENBQUE7SUFDVixTQUFTO0lBQ1QsK0VBQVUsQ0FBQTtJQUNWLE9BQU87SUFDUCwrRUFBVSxDQUFBO0lBQ1YsT0FBTztJQUNQLCtFQUFVLENBQUE7SUFDVixTQUFTO0lBQ1QsK0VBQVUsQ0FBQTtJQUNWLE9BQU87SUFDUCwrRUFBVSxDQUFBO0lBQ1YsT0FBTztJQUNQLCtFQUFVLENBQUE7SUFDVixPQUFPO0lBQ1AsK0VBQVUsQ0FBQTtBQUNkLENBQUMsRUFsQlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFrQm5CO0FBRUQsSUFBWSxTQXFCWDtBQXJCRCxXQUFZLFNBQVM7SUFDakIsU0FBUztJQUNULHlEQUFRLENBQUE7SUFDUixPQUFPO0lBQ1AseURBQVEsQ0FBQTtJQUNSLE9BQU87SUFDUCx5REFBUSxDQUFBO0lBQ1IsU0FBUztJQUNULHlEQUFRLENBQUE7SUFDUixPQUFPO0lBQ1AseURB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LFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUM3QixDQUFDO3lDQUNxQztJQU12QztRQUpDLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRSxNQUFNO1lBQ2YsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQzNCLENBQUM7dUNBQzhCO0lBR2hDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7bURBQ2dCO0lBR3pDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUM7bURBQ2dCO0lBM0J4QixJQUFJO1FBRHhCLE9BQU87T0FDYSxJQUFJLENBcVB4QjtJQUFELFdBQUM7Q0FyUEQsQUFxUEMsQ0FyUGlDLEVBQUUsQ0FBQyxTQUFTLEdBcVA3QztrQkFyUG9CLElBQUkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4vTWFwXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbmV4cG9ydCBlbnVtIFdhbGxTcGVjaWFse1xyXG4gICAgLyrmma7pgJrpl6gqL1xyXG4gICAgXCLmma7pgJrpl6hcIiA9IDAsICBcclxuICAgIC8q5pif5pif6ZeoKi9cclxuICAgIFwi5pif5pif6ZeoXCIgPSAxLCAgXHJcbiAgICAvKuW8gOWFs+mXqCovXHJcbiAgICBcIuW8gOWFs+mXqFwiID0gMiwgIFxyXG4gICAgLyrlhrvnu5Ppl6ggKi9cclxuICAgIFwi5Ya757uT6ZeoXCIgPSAzLCAgXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFdhbGxUeXBle1xyXG4gICAgXHJcbiAgICAvKuaZrumAmuWcsOWdlyAqL1xyXG4gICAgXCLpl6jmqKrlkJHkuItcIiA9IDAsICBcclxuICAgIC8q6LW354K55Zyw5Z2XICovXHJcbiAgICBcIumXqOaoquWQkeS4ilwiID0gMSwgIFxyXG4gICAgLyrmub/lnLAgKi9cclxuICAgIFwi6Zeo56uW5ZCR5Y+zXCIgPSAyLCAgXHJcbiAgICAvKuWxseWzsCAqL1xyXG4gICAgXCLpl6jnq5blkJHlt6ZcIiA9IDMsICBcclxuICAgIC8q57uI54K55Zyw5Z2XICovXHJcbiAgICBcIuWimeaoquWQkeS4i1wiID0gNCwgIFxyXG4gICAgLyrmga/lo6QgKi9cclxuICAgIFwi5aKZ5qiq5ZCR5LiKXCIgPSA1LCAgXHJcbiAgICAvKuWKoOWbuiAqL1xyXG4gICAgXCLlopnnq5blkJHlj7NcIiA9IDYsICBcclxuICAgIC8q5Yqg5Zu6ICovXHJcbiAgICBcIuWimeerluWQkeW3plwiID0gNywgIFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBXYWxsQ29sb3J7XHJcbiAgICAvKuaZrumAmuWcsOWdlyAqL1xyXG4gICAgXCLntKvoibJcIiA9IDAsICBcclxuICAgIC8q5rm/5ZywICovXHJcbiAgICBcIum7hOiJslwiID0gMSwgIFxyXG4gICAgLyrlsbHls7AgKi9cclxuICAgIFwi57u/6ImyXCIgPSAyLCAgXHJcbiAgICAvKue7iOeCueWcsOWdlyAqL1xyXG4gICAgXCLok53oibJcIiA9IDMsICBcclxuICAgIC8q5oGv5aOkICovXHJcbiAgICBcIueyieiJslwiID0gNCwgIFxyXG4gICAgLyrliqDlm7ogKi9cclxuICAgIFwi5qmY6buE6ImyXCIgPSA1LCAgXHJcbiAgICAvKuWKoOWbuiAqL1xyXG4gICAgXCLpnZLoibJcIiA9IDYsICBcclxuICAgIC8q5Yqg5Zu6ICovXHJcbiAgICBcIueZveiJslwiID0gNywgIFxyXG4gICAgLyrmma7pgJrlnLDlnZcgKi9cclxuICAgIFwi57qi6ImyXCIgPSA4LCBcclxuICAgIC8q5pmu6YCa5Zyw5Z2XICovXHJcbiAgICBcIueBsOiJslwiID0gOSwgXHJcbn1cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdhbGwgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIG51bWJlcjogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7XHJcbiAgICAgICAgdG9vbHRpcDogJ+WimeaIluiAhemXqOeahOaWueWQkScsXHJcbiAgICAgICAgdHlwZTogY2MuRW51bShXYWxsVHlwZSksXHJcbiAgICB9KVxyXG4gICAgdHlwZTogV2FsbFR5cGUgPSBXYWxsVHlwZS7lopnmqKrlkJHkuIs7XHJcblxyXG4gICAgQHByb3BlcnR5KHtcclxuICAgICAgICB0b29sdGlwOiAn5aKZ5oiW6ICF6Zeo55qE5pa55ZCRJyxcclxuICAgICAgICB0eXBlOiBjYy5FbnVtKFdhbGxTcGVjaWFsKSxcclxuICAgIH0pXHJcbiAgICBzcGVjaWFsOiBXYWxsU3BlY2lhbCA9IFdhbGxTcGVjaWFsLuaZrumAmumXqDtcclxuXHJcbiAgICBAcHJvcGVydHkoe1xyXG4gICAgICAgIHRvb2x0aXA6ICfpl6jnmoTpopzoibInLFxyXG4gICAgICAgIHR5cGU6IGNjLkVudW0oV2FsbENvbG9yKSxcclxuICAgIH0pXHJcbiAgICBjb2xvcjogV2FsbENvbG9yID0gV2FsbENvbG9yLue0q+iJsjtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuU3ByaXRlQXRsYXMpXHJcbiAgICB3YWxsX1Nwcml0ZUZyYW1lczogY2MuU3ByaXRlQXRsYXMgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5TcHJpdGVBdGxhcylcclxuICAgIGRvd25fU3ByaXRlRnJhbWVzOiBjYy5TcHJpdGVBdGxhcyA9IG51bGw7XHJcblxyXG5cclxuICAgIHBvc1g6IG51bWJlcjtcclxuICAgIHBvc1k6IG51bWJlcjtcclxuICAgIGRpcmVjdGlvbjogYW55O1xyXG4gICAgd2FsbF9JbmZvOiBhbnk7XHJcbiAgICBvcGVuTm9kZTogY2MuTm9kZTtcclxuICAgIGZyZWV6ZU5vZGU6IGNjLk5vZGU7XHJcbiAgICBvcGVuOmJvb2xlYW47XHJcbiAgICBcclxuXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuXHJcbiAgICAvLyBvbkxvYWQgKCkge31cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy50eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBqc29uRGVlcENsb25lPFQ+KG9iajogVCk6IFQge1xyXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQod2FsbF9JbmZvLCBwb3NYOiBudW1iZXIsIHBvc1k6IG51bWJlciwgZGlyZWN0aW9uOiBhbnkpe1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMud2FsbF9JbmZvID0gdGhpcy5qc29uRGVlcENsb25lKHdhbGxfSW5mbyk7XHJcbiAgICAgICAgLy8gdGhpcy5vcGVuID0gdHJ1ZTtcclxuICAgICAgICBpZih3YWxsX0luZm8gPT0gbnVsbCl7XHJcbiAgICAgICAgICAgIHRoaXMucG9zWCA9IHBvc1g7XHJcbiAgICAgICAgICAgIHRoaXMucG9zWSA9IHBvc1k7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZihkaXJlY3Rpb24pdGhpcy5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6Zeo5pa55ZCR6LWL5YC8XCIsZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgaWYoZGlyZWN0aW9uID09IFwidXBcIiApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC56SW5kZXggPSAxMDAgKyB0aGlzLnBvc1ggLSB0aGlzLnBvc1kqMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKCBkaXJlY3Rpb24gPT0gXCJkb3duXCIgfHwgZGlyZWN0aW9uID09IFwicmlnaHRcIiB8fCBcclxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9PSBcInJpZ2h0ZG93blwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25yaWdodFwiXHJcbiAgICAgICAgICAgIHx8IGRpcmVjdGlvbiA9PSBcInJpZ2h0dXBcIiB8fCBkaXJlY3Rpb24gPT0gXCJ1cHJpZ2h0XCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC56SW5kZXggPSAzMCArIHRoaXMucG9zWCAtIHRoaXMucG9zWSozO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKCBkaXJlY3Rpb24gPT0gXCJsZWZ0XCJ8fCBkaXJlY3Rpb24gPT0gXCJsZWZ0ZG93blwiIHx8IGRpcmVjdGlvbiA9PSBcImRvd25sZWZ0XCIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC56SW5kZXggPSA3MCArIHRoaXMucG9zWCAtIHRoaXMucG9zWSozOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHRoaXMubm9kZS5wYXJlbnQuekluZGV4ID0gNzAgKyB0aGlzLnBvc1ggLSB0aGlzLnBvc1kqMztcclxuXHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5tYXBCbG9ja3NXYWxsW3RoaXMucG9zWF1bdGhpcy5wb3NZXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCA9IFwiV2FsbFwiO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMucG9zWCx0aGlzLnBvc1ksTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbdGhpcy5wb3NYXVt0aGlzLnBvc1ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkKTtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5wb3NYLHRoaXMucG9zWSx0aGlzLm5vZGUuekluZGV4KTtcclxuICAgICAgICAgICAgLy90aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkaXJlY3Rpb247XHJcbiAgICAgICAgICAgLy90aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBcIjpcIiArIHRoaXMubm9kZS5wYXJlbnQuekluZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih3YWxsX0luZm8gIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIHRoaXMuY29sb3IgPSB3YWxsX0luZm8uY29sb3I7XHJcbiAgICAgICAgICAgIHRoaXMuc3BlY2lhbCA9IHdhbGxfSW5mby5zcGVjaWFsO1xyXG4gICAgICAgICAgICB0aGlzLmluaXRUeXBlKCk7XHJcbiAgICAgICAgICAgIGlmKHdhbGxfSW5mby5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdENvbG9yKHdhbGxfSW5mby5sZW5ndGgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5ub2RlLnJlbW92ZUNvbXBvbmVudChcImNjLlNwcml0ZVwiKTtcclxuICAgICAgICAgICAgaWYodGhpcy5wb3NYICE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbdGhpcy5wb3NYXVt0aGlzLnBvc1ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkID0gXCJXYWxsXCI7XHJcbiAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMucG9zWCx0aGlzLnBvc1ksTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEJsb2Nrc1dhbGxbdGhpcy5wb3NYXVt0aGlzLnBvc1ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAvLyAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI6XCIgKyB0aGlzLm5vZGUucGFyZW50LnpJbmRleDtcclxuICAgICAgICAvLyB9LCAxMDAwKTtcclxuIFxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu66Zeo55qE6aKc6ImyXHJcbiAgICBpbml0Q29sb3IobGVuZ3RoOiBudW1iZXIpe1xyXG4gICAgICAgIGxldCBkaXJlY3Rpb24gPSB0aGlzLm5vZGUucGFyZW50Lm5hbWU7XHJcbiAgICAgICAgbGV0IGRvdWJsZSA9IDA7XHJcbiAgICAgICAgaWYoZGlyZWN0aW9uID09IFwibGVmdFwiICB8fCBkaXJlY3Rpb24gPT0gXCJyaWdodFwiKXtcclxuICAgICAgICAgICAgZG91YmxlID0gMztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgIGlmKHRoaXMud2FsbF9TcHJpdGVGcmFtZXMpe1xyXG4gICAgICAgICAgICBsZXQgbmFtZSA9IHRoaXMuY29sb3IrXCJjb2xvclwiICsgKGxlbmd0aCtkb3VibGUpO1xyXG4gICAgICAgICAgICB2YXIgc3ByaXRlRnJhbWUgPSB0aGlzLndhbGxfU3ByaXRlRnJhbWVzLl9zcHJpdGVGcmFtZXNbbmFtZV07XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHNwcml0ZUZyYW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0aGlzLmRvd25fU3ByaXRlRnJhbWVzKXtcclxuICAgICAgICAgICAgbGV0IG5hbWUyID0gdGhpcy5jb2xvciArIFwiZG93blwiICsgKGxlbmd0aCtkb3VibGUpO1xyXG4gICAgICAgICAgICB2YXIgZG93bkZyYW1lID0gdGhpcy5kb3duX1Nwcml0ZUZyYW1lcy5fc3ByaXRlRnJhbWVzW25hbWUyXTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcImRvd25cIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBkb3duRnJhbWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIFxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu654m55q6K57G75Z6L6ZeoXHJcbiAgICBpbml0VHlwZSgpe1xyXG4gICAgICAgIHN3aXRjaCh0aGlzLnNwZWNpYWwpe1xyXG4gICAgICAgICAgICBjYXNlIFdhbGxTcGVjaWFsLuaYn+aYn+mXqDpcclxuICAgICAgICAgICAgICAgIGxldCBzdGFyID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbdGhpcy5zcGVjaWFsXSk7XHJcbiAgICAgICAgICAgICAgICBzdGFyLnBhcmVudCA9IHRoaXMubm9kZS5wYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIumXqOeahOaWueWQkVwiLHRoaXMuZGlyZWN0aW9uLFwi6ZW/5bqmXCIsdGhpcy53YWxsX0luZm8ubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgIC8vIHN0YXIuc2NhbGVYID0gc3Rhci5zY2FsZVkgPSAwLjU7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLndhbGxfSW5mby5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmRpcmVjdGlvbiA9PSBcInJpZ2h0XCIgfHwgdGhpcy5kaXJlY3Rpb24gPT0gXCJsZWZ0XCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFyLmNoaWxkcmVuW3RoaXMud2FsbF9JbmZvLmxlbmd0aCArIDJdLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5kaXJlY3Rpb24gPT0gXCJ1cFwiIHx8IHRoaXMuZGlyZWN0aW9uID09IFwiZG93blwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Rhci5jaGlsZHJlblt0aGlzLndhbGxfSW5mby5sZW5ndGggLSAxXS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHN0YXIuc2V0UG9zaXRpb24odGhpcy5ub2RlLndpZHRoLzIrdGhpcy5ub2RlLngsdGhpcy5ub2RlLmhlaWdodC8yK3RoaXMubm9kZS55KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFdhbGxTcGVjaWFsLuW8gOWFs+mXqDpcclxuICAgICAgICAgICAgICAgIGxldCBuYW1lID0gXCJvcGVuXCIgKyB0aGlzLndhbGxfSW5mby5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5Ob2RlID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIm9wZW5cIikuZ2V0Q2hpbGRCeU5hbWUobmFtZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5Ob2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLndhbGxfSW5mby5sb2NrID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW4gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0uc2NhbGVYICo9IDAuMDE7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuTm9kZS5jaGlsZHJlblsxXS5zY2FsZVggKj0gMC4wMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBXYWxsU3BlY2lhbC7lhrvnu5Ppl6g6XHJcbiAgICAgICAgICAgICAgICBsZXQgZnJlZXplID0gXCJmcmVlemVcIiArIHRoaXMud2FsbF9JbmZvLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplTm9kZSA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJmcmVlemVcIikuZ2V0Q2hpbGRCeU5hbWUoZnJlZXplKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplTm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy53YWxsX0luZm8uZnJlZXplKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZU5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxfSW5mby5mcmVlemUrXCJcIjtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9IFxyXG4gICAgfVxyXG5cclxuICAgIC8v5pKt5pS+5pif5pif6Zeo6YCa6L+HXHJcbiAgICBwbGF5U3RhckRvb3IoKXtcclxuICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwic3RhclwiKSl7XHJcbiAgICAgICAgICAgIGxldCBzdGFyID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInN0YXJcIik7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHN0YXIuY2hpbGRyZW4ubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgaWYoc3Rhci5jaGlsZHJlbltpXS5hY3RpdmUgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHN0YXJDaGlsZCA9IHN0YXIuY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBqPTA7IGo8c3RhckNoaWxkLmNoaWxkcmVuLmxlbmd0aDsgaisrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhckNoaWxkLmNoaWxkcmVuW2pdLmFjdGl2ZSA9IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhckNoaWxkLmNoaWxkcmVuW2pdLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsXCJ0YW9wYW8xXCIsZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy/mlLnlj5jlvIDlhbPpl6jnirbmgIFcclxuICAgIGNoYW5nZUxvY2soKXtcclxuICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi5byA5YWz6Zeo54q25oCB5pS55Y+YXCIsdGhpcy5vcGVuKTtcclxuICAgICAgICBpZighdGhpcy5vcGVuTm9kZS5hY3RpdmUpe1xyXG4gICAgICAgICAgICB0aGlzLm9wZW5Ob2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gIFxyXG5cclxuICAgICAgICBsZXQgZmlsbCA9IHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0uc2NhbGVYPT0xID8gMC4wMToxO1xyXG4gICAgICAgIGlmKHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0uc2NhbGVYIDwgMCkgZmlsbCA9IC1maWxsO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi55uu5qCHXCIsZmlsbCk7XHJcblxyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0pXHJcbiAgICAgICAgLnRvKDAuMywge3NjYWxlWDogdGhpcy5vcGVuTm9kZS5jaGlsZHJlblswXS5zY2FsZVggPCAwPy1maWxsOmZpbGx9KVxyXG4gICAgICAgIC5jYWxsKCgpPT57XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5bem6L655a6M5oiQXCIpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMV0pXHJcbiAgICAgICAgLnRvKDAuMywge3NjYWxlWDogdGhpcy5vcGVuTm9kZS5jaGlsZHJlblsxXS5zY2FsZVggPCAwPy1maWxsOmZpbGx9KVxyXG4gICAgICAgIC5jYWxsKCgpPT57XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+z6L655a6M5oiQXCIpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlRnJlZXplKCl7XHJcbiAgICAgICAgbGV0IG51bVN0ciA9IHRoaXMuZnJlZXplTm9kZS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpO1xyXG4gICAgICAgIGxldCBudW0gPSBwYXJzZUludChudW1TdHIuc3RyaW5nKTtcclxuICAgICAgICBudW0gLT0gMTtcclxuICAgICAgICB0aGlzLmZyZWV6ZU5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBudW0rXCJcIjtcclxuICAgICAgICBpZihudW0gPT0gMCl7XHJcbiAgICAgICAgICAgIHRoaXMuZnJlZXplTm9kZS5wYXJlbnQuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRvd25Eb29yKCl7XHJcbiAgICAgICAgaWYodGhpcy5vcGVuTm9kZSl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMub3Blbk5vZGUuY2hpbGRyZW5bMF0uc2NhbGVYID09IDEpXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMuZnJlZXplTm9kZSl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuZnJlZXplTm9kZS5hY3RpdmUgPT0gdHJ1ZSlcclxuICAgICAgICAgICAgICAgIHJldHVybjsgXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm5vZGUub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgaWYodGhpcy5zcGVjaWFsID09IFdhbGxTcGVjaWFsLuaYn+aYn+mXqCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFyXCIpLnkgLT0gMTA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJkb3duXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdXBEb29yKCl7XHJcbiAgICAgICAgaWYodGhpcy5zcGVjaWFsID09IFdhbGxTcGVjaWFsLuaYn+aYn+mXqCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFyXCIpLnkgKz0gMTA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJkb3duXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 +//------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/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 +//------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/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 + +"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.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; + } + 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); + } + }); + }; + MiniGameManager.prototype.update = function (deltaTime) { + }; + /** + * 弹出广告横幅。 + * 此方法用于加载并显示广告横幅。它首先加载指定广告位的横幅广告,然后显示广告。 + * 加载广告和显示广告是通过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 }); + }; + /** + * 隐藏广告横幅的函数。 + * + * 该函数调用MiniGameSdk.AdvertManager实例的方法,用于隐藏广告横幅。 + * 当需要暂时停止展示广告或用户主动请求隐藏广告时,可以调用此函数。 + * + * @remarks + * 此函数不接受任何参数,也不返回任何值。 + * 它单纯地触发广告横幅的隐藏操作,具体实现依赖于AdvertManager的实现。 + */ + MiniGameManager.prototype.onHideBanner = function () { + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideBanner(); + }; + /** + * 显示插屏广告的函数。 + * + * 此函数调用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([ + ccclass + ], MiniGameManager); + return MiniGameManager; +}(cc.Component)); +exports.MiniGameManager = MiniGameManager; + +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,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() { + 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() { @@ -10518,7 +10766,7 @@ cc._RF.pop(); (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/Sdk/MiniGameSdk.js'; + var __filename = 'preview-scripts/assets/Script/prop/Key.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -10526,1758 +10774,8 @@ cc._RF.pop(); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'c1af9nd7gNA95YJ04h9DdNX', 'MiniGameSdk'); -// Script/Sdk/MiniGameSdk.ts - -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.MiniGameSdk = void 0; -/** - * 小游戏平台SDK工具封装,目前只支持微信和抖音平台 - */ -var MiniGameSdk; -(function (MiniGameSdk) { - function isWechat() { - //@ts-ignore - return window.wx !== null && window.wx !== undefined; - } - MiniGameSdk.isWechat = isWechat; - function isBytedance() { - //@ts-ignore - return window.tt !== null && window.tt !== undefined; - } - MiniGameSdk.isBytedance = isBytedance; - function getSysWinSize() { - var sys; - if (isWechat()) { - // @ts-ignore - sys = wx.getSystemInfoSync(); - } - else if (isBytedance()) { - // @ts-ignore - sys = tt.getSystemInfoSync(); - } - var size = { width: 0, height: 0 }; - if (sys) { - size.width = sys.windowWidth; - size.height = sys.windowHeight; - } - return size; - } - /** - * 插屏广告。微信抖音都支持! - */ - var ADInterstitial = /** @class */ (function () { - function ADInterstitial(adUid) { - this._adUid = adUid; - } - Object.defineProperty(ADInterstitial.prototype, "aduid", { - get: function () { - return this._adUid; - }, - enumerable: false, - configurable: true - }); - ADInterstitial.prototype.show = function () { - var _this = this; - var _a, _b; - // @ts-ignore - if (isWechat() && !wx.createInterstitialAd) { - console.warn('wechat unsupport interstitial AD!'); - this._interstitial = null; - return; - } - // @ts-ignore - if (isBytedance() && !tt.createInterstitialAd) { - console.warn('bytedance unsupport interstitial AD!'); - this._interstitial = null; - return; - } - if (this._interstitial) { - this._interstitial.load(); - } - else { - if (isWechat()) { - // @ts-ignore - this._interstitial = wx.createInterstitialAd({ adUnitId: this._adUid }); - } - else if (isBytedance()) { - // @ts-ignore - this._interstitial = tt.createInterstitialAd({ adUnitId: this._adUid }); - } - else { - this._interstitial = null; - } - (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.onLoad(function () { - console.log('load interstitial ad success'); - _this._interstitial.show().catch(function (err) { - console.log('catch interstitial ad error:', err); - }); - }); - (_b = this._interstitial) === null || _b === void 0 ? void 0 : _b.onError(function (err) { - console.log('interstitial ad on error:', err); - }); - } - }; - ADInterstitial.prototype.destory = function () { - var _a; - (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.destroy(); - }; - return ADInterstitial; - }()); - var ADBanner = /** @class */ (function () { - /** - * 抖音和微信都支持 - * 横幅广告。预估宽度默认为300,预估高度为140。如果你不确定就按默认值来。 - * @param adUid 广告UID,后端配置 - * @param isTop 是否在屏幕顶部展示。内部会自动居中计算位置。 - * @param bannerWidth 横幅广告的预估宽度。默认300 - * @param autoShow 广告加载完成后是否立刻显示,默认为不显示 - */ - function ADBanner(adUid, param, bannerWidth, autoShow) { - if (bannerWidth === void 0) { bannerWidth = 300; } - if (autoShow === void 0) { autoShow = false; } - this._adUid = adUid; - this.create(autoShow, bannerWidth, param); // 默认300比较合适 - } - Object.defineProperty(ADBanner.prototype, "aduid", { - get: function () { - return this._adUid; - }, - enumerable: false, - configurable: true - }); - ADBanner.prototype.create = function (autoShow, bannerWidth, param) { - var _this = this; - var _a, _b; - if (!isWechat() && !isBytedance()) { - this._banner = null; - return; - } - this.destroy(); - var winSize = getSysWinSize(); - var height = bannerWidth * 0.4; - var top = 0, left = 0; - if (typeof param === "boolean") { - left = (winSize.width - bannerWidth) / 2; - top = param ? 5 : (winSize.height - height); - } - else { - left = param.left; - top = param.top; - } - var params = { - adUnitId: this._adUid, - adIntervals: 30, - style: { left: left, top: top, width: bannerWidth } - }; - if (isWechat()) { - // @ts-ignore - this._banner = wx.createBannerAd(params); - } - else if (isBytedance()) { - // @ts-ignore - this._banner = tt.createBannerAd(params); - } - else { - this._banner = null; - } - (_a = this._banner) === null || _a === void 0 ? void 0 : _a.onError(function (err) { - console.log('ad banner error:', err); - }); - (_b = this._banner) === null || _b === void 0 ? void 0 : _b.onLoad(function () { - autoShow && _this._banner.show(); - }); - }; - ADBanner.prototype.show = function () { - var _a; - (_a = this._banner) === null || _a === void 0 ? void 0 : _a.show(); - }; - ADBanner.prototype.hide = function () { - var _a; - (_a = this._banner) === null || _a === void 0 ? void 0 : _a.hide(); - }; - ADBanner.prototype.destroy = function () { - var _a; - (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); - }; - return ADBanner; - }()); - var ADCustom = /** @class */ (function () { - /** - * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持! - * @param adUid 广告UID,后端配置 - * @param top 从左上角开始,距离屏幕顶部的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。 - * @param left 从左上角开始,距离屏幕最左边的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。 - * @param scale 原生模板广告的尺寸,默认为1,即100%。此值在微信服务后端广告中获得,默认为100%,目前有100%,90%,80%三种,一般情况不用修改。若有修改,记得传入值,例如90%就传入0.9。 - */ - function ADCustom(adUid, top, left, scale) { - if (top === void 0) { top = 0; } - if (left === void 0) { left = 0; } - if (scale === void 0) { scale = 1.0; } - this._adUid = adUid; - this.createCustomAd(top, left, scale); - } - Object.defineProperty(ADCustom.prototype, "aduid", { - get: function () { - return this._adUid; - }, - enumerable: false, - configurable: true - }); - ADCustom.prototype.createCustomAd = function (top, left, scale) { - var _a; - if (!isWechat()) { // only wechat support custom ad - this._adCustom = null; - console.log('Only wechat support Custom Ad'); - return; - } - this.destroy(); - // 原生模板5个应用宽度为375,若设置了缩放比例,则宽度也需要设置 - // let width = 375 * this._scale; - // let newLeft = (sys.windowWidth - width) / 2; - // let newTop = sys.windowHeight / 2; // 120是预估高度 - // @ts-ignore - this._adCustom = wx.createCustomAd({ - adUnitId: this._adUid, - //@ts-ignore - style: { left: left, top: top, fixed: true } - }); - (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.onError(function (err) { - console.log('ad custom error:', err); - }); - }; - ADCustom.prototype.show = function () { - var _a; - (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.show(); - }; - ADCustom.prototype.hide = function () { - var _a; - (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.hide(); - }; - ADCustom.prototype.destroy = function () { - var _a; - (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.destroy(); - }; - return ADCustom; - }()); - /** - * 视频广告用户点击行为结果 - */ - var EAdVideoResult; - (function (EAdVideoResult) { - /** - * 用户看完了广告,游戏可发放奖励。 - */ - EAdVideoResult[EAdVideoResult["ACCEPT"] = 0] = "ACCEPT"; - /** - * 用户中途关闭了广告,即未看完状态。不可发放奖励。 - */ - EAdVideoResult[EAdVideoResult["REJECT"] = 1] = "REJECT"; - /** - * 广告组件内部发生了错误。不可发放奖励。 - */ - EAdVideoResult[EAdVideoResult["ERROR"] = 2] = "ERROR"; - })(EAdVideoResult = MiniGameSdk.EAdVideoResult || (MiniGameSdk.EAdVideoResult = {})); - var ADVideo = /** @class */ (function () { - function ADVideo(adUid) { - this._adVideo = null; - this._adUid = adUid; - } - Object.defineProperty(ADVideo.prototype, "aduid", { - get: function () { - return this._adUid; - }, - enumerable: false, - configurable: true - }); - /** - * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount - * @param onResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 - * @param target onResult的拥有者 - * @param maxVideoCount 可以连续看最大视频个数,可最大化商业效率。默认为3个。 - * @returns - */ - ADVideo.prototype.show = function (onResult, target, maxVideoCount) { - var _this = this; - var _a, _b, _c, _d, _e; - if (maxVideoCount === void 0) { maxVideoCount = 3; } - var callback = function (state, count) { - onResult === null || onResult === void 0 ? void 0 : onResult.call(target, state, count); - }; - if (!isWechat() && !isBytedance()) { - callback(EAdVideoResult.ACCEPT, 1); - this._adVideo = null; - return; - } - var onAdVideoClosed = function (res) { - var _a; - (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.offClose(onAdVideoClosed); - if (isWechat()) { - if (res && res.isEnded || res === undefined) { - callback(EAdVideoResult.ACCEPT, 1); - } - else { - callback(EAdVideoResult.REJECT, 0); - } - } - else if (isBytedance()) { - var resConverted = res; - if (resConverted && resConverted.count > 0) { - callback(EAdVideoResult.ACCEPT, resConverted.count); - } - else { - callback(EAdVideoResult.REJECT, 0); - } - } - }; - (_a = this._adVideo) === null || _a === void 0 ? void 0 : _a.offClose(onAdVideoClosed); - if (isWechat()) { - // @ts-ignore - this._adVideo = wx.createRewardedVideoAd({ - adUnitId: this._adUid - }); - } - else if (isBytedance()) { - // @ts-ignore - this._adVideo = tt.createRewardedVideoAd({ - adUnitId: this._adUid, - multiton: true, - multitonRewardMsg: ['多1次奖励', '再多一次奖励', '再多一次奖励'], - multitonRewardTimes: maxVideoCount, - }); - } - else { - this._adVideo = null; - } - (_b = this._adVideo) === null || _b === void 0 ? void 0 : _b.onLoad(function () { - console.log('Ad load success'); - }); - (_c = this._adVideo) === null || _c === void 0 ? void 0 : _c.onError(function (err) { - console.log('Ad video error:', err); - callback(EAdVideoResult.ERROR, 0); - }); - (_d = this._adVideo) === null || _d === void 0 ? void 0 : _d.onClose(onAdVideoClosed); - (_e = this._adVideo) === null || _e === void 0 ? void 0 : _e.show().catch(function () { - var _a; - (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.load().then(function () { var _a; return (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.show(); }).catch(function (err) { - console.log('Catch video ad error:', err); - callback(EAdVideoResult.ERROR, 0); - }); - }); - }; - ADVideo.prototype.destory = function () { - var _a; - (_a = this._adVideo) === null || _a === void 0 ? void 0 : _a.destory(); - }; - return ADVideo; - }()); - var EAdBannerLocation; - (function (EAdBannerLocation) { - /** - * 屏幕顶部 - */ - EAdBannerLocation[EAdBannerLocation["TOP"] = 0] = "TOP"; - /** - * 屏幕底部 - */ - EAdBannerLocation[EAdBannerLocation["BOTTOM"] = 1] = "BOTTOM"; - })(EAdBannerLocation = MiniGameSdk.EAdBannerLocation || (MiniGameSdk.EAdBannerLocation = {})); - var AdvertManager = /** @class */ (function () { - function AdvertManager() { - this._customs = {}; - } - Object.defineProperty(AdvertManager, "instance", { - get: function () { - if (!AdvertManager._instance) { - AdvertManager._instance = new AdvertManager(); - } - return AdvertManager._instance; - }, - enumerable: false, - configurable: true - }); - /** - * 预加载横幅广告,不会显示。只有你在调用showBanner时才会显示。 - * 可重复调用,但是会销毁上一次的实例。一般情况,全局有一个就行了,太多占用内存,而且没必要。 - * @param adUid 广告UID - * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置 - * @param scale 默认为跟屏幕一样的宽度,可以通过设置缩放比例来调整大小。当然,平台有规定最大或最小宽度,函数内部会自动计算。 - */ - AdvertManager.prototype.loadBanner = function (adUid, location, scale) { - var _a; - if (location === void 0) { location = EAdBannerLocation.TOP; } - if (scale === void 0) { scale = 1.0; } - (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); - var size = getSysWinSize(); - // 当 style.width 小于 300 时,会取作 300。 当 style.width 大于屏幕宽度时,会取作屏幕宽度。 - var width = size.width * scale; - width = width < 300 ? 300 : width; // 最小值矫正 - width = width > size.width ? size.width : width; //最大值矫正 - this._banner = typeof location === 'number' ? new ADBanner(adUid, location === EAdBannerLocation.TOP, width, false) : new ADBanner(adUid, location, width, false); - }; - /** - * 显示横幅广告 - */ - AdvertManager.prototype.showBanner = function () { - if (this._banner) { - this._banner.show(); - } - else { - console.warn('MiniGameSDK: banner is null, you must call loadBanner(...) first!'); - } - }; - /** - * 隐藏横幅广告 - */ - AdvertManager.prototype.hideBanner = function () { - var _a; - (_a = this._banner) === null || _a === void 0 ? void 0 : _a.hide(); - }; - /** - * 弹出插屏广告 - * @param adUid 广告单元id - */ - AdvertManager.prototype.showInterstitial = function (adUid) { - var _a; - if (this._interstitial && this._interstitial.aduid === adUid) { - this._interstitial.show(); - } - else { - (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.destory(); - this._interstitial = new ADInterstitial(adUid); - this._interstitial.show(); - } - }; - /** - * 加载原生模板广告,不会显示。只有你在调用showCustom时才会显示。 - * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持本函数,会调用无效! - * @param adUid 广告ID - * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置 - * @param scale 缩放比例,默认是1,即不缩放。这个缩放并不是自己填,而是根据微信MP后台你配置的原生模板广告的缩放比例填,目前有100%,90%,80%三种,一般情况不用修改。若有后台修改,记得传入值,例如90%就传入0.9。 - */ - AdvertManager.prototype.loadCustom = function (adUid, location, scale) { - if (location === void 0) { location = { top: 0, left: 0 }; } - if (scale === void 0) { scale = 1; } - // this._custom?.destroy(); - // this._custom = new ADCustom(adUid, location.top, location.left, scale); - if (this._customs[adUid]) { - console.log(adUid + " has been loaded."); - return; - } - this._customs[adUid] = new ADCustom(adUid, location.top, location.left, scale); - }; - /** - * 显示自定义广告。 - * @param adUid 广告的唯一标识符。使用此标识符来查找和显示特定的自定义广告。 - * - * 此方法尝试根据提供的adUid显示一个自定义广告。如果给定的adUid对应的自定义广告已加载, - * 则调用该广告的显示方法。如果广告未加载,则在控制台输出警告信息。 - */ - AdvertManager.prototype.showCustom = function (adUid) { - if (this._customs[adUid]) { - this._customs[adUid].show(); - } - else { - console.warn("You have not load " + adUid + " of Custom AD, can not show!"); - } - }; - /** - * 隐藏指定的自定义广告单元 - * - * 此方法用于隐藏通过广告单元标识符(adUid)指定的自定义广告。如果指定的广告单元已加载并显示, - * 则将其隐藏;如果广告单元未加载,则在控制台输出警告信息。 - * - * @param adUid 广告单元标识符,用于唯一标识一个自定义广告单元。 - */ - AdvertManager.prototype.hideCustom = function (adUid) { - if (this._customs[adUid]) { - this._customs[adUid].hide(); - } - else { - console.warn("You have not load " + adUid + " of Custom AD, can not hide!"); - } - }; - /** - * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount - * @param adUid 广告ID。如果与上一次UID不同,则内部会重新创建实例。开发者完全不用关心这个细节。 - * @param onVideoResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 - * @param target onVideoResult的拥有者 - * @param maxVideoCount 最大视频个数。默认是3,仅对抖音平台生效。微信平台看完视频count的结果永远是1或0 - */ - AdvertManager.prototype.showVideo = function (adUid, onVideoResult, target, maxVideoCount) { - var _a; - if (maxVideoCount === void 0) { maxVideoCount = 3; } - if (this._video && this._video.aduid === adUid) { - this._video.show(onVideoResult, target, maxVideoCount); - } - else { - (_a = this._video) === null || _a === void 0 ? void 0 : _a.destory(); - this._video = new ADVideo(adUid); - this._video.show(onVideoResult, target, maxVideoCount); - } - }; - /** - * 销毁内部所有实例,清空内存 - */ - AdvertManager.prototype.destroyAll = function () { - var _a, _b, _c, _d; - (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); - this._banner = null; - (_b = this._interstitial) === null || _b === void 0 ? void 0 : _b.destory(); - this._interstitial = null; - (_c = this._video) === null || _c === void 0 ? void 0 : _c.destory(); - this._video = null; - if (this._customs) { - for (var val in this._customs) { - (_d = this._customs[val]) === null || _d === void 0 ? void 0 : _d.destroy(); - } - this._customs = {}; - } - }; - return AdvertManager; - }()); - MiniGameSdk.AdvertManager = AdvertManager; - var EGameClubIcon; - (function (EGameClubIcon) { - /** 绿色图标 */ - EGameClubIcon["GREEN"] = "green"; - /** 红色图标 */ - EGameClubIcon["WHITE"] = "white"; - /** 有黑色圆角背景的白色图标 */ - EGameClubIcon["DARK"] = "dark"; - /** 有白色圆角背景的绿色图标 */ - EGameClubIcon["LIGHT"] = "light"; - })(EGameClubIcon = MiniGameSdk.EGameClubIcon || (MiniGameSdk.EGameClubIcon = {})); - var GameClub = /** @class */ (function () { - function GameClub() { - } - Object.defineProperty(GameClub, "instance", { - get: function () { - if (!this._instance) { - this._instance = new GameClub(); - } - return this._instance; - }, - enumerable: false, - configurable: true - }); - /** - * 创建游戏圈按钮 - * @param icon - * @param position - * @param size - * @param openLink - */ - GameClub.prototype.create = function (icon, position, size, openLink) { - if (icon === void 0) { icon = EGameClubIcon.GREEN; } - if (position === void 0) { position = { top: 0, left: 0 }; } - if (size === void 0) { size = { width: 40, height: 40 }; } - if (isWechat()) { - // @ts-ignore - this._club = wx.createGameClubButton({ - icon: icon, - style: { - left: position.left, - top: position.top, - width: size.width, - height: size.height - }, - openlink: openLink - }); - } - }; - GameClub.prototype.show = function () { - var _a; - (_a = this._club) === null || _a === void 0 ? void 0 : _a.show(); - }; - GameClub.prototype.hide = function () { - var _a; - (_a = this._club) === null || _a === void 0 ? void 0 : _a.hide(); - }; - GameClub.prototype.destory = function () { - var _a; - (_a = this._club) === null || _a === void 0 ? void 0 : _a.destroy(); - }; - return GameClub; - }()); - MiniGameSdk.GameClub = GameClub; - /** - * 振动类型 - */ - var EVirbrateType; - (function (EVirbrateType) { - /** - * 短振动 - */ - EVirbrateType[EVirbrateType["SHORT"] = 0] = "SHORT"; - /** - * 长振动 - */ - EVirbrateType[EVirbrateType["LONG"] = 1] = "LONG"; - })(EVirbrateType = MiniGameSdk.EVirbrateType || (MiniGameSdk.EVirbrateType = {})); - /** - * 抖音侧边栏专属接口 - */ - var BytedanceSidebar = /** @class */ (function () { - function BytedanceSidebar() { - } - /** - * 本游戏在抖音环境下启动监控,需要放在全局环境中,保证能第一时间启动。因为可能监听抖音失败(抖音小游戏官方的说明)! - * @param onResult 包含一个boolean参数的函数 - * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 - */ - BytedanceSidebar.listenFromSidebar = function (onResult, target) { - if (!isBytedance()) { - onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); - return; - } - // @ts-ignore - tt.onShow(function (res) { - console.log('onShow launch res:', res); - if (res.scene === '021036') { - onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); - console.log('launch from sidebar'); - } - else { - onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); - console.log('NOT launch from douyin sidebar!'); - } - }); - // @ts-ignore - var options = tt.getLaunchOptionsSync(); - if (options && options.scene === '021036') { - onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); - } - }; - /** - * 检测抖音侧边栏是否存在 - * @param onResult 包含一个boolean参数的函数 - * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 - * @returns - */ - BytedanceSidebar.checkSideBar = function (onResult, target) { - if (!isBytedance()) { - onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); - return; - } - //@ts-ignore - tt.checkScene({ - scene: "sidebar", - success: function (res) { - console.log("check scene success: ", res.isExist); - onResult === null || onResult === void 0 ? void 0 : onResult.call(target, res.isExist); - }, - fail: function (res) { - console.log("check scene fail:", res); - onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); - } - }); - }; - /** - * 跳转到抖音侧边栏 - * @param onResult 包含一个boolean参数的函数 - * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 - * @returns - */ - BytedanceSidebar.navigateToSidebar = function (onResult, target) { - if (!isBytedance()) { - console.log("not douyin platform!"); - onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); - return; - } - // @ts-ignore - tt.navigateToScene({ - scene: "sidebar", - success: function () { - console.log("navigate success"); - onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); - }, - fail: function (res) { - console.log("navigate failed reason:", res); - onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); - }, - }); - }; - return BytedanceSidebar; - }()); - MiniGameSdk.BytedanceSidebar = BytedanceSidebar; - /** - * 平台常用API合集 - */ - var API = /** @class */ (function () { - function API() { - } - /** - * 分享app给朋友,微信小游戏分享是没有onSuccess回调的。 - * @param title 标题 - * @param description 细节描述信息 - * @param imageUrl 图片地址 - * @param query 查询信息 - * @param onSuccess 抖音会回调,微信不会回调 - */ - API.shareAppToFriends = function (title, description, imageUrl, query, onSuccess) { - if (description === void 0) { description = ''; } - if (isWechat()) { - try { - //@ts-ignore - wx.shareAppMessage({ - title: title, - imageUrl: imageUrl, - query: query, - }); - } - catch (err) { - console.log("share faild: " + err); - } - } - if (isBytedance()) { - //@ts-ignore - tt.shareAppMessage({ - title: title, - desc: description, - imageUrl: imageUrl !== null && imageUrl !== void 0 ? imageUrl : '', - query: query !== null && query !== void 0 ? query : '', - success: function (res) { - console.log('share success:', res); - onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); - }, - fail: function (res) { - console.log('share fail:', res); - } - }); - } - }; - /** - * 显示提示信息 - * @param title 标题 - * @param duration 时长(单位:秒) - * @returns - */ - API.showToast = function (title, duration) { - if (duration === void 0) { duration = 2; } - if (isWechat()) { - // @ts-ignore - wx.showToast({ - title: title, - icon: 'none', - duration: duration * 500 - }); - } - }; - /** - * 设备震动效果,默认为短震动。注意:可能一些机型不会生效,具体看平台方的说明 - * @param type MiniGameSdk.API.EVirbrateType - */ - API.vibrate = function (type) { - if (type === void 0) { type = EVirbrateType.SHORT; } - if (isWechat()) { - switch (type) { - case EVirbrateType.SHORT: - //@ts-ignore - wx.vibrateShort({ - success: function (res) { - console.log('vibrate success:', res); - }, - fail: function (res) { - console.log('vibrateShort failed', res); - }, - }); - break; - case EVirbrateType.LONG: - //@ts-ignore - wx.vibrateLong({ - success: function (res) { - console.log('vibrate success', res); - }, - fail: function (res) { - console.log("vibrateLong failed", res); - }, - }); - break; - default: - break; - } - } - if (isBytedance()) { - switch (type) { - case EVirbrateType.SHORT: - //@ts-ignore - tt.vibrateShort({ - success: function (res) { - console.log('vibrate success:', res); - }, - fail: function (res) { - console.log('vibrateShort failed', res); - }, - }); - break; - case EVirbrateType.LONG: - //@ts-ignore - tt.vibrateLong({ - success: function (res) { - console.log('vibrate success', res); - }, - fail: function (res) { - console.log("vibrateLong failed", res); - }, - }); - break; - default: - break; - } - } - }; - /** - * 重启小游戏 - */ - API.reboot = function () { - if (isWechat()) { - //@ts-ignore - wx.restartMiniProgram({ - success: function () { - console.log('restart success'); - }, - fail: function () { - console.log('restart failed'); - } - }); - } - if (isBytedance()) { - try { - // @ts-ignore - tt.restartMiniProgramSync(); - } - catch (error) { - console.log("restartMiniProgramSync", error); - } - } - }; - /** - * 退出小游戏 - */ - API.exit = function () { - if (isWechat()) { - //@ts-ignore - wx.exitMiniProgram({ - success: function () { - console.log('exit success'); - }, - fail: function () { - console.log('exit failed'); - } - }); - } - if (isBytedance()) { - // @ts-ignore - tt.exitMiniProgram({ - success: function (res) { - console.log("exit success:", res === null || res === void 0 ? void 0 : res.data); - }, - fail: function (res) { - console.log("exit fail:", res === null || res === void 0 ? void 0 : res.errMsg); - }, - }); - } - }; - /** - * 显示转发按钮。通常在刚进入游戏的时候调用。 - * 主要是打开平台“...”这个按钮里面的分享菜单,一般默认是关闭的,需要调用这个函数打开。可以让用户分享你的游戏入口。 - */ - API.showShareMenu = function () { - if (isWechat()) { - //@ts-ignore - wx.showShareMenu({ - withShareTicket: true, - menus: ['shareAppMessage', 'shareTimeline'], - success: function () { }, - fail: function () { }, - complete: function () { } - }); - } - }; - /** - * 微信小游戏:跳转到另外一款小游戏 - * 抖音小游戏:跳转到指定的视频界面 - * @param targetId 微信小游戏appid或者视频界面 - */ - API.navigateTo = function (targetId, onSuccess) { - if (isWechat()) { - // @ts-ignore - wx.navigateToMiniProgram({ - appId: targetId, - extraData: { - foo: 'bar' - }, - envVersion: 'develop', - success: function (res) { - onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); - } - }); - } - if (isBytedance()) { - // @ts-ignore - tt.navigateToVideoView({ - videoId: targetId, - success: function (res) { - onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); - }, - fail: function (err) { - console.log("bytedance navigateToVideoView fail", err); - }, - }); - } - }; - /** - * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session - * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null - */ - API.login = function (callback) { - var loginPlatform = function () { - if (isWechat()) { - //@ts-ignore - wx.login({ - success: function (res) { - if (res.code) { - API._loginCode = res.code; - API._loginAnonymousCode = null; - callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); - } - else { - console.log('login error:', res.errMsg); - } - }, - fail: function () { - API._loginCode = null; - API._loginAnonymousCode = null; - callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); - console.log('login fail'); - } - }); - } - else if (isBytedance()) { - //@ts-ignore - tt.login({ - force: true, - success: function (res) { - var _a, _b; - console.log("login " + res.code + " " + res.anonymousCode); - if (res.code) { - API._loginCode = (_a = res.code) === null || _a === void 0 ? void 0 : _a.toString(); - API._loginAnonymousCode = (_b = res.anonymousCode) === null || _b === void 0 ? void 0 : _b.toString(); - callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); - } - else { - console.log('login error:', res.errMsg); - } - }, - fail: function (res) { - API._loginCode = null; - API._loginAnonymousCode = null; - callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); - console.log("login fail", res); - }, - }); - } - else { - API._loginCode = null; - API._loginAnonymousCode = null; - callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); - console.log('not mini game platform, login codes are all null'); - } - }; - if (!API._loginCode) { - loginPlatform(); - } - else { - if (isWechat()) { - //@ts-ignore - wx.checkSession({ - success: function () { - console.log("session is valid, use current code:", API._loginCode); - callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); - }, - fail: function () { - console.log("session expired"); - loginPlatform(); - } - }); - } - else if (isBytedance()) { - //@ts-ignore - tt.checkSession({ - success: function () { - console.log("session is valid, user current code: " + API._loginCode + ", " + API._loginAnonymousCode); - callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); - }, - fail: function () { - console.log("session expired"); - loginPlatform(); - }, - }); - } - else { - console.log('not mini game platform, login null'); - callback === null || callback === void 0 ? void 0 : callback(null, null); - } - } - }; - /** - * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session - * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null - */ - API.getUserInfo = function (callback) { - //@ts-ignore - tt.getUserInfo({ - withCredentials: true, - success: function (res) { - API._userInfo = res; - callback(API._userInfo); - }, - fail: function (err) { - callback(err); - } - }); - }; - /** - * 调用微信云函数。由于参数需要自定义,所以为any,需要自行解释。函数只完成通道和处理一场的作用 - * @param callback 返回云函数调用结果。需要检查返回参数是否为空,失败的时候为空 - * @param name 云函数的名字 - * @param data 云函数的内容 - */ - API.callWechatCloudFunction = function (callback, name, data) { - if (!isWechat()) { - console.log('Not wechat platform, not support callWechatCloudFunction'); - return; - } - this.login(function (code, anonymousCode) { - if (!API._hasInitWechatCloudFunction) { - //@ts-ignore - wx.cloud.init(); - API._hasInitWechatCloudFunction = true; - } - //@ts-ignore - wx.cloud.callFunction({ - name: name, - data: data, - success: function (res) { return callback === null || callback === void 0 ? void 0 : callback(res); }, - fail: function (err) { - console.log('wechat cloud function error:', err); - callback === null || callback === void 0 ? void 0 : callback(null); - } - }); - }); - }; - /** - * 存储用户信息,数据量不能大。可以考虑用于分数排行榜。用户之间可共享排行数据。 - * @param key - * @param value - */ - API.setUserCloudStorage = function (key, value) { - if (isWechat()) { - // @ts-ignore - wx.setUserCloudStorage({ - KVDataList: [{ key: key, value: value }], - success: function () { return console.log("set cloud storage success:" + key + ", value:" + value); }, - fail: function (err) { return console.log('set cloud storage error:', err); } - }); - } - if (isBytedance()) { - // @ts-ignore - tt.setUserCloudStorage({ - KVDataList: [{ key: key, value: value, }], - success: function () { return console.log("set cloud storage success:" + key + ", value:" + value); }, - fail: function (err) { return console.log('set cloud storage error:', err); } - }); - } - }; - /* - * 数数平台初始化以及登录 - */ - API.shushu_Init = function () { - if (typeof wx !== 'undefined' && wx !== null) { - console.log("开始接入数数平台"); - //getWechatGameVersion - var appId = "121591378fc1423893deb12041413eb3"; - var test = cc.fx.GameTool.getWechatGameVersion(); - if (test == "正式版") { - appId = "87d18958cea145f29d3265470ecd3486"; - } - var config = { - // appId: "73e1ec654f15b47a1a7354fbabec05ad", // 项目 APP ID - appId: appId, - serverUrl: "https://data.nika4fun.com", - autoTrack: { - appShow: true, - appHide: true // 自动采集 ta_mg_hide - } - }; - // 创建 TA 实例 - API._ta = new ThinkingAnalyticsAPI(config); - //var deviceId = API._ta.getDeviceId(); - 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) { - if (typeof wx !== 'undefined' && wx !== null) { - console.log("设置用户注册属性"); - API._ta.userSet({ register_time: time }); - } - }; - /* - * 数数平台设置动态公共属性 - */ - API.shushu_SetSuperProperties = function () { - if (typeof wx !== 'undefined' && wx !== null && API._ta) { - var versionData = "1.3"; - // API._ta.userSetOnce({ register_time:time}); - var superProperties = { - current_level: (cc.fx.GameConfig.GM_INFO.level + 1), - current_health: cc.fx.GameConfig.GM_INFO.hp, - tmp_coin: cc.fx.GameConfig.GM_INFO.coin, - version: versionData - }; - API._ta.setSuperProperties(superProperties); //设置公共事件属性 - } - }; - API.getWechatGameVersion = function () { - if (typeof wx !== 'undefined' && wx !== null) { - // @ts-ignore - var accountInfo = wx.getAccountInfoSync(); - return accountInfo.miniProgram.version; - } - }; - /* - * 数数平台具体埋点 - */ - API.shushu_Track = function (name, data, callback) { - if (typeof wx !== 'undefined' && wx !== null) { - if (API._ta) { - // 假设 track 方法返回一个 Promise - API._ta.track(name, // 事件名称 - data // 事件属性 - ); - } - } - }; - API._loginCode = null; - API._loginAnonymousCode = null; - API._hasInitWechatCloudFunction = false; - API._userInfo = null; - API._ta = null; - return API; - }()); - MiniGameSdk.API = API; -})(MiniGameSdk = exports.MiniGameSdk || (exports.MiniGameSdk = {})); - -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,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== -//------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.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, 'd2addiRqXVKQ4YEp6sK5d6R', 'lq_collide'); -// Script/lq_collide_system/lq_collide.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.LQCollide = void 0; -var ccclass = cc._decorator.ccclass; -var property = cc._decorator.property; -var requireComponent = cc._decorator.requireComponent; -var menu = cc._decorator.menu; -var Component = cc.Component; -var Enum = cc.Enum; -var Size = cc.Size; -var Vec2 = cc.Vec2; -var Graphics = cc.Graphics; -var Node = cc.Node; -var macro = cc.macro; -var Color = cc.Color; -var lq_const_1 = require("../lq_base/data/lq_const"); -var lq_collide_config_1 = require("./lq_collide_config"); -var lq_collide_system_1 = require("./lq_collide_system"); -var lq_data_1 = require("../lq_base/data/lq_data"); -var lq_collide_base_1 = require("./lq_collide_base"); -var lq_game_util_1 = require("../lq_base/util/lq_game_util"); -var Map_1 = require("../Map"); -var LQCollide = /** @class */ (function (_super) { - __extends(LQCollide, _super); - function LQCollide() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._draw_collide = true; - _this.can_move = true; - _this._collide_shape = lq_const_1.LQCollideShape.Rect; - _this._collide_group_index = -1; - _this.collide_group_id = 0; - _this.collide_scle = 1; - _this._radius = 50; - _this._size = new Size(100, 100); - _this._polygon_points = [new Vec2(-45, -45), new Vec2(45, -45), new Vec2(60, 40), new Vec2(0, 70), new Vec2(-60, 40)]; - //collide碰撞位置偏移 - _this._offset = new Vec2(0, 0); - _this.data_string = ''; - //每个collide的id唯一 - _this.collide_id = 0; - //状态 - _this.collide_status = lq_const_1.LQCollideStatus.Idle; - //是否可碰撞 - _this.is_enable = true; - //是否开启碰撞前后的函数 - _this.is_open_func = true; - //碰撞类别 - _this.collide_category = 0; - //碰撞筛选 - _this.collide_mask = 0; - _this.collide_map = {}; - return _this; - } - LQCollide_1 = LQCollide; - Object.defineProperty(LQCollide.prototype, "draw_collide", { - get: function () { - return this._draw_collide; - }, - set: function (value) { - this._draw_collide = value; - this.draw_shape(); - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(LQCollide.prototype, "collide_shape", { - get: function () { - return this._collide_shape; - }, - set: function (value) { - this._collide_shape = value; - this.draw_shape(); - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(LQCollide.prototype, "collide_group_index", { - get: function () { - if (this._collide_group_index === -1) { - this._collide_group_index = lq_collide_system_1.LQCollideSystem.get_info_by_id(this.collide_group_id).index; - } - return this._collide_group_index; - }, - set: function (value) { - if (this._collide_group_index === value) { - return; - } - this._collide_group_index = value; - this.collide_group_id = lq_collide_system_1.LQCollideSystem.get_group_by_index(value).id; - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(LQCollide.prototype, "radius", { - get: function () { - return this._radius; - }, - set: function (value) { - this._radius = value; - this.draw_shape(); - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(LQCollide.prototype, "size", { - // 物体速度 - // public velocity: Vec2 = new Vec2(0, 0); - get: function () { - return this._size; - }, - set: function (value) { - this._size = value; - if (this.world_rect) { - this.world_rect.width = value.width; - this.world_rect.height = value.height; - this.world_rect.half_width = value.width * 0.5; - this.world_rect.half_height = value.height * 0.5; - } - this.draw_shape(); - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(LQCollide.prototype, "offset", { - get: function () { - return this._offset; - }, - set: function (value) { - this._offset = value; - this.draw_shape(); - }, - enumerable: false, - configurable: true - }); - Object.defineProperty(LQCollide.prototype, "polygon_points", { - get: function () { - return this._polygon_points; - }, - set: function (value) { - this._polygon_points = value; - this.draw_shape(); - }, - enumerable: false, - configurable: true - }); - //检测绘制组件是否添加 - LQCollide.prototype.checkDebugDrawValid = function () { - if (!this._debugDrawer || !this._debugDrawer.isValid) { - var node = this.node.getChildByName('Collide'); - if (!node) { - node = new Node('Collide'); - node.zIndex = macro.MAX_ZINDEX; - this.node.addChild(node); - // @ts-ignore - node._objFlags = 1096; - this._debugDrawer = node.addComponent(Graphics); - this._debugDrawer.lineWidth = 3; - this._debugDrawer.strokeColor = new Color(255, 0, 0); - this._debugDrawer.fillColor = new Color(255, 0, 0); - } - else { - this._debugDrawer = node.getComponent(Graphics); - } - } - }; - //绘制形状 - LQCollide.prototype.draw_shape = function () { - if (!this._draw_collide) { - if (this._debugDrawer) { - this._debugDrawer.clear(); - } - return; - } - this.checkDebugDrawValid(); - this._debugDrawer.clear(); - var o1 = { key: 'scaleX', value: this.node.scale }; - var o2 = { key: 'scaleY', value: this.node.scale }; - lq_game_util_1.LQGameUtil.recursion_node_property(this.node, o1); - lq_game_util_1.LQGameUtil.recursion_node_property(this.node, o2); - if (o1.value === 0 || o2.value === 0) { - return; - } - this._debugDrawer.node.scaleX = 1 / o1.value; - this._debugDrawer.node.scaleY = 1 / o2.value; - switch (this._collide_shape) { - case lq_const_1.LQCollideShape.Circle: - this._debugDrawer.circle(+this._offset.x, +this._offset.y, this._radius); - this._debugDrawer.stroke(); - break; - case lq_const_1.LQCollideShape.Rect: - this._debugDrawer.moveTo(-this._size.width * 0.5 + this._offset.x, -this._size.height * 0.5 + this._offset.y); - this._debugDrawer.lineTo(-this._size.width * 0.5 + this._offset.x, +this._size.height * 0.5 + this._offset.y); - this._debugDrawer.lineTo(this._size.width * 0.5 + this._offset.x, +this._size.height * 0.5 + this._offset.y); - this._debugDrawer.lineTo(this._size.width * 0.5 + this._offset.x, -this._size.height * 0.5 + this._offset.y); - this._debugDrawer.lineTo(-this._size.width * 0.5 + this._offset.x, -this._size.height * 0.5 + this._offset.y); - this._debugDrawer.stroke(); - break; - case lq_const_1.LQCollideShape.Polygon: - this._debugDrawer.moveTo(this._polygon_points[0].x + this._offset.x, this._polygon_points[0].y + this._offset.y); - for (var i = 1; i < this._polygon_points.length; i++) { - this._debugDrawer.lineTo(this._polygon_points[i].x + this._offset.x, this._polygon_points[i].y + this._offset.y); - } - this._debugDrawer.lineTo(this._polygon_points[0].x + this._offset.x, this._polygon_points[0].y + this._offset.y); - this._debugDrawer.stroke(); - break; - } - }; - //仅用于矩形 - LQCollide.prototype.update_size = function (width, height) { - this._size.width = width; - this.world_rect.width = width; - this.world_rect.half_width = width * 0.5; - this._size.height = height; - this.world_rect.height = height; - this.world_rect.half_height = height * 0.5; - this.draw_shape(); - }; - LQCollide.prototype.init_lq_collide = function () { - this.world_rect = new lq_data_1.LQRect(0, 0, this._size.width, this._size.height); - this.draw_shape(); - var info = lq_collide_system_1.LQCollideSystem.get_info_by_id(this.collide_group_id); - this.collide_mask = info.mask; - this.collide_category = info.category; - this.collide_id = LQCollide_1.id_maker++; - this.updateCollisionArea(); - }; - LQCollide.prototype.updateCollisionArea = function () { - if (this._size.width == 0 || this._size.height == 0 || Map_1.default._instance == undefined) { - return; - } - if (Map_1.default._instance.node.scale) { - var scaleX_1 = Map_1.default._instance.node.scale; - var scaleY_1 = Map_1.default._instance.node.scale; - if (scaleX_1 === 0 || scaleX_1 == undefined || scaleX_1 == null || scaleX_1 == 1) { - return; - } - switch (this._collide_shape) { - case lq_const_1.LQCollideShape.Circle: - // 圆形碰撞区域半径更新 - this._radius = this._radius * Math.max(scaleX_1, scaleY_1); - break; - case lq_const_1.LQCollideShape.Rect: - // 矩形碰撞区域尺寸更新 - // console.log(this.data_string); - if (this._size.width !== 10 && this.data_string != "-1") { - // if(this._size.width == 105 || this._size.height == 105){} - this._size.width = this._size.width * scaleX_1; - // console.log("放大倍数",scaleX); - } - if (this._size.height !== 10 && this.data_string != "-1") { - // if(this._size.width == 105 || this._size.height == 105){} - this._size.height = this._size.height * scaleY_1; - // console.log("放大倍数",scaleY); - } - // this._size.width = this._size.width * scaleX; - // this._size.height = this._size.height * scaleY; - if (this.world_rect) { - this.world_rect.width = this._size.width; - this.world_rect.height = this._size.height; - this.world_rect.half_width = this._size.width * 0.5; - this.world_rect.half_height = this._size.height * 0.5; - } - break; - case lq_const_1.LQCollideShape.Polygon: - // 多边形碰撞点坐标更新 - this._polygon_points = this._polygon_points.map(function (point) { - return new Vec2(point.x * scaleX_1, point.y * scaleY_1); - }); - break; - } - this.draw_shape(); - } - }; - LQCollide.prototype.enable_lq_collide = function () { - if (this.collide_status === lq_const_1.LQCollideStatus.Live) { - console.warn(this.node.name + '重复添加'); - return; - } - this.is_enable = true; - this.collide_status = lq_const_1.LQCollideStatus.Live; - lq_collide_system_1.LQCollideSystem.add_collide(this); - }; - LQCollide.prototype.disable_lq_collide = function () { - if (this.collide_status !== lq_const_1.LQCollideStatus.Live) { - return; - } - this.is_enable = false; - this.collide_status = lq_const_1.LQCollideStatus.Idle; - lq_collide_system_1.LQCollideSystem.remove_collide(this); - }; - LQCollide.prototype.update_lq_collide = function () { - }; - // @ts-ignore - // public on_collide(collide: LQCollide): void { - // if(collide.node.parent.uuid == this.node.parent.uuid){ - // return; - // } - // if (LQCollideConfig.switch_print_log) { - // if(this.node.parent.getComponent("Block")){ - // let block = this.node.parent.getComponent("Block"); - // if(block.isTouch){ - // block.checkCollision = true; - // // console.log("碰撞",this.node.name); - // if(this.node.name == "top" ){ - // console.log("碰到上边缘"); - // block.moveUp = false; - // if(block.touchPointY > (this.node.parent.y+this.node.height)){ - // block.moveY = 1; - // } - // } - // if(this.node.name === "down"){ - // block.moveDown = false; - // console.log("碰到下边缘"); - // if(block.touchPointY < (this.node.parent.y )){ - // block.moveY = -1; - // } - // } - // if(this.node.name === "left" ){ - // block.moveLeft = false; - // console.log("碰到左边缘"); - // if(block.touchPointX < (this.node.parent.x - this.node.parent.width)){ - // block.moveX = -1; - // } - // } - // if(this.node.name === "right"){ - // block.moveRight = false; - // console.log("碰到右边缘"); - // if(block.touchPointX > (this.node.parent.x)){ - // block.moveX = 1; - // } - // } - // } - // } - // } - // } - //@ts-ignore - LQCollide.prototype.on_enter = function (collide) { - if (this.disableCollider(collide)) { - return; - } - // if (LQCollideConfig.switch_print_log) { - // console.log(this.node.name + ' on_enter'); - // } - }; - //@ts-ignore - LQCollide.prototype.on_exit = function (collide) { - if (this.disableCollider(collide)) { - return; - } - if (lq_collide_config_1.LQCollideConfig.switch_print_log) { - if (this.node.parent.getComponent("Block")) { - var block = this.node.parent.getComponent("Block"); - // if(!block.isTouch){ - // return; - // } - block.checkCollision = false; - if (this.node.name == "top") { - block.moveUp = true; - } - if (this.node.name === "down") { - block.moveDown = true; - } - if (this.node.name === "left") { - block.moveLeft = true; - } - if (this.node.name === "right") { - block.moveRight = true; - } - } - } - }; - LQCollide.prototype.on_collide = function (collide) { - if (this.disableCollider(collide)) { - return; - } - if (lq_collide_config_1.LQCollideConfig.switch_print_log) { - if (this.node.parent.getComponent("Block")) { - var block = this.node.parent.getComponent("Block"); - var jg = false; - if (block.isTouch) { - block.checkCollision = true; - // console.log("碰撞",this.node.name); - if (this.node.name == "top") { - // console.log(collide.node.parent.name); - block.moveUp = false; - if (block.touchPointY > (this.node.parent.y + this.node.parent.height)) { - block.moveY = 1; - } - // console.log("碰到上边缘"); - } - if (this.node.name === "down") { - block.moveDown = false; - if (block.touchPointY < (this.node.parent.y)) { - block.moveY = -1; - } - // console.log("碰到下边缘"); - } - if (this.node.name === "left") { - block.moveLeft = false; - if (block.touchPointX < (this.node.parent.x - this.node.parent.width)) { - block.moveX = -1; - } - } - if (this.node.name === "right") { - block.moveRight = false; - if (block.touchPointX > (this.node.parent.x)) { - block.moveX = 1; - } - } - } - } - } - }; - LQCollide.prototype.disableCollider = function (collide) { - var jg = false; - if (collide.node && this.node) { - if (collide.node.parent && this.node.parent) { - if (collide.node.parent.uuid == this.node.parent.uuid) { - jg = true; - } - if (this.node.parent.getComponent("Block")) { - var block = this.node.parent.getComponent("Block"); - if (block.type == 1 || block.type == 10 || block.type == 9) { - if (collide.node.parent == block.block_Info.node) { - jg = true; - } - } - } - } - } - return jg; - }; - var LQCollide_1; - LQCollide.id_maker = 1; - __decorate([ - property({ displayName: '绘制形状' }) - ], LQCollide.prototype, "draw_collide", null); - __decorate([ - property - ], LQCollide.prototype, "_draw_collide", void 0); - __decorate([ - property({ tooltip: '能否移动' }) - ], LQCollide.prototype, "can_move", void 0); - __decorate([ - property({ - tooltip: '碰撞形状,None就是无敌,不参与碰撞', - type: Enum(lq_const_1.LQCollideShape), - displayName: '碰撞形状' - }) - ], LQCollide.prototype, "collide_shape", null); - __decorate([ - property() - ], LQCollide.prototype, "_collide_shape", void 0); - __decorate([ - property({ - type: Enum(lq_collide_config_1.LQCollideInfoList), tooltip: '碰撞类别', - displayName: '碰撞类别' - }) - ], LQCollide.prototype, "collide_group_index", null); - __decorate([ - property({ serializable: false }) - ], LQCollide.prototype, "_collide_group_index", void 0); - __decorate([ - property({ visible: false }) - ], LQCollide.prototype, "collide_group_id", void 0); - __decorate([ - property({ visible: false }) - ], LQCollide.prototype, "collide_scle", void 0); - __decorate([ - property({ - tooltip: 'collide半径', - visible: function () { - // @ts-ignore - return this._collide_shape === lq_const_1.LQCollideShape.Circle; - }, - displayName: '半径' - }) - ], LQCollide.prototype, "radius", null); - __decorate([ - property() - ], LQCollide.prototype, "_radius", void 0); - __decorate([ - property({ - tooltip: 'collide长宽', - visible: function () { - // @ts-ignore - return this._collide_shape === lq_const_1.LQCollideShape.Rect; - }, - displayName: '长宽' - }) - ], LQCollide.prototype, "size", null); - __decorate([ - property() - ], LQCollide.prototype, "_size", void 0); - __decorate([ - property({ displayName: '位置偏移' }) - ], LQCollide.prototype, "offset", null); - __decorate([ - property({ - type: Vec2, - visible: function () { - // @ts-ignore - return this._collide_shape === lq_const_1.LQCollideShape.Polygon; - }, - displayName: '多边形碰撞点' - }) - ], LQCollide.prototype, "polygon_points", null); - __decorate([ - property() - ], LQCollide.prototype, "_polygon_points", void 0); - __decorate([ - property() - ], LQCollide.prototype, "_offset", void 0); - __decorate([ - property({ displayName: '自定义字符串' }) - ], LQCollide.prototype, "data_string", void 0); - LQCollide = LQCollide_1 = __decorate([ - ccclass, - requireComponent(lq_collide_base_1.LQCollideBase), - menu("lq/collide") - ], LQCollide); - return LQCollide; -}(Component)); -exports.LQCollide = LQCollide; - -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,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 +cc._RF.push(module, '92465qnUTJDw5STq1t7oelo', 'Key'); +// Script/prop/Key.ts "use strict"; // Learn TypeScript: @@ -12306,50 +10804,44 @@ 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 _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var Adhesive = /** @class */ (function (_super) { - __extends(Adhesive, _super); - function Adhesive() { +var Key = /** @class */ (function (_super) { + __extends(Key, _super); + function Key() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.time = 60; - _this.pos = { x: 0, y: 0 }; return _this; + // update (dt) {} } - Adhesive.prototype.onLoad = function () { - this.pos.x = this.pos.y = 0; - this.target = null; + // mapInfo: number[][] = []; + Key.prototype.onLoad = function () { }; - Adhesive.prototype.start = function () { + Key.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; + Key.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); }; - 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; + Key.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(); } }; - Adhesive = __decorate([ + Key = __decorate([ ccclass - ], Adhesive); - return Adhesive; + ], Key); + return Key; }(cc.Component)); -exports.default = Adhesive; +exports.default = Key; cc._RF.pop(); } @@ -12362,54 +10854,7 @@ cc._RF.pop(); }); } })(); -//# 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_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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnRfMS5qcyJdLCJuYW1lcyI6WyJjYyIsIlRvZ2dsZSIsIl90cmlnZ2VyRXZlbnRJblNjcmlwdF9pc0NoZWNrZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQUlBLEVBQUUsQ0FBQ0MsTUFBUCxFQUFlO0FBQ1g7QUFDQTtBQUNBRCxFQUFBQSxFQUFFLENBQUNDLE1BQUgsQ0FBVUMsK0JBQVYsR0FBNEMsSUFBNUM7QUFDSCIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogVGhpcyBzY3JpcHQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgQ29jb3MgQ3JlYXRvciBhbmQgaXMgb25seSB1c2VkIGZvciBwcm9qZWN0cyBjb21wYXRpYmxlIHdpdGggdGhlIHYyLjEuMCDvvZ4gMi4yLjEgdmVyc2lvbi5cclxuICogWW91IGRvIG5vdCBuZWVkIHRvIG1hbnVhbGx5IGFkZCB0aGlzIHNjcmlwdCBpbiBhbnkgb3RoZXIgcHJvamVjdC5cclxuICogSWYgeW91IGRvbid0IHVzZSBjYy5Ub2dnbGUgaW4geW91ciBwcm9qZWN0LCB5b3UgY2FuIGRlbGV0ZSB0aGlzIHNjcmlwdCBkaXJlY3RseS5cclxuICogSWYgeW91ciBwcm9qZWN0IGlzIGhvc3RlZCBpbiBWQ1Mgc3VjaCBhcyBnaXQsIHN1Ym1pdCB0aGlzIHNjcmlwdCB0b2dldGhlci5cclxuICpcclxuICog5q2k6ISa5pys55SxIENvY29zIENyZWF0b3Ig6Ieq5Yqo55Sf5oiQ77yM5LuF55So5LqO5YW85a65IHYyLjEuMCB+IDIuMi4xIOeJiOacrOeahOW3peeoi++8jFxyXG4gKiDkvaDml6DpnIDlnKjku7vkvZXlhbblroPpobnnm67kuK3miYvliqjmt7vliqDmraTohJrmnKzjgIJcclxuICog5aaC5p6c5L2g55qE6aG555uu5Lit5rKh55So5YiwIFRvZ2dsZe+8jOWPr+ebtOaOpeWIoOmZpOivpeiEmuacrOOAglxyXG4gKiDlpoLmnpzkvaDnmoTpobnnm67mnInmiZjnrqHkuo4gZ2l0IOetieeJiOacrOW6k++8jOivt+WwhuatpOiEmuacrOS4gOW5tuS4iuS8oOOAglxyXG4gKi9cclxuXHJcbmlmIChjYy5Ub2dnbGUpIHtcclxuICAgIC8vIFdoZXRoZXIgdG8gdHJpZ2dlciAndG9nZ2xlJyBhbmQgJ2NoZWNrRXZlbnRzJyBldmVudHMgd2hlbiBtb2RpZnlpbmcgJ3RvZ2dsZS5pc0NoZWNrZWQnIGluIHRoZSBjb2RlXHJcbiAgICAvLyDlnKjku6PnoIHkuK3kv67mlLkgJ3RvZ2dsZS5pc0NoZWNrZWQnIOaXtuaYr+WQpuinpuWPkSAndG9nZ2xlJyDkuI4gJ2NoZWNrRXZlbnRzJyDkuovku7ZcclxuICAgIGNjLlRvZ2dsZS5fdHJpZ2dlckV2ZW50SW5TY3JpcHRfaXNDaGVja2VkID0gdHJ1ZTtcclxufVxyXG4iXX0= +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxLZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsOEJBQWlDO0FBRTNCLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBSzFDO0lBQWlDLHVCQUFZO0lBQTdDO1FBQUEscUVBaUNDO1FBL0JHLFVBQUksR0FBVyxFQUFFLENBQUM7O1FBOEJsQixpQkFBaUI7SUFDckIsQ0FBQztJQTdCRyw0QkFBNEI7SUFFNUIsb0JBQU0sR0FBTjtJQUVBLENBQUM7SUFFRCxtQkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELGtCQUFJLEdBQUosVUFBSyxJQUFJO1FBQ0wsSUFBRyxJQUFJO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBR0Qsd0JBQVUsR0FBVjtRQUNJLElBQUksQ0FBQyxJQUFJLEVBQUcsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEYsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBQztZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsYUFBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsQyx1QkFBdUI7U0FDMUI7SUFDTCxDQUFDO0lBOUJnQixHQUFHO1FBRHZCLE9BQU87T0FDYSxHQUFHLENBaUN2QjtJQUFELFVBQUM7Q0FqQ0QsQUFpQ0MsQ0FqQ2dDLEVBQUUsQ0FBQyxTQUFTLEdBaUM1QztrQkFqQ29CLEdBQUciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4uL01hcFwiO1xyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEtleSBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBzdGF0aWMgX2luc3RhbmNlOiBhbnk7XHJcbiAgICB0aW1lOiBudW1iZXIgPSA2MDtcclxuXHJcbiAgICAvLyBtYXBJbmZvOiBudW1iZXJbXVtdID0gW107XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuXHJcbiAgICB9IFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgIH1cclxuXHJcbiAgICBpbml0KHRpbWUpe1xyXG4gICAgICAgIGlmKHRpbWUpIHRoaXMudGltZSA9IHRpbWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLnRpbWUudG9TdHJpbmcoKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMudXBkYXRlVGltZSwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgXHJcbiAgICB1cGRhdGVUaW1lKCl7XHJcbiAgICAgICAgdGhpcy50aW1lIC0tO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLnRpbWUudG9TdHJpbmcoKTtcclxuICAgICAgICBpZih0aGlzLnRpbWUgPD0gMCl7XHJcbiAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnVwZGF0ZVRpbWUpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuZmFpbExldmVsKCk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 //------QC-SOURCE-SPLIT------ (function() { @@ -13059,634 +11504,6 @@ 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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QUFHLEVBQUM7Z0JBQUMsSUFBRyxDQUFDRixTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQztrQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNBLFNBQVMsQ0FBQztnQkFBQztnQkFBQyxJQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDQSxTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQ0UsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDQSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDO2tCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0YsU0FBUyxFQUFDRSxTQUFTLENBQUM7Z0JBQUM7Y0FBQyxDQUFDLE1BQUssSUFBR0YsU0FBUyxDQUFDLGdCQUFnQixDQUFDLElBQUUsR0FBRyxJQUFFRSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBRSxHQUFHLEVBQUM7Z0JBQUMsSUFBRyxDQUFDQSxTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQztrQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNBLFNBQVMsQ0FBQztnQkFBQztnQkFBQyxJQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDQSxTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQ0YsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDQSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDO2tCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0EsU0FBUyxFQUFDRSxTQUFTLENBQUM7Z0JBQUM7Y0FBQyxDQUFDLE1BQUk7Z0JBQUMsSUFBRyxDQUFDRixTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQztrQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNBLFNBQVMsQ0FBQztnQkFBQztnQkFBQyxJQUFHLENBQUNFLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDO2tCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0EsU0FBUyxDQUFDO2dCQUFDO2dCQUFDLElBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUNGLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDRSxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxFQUFDO2tCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0YsU0FBUyxFQUFDRSxTQUFTLENBQUM7Z0JBQUM7Y0FBQztZQUFDO1VBQUM7UUFBQztNQUFDO0lBQUMsQ0FBQyxNQUFJO01BQUMsSUFBSUgsU0FBUyxHQUFDLEVBQUU7TUFBQyxLQUFJLElBQUlILFNBQVMsR0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUMsR0FBRyxFQUFDQSxTQUFTLElBQUUsR0FBRyxFQUFDQSxTQUFTLEVBQUUsRUFBQztRQUFDLElBQUlDLFNBQVMsR0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUNELFNBQVMsQ0FBQztRQUFDLElBQUcsQ0FBQ0MsU0FBUyxFQUFDO1VBQUM7UUFBTztRQUFDLElBQUcsQ0FBQ0EsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFDO1VBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDRCxTQUFTLEVBQUMsR0FBRyxDQUFDO1VBQUM7UUFBUztRQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDQyxTQUFTLENBQUM7UUFBQyxJQUFHQSxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUM7VUFBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQ0EsU0FBUyxDQUFDO1VBQUNFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQ0YsU0FBUyxDQUFDO1FBQUM7TUFBQztNQUFDLElBQUlNLFNBQVMsR0FBQ0osU0FBUyxDQUFDLFFBQVEsQ0FBQztNQUFDLEtBQUksSUFBSUgsU0FBUyxHQUFDLEdBQUcsRUFBQ0EsU0FBUyxHQUFDTyxTQUFTLEVBQUNQLFNBQVMsRUFBRSxFQUFDO1FBQUMsSUFBSUksU0FBUyxHQUFDRCxTQUFTLENBQUNILFNBQVMsQ0FBQztRQUFDLEtBQUksSUFBSUssU0FBUyxHQUFDTCxTQUFTLEdBQUMsR0FBRyxFQUFDSyxTQUFTLEdBQUNFLFNBQVMsRUFBQ0YsU0FBUyxFQUFFLEVBQUM7VUFBQyxJQUFJQyxTQUFTLEdBQUNILFNBQVMsQ0FBQ0UsU0FBUyxDQUFDO1VBQUMsSUFBR0QsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEdBQUNFLFNBQVMsQ0FBQyxjQUFjLENBQUMsRUFBQztZQUFDLElBQUdGLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFHLEdBQUcsSUFBRUUsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUcsR0FBRyxFQUFDO2NBQUMsSUFBR3hILGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDc0gsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFDRSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNGLFNBQVMsRUFBQ0UsU0FBUyxDQUFDO2NBQUM7WUFBQyxDQUFDLE1BQUssSUFBR0YsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUcsR0FBRyxJQUFFRSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsS0FBRyxHQUFHLEVBQUM7Y0FBQyxJQUFHeEgsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUN3SCxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBQ0YsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDQSxTQUFTLEVBQUNFLFNBQVMsQ0FBQztjQUFDO1lBQUMsQ0FBQyxNQUFLLElBQUdGLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFHLEdBQUcsSUFBRUUsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUcsR0FBRyxFQUFDO2NBQUMsSUFBR3hILGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDc0gsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUNFLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0YsU0FBUyxFQUFDRSxTQUFTLENBQUM7Y0FBQztZQUFDLENBQUMsTUFBSyxJQUFHRixTQUFTLENBQUMsZ0JBQWdCLENBQUMsS0FBRyxHQUFHLElBQUVFLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFHLEdBQUcsRUFBQztjQUFDLElBQUd4SCxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQ3NILFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBQ0EsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFDRSxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0YsU0FBUyxFQUFDRSxTQUFTLENBQUM7Y0FBQztZQUFDLENBQUMsTUFBSyxJQUFHRixTQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBRSxHQUFHLElBQUVFLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFFLEdBQUcsRUFBQztjQUFDLElBQUcsQ0FBQ0YsU0FBUyxDQUFDLHNCQUFzQixDQUFDLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDQSxTQUFTLENBQUM7Y0FBQztjQUFDLElBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUNBLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDRSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUNBLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQ0EsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUM7Z0JBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDRixTQUFTLEVBQUNFLFNBQVMsQ0FBQztjQUFDO1lBQUMsQ0FBQyxNQUFLLElBQUdGLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFFLEdBQUcsSUFBRUUsU0FBUyxDQUFDLGdCQUFnQixDQUFDLElBQUUsR0FBRyxFQUFDO2NBQUMsSUFBRyxDQUFDQSxTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNBLFNBQVMsQ0FBQztjQUFDO2NBQUMsSUFBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQ0EsU0FBUyxDQUFDLHNCQUFzQixDQUFDLEVBQUNGLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQ0EsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNBLFNBQVMsRUFBQ0UsU0FBUyxDQUFDO2NBQUM7WUFBQyxDQUFDLE1BQUk7Y0FBQyxJQUFHLENBQUNGLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0EsU0FBUyxDQUFDO2NBQUM7Y0FBQyxJQUFHLENBQUNFLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDO2dCQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQ0EsU0FBUyxDQUFDO2NBQUM7Y0FBQyxJQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDRixTQUFTLENBQUMsc0JBQXNCLENBQUMsRUFBQ0UsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUMsRUFBQztnQkFBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUNGLFNBQVMsRUFBQ0UsU0FBUyxDQUFDO2NBQUM7WUFBQztVQUFDO1FBQUM7TUFBQztJQUFDO0VBQUMsQ0FBQztFQUFDaEYsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEdBQUMsVUFBU2tGLFNBQVMsRUFBQ0MsU0FBUyxFQUFDO0lBQUMsSUFBSUMsU0FBUyxHQUFDRixTQUFTO0lBQUMsSUFBSUcsU0FBUyxHQUFDRixTQUFTO0lBQUMsSUFBSUcsU0FBUyxHQUFDLENBQUNGLFNBQVMsRUFBQ0MsU0FBUyxDQUFDO0lBQUMsSUFBSUUsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVMsRUFBQ0MsU0FBUyxFQUFDQyxTQUFTLEVBQUNDLFNBQVM7SUFBQyxLQUFJLElBQUlDLFNBQVMsR0FBQyxHQUFHLEVBQUNBLFNBQVMsR0FBQ1AsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFDTyxTQUFTLEVBQUUsRUFBQztNQUFDLElBQUlDLFNBQVMsR0FBQ1IsU0FBUyxDQUFDTyxTQUFTLENBQUM7TUFBQyxLQUFJLElBQUlFLFNBQVMsR0FBQyxHQUFHLEVBQUNBLFNBQVMsR0FBQ0QsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFDQyxTQUFTLElBQUUsR0FBRyxFQUFDO1FBQUMsSUFBSUMsU0FBUyxHQUFDLENBQUNELFNBQVMsR0FBQyxHQUFHLElBQUVELFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFBQyxJQUFJRyxTQUFTLEdBQUM7VUFBQyxHQUFHLEVBQUNILFNBQVMsQ0FBQ0UsU0FBUyxHQUFDLEdBQUcsQ0FBQyxHQUFDRixTQUFTLENBQUNDLFNBQVMsR0FBQyxHQUFHLENBQUM7VUFBQyxHQUFHLEVBQUNELFNBQVMsQ0FBQ0MsU0FBUyxDQUFDLEdBQUNELFNBQVMsQ0FBQ0UsU0FBUztRQUFDLENBQUM7UUFBQ1QsU0FBUyxHQUFDLElBQUk7UUFBQ0MsU0FBUyxHQUFDLElBQUk7UUFBQyxLQUFJSSxTQUFTLEdBQUMsR0FBRyxFQUFDQSxTQUFTLEdBQUNSLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBQ1EsU0FBUyxJQUFFLEdBQUcsRUFBQztVQUFDSCxTQUFTLEdBQUNRLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBQ2IsU0FBUyxDQUFDUSxTQUFTLENBQUMsR0FBQ0ssU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFDYixTQUFTLENBQUNRLFNBQVMsR0FBQyxHQUFHLENBQUM7VUFBQyxJQUFHTCxTQUFT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O01BQUMsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUM7UUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUMsQ0FBQyxFQUFFO1FBQUMxSCxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMwSCxTQUFTLENBQUM7TUFBQyxDQUFDLE1BQUk7UUFBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUU7TUFBQztJQUFDO0VBQUMsQ0FBQztFQUFDLE9BQU9ELFNBQVM7QUFBQyxDQUFDLEVBQUU7QUFBQzNKLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQ0EsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUMsWUFBVTtFQUFDLElBQUdKLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBRSxDQUFDaUssU0FBUyxFQUFDO0lBQUMsSUFBSUMsU0FBUyxHQUFDLElBQUlKLE9BQU8sRUFBRTtJQUFDekosUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQzZKLFNBQVMsQ0FBQztJQUFDN0osUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzZKLFNBQVMsRUFBQzVKLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDO0VBQUM7QUFBQyxDQUFDLENBQUMiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qT2JmdXNjYXRlZCBieSBKU2hhbWFuLmNvbSovJ3VzZSBzdHJpY3QnO2V4cG9ydHNbJ19fZXNNb2R1bGUnXT0hIVtdO2V4cG9ydHNbJ0xRQ29sbGlkZVN5c3RlbSddPXZvaWQgMHgwO3ZhciBscV9jb25zdF8xPXJlcXVpcmUoJy4uL2xxX2Jhc2UvZGF0YS9scV9jb25zdCcpO3ZhciBscV9tYXRoX3V0aWxfMT1yZXF1aXJlKCcuLi9scV9iYXNlL3V0aWwvbHFfbWF0aF91dGlsJyk7dmFyIGxxX2NvbGxpZGVfY29uZmlnXzE9cmVxdWlyZSgnLi9scV9jb2xsaWRlX2NvbmZpZycpO3ZhciBscV9kYXRhXzE9cmVxdWlyZSgnLi4vbHFfYmFzZS9kYXRhL2xxX2RhdGEnKTt2YXIgVmVjMj1jY1snVmVjMiddO3ZhciBnYW1lPWNjWydnYW1lJ107dmFyIGRpcmVjdG9yPWNjWydkaXJlY3RvciddO3ZhciBTY2hlZHVsZXI9Y2NbJ1NjaGVkdWxlciddO3ZhciBtaXNjPWNjWydtaXNjJ107dmFyIExRUXVhZFRyZWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBfMHg1NjU2NWUoXzB4M2QzYTBlLF8weDNmYjA1NSxfMHgyMGNlMDQsXzB4NDA2MDMzKXt0aGlzWydjb2xsaWRlX2FyciddPVtdO3RoaXNbJ25vZGVfYXJyJ109W107dGhpc1snbWF4X29iamVjdCddPV8weDNmYjA1NXx8MHhhO3RoaXNbJ21heF9sZXZlbCddPV8weDIwY2UwNHx8MHg0O3RoaXNbJ2xldmVsJ109XzB4NDA2MDMzfHwweDA7dGhpc1sncmVjdCddPV8weDNkM2EwZTt0aGlzWydjb2xsaWRlX2FyciddPVtdO3RoaXNbJ25vZGVfYXJyJ109W107fV8weDU2NTY1ZVsncHJvdG90eXBlJ11bJ3NwbGl0J109ZnVuY3Rpb24oKXt2YXIgXzB4MzJhOWNiPXRoaXNbJ2xldmVsJ10rMHgxO3ZhciBfMHgxNzhkODE9dGhpc1sncmVjdCddWyd3aWR0aCddKjAuNTt2YXIgXzB4MWQxZDk3PXRoaXNbJ3JlY3QnXVsnaGVpZ2h0J10qMC41O3ZhciBfMHg1ZjUwOTM9dGhpc1sncmVjdCddWyd4J107dmFyIF8weDMyNjljMj10aGlzWydyZWN0J11bJ3knXTt0aGlzWydub2RlX2FyciddWzB4MF09bmV3IF8weDU2NTY1ZShuZXcgbHFfZGF0YV8xWydMUVJlY3QnXShfMHg1ZjUwOTMrXzB4MTc4ZDgxLF8weDMyNjljMixfMHgxNzhkODEsXzB4MWQxZDk3KSx0aGlzWydtYXhfb2JqZWN0J10sdGhpc1snbWF4X2xldmVsJ10sXzB4MzJhOWNiKTt0aGlzWydub2RlX2FyciddWzB4MV09bmV3IF8weDU2NTY1ZShuZXcgbHFfZGF0YV8xWydMUVJlY3QnXShfMHg1ZjUwOTMsXzB4MzI2OWMyLF8weDE3OGQ4MSxfMHgxZDFkOTcpLHRoaXNbJ21heF9vYmplY3QnXSx0aGlzWydtYXhfbGV2ZWwnXSxfMHgzMmE5Y2IpO3RoaXNbJ25vZGVfYXJyJ11bMHgyXT1uZXcgXzB4NTY1NjVlKG5ldyBscV9kYXRhXzFbJ0xRUmVjdCddKF8weDVmNTA5MyxfMHgzMjY5YzIrXzB4MWQxZDk3LF8weDE3OGQ4MSxfMHgxZDFkOTcpLHRoaXNbJ21heF9vYmplY3QnXSx0aGlzWydtYXhfbGV2ZWwnXSxfMHgzMmE5Y2IpO3RoaXNbJ25vZGVfYXJyJ11bMHgzXT1uZXcgXzB4NTY1NjVlKG5ldyBscV9kYXRhXzFbJ0xRUmVjdCddKF8weDVmNTA5MytfMHgxNzhkODEsXzB4MzI2OWMyK18weDFkMWQ5NyxfMHgxNzhkODEsXzB4MWQxZDk3KSx0aGlzWydtYXhfb2JqZWN0J10sdGhpc1snbWF4X2xldmVsJ10sXzB4MzJhOWNiKTt9O18weDU2NTY1ZVsncHJvdG90eXBlJ11bJ2dldF9pbmRleCddPWZ1bmN0aW9uKF8weDU5ZDZlYyl7dmFyIF8weDFkYzU0Nz1bXTt2YXIgXzB4MmVhN2NkPXRoaXNbJ3JlY3QnXVsneCddK3RoaXNbJ3JlY3QnXVsnaGFsZl93aWR0aCddO3ZhciBfMHg1ZTk3Yjc9dGhpc1sncmVjdCddWyd5J10rdGhpc1sncmVjdCddWydoYWxmX2hlaWdodCddO3ZhciBfMHgyNDFmNTk9XzB4NTlkNmVjWyd3b3JsZF9yZWN0J11bJ3knXStfMHg1OWQ2ZWNbJ3dvcmxkX3JlY3QnXVsnaGFsZl9oZWlnaHQnXT5fMHg1ZTk3Yjc7dmFyIF8weDQzNzc5MD1fMHg1OWQ2ZWNbJ3dvcmxkX3JlY3QnXVsneCddLV8weDU5ZDZlY1snd29ybGRfcmVjdCddWydoYWxmX3dpZHRoJ108XzB4MmVhN2NkO3ZhciBfMHg1ZTY2MTk9XzB4NTlkNmVjWyd3b3JsZF9yZWN0J11bJ3gnXStfMHg1OWQ2ZWNbJ3dvcmxkX3JlY3QnXVsnaGFsZl93aWR0aCddPl8weDJlYTdjZDt2YXIgXzB4M2I0MmFhPV8weDU5ZDZlY1snd29ybGRfcmVjdCddWyd5J10tXzB4NTlkNmVjWyd3b3JsZF9yZWN0J11bJ2hhbGZfaGVpZ2h0J108XzB4NWU5N2I3O2lmKF8weDVlNjYxOSYmXzB4MjQxZjU5KXtfMHgxZGM1NDdbJ3B1c2gnXSgweDApO31pZihfMHg0Mzc3OTAmJl8weDI0MWY1OSl7XzB4MWRjNTQ3WydwdXNoJ10oMHgxKTt9aWYoXzB4NDM3NzkwJiZfMHgzYjQyYWEpe18weDFkYzU0N1sncHVzaCddKDB4Mik7fWlmKF8weDNiNDJhYSYmXzB4NWU2NjE5KXtfMHgxZGM1NDdbJ3B1c2gnXSgweDMpO31yZXR1cm4gXzB4MWRjNTQ3O307O18weDU2NTY1ZVsncHJvdG90eXBlJ11bJ2luc2VydCddPWZ1bmN0aW9uKF8weDMyZjIzYSl7dmFyIF8weDM4NTBmZTtpZih0aGlzWydub2RlX2FyciddWydsZW5ndGgnXSl7XzB4Mzg1MGZlPXRoaXNbJ2dldF9pbmRleCddKF8weDMyZjIzYSk7Zm9yKHZhciBfMHg0ODU2Y2Y9MHgwO18weDQ4NTZjZjxfMHgzODUwZmVbJ2xlbmd0aCddO18weDQ4NTZjZisrKXt0aGlzWydub2RlX2FyciddW18weDM4NTBmZVtfMHg0ODU2Y2ZdXVsnaW5zZXJ0J10oXzB4MzJmMjNhKTt9cmV0dXJuO310aGlzWydjb2xsaWRlX2FyciddWydwdXNoJ10oXzB4MzJmMjNhKTtpZih0aGlzWydjb2xsaWRlX2FyciddWydsZW5ndGgnXT50aGlzWydtYXhfb2JqZWN0J10mJnRoaXNbJ2xldmVsJ108dGhpc1snbWF4X2xldmVsJ10pe2lmKCF0aGlzWydub2RlX2FyciddWydsZW5ndGgnXSl7dGhpc1snc3BsaXQnXSgpO31mb3IodmFyIF8weDQ4NTZjZj0weDA7XzB4NDg1NmNmPHRoaXNbJ2NvbGxpZGVfYXJyJ11bJ2xlbmd0aCddO18weDQ4NTZjZisrKXt2YXIgXzB4MmQxMzZjPXRoaXNbJ2NvbGxpZGVfYXJyJ11bXzB4NDg1NmNmXTtfMHgzODUwZmU9dGhpc1snZ2V0X2luZGV4J10oXzB4MmQxMzZjKTtmb3IodmFyIF8weDFlOWYzNT0weDA7XzB4MWU5ZjM1PF8weDM4NTBmZVsnbGVuZ3RoJ107XzB4MWU5ZjM1Kyspe3RoaXNbJ25vZGVfYXJyJ11bXzB4Mzg1MGZlW18weDFlOWYzNV1dWydpbnNlcnQnXShfMHgyZDEzNmMpO319dGhpc1snY29sbGlkZV9hcnInXT1bXTt9fTs7XzB4NTY1NjVlWydwcm90b3R5cGUnXVsncmV0cmlldmUnXT1mdW5jdGlvbihfMHg3N2E3MSl7dmFyIF8weGFhOGM3YTt2YXIgXzB4NDIyNjRjPXRoaXNbJ2dldF9pbmRleCddKF8weDc3YTcxKTtpZih0aGlzWydjb2xsaWRlX2FyciddWydsZW5ndGgnXSl7KF8weGFhOGM3YT1fMHg1NjU2NWVbJ3RlbXBfY29sbGlkZV9hcnInXSlbJ3B1c2gnXVsnYXBwbHknXShfMHhhYThjN2EsdGhpc1snY29sbGlkZV9hcnInXSk7fWlmKHRoaXNbJ25vZGVfYXJyJ11bJ2xlbmd0aCddKXtmb3IodmFyIF8weDRjMzQ5Nz0weDA7XzB4NGMzNDk3PF8weDQyMjY0Y1snbGVuZ3RoJ107XzB4NGMzNDk3Kyspe3RoaXNbJ25vZGVfYXJyJ11bXzB4NDIyNjRjW18weDRjMzQ5N11dWydyZXRyaWV2ZSddKF8weDc3YTcxKTt9fX07O18weDU2NTY1ZVsncHJvdG90eXBlJ11bJ2dldF9hbGxfYXJlYSddPWZ1bmN0aW9uKCl7aWYodGhpc1snY29sbGlkZV9hcnInXVsnbGVuZ3RoJ10pe18weDU2NTY1ZVsnYWxsX2NvbGxpZGVfYXJyJ11bJ3B1c2gnXSh0aGlzWydjb2xsaWRlX2FyciddKTt9aWYodGhpc1snbm9kZV9hcnInXVsnbGVuZ3RoJ10pe2Zvcih2YXIgXzB4M2Q1YzlmPTB4MDtfMHgzZDVjOWY8MHg0O18weDNkNWM5ZisrKXt0aGlzWydub2RlX2FyciddW18weDNkNWM5Zl1bJ2dldF9hbGxfYXJlYSddKCk7fX19O18weDU2NTY1ZVsncHJvdG90eXBlJ11bJ2NsZWFyJ109ZnVuY3Rpb24oKXt0aGlzWydjb2xsaWRlX2FyciddPVtdO2Zvcih2YXIgXzB4MTcwZWNhPTB4MDtfMHgxNzBlY2E8dGhpc1snbm9kZV9hcnInXVsnbGVuZ3RoJ107XzB4MTcwZWNhKyspe2lmKHRoaXNbJ25vZGVfYXJyJ11bJ2xlbmd0aCddKXt0aGlzWydub2RlX2FyciddW18weDE3MGVjYV1bJ2NsZWFyJ10oKTt9fXRoaXNbJ25vZGVfYXJyJ109W107fTs7XzB4NTY1NjVlWyd0ZW1wX2NvbGxpZGVfYXJyJ109W107XzB4NTY1NjVlWydhbGxfY29sbGlkZV9hcnInXT1bXTtyZXR1cm4gXzB4NTY1NjVlO30oKTt2YXIgTFFDb2xsaWRlU3lzdGVtPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gXzB4OWJmNjBlKCl7fV8weDliZjYwZVsnY2FjaGVfcG9seWdvbiddPWZ1bmN0aW9uKF8weGJjM2QyMil7aWYoXzB4YmMzZDIyWydfY29sbGlkZV9zaGFwZSddPT09bHFfY29uc3RfMVsnTFFDb2xsaWRlU2hhcGUnXVsnUmVjdCddKXtfMHhiYzNkMjJbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ109W107dmFyIF8weDUzMjM1ZT1fMHhiYzNkMjJbJ3dvcmxkX3JlY3QnXVsndG9wX2xlZnQnXSgpO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneCddKTtfMHhiYzNkMjJbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ11bJ3B1c2gnXShfMHg1MzIzNWVbJ3knXSk7XzB4NTMyMzVlPV8weGJjM2QyMlsnd29ybGRfcmVjdCddWydib3R0b21fbGVmdCddKCk7XzB4YmMzZDIyWydjYWNoZV9wb2x5Z29uX3BvaW50cyddWydwdXNoJ10oXzB4NTMyMzVlWyd4J10pO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneSddKTtfMHg1MzIzNWU9XzB4YmMzZDIyWyd3b3JsZF9yZWN0J11bJ2JvdHRvbV9yaWdodCddKCk7XzB4YmMzZDIyWydjYWNoZV9wb2x5Z29uX3BvaW50cyddWydwdXNoJ10oXzB4NTMyMzVlWyd4J10pO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneSddKTtfMHg1MzIzNWU9XzB4YmMzZDIyWyd3b3JsZF9yZWN0J11bJ3RvcF9yaWdodCddKCk7XzB4YmMzZDIyWydjYWNoZV9wb2x5Z29uX3BvaW50cyddWydwdXNoJ10oXzB4NTMyMzVlWyd4J10pO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneSddKTt9ZWxzZSBpZihfMHhiYzNkMjJbJ19jb2xsaWRlX3NoYXBlJ109PT1scV9jb25zdF8xWydMUUNvbGxpZGVTaGFwZSddWydQb2x5Z29uJ10pe18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXT1bXTtpZihfMHhiYzNkMjJbJ25vZGUnXVsnYW5nbGUnXT09MHgwKXtmb3IodmFyIF8weDJmMWU2Yz0weDA7XzB4MmYxZTZjPF8weGJjM2QyMlsnX3BvbHlnb25fcG9pbnRzJ11bJ2xlbmd0aCddO18weDJmMWU2YysrKXt2YXIgXzB4NTMyMzVlPV8weGJjM2QyMlsnd29ybGRfcmVjdCddWydhZGQnXShfMHhiYzNkMjJbJ19wb2x5Z29uX3BvaW50cyddW18weDJmMWU2Y10pO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneCddKTtfMHhiYzNkMjJbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ11bJ3B1c2gnXShfMHg1MzIzNWVbJ3knXSk7fX1lbHNle3ZhciBfMHgxYmU2MzA9bWlzY1snZGVncmVlc1RvUmFkaWFucyddKF8weGJjM2QyMlsnbm9kZSddWydhbmdsZSddKTt2YXIgXzB4MWEwNTk4PU1hdGhbJ3NpbiddKF8weDFiZTYzMCk7dmFyIF8weDI1OTY3ZT1NYXRoWydjb3MnXShfMHgxYmU2MzApO3ZhciBfMHhmYmYyNDE9ZnVuY3Rpb24oXzB4NWVkM2E1KXtyZXR1cm4gbmV3IFZlYzIoXzB4NWVkM2E1Wyd4J10qXzB4MjU5NjdlLV8weDVlZDNhNVsneSddKl8weDFhMDU5OCtfMHhiYzNkMjJbJ3dvcmxkX3JlY3QnXVsneCddLF8weDVlZDNhNVsneCddKl8weDFhMDU5OCtfMHg1ZWQzYTVbJ3knXSpfMHgyNTk2N2UrXzB4YmMzZDIyWyd3b3JsZF9yZWN0J11bJ3knXSk7fTtmb3IodmFyIF8weDJmMWU2Yz0weDA7XzB4MmYxZTZjPF8weGJjM2QyMlsnX3BvbHlnb25fcG9pbnRzJ11bJ2xlbmd0aCddO18weDJmMWU2YysrKXt2YXIgXzB4NTMyMzVlPV8weGZiZjI0MShfMHhiYzNkMjJbJ19wb2x5Z29uX3BvaW50cyddW18weDJmMWU2Y10pO18weGJjM2QyMlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXVsncHVzaCddKF8weDUzMjM1ZVsneCddKTtfMHhiYzNkMjJbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ11bJ3B1c2gnXShfMHg1MzIzNWVbJ3knXSk7fX19fTtfMHg5YmY2MGVbJ191cGRhdGVXb3JsZE1hdHJpeCddPWZ1bmN0aW9uKF8weDI5NmExYSl7aWYoXzB4Mjk2YTFhWydfcGFyZW50J10pe18weDliZjYwZVsnX3VwZGF0ZVdvcmxkTWF0cml4J10oXzB4Mjk2YTFhWydfcGFyZW50J10pO31pZihfMHgyOTZhMWFbJ193b3JsZE1hdERpcnR5J10pe3RoaXNbJ3RtcF9ib29sJ109ISFbXTtfMHgyOTZhMWFbJ19jYWxjdWxXb3JsZE1hdHJpeCddKCk7dmFyIF8weDNkMWNhMj1fMHgyOTZhMWFbJ19jaGlsZHJlbiddO2Zvcih2YXIgXzB4MmI0ZWM5PTB4MCxfMHg2MDAzNjc9XzB4M2QxY2EyWydsZW5ndGgnXTtfMHgyYjRlYzk8XzB4NjAwMzY3O18weDJiNGVjOSsrKXtfMHgzZDFjYTJbXzB4MmI0ZWM5XVsnX3dvcmxkTWF0RGlydHknXT0hIVtdO319fTtfMHg5YmY2MGVbJ3RyYW5zZm9ybU1hdDQnXT1mdW5jdGlvbihfMHg1ZDY4YjUsXzB4MmM0ZGQwLF8weDE5MGY4OCl7dmFyIF8weDUyM2RjOD1fMHgxOTBmODhbJ20nXTtfMHg1ZDY4YjVbJ3gnXT1fMHg1MjNkYzhbMHgwXSpfMHgyYzRkZDBbJ3gnXStfMHg1MjNkYzhbMHg0XSpfMHgyYzRkZDBbJ3knXStfMHg1MjNkYzhbMHhjXTtfMHg1ZDY4YjVbJ3knXT1fMHg1MjNkYzhbMHgxXSpfMHgyYzRkZDBbJ3gnXStfMHg1MjNkYzhbMHg1XSpfMHgyYzRkZDBbJ3knXStfMHg1MjNkYzhbMHhkXTtyZXR1cm4gXzB4NWQ2OGI1O307XzB4OWJmNjBlWyd1cGRhdGVfd29ybGRfcmVjdCddPWZ1bmN0aW9uKF8weDI2NGI3Mil7aWYoIV8weDI2NGI3Mlsnd29ybGRfcmVjdCddKXtyZXR1cm47fXRoaXNbJ3RtcF9ib29sJ109IVtdO3RoaXNbJ191cGRhdGVXb3JsZE1hdHJpeCddKF8weDI2NGI3Mlsnbm9kZSddKTtpZih0aGlzWyd0bXBfYm9vbCddKXtfMHgyNjRiNzJbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ109dW5kZWZpbmVkO31fMHg5YmY2MGVbJ3RyYW5zZm9ybU1hdDQnXShfMHgyNjRiNzJbJ3dvcmxkX3JlY3QnXSxfMHgyNjRiNzJbJ19vZmZzZXQnXSxfMHgyNjRiNzJbJ25vZGUnXVsnX3dvcmxkTWF0cml4J10pO307XzB4OWJmNjBlWyd1cGRhdGVfY29sbGlkZV9sb2dpYyddPWZ1bmN0aW9uKF8weDFiOWEyYyl7aWYoXzB4MWI5YTJjWydpc19vcGVuX2Z1bmMnXSl7Zm9yKHZhciBfMHgxZDhkOGMgaW4gXzB4MWI5YTJjWydjb2xsaWRlX21hcCddKXt2YXIgXzB4MTQwNmI1PV8weDFiOWEyY1snY29sbGlkZV9tYXAnXVtfMHgxZDhkOGNdO2lmKF8weDE0MDZiNVsnc3RhdHVzJ109PT0weDEpe18weDE0MDZiNVsnc3RhdHVzJ109MHgyO31lbHNle2RlbGV0ZSBfMHgxYjlhMmNbJ2NvbGxpZGVfbWFwJ11bXzB4MWQ4ZDhjXTtfMHgxYjlhMmNbJ29uX2V4aXQnXShfMHgxNDA2YjVbJ2NvbGxpZGUnXSk7fX19XzB4MWI5YTJjWyd1cGRhdGVfbHFfY29sbGlkZSddKCk7fTtfMHg5YmY2MGVbJ2NvbGxpZGVfb3RoZXInXT1mdW5jdGlvbihfMHg2NGYwNjQsXzB4M2JlY2RkKXtpZihfMHg2NGYwNjRbJ2lzX29wZW5fZnVuYyddKXt2YXIgXzB4NDViMDI5PV8weDY0ZjA2NFsnY29sbGlkZV9tYXAnXVtfMHgzYmVjZGRbJ2NvbGxpZGVfaWQnXV07aWYoXzB4NDViMDI5KXtfMHg0NWIwMjlbJ3N0YXR1cyddPTB4MTt9ZWxzZXtfMHg2NGYwNjRbJ2NvbGxpZGVfbWFwJ11bXzB4M2JlY2RkWydjb2xsaWRlX2lkJ11dPXsnY29sbGlkZSc6XzB4M2JlY2RkLCdzdGF0dXMnOjB4MX07XzB4NjRmMDY0Wydvbl9lbnRlciddKF8weDNiZWNkZCk7fX1pZihfMHgzYmVjZGRbJ2lzX29wZW5fZnVuYyddKXt2YXIgXzB4NTQ0YTVjPV8weDNiZWNkZFsnY29sbGlkZV9tYXAnXVtfMHg2NGYwNjRbJ2NvbGxpZGVfaWQnXV07aWYoXzB4NTQ0YTVjKXtfMHg1NDRhNWNbJ3N0YXR1cyddPTB4MTt9ZWxzZXtfMHgzYmVjZGRbJ2NvbGxpZGVfbWFwJ11bXzB4NjRmMDY0Wydjb2xsaWRlX2lkJ11dPXsnY29sbGlkZSc6XzB4NjRmMDY0LCdzdGF0dXMnOjB4MX07XzB4M2JlY2RkWydvbl9lbnRlciddKF8weDY0ZjA2NCk7fX1fMHg2NGYwNjRbJ29uX2NvbGxpZGUnXShfMHgzYmVjZGQpO18weDNiZWNkZFsnb25fY29sbGlkZSddKF8weDY0ZjA2NCk7fTtfMHg5YmY2MGVbJ2FkZF9jb2xsaWRlJ109ZnVuY3Rpb24oXzB4MmU4OTdkKXt0aGlzWyd1cGRhdGVfd29ybGRfcmVjdCddKF8weDJlODk3ZCk7dGhpc1snY29sbGlkZV9hcnInXVsncHVzaCddKF8weDJlODk3ZCk7fTtfMHg5YmY2MGVbJ3JlbW92ZV9jb2xsaWRlJ109ZnVuY3Rpb24oXzB4NDE2Mjk4KXtmb3IodmFyIF8weDEyMDU5YT10aGlzWydjb2xsaWRlX2FyciddWydsZW5ndGgnXS0weDE7XzB4MTIwNTlhPj0weDA7XzB4MTIwNTlhLS0pe2lmKHRoaXNbJ2NvbGxpZGVfYXJyJ11bXzB4MTIwNTlhXVsnY29sbGlkZV9pZCddPT09XzB4NDE2Mjk4Wydjb2xsaWRlX2lkJ10pe3RoaXNbJ2NvbGxpZGVfYXJyJ11bJ3NwbGljZSddKF8weDEyMDU5YSwweDEpO2JyZWFrO319fTtfMHg5YmY2MGVbJ2xpbmVfcG9pbnQnXT1mdW5jdGlvbihfMHg0YTczNzAsXzB4MjRjN2ExLF8weDRlMThlZSxfMHgxMjIzNTYsXzB4MmJkNzEzLF8weDJkM2I2ZSl7cmV0dXJuIE1hdGhbJ2FicyddKHRoaXNbJ2Rpc3RhbmNlU3F1YXJlZCddKF8weDRhNzM3MCxfMHgyNGM3YTEsXzB4NGUxOGVlLF8weDEyMjM1NiktKHRoaXNbJ2Rpc3RhbmNlU3F1YXJlZCddKF8weDRhNzM3MCxfMHgyNGM3YTEsXzB4MmJkNzEzLF8weDJkM2I2ZSkrdGhpc1snZGlzdGFuY2VTcXVhcmVkJ10oXzB4NGUxOGVlLF8weDEyMjM1NixfMHgyYmQ3MTMsXzB4MmQzYjZlKSkpPD0weDE7fTtfMHg5YmY2MGVbJ2Rpc3RhbmNlU3F1YXJlZCddPWZ1bmN0aW9uKF8weDVjY2EzYixfMHgxMWI2NzgsXzB4MWYwYjYzLF8weDUyY2VjNyl7cmV0dXJuIE1hdGhbJ3NxcnQnXShNYXRoWydwb3cnXShfMHg1Y2NhM2ItXzB4MWYwYjYzLDB4MikrTWF0aFsncG93J10oXzB4MTFiNjc4LV8weDUyY2VjNywweDIpKTt9O18weDliZjYwZVsncG9seWdvbl9wb2ludCddPWZ1bmN0aW9uKF8weDQyMzZjMCxfMHgxMmU4MjUsXzB4NWNkNGRkKXt2YXIgXzB4YmQ2ZmQwPV8weDQyMzZjMFsnbGVuZ3RoJ107dmFyIF8weDFmNGZiYz0hW107dmFyIF8weDI2N2I1OCxfMHg0YTFiYWU7Zm9yKF8weDI2N2I1OD0weDAsXzB4NGExYmFlPV8weGJkNmZkMC0weDI7XzB4MjY3YjU4PF8weGJkNmZkMDtfMHgyNjdiNTgrPTB4Mil7aWYoXzB4NDIzNmMwW18weDI2N2I1OCsweDFdPl8weDVjZDRkZCE9PV8weDQyMzZjMFtfMHg0YTFiYWUrMHgxXT5fMHg1Y2Q0ZGQmJl8weDEyZTgyNTwoXzB4NDIzNmMwW18weDRhMWJhZV0tXzB4NDIzNmMwW18weDI2N2I1OF0pKihfMHg1Y2Q0ZGQtXzB4NDIzNmMwW18weDI2N2I1OCsweDFdKS8oXzB4NDIzNmMwW18weDRhMWJhZSsweDFdLV8weDQyMzZjMFtfMHgyNjdiNTgrMHgxXSkrXzB4NDIzNmMwW18weDI2N2I1OF0pe18weDFmNGZiYz0hXzB4MWY0ZmJjO31fMHg0YTFiYWU9XzB4MjY3YjU4O31pZihfMHgxZjRmYmMpe3JldHVybiEhW107fWZvcihfMHgyNjdiNTg9MHgwO18weDI2N2I1ODxfMHhiZDZmZDA7XzB4MjY3YjU4Kz0weDIpe3ZhciBfMHg1NzRlM2U9XzB4NDIzNmMwW18weDI2N2I1OF07dmFyIF8weDRiOTJkOD1fMHg0MjM2YzBbXzB4MjY3YjU4KzB4MV07dmFyIF8weDVkMzlkND12b2lkIDB4MCxfMHgxMjRlOWM9dm9pZCAweDA7aWYoXzB4MjY3YjU4PT09XzB4YmQ2ZmQwLTB4Mil7XzB4NWQzOWQ0PV8weDQyMzZjMFsweDBdO18weDEyNGU5Yz1fMHg0MjM2YzBbMHgxXTt9ZWxzZXtfMHg1ZDM5ZDQ9XzB4NDIzNmMwW18weDI2N2I1OCsweDJdO18weDEyNGU5Yz1fMHg0MjM2YzBbXzB4MjY3YjU4KzB4M107fWlmKHRoaXNbJ2xpbmVfcG9pbnQnXShfMHg1NzRlM2UsXzB4NGI5MmQ4LF8weDVkMzlkNCxfMHgxMjRlOWMsXzB4MTJlODI1LF8weDVjZDRkZCkpe3JldHVybiEhW107fX1yZXR1cm4hW107fTtfMHg5YmY2MGVbJ3BvbHlnb25fY2lyY2xlJ109ZnVuY3Rpb24oXzB4Mzg3MTg4LF8weDYxMTAxMixfMHgzNzA3ZTgsXzB4MjQzMmUxKXtpZih0aGlzWydwb2x5Z29uX3BvaW50J10oXzB4Mzg3MTg4LF8weDYxMTAxMixfMHgzNzA3ZTgpKXtyZXR1cm4hIVtdO312YXIgXzB4MTk3NjU3PV8weDM4NzE4OFsnbGVuZ3RoJ107Zm9yKHZhciBfMHgzZGY2ZmM9MHgwO18weDNkZjZmYzxfMHgxOTc2NTctMHgyO18weDNkZjZmYys9MHgyKXtpZih0aGlzWydsaW5lX2NpcmNsZSddKF8weDM4NzE4OFtfMHgzZGY2ZmNdLF8weDM4NzE4OFtfMHgzZGY2ZmMrMHgxXSxfMHgzODcxODhbXzB4M2RmNmZjKzB4Ml0sXzB4Mzg3MTg4W18weDNkZjZmYysweDNdLF8weDYxMTAxMixfMHgzNzA3ZTgsXzB4MjQzMmUxKSl7cmV0dXJuISFbXTt9fXJldHVybiB0aGlzWydsaW5lX2NpcmNsZSddKF8weDM4NzE4OFsweDBdLF8weDM4NzE4OFsweDFdLF8weDM4NzE4OFtfMHgxOTc2NTctMHgyXSxfMHgzODcxODhbXzB4MTk3NjU3LTB4MV0sXzB4NjExMDEyLF8weDM3MDdlOCxfMHgyNDMyZTEpO307XzB4OWJmNjBlWydsaW5lX2NpcmNsZSddPWZ1bmN0aW9uKF8weDEyYmJhMSxfMHgzMjEyOTAsXzB4MTM2NzAzLF8weDUzN2UwZSxfMHgzYWQxNDcsXzB4NTU5YTdkLF8weDQ4YTgzNCl7dmFyIF8weDNiZmQ5ND1bXzB4M2FkMTQ3LV8weDEyYmJhMSxfMHg1NTlhN2QtXzB4MzIxMjkwXTt2YXIgXzB4NmRhNjIwPVtfMHgxMzY3MDMtXzB4MTJiYmExLF8weDUzN2UwZS1fMHgzMjEyOTBdO3ZhciBfMHgxZmVkYTQ9dGhpc1snZG90J10oXzB4NmRhNjIwLF8weDZkYTYyMCk7dmFyIF8weDUzOTEzZD10aGlzWydkb3QnXShfMHgzYmZkOTQsXzB4NmRhNjIwKTt2YXIgXzB4MzY3NGY1PV8weDUzOTEzZC9fMHgxZmVkYTQ7XzB4MzY3NGY1PV8weDM2NzRmNTwweDA/MHgwOl8weDM2NzRmNTtfMHgzNjc0ZjU9XzB4MzY3NGY1PjB4MT8weDE6XzB4MzY3NGY1O3ZhciBfMHgxNTAwMzM9W18weDZkYTYyMFsweDBdKl8weDM2NzRmNStfMHgxMmJiYTEtXzB4M2FkMTQ3LF8weDZkYTYyMFsweDFdKl8weDM2NzRmNStfMHgzMjEyOTAtXzB4NTU5YTdkXTt2YXIgXzB4NDQyYWYxPXRoaXNbJ2RvdCddKF8weDE1MDAzMyxfMHgxNTAwMzMpO3JldHVybiBfMHg0NDJhZjE8PV8weDQ4YTgzNCpfMHg0OGE4MzQ7fTtfMHg5YmY2MGVbJ2RvdCddPWZ1bmN0aW9uKF8weDFlNzlhNSxfMHgxNzljOTIpe3JldHVybiBfMHgxZTc5YTVbMHgwXSpfMHgxNzljOTJbMHgwXStfMHgxZTc5YTVbMHgxXSpfMHgxNzljOTJbMHgxXTt9O18weDliZjYwZVsndXBkYXRlX2xvZ2ljJ109ZnVuY3Rpb24oXzB4YjE3Mjc4KXtpZighdGhpc1snaXNfZW5hYmxlJ10pe3JldHVybjt9aWYobHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ3N3aXRjaF9xdWFkX3RyZWUnXSl7dGhpc1sncXVhZF90cmVlJ11bJ2NsZWFyJ10oKTtmb3IodmFyIF8weDEzMzdiZD10aGlzWydjb2xsaWRlX2FyciddWydsZW5ndGgnXS0weDE7XzB4MTMzN2JkPj0weDA7XzB4MTMzN2JkLS0pe3ZhciBfMHgyMDE4MWU9dGhpc1snY29sbGlkZV9hcnInXVtfMHgxMzM3YmRdO2lmKCFfMHgyMDE4MWUpe3JldHVybjt9aWYoIV8weDIwMTgxZVsnaXNWYWxpZCddKXt0aGlzWydjb2xsaWRlX2FyciddWydzcGxpY2UnXShfMHgxMzM3YmQsMHgxKTtjb250aW51ZTt9dGhpc1sndXBkYXRlX2NvbGxpZGVfbG9naWMnXShfMHgyMDE4MWUpO2lmKF8weDIwMTgxZVsnaXNfZW5hYmxlJ10pe3RoaXNbJ3VwZGF0ZV93b3JsZF9yZWN0J10oXzB4MjAxODFlKTt0aGlzWydxdWFkX3RyZWUnXVsnaW5zZXJ0J10oXzB4MjAxODFlKTt9fUxRUXVhZFRyZWVbJ2FsbF9jb2xsaWRlX2FyciddPVtdO3RoaXNbJ3F1YWRfdHJlZSddWydnZXRfYWxsX2FyZWEnXSgpO2Zvcih2YXIgXzB4NGFmNmZmPTB4MDtfMHg0YWY2ZmY8TFFRdWFkVHJlZVsnYWxsX2NvbGxpZGVfYXJyJ11bJ2xlbmd0aCddO18weDRhZjZmZisrKXt2YXIgXzB4NWNhYzcxPUxRUXVhZFRyZWVbJ2FsbF9jb2xsaWRlX2FyciddW18weDRhZjZmZl07Zm9yKHZhciBfMHgxMzM3YmQ9MHgwO18weDEzMzdiZDxfMHg1Y2FjNzFbJ2xlbmd0aCddO18weDEzMzdiZCsrKXt2YXIgXzB4NTQ5YTY2PV8weDVjYWM3MVtfMHgxMzM3YmRdO2Zvcih2YXIgXzB4NTc5M2ZmPV8weDEzMzdiZCsweDE7XzB4NTc5M2ZmPF8weDVjYWM3MVsnbGVuZ3RoJ107XzB4NTc5M2ZmKyspe3ZhciBfMHg0NzQwZmU9XzB4NWNhYzcxW18weDU3OTNmZl07aWYoXzB4NTQ5YTY2Wydjb2xsaWRlX2NhdGVnb3J5J10mXzB4NDc0MGZlWydjb2xsaWRlX21hc2snXSYmXzB4NTQ5YTY2IT09XzB4NDc0MGZlKXtpZihfMHg1NDlhNjZbJ19jb2xsaWRlX3NoYXBlJ109PT0weDEmJl8weDQ3NDBmZVsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MSl7aWYobHFfbWF0aF91dGlsXzFbJ0xRTWF0aFV0aWwnXVsnaW50ZXJzZWN0c19yZWN0J10oXzB4NTQ5YTY2Wyd3b3JsZF9yZWN0J10sXzB4NDc0MGZlWyd3b3JsZF9yZWN0J10pKXt0aGlzWydjb2xsaWRlX290aGVyJ10oXzB4NTQ5YTY2LF8weDQ3NDBmZSk7fX1lbHNlIGlmKF8weDU0OWE2NlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MSYmXzB4NDc0MGZlWydfY29sbGlkZV9zaGFwZSddPT09MHgyKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX2NpcmNsZV9yZWN0J10oXzB4NDc0MGZlWyd3b3JsZF9yZWN0J10sXzB4NDc0MGZlWydyYWRpdXMnXSxfMHg1NDlhNjZbJ3dvcmxkX3JlY3QnXSkpe3RoaXNbJ2NvbGxpZGVfb3RoZXInXShfMHg1NDlhNjYsXzB4NDc0MGZlKTt9fWVsc2UgaWYoXzB4NTQ5YTY2WydfY29sbGlkZV9zaGFwZSddPT09MHgyJiZfMHg0NzQwZmVbJ19jb2xsaWRlX3NoYXBlJ109PT0weDEpe2lmKGxxX21hdGhfdXRpbF8xWydMUU1hdGhVdGlsJ11bJ2ludGVyc2VjdHNfY2lyY2xlX3JlY3QnXShfMHg1NDlhNjZbJ3dvcmxkX3JlY3QnXSxfMHg1NDlhNjZbJ3JhZGl1cyddLF8weDQ3NDBmZVsnd29ybGRfcmVjdCddKSl7dGhpc1snY29sbGlkZV9vdGhlciddKF8weDU0OWE2NixfMHg0NzQwZmUpO319ZWxzZSBpZihfMHg1NDlhNjZbJ19jb2xsaWRlX3NoYXBlJ109PT0weDImJl8weDQ3NDBmZVsnX2NvbGxpZGVfc2hhcGUnXT09PTB4Mil7aWYobHFfbWF0aF91dGlsXzFbJ0xRTWF0aFV0aWwnXVsnaW50ZXJzZWN0c19jaXJjbGUnXShfMHg1NDlhNjZbJ3dvcmxkX3JlY3QnXSxfMHg1NDlhNjZbJ3JhZGl1cyddLF8weDQ3NDBmZVsnd29ybGRfcmVjdCddLF8weDQ3NDBmZVsncmFkaXVzJ10pKXt0aGlzWydjb2xsaWRlX290aGVyJ10oXzB4NTQ5YTY2LF8weDQ3NDBmZSk7fX1lbHNlIGlmKF8weDU0OWE2NlsnX2NvbGxpZGVfc2hhcGUnXT09MHgzJiZfMHg0NzQwZmVbJ19jb2xsaWRlX3NoYXBlJ109PTB4Mil7aWYoIV8weDU0OWE2NlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXSl7dGhpc1snY2FjaGVfcG9seWdvbiddKF8weDU0OWE2Nik7fWlmKHRoaXNbJ3BvbHlnb25fY2lyY2xlJ10oXzB4NTQ5YTY2WydjYWNoZV9wb2x5Z29uX3BvaW50cyddLF8weDQ3NDBmZVsnd29ybGRfcmVjdCddWyd4J10sXzB4NDc0MGZlWyd3b3JsZF9yZWN0J11bJ3knXSxfMHg0NzQwZmVbJ3JhZGl1cyddKSl7dGhpc1snY29sbGlkZV9vdGhlciddKF8weDU0OWE2NixfMHg0NzQwZmUpO319ZWxzZSBpZihfMHg1NDlhNjZbJ19jb2xsaWRlX3NoYXBlJ109PTB4MiYmXzB4NDc0MGZlWydfY29sbGlkZV9zaGFwZSddPT0weDMpe2lmKCFfMHg0NzQwZmVbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10pe3RoaXNbJ2NhY2hlX3BvbHlnb24nXShfMHg0NzQwZmUpO31pZih0aGlzWydwb2x5Z29uX2NpcmNsZSddKF8weDQ3NDBmZVsnY2FjaGVfcG9seWdvbl9wb2ludHMnXSxfMHg1NDlhNjZbJ3dvcmxkX3JlY3QnXVsneCddLF8weDU0OWE2Nlsnd29ybGRfcmVjdCddWyd5J10sXzB4NTQ5YTY2WydyYWRpdXMnXSkpe3RoaXNbJ2NvbGxpZGVfb3RoZXInXShfMHg1NDlhNjYsXzB4NDc0MGZlKTt9fWVsc2V7aWYoIV8weDU0OWE2NlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXSl7dGhpc1snY2FjaGVfcG9seWdvbiddKF8weDU0OWE2Nik7fWlmKCFfMHg0NzQwZmVbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10pe3RoaXNbJ2NhY2hlX3BvbHlnb24nXShfMHg0NzQwZmUpO31pZih0aGlzWydwb2x5Z29uX3BvbHlnb24nXShfMHg1NDlhNjZbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10sXzB4NDc0MGZlWydjYWNoZV9wb2x5Z29uX3BvaW50cyddKSl7dGhpc1snY29sbGlkZV9vdGhlciddKF8weDU0OWE2NixfMHg0NzQwZmUpO319fX19fX1lbHNle3ZhciBfMHg1Y2FjNzE9W107Zm9yKHZhciBfMHgxMzM3YmQ9dGhpc1snY29sbGlkZV9hcnInXVsnbGVuZ3RoJ10tMHgxO18weDEzMzdiZD49MHgwO18weDEzMzdiZC0tKXt2YXIgXzB4MjAxODFlPXRoaXNbJ2NvbGxpZGVfYXJyJ11bXzB4MTMzN2JkXTtpZighXzB4MjAxODFlKXtyZXR1cm47fWlmKCFfMHgyMDE4MWVbJ2lzVmFsaWQnXSl7dGhpc1snY29sbGlkZV9hcnInXVsnc3BsaWNlJ10oXzB4MTMzN2JkLDB4MSk7Y29udGludWU7fXRoaXNbJ3VwZGF0ZV9jb2xsaWRlX2xvZ2ljJ10oXzB4MjAxODFlKTtpZihfMHgyMDE4MWVbJ2lzX2VuYWJsZSddKXt0aGlzWyd1cGRhdGVfd29ybGRfcmVjdCddKF8weDIwMTgxZSk7XzB4NWNhYzcxWydwdXNoJ10oXzB4MjAxODFlKTt9fXZhciBfMHg0ZjMzMzc9XzB4NWNhYzcxWydsZW5ndGgnXTtmb3IodmFyIF8weDEzMzdiZD0weDA7XzB4MTMzN2JkPF8weDRmMzMzNztfMHgxMzM3YmQrKyl7dmFyIF8weDU0OWE2Nj1fMHg1Y2FjNzFbXzB4MTMzN2JkXTtmb3IodmFyIF8weDU3OTNmZj1fMHgxMzM3YmQrMHgxO18weDU3OTNmZjxfMHg0ZjMzMzc7XzB4NTc5M2ZmKyspe3ZhciBfMHg0NzQwZmU9XzB4NWNhYzcxW18weDU3OTNmZl07aWYoXzB4NTQ5YTY2Wydjb2xsaWRlX2NhdGVnb3J5J10mXzB4NDc0MGZlWydjb2xsaWRlX21hc2snXSl7aWYoXzB4NTQ5YTY2WydfY29sbGlkZV9zaGFwZSddPT09MHgxJiZfMHg0NzQwZmVbJ19jb2xsaWRlX3NoYXBlJ109PT0weDEpe2lmKGxxX21hdGhfdXRpbF8xWydMUU1hdGhVdGlsJ11bJ2ludGVyc2VjdHNfcmVjdCddKF8weDU0OWE2Nlsnd29ybGRfcmVjdCddLF8weDQ3NDBmZVsnd29ybGRfcmVjdCddKSl7dGhpc1snY29sbGlkZV9vdGhlciddKF8weDU0OWE2NixfMHg0NzQwZmUpO319ZWxzZSBpZihfMHg1NDlhNjZbJ19jb2xsaWRlX3NoYXBlJ109PT0weDEmJl8weDQ3NDBmZVsnX2NvbGxpZGVfc2hhcGUnXT09PTB4Mil7aWYobHFfbWF0aF91dGlsXzFbJ0xRTWF0aFV0aWwnXVsnaW50ZXJzZWN0c19jaXJjbGVfcmVjdCddKF8weDQ3NDBmZVsnd29ybGRfcmVjdCddLF8weDQ3NDBmZVsncmFkaXVzJ10sXzB4NTQ5YTY2Wyd3b3JsZF9yZWN0J10pKXt0aGlzWydjb2xsaWRlX290aGVyJ10oXzB4NTQ5YTY2LF8weDQ3NDBmZSk7fX1lbHNlIGlmKF8weDU0OWE2NlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MiYmXzB4NDc0MGZlWydfY29sbGlkZV9zaGFwZSddPT09MHgxKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX2NpcmNsZV9yZWN0J10oXzB4NTQ5YTY2Wyd3b3JsZF9yZWN0J10sXzB4NTQ5YTY2WydyYWRpdXMnXSxfMHg0NzQwZmVbJ3dvcmxkX3JlY3QnXSkpe3RoaXNbJ2NvbGxpZGVfb3RoZXInXShfMHg1NDlhNjYsXzB4NDc0MGZlKTt9fWVsc2UgaWYoXzB4NTQ5YTY2WydfY29sbGlkZV9zaGFwZSddPT09MHgyJiZfMHg0NzQwZmVbJ19jb2xsaWRlX3NoYXBlJ109PT0weDIpe2lmKGxxX21hdGhfdXRpbF8xWydMUU1hdGhVdGlsJ11bJ2ludGVyc2VjdHNfY2lyY2xlJ10oXzB4NTQ5YTY2Wyd3b3JsZF9yZWN0J10sXzB4NTQ5YTY2WydyYWRpdXMnXSxfMHg0NzQwZmVbJ3dvcmxkX3JlY3QnXSxfMHg0NzQwZmVbJ3JhZGl1cyddKSl7dGhpc1snY29sbGlkZV9vdGhlciddKF8weDU0OWE2NixfMHg0NzQwZmUpO319ZWxzZSBpZihfMHg1NDlhNjZbJ19jb2xsaWRlX3NoYXBlJ109PTB4MyYmXzB4NDc0MGZlWydfY29sbGlkZV9zaGFwZSddPT0weDIpe2lmKCFfMHg1NDlhNjZbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10pe3RoaXNbJ2NhY2hlX3BvbHlnb24nXShfMHg1NDlhNjYpO31pZih0aGlzWydwb2x5Z29uX2NpcmNsZSddKF8weDU0OWE2NlsnY2FjaGVfcG9seWdvbl9wb2ludHMnXSxfMHg0NzQwZmVbJ3dvcmxkX3JlY3QnXVsneCddLF8weDQ3NDBmZVsnd29ybGRfcmVjdCddWyd5J10sXzB4NDc0MGZlWydyYWRpdXMnXSkpe3RoaXNbJ2NvbGxpZGVfb3RoZXInXShfMHg1NDlhNjYsXzB4NDc0MGZlKTt9fWVsc2UgaWYoXzB4NTQ5YTY2WydfY29sbGlkZV9zaGFwZSddPT0weDImJl8weDQ3NDBmZVsnX2NvbGxpZGVfc2hhcGUnXT09MHgzKXtpZighXzB4NDc0MGZlWydjYWNoZV9wb2x5Z29uX3BvaW50cyddKXt0aGlzWydjYWNoZV9wb2x5Z29uJ10oXzB4NDc0MGZlKTt9aWYodGhpc1sncG9seWdvbl9jaXJjbGUnXShfMHg0NzQwZmVbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10sXzB4NTQ5YTY2Wyd3b3JsZF9yZWN0J11bJ3gnXSxfMHg1NDlhNjZbJ3dvcmxkX3JlY3QnXVsneSddLF8weDU0OWE2NlsncmFkaXVzJ10pKXt0aGlzWydjb2xsaWRlX290aGVyJ10oXzB4NTQ5YTY2LF8weDQ3NDBmZSk7fX1lbHNle2lmKCFfMHg1NDlhNjZbJ2NhY2hlX3BvbHlnb25fcG9pbnRzJ10pe3RoaXNbJ2NhY2hlX3BvbHlnb24nXShfMHg1NDlhNjYpO31pZighXzB4NDc0MGZlWydjYWNoZV9wb2x5Z29uX3BvaW50cyddKXt0aGlzWydjYWNoZV9wb2x5Z29uJ10oXzB4NDc0MGZlKTt9aWYodGhpc1sncG9seWdvbl9wb2x5Z29uJ10oXzB4NTQ5YTY2WydjYWNoZV9wb2x5Z29uX3BvaW50cyddLF8weDQ3NDBmZVsnY2FjaGVfcG9seWdvbl9wb2ludHMnXSkpe3RoaXNbJ2NvbGxpZGVfb3RoZXInXShfMHg1NDlhNjYsXzB4NDc0MGZlKTt9fX19fX19O18weDliZjYwZVsncG9seWdvbl9wb2x5Z29uJ109ZnVuY3Rpb24oXzB4MWExNTJjLF8weDQ4NGNkMil7dmFyIF8weDE3M2Y2MT1fMHgxYTE1MmM7dmFyIF8weDNmY2NkYT1fMHg0ODRjZDI7dmFyIF8weDIyZWVmOT1bXzB4MTczZjYxLF8weDNmY2NkYV07dmFyIF8weDM2NjJlZCxfMHgxMGJiZGIsXzB4MjkxMzNjLF8weDVjZTE5MixfMHg4MDExYzcsXzB4ZGZlOGJjO2Zvcih2YXIgXzB4M2FlZThjPTB4MDtfMHgzYWVlOGM8XzB4MjJlZWY5WydsZW5ndGgnXTtfMHgzYWVlOGMrKyl7dmFyIF8weDFjZThmZD1fMHgyMmVlZjlbXzB4M2FlZThjXTtmb3IodmFyIF8weDJhYjJmZj0weDA7XzB4MmFiMmZmPF8weDFjZThmZFsnbGVuZ3RoJ107XzB4MmFiMmZmKz0weDIpe3ZhciBfMHgzNzNiZDI9KF8weDJhYjJmZisweDIpJV8weDFjZThmZFsnbGVuZ3RoJ107dmFyIF8weDRiNjRhND17J3gnOl8weDFjZThmZFtfMHgzNzNiZDIrMHgxXS1fMHgxY2U4ZmRbXzB4MmFiMmZmKzB4MV0sJ3knOl8weDFjZThmZFtfMHgyYWIyZmZdLV8weDFjZThmZFtfMHgzNzNiZDJdfTtfMHgzNjYyZWQ9bnVsbDtfMHgxMGJiZGI9bnVsbDtmb3IoXzB4ZGZlOGJjPTB4MDtfMHhkZmU4YmM8XzB4MTczZjYxWydsZW5ndGgnXTtfMHhkZmU4YmMrPTB4Mil7XzB4MjkxMzNjPV8weDRiNjRhNFsneCddKl8weDE3M2Y2MVtfMHhkZmU4YmNdK18weDRiNjRhNFsneSddKl8weDE3M2Y2MVtfMHhkZmU4YmMrMHgxXTtpZihfMHgzNjYyZWQ9PT1udWxsfHxfMHgyOTEzM2M8XzB4MzY2MmVkKXtfMHgzNjYyZWQ9XzB4MjkxMzNjO31pZihfMHgxMGJiZGI9PT1udWxsfHxfMHgyOTEzM2M+XzB4MTBiYmRiKXtfMHgxMGJiZGI9XzB4MjkxMzNjO319XzB4NWNlMTkyPW51bGw7XzB4ODAxMWM3PW51bGw7Zm9yKF8weGRmZThiYz0weDA7XzB4ZGZlOGJjPF8weDNmY2NkYVsnbGVuZ3RoJ107XzB4ZGZlOGJjKz0weDIpe18weDI5MTMzYz1fMHg0YjY0YTRbJ3gnXSpfMHgzZmNjZGFbXzB4ZGZlOGJjXStfMHg0YjY0YTRbJ3knXSpfMHgzZmNjZGFbXzB4ZGZlOGJjKzB4MV07aWYoXzB4NWNlMTkyPT09bnVsbHx8XzB4MjkxMzNjPF8weDVjZTE5Mil7XzB4NWNlMTkyPV8weDI5MTMzYzt9aWYoXzB4ODAxMWM3PT09bnVsbHx8XzB4MjkxMzNjPl8weDgwMTFjNyl7XzB4ODAxMWM3PV8weDI5MTMzYzt9fWlmKF8weDEwYmJkYjxfMHg1Y2UxOTJ8fF8weDgwMTFjNzxfMHgzNjYyZWQpe3JldHVybiFbXTt9fX1yZXR1cm4hIVtdO307XzB4OWJmNjBlWydnZXRfZ3JvdXBfYnlfaW5kZXgnXT1mdW5jdGlvbihfMHg0MGUyZjEpe2Zvcih2YXIgXzB4ZmNhOGQxIGluIGxxX2NvbGxpZGVfY29uZmlnXzFbJ0xRQ29sbGlkZUNvbmZpZyddWydjb2xsaWRlX2dyb3VwX21hcCddKXt2YXIgXzB4NWFjODE1PWxxX2NvbGxpZGVfY29uZmlnXzFbJ0xRQ29sbGlkZUNvbmZpZyddWydjb2xsaWRlX2dyb3VwX21hcCddW18weGZjYThkMV07aWYoXzB4NWFjODE1WydpbmRleCddPT09XzB4NDBlMmYxKXtyZXR1cm4gXzB4NWFjODE1O319cmV0dXJuIHVuZGVmaW5lZDt9O18weDliZjYwZVsnZ2V0X2luZm9fYnlfaWQnXT1mdW5jdGlvbihfMHhmZmJjZGMpe3ZhciBfMHgzMDgzMjU7Zm9yKHZhciBfMHgxNDlmNWUgaW4gbHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ2NvbGxpZGVfZ3JvdXBfbWFwJ10pe3ZhciBfMHgxMjE1MGY9bHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ2NvbGxpZGVfZ3JvdXBfbWFwJ11bXzB4MTQ5ZjVlXTtpZihfMHgxMjE1MGZbJ2lkJ109PT1fMHhmZmJjZGMpe3JldHVybiBfMHgxMjE1MGY7fWlmKCFfMHgzMDgzMjUpe18weDMwODMyNT1fMHgxMjE1MGY7fX1yZXR1cm4gXzB4MzA4MzI1O307XzB4OWJmNjBlWydmaW5kX25lYXJlc3RfY29sbGlkZSddPWZ1bmN0aW9uKF8weDMwODA4Mil7dmFyIF8weDMxMzFjNT1bXTtmb3IodmFyIF8weGMzYzM4MD1fMHg5YmY2MGVbJ2NvbGxpZGVfYXJyJ11bJ2xlbmd0aCddLTB4MTtfMHhjM2MzODA+PTB4MDtfMHhjM2MzODAtLSl7dmFyIF8weDU4NWY0Zj1fMHg5YmY2MGVbJ2NvbGxpZGVfYXJyJ11bXzB4YzNjMzgwXTtpZihfMHgzMDgwODI9PT1fMHg1ODVmNGZ8fCFfMHg1ODVmNGZbJ2lzX2VuYWJsZSddKXtjb250aW51ZTt9aWYoXzB4MzA4MDgyWydmb2xsb3dfdGFyZ2V0X2NhdGVnb3J5J10pe2lmKF8weDU4NWY0ZlsnY29sbGlkZV9jYXRlZ29yeSddPT09XzB4MzA4MDgyWydmb2xsb3dfdGFyZ2V0X2NhdGVnb3J5J10pe18weDMxMzFjNVsncHVzaCddKF8weDU4NWY0Zik7fX1lbHNlIGlmKChfMHg1ODVmNGZbJ2NvbGxpZGVfY2F0ZWdvcnknXSZfMHgzMDgwODJbJ2NvbGxpZGVfbWFzayddKSE9PTB4MCl7XzB4MzEzMWM1WydwdXNoJ10oXzB4NTg1ZjRmKTt9fV8weDMxMzFjNVsnc29ydCddKGZ1bmN0aW9uKF8weDNkZGI4MyxfMHgzY2NmNzQpe3JldHVybiBfMHgzMDgwODJbJ3dvcmxkX3JlY3QnXVsnc3ViJ10oXzB4M2RkYjgzWyd3b3JsZF9yZWN0J10pWydtYWdTcXInXSgpLV8weDMwODA4Mlsnd29ybGRfcmVjdCddWydzdWInXShfMHgzY2NmNzRbJ3dvcmxkX3JlY3QnXSlbJ21hZ1NxciddKCk7fSk7cmV0dXJuIF8weDMxMzFjNVsweDBdO307XzB4OWJmNjBlWydjbGVhciddPWZ1bmN0aW9uKF8weDRjZjZhNil7aWYoXzB4NGNmNmE2PT09dm9pZCAweDApe18weDRjZjZhNj0hW107fWlmKF8weDRjZjZhNil7Zm9yKHZhciBfMHg1MzdiMmQ9dGhpc1snY29sbGlkZV9hcnInXVsnbGVuZ3RoJ10tMHgxO18weDUzN2IyZD49MHgwO18weDUzN2IyZC0tKXt2YXIgXzB4MTk3ZDJmPXRoaXNbJ2NvbGxpZGVfYXJyJ11bXzB4NTM3YjJkXTtpZihfMHgxOTdkMmZbJ2lzVmFsaWQnXSl7XzB4MTk3ZDJmWydub2RlJ11bJ2Rlc3Ryb3knXSgpO319fXRoaXNbJ2NvbGxpZGVfYXJyJ109W107fTtfMHg5YmY2MGVbJ2NoZWNrX2NvbGxpZGUnXT1mdW5jdGlvbihfMHgxODNkZTIpe3ZhciBfMHgyNWNlYTE9W107dmFyIF8weGE3YjA1O2lmKGxxX2NvbGxpZGVfY29uZmlnXzFbJ0xRQ29sbGlkZUNvbmZpZyddWydzd2l0Y2hfcXVhZF90cmVlJ10pe0xRUXVhZFRyZWVbJ3RlbXBfY29sbGlkZV9hcnInXT1bXTt0aGlzWydxdWFkX3RyZWUnXVsncmV0cmlldmUnXShfMHgxODNkZTIpO18weGE3YjA1PUxRUXVhZFRyZWVbJ3RlbXBfY29sbGlkZV9hcnInXTt9ZWxzZXtfMHhhN2IwNT10aGlzWydjb2xsaWRlX2FyciddO31mb3IodmFyIF8weDM4MWFmMj0weDA7XzB4MzgxYWYyPF8weGE3YjA1WydsZW5ndGgnXTtfMHgzODFhZjIrKyl7dmFyIF8weDVkYjdiMz1fMHhhN2IwNVtfMHgzODFhZjJdO2lmKF8weDE4M2RlMj09PV8weDVkYjdiMyl7Y29udGludWU7fWlmKF8weDE4M2RlMlsnY29sbGlkZV9jYXRlZ29yeSddJl8weDVkYjdiM1snY29sbGlkZV9tYXNrJ10pe2lmKF8weDE4M2RlMlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MSYmXzB4NWRiN2IzWydfY29sbGlkZV9zaGFwZSddPT09MHgxKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX3JlY3QnXShfMHgxODNkZTJbJ3dvcmxkX3JlY3QnXSxfMHg1ZGI3YjNbJ3dvcmxkX3JlY3QnXSkpe18weDI1Y2VhMVsncHVzaCddKF8weDVkYjdiMyk7fX1lbHNlIGlmKF8weDE4M2RlMlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MSYmXzB4NWRiN2IzWydfY29sbGlkZV9zaGFwZSddPT09MHgyKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX2NpcmNsZV9yZWN0J10oXzB4NWRiN2IzWyd3b3JsZF9yZWN0J10sXzB4NWRiN2IzWydyYWRpdXMnXSxfMHgxODNkZTJbJ3dvcmxkX3JlY3QnXSkpe18weDI1Y2VhMVsncHVzaCddKF8weDVkYjdiMyk7fX1lbHNlIGlmKF8weDE4M2RlMlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MiYmXzB4NWRiN2IzWydfY29sbGlkZV9zaGFwZSddPT09MHgxKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX2NpcmNsZV9yZWN0J10oXzB4MTgzZGUyWyd3b3JsZF9yZWN0J10sXzB4MTgzZGUyWydyYWRpdXMnXSxfMHg1ZGI3YjNbJ3dvcmxkX3JlY3QnXSkpe18weDI1Y2VhMVsncHVzaCddKF8weDVkYjdiMyk7fX1lbHNlIGlmKF8weDE4M2RlMlsnX2NvbGxpZGVfc2hhcGUnXT09PTB4MiYmXzB4NWRiN2IzWydfY29sbGlkZV9zaGFwZSddPT09MHgyKXtpZihscV9tYXRoX3V0aWxfMVsnTFFNYXRoVXRpbCddWydpbnRlcnNlY3RzX2NpcmNsZSddKF8weDE4M2RlMlsnd29ybGRfcmVjdCddLF8weDE4M2RlMlsncmFkaXVzJ10sXzB4NWRiN2IzWyd3b3JsZF9yZWN0J10sXzB4NWRiN2IzWydyYWRpdXMnXSkpe18weDI1Y2VhMVsncHVzaCddKF8weDVkYjdiMyk7fX1lbHNlIGlmKHRoaXNbJ3BvbHlnb25fcG9seWdvbiddKF8weDE4M2RlMixfMHg1ZGI3YjMpKXtfMHgyNWNlYTFbJ3B1c2gnXShfMHg1ZGI3YjMpO319fXJldHVybiBfMHgyNWNlYTE7fTtfMHg5YmY2MGVbJ2lzX2VuYWJsZSddPSFbXTtfMHg5YmY2MGVbJ2NvbGxpZGVfYXJyJ109W107XzB4OWJmNjBlWydxdWFkX3RyZWUnXT1uZXcgTFFRdWFkVHJlZShuZXcgbHFfZGF0YV8xWydMUVJlY3QnXShscV9jb2xsaWRlX2NvbmZpZ18xWydMUUNvbGxpZGVDb25maWcnXVsnYWN0aXZlX2FyZWFfeCddLGxxX2NvbGxpZGVfY29uZmlnXzFbJ0xRQ29sbGlkZUNvbmZpZyddWydhY3RpdmVfYXJlYV95J10sbHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ2FjdGl2ZV9hcmVhX3dpZHRoJ10sbHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ2FjdGl2ZV9hcmVhX2hlaWdodCddKSxscV9jb2xsaWRlX2NvbmZpZ18xWydMUUNvbGxpZGVDb25maWcnXVsnbWF4X25vZGVfbGVuJ10sbHFfY29sbGlkZV9jb25maWdfMVsnTFFDb2xsaWRlQ29uZmlnJ11bJ21heF9ub2RlX2xldmVsJ10pO3JldHVybiBfMHg5YmY2MGU7fSgpO2V4cG9ydHNbJ0xRQ29sbGlkZVN5c3RlbSddPUxRQ29sbGlkZVN5c3RlbTt2YXIgQXV0b1J1bj1mdW5jdGlvbigpe2Z1bmN0aW9uIF8weGY1YjA4Nygpe3RoaXNbJ2ZsYWcnXT0hIVtdO31fMHhmNWIwODdbJ3Byb3RvdHlwZSddWyd1cGRhdGUnXT1mdW5jdGlvbihfMHgzNjVlNTUpe2lmKGxxX2NvbGxpZGVfY29uZmlnXzFbJ0xRQ29sbGlkZUNvbmZpZyddWydwZXJfZnJhbWUnXT09PTB4M2Mpe0xRQ29sbGlkZVN5c3RlbVsndXBkYXRlX2xvZ2ljJ10oXzB4MzY1ZTU1KTt9ZWxzZXtpZih0aGlzWydmbGFnJ10pe3RoaXNbJ2ZsYWcnXT0hW107TFFDb2xsaWRlU3lzdGVtWyd1cGRhdGVfbG9naWMnXShfMHgzNjVlNTUpO31lbHNle3RoaXNbJ2ZsYWcnXT0hIVtdO319fTtyZXR1cm4gXzB4ZjViMDg3O30oKTtnYW1lWydvbiddKGdhbWVbJ0VWRU5UX0dBTUVfSU5JVEVEJ10sZnVuY3Rpb24oKXtpZihscV9jb2xsaWRlX2NvbmZpZ18xWydMUUNvbGxpZGVDb25maWcnXVsnc3dpdGNoX2F1dG9fcnVuJ10mJiFDQ19FRElUT1Ipe3ZhciBfMHgyODdmODY9bmV3IEF1dG9SdW4oKTtkaXJlY3RvclsnZ2V0U2NoZWR1bGVyJ10oKVsnZW5hYmxlRm9yVGFyZ2V0J10oXzB4Mjg3Zjg2KTtkaXJlY3RvclsnZ2V0U2NoZWR1bGVyJ10oKVsnc2NoZWR1bGVVcGRhdGUnXShfMHgyODdmODYsU2NoZWR1bGVyWydQUklPUklUWV9TWVNURU0nXSwhW10pO319KTsiXX0= -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/prop/Key.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, '92465qnUTJDw5STq1t7oelo', 'Key'); -// Script/prop/Key.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 Key = /** @class */ (function (_super) { - __extends(Key, _super); - function Key() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.time = 60; - return _this; - // update (dt) {} - } - // mapInfo: number[][] = []; - Key.prototype.onLoad = function () { - }; - Key.prototype.start = function () { - }; - Key.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); - }; - Key.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(); - } - }; - Key = __decorate([ - ccclass - ], Key); - return Key; -}(cc.Component)); -exports.default = Key; - -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxLZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsOEJBQWlDO0FBRTNCLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBSzFDO0lBQWlDLHVCQUFZO0lBQTdDO1FBQUEscUVBaUNDO1FBL0JHLFVBQUksR0FBVyxFQUFFLENBQUM7O1FBOEJsQixpQkFBaUI7SUFDckIsQ0FBQztJQTdCRyw0QkFBNEI7SUFFNUIsb0JBQU0sR0FBTjtJQUVBLENBQUM7SUFFRCxtQkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELGtCQUFJLEdBQUosVUFBSyxJQUFJO1FBQ0wsSUFBRyxJQUFJO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBR0Qsd0JBQVUsR0FBVjtRQUNJLElBQUksQ0FBQyxJQUFJLEVBQUcsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEYsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBQztZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsYUFBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsQyx1QkFBdUI7U0FDMUI7SUFDTCxDQUFDO0lBOUJnQixHQUFHO1FBRHZCLE9BQU87T0FDYSxHQUFHLENBaUN2QjtJQUFELFVBQUM7Q0FqQ0QsQUFpQ0MsQ0FqQ2dDLEVBQUUsQ0FBQyxTQUFTLEdBaUM1QztrQkFqQ29CLEdBQUciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4uL01hcFwiO1xyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEtleSBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBzdGF0aWMgX2luc3RhbmNlOiBhbnk7XHJcbiAgICB0aW1lOiBudW1iZXIgPSA2MDtcclxuXHJcbiAgICAvLyBtYXBJbmZvOiBudW1iZXJbXVtdID0gW107XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuXHJcbiAgICB9IFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgIH1cclxuXHJcbiAgICBpbml0KHRpbWUpe1xyXG4gICAgICAgIGlmKHRpbWUpIHRoaXMudGltZSA9IHRpbWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLnRpbWUudG9TdHJpbmcoKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMudXBkYXRlVGltZSwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgXHJcbiAgICB1cGRhdGVUaW1lKCl7XHJcbiAgICAgICAgdGhpcy50aW1lIC0tO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLnRpbWUudG9TdHJpbmcoKTtcclxuICAgICAgICBpZih0aGlzLnRpbWUgPD0gMCl7XHJcbiAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnVwZGF0ZVRpbWUpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuZmFpbExldmVsKCk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 -//------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/lq_base/util/lq_pool_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, '984882e2dpD17LvCQnTDykE', 'lq_pool_util'); -// Script/lq_base/util/lq_pool_util.ts - -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.LQPoolUtil = void 0; -var Animation = cc.Animation; -var ParticleSystem = cc.ParticleSystem; -var instantiate = cc.instantiate; -var LQPoolUtil = /** @class */ (function () { - function LQPoolUtil() { - } - LQPoolUtil.reset_ani = function (node) { - var ani = node.getComponent(Animation); - if (ani) { - var clip = ani.currentClip ? ani.currentClip : ani.defaultClip; - if (!clip) { - return; - } - if (ani.playOnLoad && clip && clip.wrapMode === cc.WrapMode.Normal) { - ani.play(clip.name); - } - } - else { - var ani_1 = node.getComponent(sp.Skeleton); - if (ani_1 && !ani_1.loop) { - ani_1.setAnimation(0, ani_1.animation, false); - } - } - for (var i = 0; i < node.childrenCount; i++) { - var child = node.children[i]; - this.reset_ani(child); - } - }; - LQPoolUtil.recursion_stop_particle = function (node, obj) { - var p = node.getComponent(ParticleSystem); - if (p) { - p.stopSystem(); - obj.has = true; - p.node.opacity = 0; - } - for (var i = 0; i < node.childrenCount; i++) { - var child = node.children[i]; - this.recursion_stop_particle(child, obj); - } - }; - LQPoolUtil.recursion_reset_particle = function (node) { - if (!node.isValid) { - return; - } - var p = node.getComponent(ParticleSystem); - if (p) { - p.resetSystem(); - p.node.opacity = 255; - } - for (var i = 0; i < node.childrenCount; i++) { - var child = node.children[i]; - this.recursion_reset_particle(child); - } - }; - LQPoolUtil.get_node_from_pool = function (node_parent, prefab) { - var arr = this.any_pool[prefab.uuid]; - if (!arr) { - this.any_pool[prefab.uuid] = []; - arr = []; - } - var node = arr.pop(); - if (!node || !node.isValid) { - node = instantiate(prefab); - //@ts-ignore - node.recovery_uuid = prefab.uuid; - //@ts-ignore - node.is_from_pool = false; - node_parent.addChild(node); - } - else { - node.active = true; - //@ts-ignore - node.is_from_pool = true; - this.reset_ani(node); - } - return node; - }; - LQPoolUtil.check_pool_push = function (arr, node) { - for (var i = 0; i < arr.length; i++) { - if (arr[i] === node) { - //@ts-ignore - console.warn("\u6C60\u5B50\u4E0D\u80FD\u91CD\u590D\u6DFB\u52A0\u8282\u70B9", node.name, node.recovery_uuid); - return; - } - } - node.active = false; - arr.push(node); - }; - LQPoolUtil.push_node_to_pool = function (node) { - var _this = this; - //@ts-ignore - if (!node.recovery_uuid || !this.any_pool[node.recovery_uuid]) { - if (node.isValid) { - node.destroy(); - } - return; - } - var obj = { has: false }; - this.recursion_stop_particle(node, obj); - if (obj.has) { - var old_opacity_1 = node.opacity; - node.opacity = 0; - setTimeout(function () { - _this.recursion_reset_particle(node); - node.opacity = old_opacity_1; - //@ts-ignore - _this.check_pool_push(_this.any_pool[node.recovery_uuid], node); - }, 500); - } - else { - //@ts-ignore - this.check_pool_push(this.any_pool[node.recovery_uuid], node); - } - }; - LQPoolUtil.any_pool = {}; - return LQPoolUtil; -}()); -exports.LQPoolUtil = LQPoolUtil; - -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9wb29sX3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztBQUNoQyxJQUFPLGNBQWMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO0FBQzFDLElBQU8sV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7QUFFcEM7SUFBQTtJQWdIQSxDQUFDO0lBN0drQixvQkFBUyxHQUF4QixVQUF5QixJQUFVO1FBQy9CLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsSUFBSSxHQUFHLEVBQUU7WUFDTCxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQy9ELElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1AsT0FBTzthQUNWO1lBQ0QsSUFBSSxHQUFHLENBQUMsVUFBVSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUNoRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN2QjtTQUNKO2FBQU07WUFDSCxJQUFJLEtBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxJQUFJLEtBQUcsSUFBSSxDQUFDLEtBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2xCLEtBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLEtBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDN0M7U0FDSjtRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMs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QyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7YUFBTTtZQUNILFlBQVk7WUFDWixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2pFO0lBQ0wsQ0FBQztJQTlHYyxtQkFBUSxHQUE4QixFQUFFLENBQUM7SUErRzVELGlCQUFDO0NBaEhELEFBZ0hDLElBQUE7QUFoSFksZ0NBQVUiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTm9kZSA9IGNjLk5vZGU7XHJcbmltcG9ydCBBbmltYXRpb24gPSBjYy5BbmltYXRpb247XHJcbmltcG9ydCBQYXJ0aWNsZVN5c3RlbSA9IGNjLlBhcnRpY2xlU3lzdGVtO1xyXG5pbXBvcnQgaW5zdGFudGlhdGUgPSBjYy5pbnN0YW50aWF0ZTtcclxuXHJcbmV4cG9ydCBjbGFzcyBMUVBvb2xVdGlsIHtcclxuICAgIHByaXZhdGUgc3RhdGljIGFueV9wb29sOiB7IFtrZXk6IHN0cmluZ106IE5vZGVbXSB9ID0ge307XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVzZXRfYW5pKG5vZGU6IE5vZGUpIHtcclxuICAgICAgICBsZXQgYW5pID0gbm9kZS5nZXRDb21wb25lbnQoQW5pbWF0aW9uKTtcclxuICAgICAgICBpZiAoYW5pKSB7XHJcbiAgICAgICAgICAgIGxldCBjbGlwID0gYW5pLmN1cnJlbnRDbGlwID8gYW5pLmN1cnJlbnRDbGlwIDogYW5pLmRlZmF1bHRDbGlwO1xyXG4gICAgICAgICAgICBpZiAoIWNsaXApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYW5pLnBsYXlPbkxvYWQgJiYgY2xpcCAmJiBjbGlwLndyYXBNb2RlID09PSBjYy5XcmFwTW9kZS5Ob3JtYWwpIHtcclxuICAgICAgICAgICAgICAgIGFuaS5wbGF5KGNsaXAubmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgYW5pID0gbm9kZS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xyXG4gICAgICAgICAgICBpZiAoYW5pICYmICFhbmkubG9vcCkge1xyXG4gICAgICAgICAgICAgICAgYW5pLnNldEFuaW1hdGlvbigwLCBhbmkuYW5pbWF0aW9uLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlLmNoaWxkcmVuQ291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBjaGlsZCA9IG5vZGUuY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRfYW5pKGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyByZWN1cnNpb25fc3RvcF9wYXJ0aWNsZShub2RlOiBOb2RlLCBvYmo6IHsgaGFzOiBib29sZWFuIH0pIHtcclxuICAgICAgICBjb25zdCBwID0gbm9kZS5nZXRDb21wb25lbnQoUGFydGljbGVTeXN0ZW0pO1xyXG4gICAgICAgIGlmIChwKSB7XHJcbiAgICAgICAgICAgIHAuc3RvcFN5c3RlbSgpO1xyXG4gICAgICAgICAgICBvYmouaGFzID0gdHJ1ZTtcclxuICAgICAgICAgICAgcC5ub2RlLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuY2hpbGRyZW5Db3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZS5jaGlsZHJlbltpXTtcclxuICAgICAgICAgICAgdGhpcy5yZWN1cnNpb25fc3RvcF9wYXJ0aWNsZShjaGlsZCwgb2JqKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyByZWN1cnNpb25fcmVzZXRfcGFydGljbGUobm9kZTogTm9kZSkge1xyXG4gICAgICAgIGlmICghbm9kZS5pc1ZhbGlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcCA9IG5vZGUuZ2V0Q29tcG9uZW50KFBhcnRpY2xlU3lzdGVtKTtcclxuICAgICAgICBpZiAocCkge1xyXG4gICAgICAgICAgICBwLnJlc2V0U3lzdGVtKCk7XHJcbiAgICAgICAgICAgIHAubm9kZS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuY2hpbGRyZW5Db3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZS5jaGlsZHJlbltpXTtcclxuICAgICAgICAgICAgdGhpcy5yZWN1cnNpb25fcmVzZXRfcGFydGljbGUoY2hpbGQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldF9ub2RlX2Zyb21fcG9vbChub2RlX3BhcmVudDogTm9kZSwgcHJlZmFiOiBOb2RlKSB7XHJcbiAgICAgICAgbGV0IGFyciA9IHRoaXMuYW55X3Bvb2xbcHJlZmFiLnV1aWRdO1xyXG4gICAgICAgIGlmICghYXJyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYW55X3Bvb2xbcHJlZmFiLnV1aWRdID0gW107XHJcbiAgICAgICAgICAgIGFyciA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbm9kZSA9IGFyci5wb3AoKTtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIW5vZGUuaXNWYWxpZCkge1xyXG4gICAgICAgICAgICBub2RlID0gaW5zdGFudGlhdGUocHJlZmFiKTtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIG5vZGUucmVjb3ZlcnlfdXVpZCA9IHByZWZhYi51dWlkO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgbm9kZS5pc19mcm9tX3Bvb2wgPSBmYWxzZTtcclxuICAgICAgICAgICAgbm9kZV9wYXJlbnQuYWRkQ2hpbGQobm9kZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgbm9kZS5pc19mcm9tX3Bvb2wgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0X2FuaShub2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgY2hlY2tfcG9vbF9wdXNoKGFycjogTm9kZVtdLCBub2RlOiBOb2RlKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGFycltpXSA9PT0gbm9kZSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYOaxoOWtkOS4jeiDvemHjeWkjea3u+WKoOiKgueCuWAsIG5vZGUubmFtZSwgbm9kZS5yZWNvdmVyeV91dWlkKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGFyci5wdXNoKG5vZGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgcHVzaF9ub2RlX3RvX3Bvb2wobm9kZTogTm9kZSkge1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIGlmICghbm9kZS5yZWNvdmVyeV91dWlkIHx8ICF0aGlzLmFueV9wb29sW25vZGUucmVjb3ZlcnlfdXVpZF0pIHtcclxuICAgICAgICAgICAgaWYgKG5vZGUuaXNWYWxpZCkge1xyXG4gICAgICAgICAgICAgICAgbm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBvYmo6IHsgaGFzOiBib29sZWFuIH0gPSB7aGFzOiBmYWxzZX07XHJcbiAgICAgICAgdGhpcy5yZWN1cnNpb25fc3RvcF9wYXJ0aWNsZShub2RlLCBvYmopO1xyXG4gICAgICAgIGlmIChvYmouaGFzKSB7XHJcbiAgICAgICAgICAgIGxldCBvbGRfb3BhY2l0eSA9IG5vZGUub3BhY2l0eTtcclxuICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlY3Vyc2lvbl9yZXNldF9wYXJ0aWNsZShub2RlKTtcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IG9sZF9vcGFjaXR5O1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrX3Bvb2xfcHVzaCh0aGlzLmFueV9wb29sW25vZGUucmVjb3ZlcnlfdXVpZF0sIG5vZGUpO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrX3Bvb2xfcHVzaCh0aGlzLmFueV9wb29sW25vZGUucmVjb3ZlcnlfdXVpZF0sIG5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ== -//------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() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/lq_base/data/lq_interface.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, '41e45V6/vBNz5ftgHCoFmei', 'lq_interface'); -// Script/lq_base/data/lq_interface.ts - -"use strict"; -Object.defineProperty(exports, "__esModule", { value: 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFxkYXRhXFxscV9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBWZWMyID0gY2MuVmVjMjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVBvcyB7XHJcbiAgICB4OiBudW1iZXI7XHJcbiAgICB5OiBudW1iZXI7XHJcblxyXG4gICAgc3ViKHBvczogSVBvcyk6IFZlYzI7XHJcblxyXG4gICAgYWRkKHBvczogSVBvcyk6IFZlYzI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJlY3Qge1xyXG4gICAgeDogbnVtYmVyO1xyXG4gICAgeTogbnVtYmVyO1xyXG4gICAgd2lkdGg6IG51bWJlcjtcclxuICAgIGhlaWdodDogbnVtYmVyO1xyXG4gICAgaGFsZl93aWR0aDogbnVtYmVyO1xyXG4gICAgaGFsZl9oZWlnaHQ6IG51bWJlcjtcclxuXHJcbiAgICBzdWIocG9zOiBJUG9zKTogVmVjMjtcclxuXHJcbiAgICBhZGQocG9zOiBJUG9zKTogVmVjMjtcclxufSJdfQ== -//------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() { @@ -14937,7 +12754,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_base/util/lq_math_util.js'; + var __filename = 'preview-scripts/assets/Script/prop/Adhesive.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -14945,57 +12762,80 @@ cc._RF.pop(); }; 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 +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 }); -exports.LQMathUtil = void 0; -var LQMathUtil = /** @class */ (function () { - function LQMathUtil() { +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; } - LQMathUtil.random = function (min, max) { - if (min === max) { - return min; + 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); + } } - else if (min < max) { - return Math.random() * (max - min) + min; - } - else { - return Math.random() * (min - max) + max; + 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; } }; - 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; + Adhesive = __decorate([ + ccclass + ], Adhesive); + return Adhesive; +}(cc.Component)); +exports.default = Adhesive; cc._RF.pop(); } @@ -15008,7 +12848,2088 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9tYXRoX3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7SUFBQTtJQTZDQSxDQUFDO0lBNUNpQixpQkFBTSxHQUFwQixVQUFxQixHQUFXLEVBQUUsR0FBVztRQUN6QyxJQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUU7WUFDYixPQUFPLEdBQUcsQ0FBQztTQUNkO2FBQU0sSUFBSSxHQUFHLEdBQUcsR0FBRyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUM1QzthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQzVDO0lBQ0wsQ0FBQztJQUVhLHFCQUFVLEdBQXhCLFVBQXlCLEdBQVcsRUFBRSxHQUFXO1FBQzdDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFYSxzQkFBVyxHQUF6QixVQUEwQixHQUFTLEVBQUUsVUFBZ0I7UUFDakQsSUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVhLDBCQUFlLEdBQTdCLFVBQThCLEVBQVMsRUFBRSxFQUFTO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7SUFDNUgsQ0FBQztJQUVhLGdDQUFxQixHQUFuQyxVQUFvQyxDQUFPLEVBQUUsQ0FBUTtRQUNqRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDdEksQ0FBQztJQUVhLGtDQUF1QixHQUFyQyxVQUFzQyxFQUFRLEVBQUUsRUFBUSxFQUFFLENBQVM7UUFDL0QsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVhLDRCQUFpQixHQUEvQixVQUFnQyxFQUFRLEVBQUUsRUFBVSxFQUFFLEVBQVEsRUFBRSxFQUFVO1FBQ3RFLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFYSxpQ0FBc0IsR0FBcEMsVUFBcUMsQ0FBTyxFQUFFLENBQVMsRUFBRSxJQUFXO1FBQ2hFLElBQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEMsSUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELElBQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLElBQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRCxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxPQUFPLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUNMLGlCQUFDO0FBQUQsQ0E3Q0EsQUE2Q0MsSUFBQTtBQTdDWSxnQ0FBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SVBvcywgSVJlY3R9IGZyb20gXCIuLi9kYXRhL2xxX2ludGVyZmFjZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIExRTWF0aFV0aWwge1xyXG4gICAgcHVibGljIHN0YXRpYyByYW5kb20obWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAobWluID09PSBtYXgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG1pbjtcclxuICAgICAgICB9IGVsc2UgaWYgKG1pbiA8IG1heCkge1xyXG4gICAgICAgICAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4pICsgbWluO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnJhbmRvbSgpICogKG1pbiAtIG1heCkgKyBtYXg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgcmFuZG9tX2ludChtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMucmFuZG9tKG1pbiwgbWF4KSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXRfcmFkaWFucyhwb3M6IElQb3MsIHRhcmdldF9wb3M6IElQb3MpIHtcclxuICAgICAgICBjb25zdCByID0gTWF0aC5hdGFuMih0YXJnZXRfcG9zLnkgLSBwb3MueSwgdGFyZ2V0X3Bvcy54IC0gcG9zLngpO1xyXG4gICAgICAgIHJldHVybiByID4gMCA/IHIgOiByICsgNi4yODtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGludGVyc2VjdHNfcmVjdChyMTogSVJlY3QsIHIyOiBJUmVjdCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmFicyhyMS54IC0gcjIueCkgPCByMS5oYWxmX3dpZHRoICsgcjIuaGFsZl93aWR0aCAmJiBNYXRoLmFicyhyMS55IC0gcjIueSkgPCByMS5oYWxmX2hlaWdodCArIHIyLmhhbGZfaGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJzZWN0c19wb2ludF9yZWN0KHA6IElQb3MsIHI6IElSZWN0KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChwLnggPiByLnggLSByLndpZHRoICogMC41KSAmJiAocC54IDwgci54ICsgci53aWR0aCAqIDAuNSkgJiYgKHAueSA+IHIueSAtIHIuaGVpZ2h0ICogMC41KSAmJiAocC55IDwgci55ICsgci5oZWlnaHQgKiAwLjUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJzZWN0c19wb2ludF9jaXJjbGUocDE6IElQb3MsIHAyOiBJUG9zLCByOiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gcDEuc3ViKHAyKS5tYWdTcXIoKSA8IHIgKiByO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJzZWN0c19jaXJjbGUocDE6IElQb3MsIHIxOiBudW1iZXIsIHAyOiBJUG9zLCByMjogbnVtYmVyKSB7XHJcbiAgICAgICAgcmV0dXJuIHAxLnN1YihwMikubWFnKCkgPCByMSArIHIyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJzZWN0c19jaXJjbGVfcmVjdChwOiBJUG9zLCByOiBudW1iZXIsIHJlY3Q6IElSZWN0KSB7XHJcbiAgICAgICAgY29uc3QgcmVsYXRpdmVfeCA9IHAueCAtIHJlY3QueDtcclxuICAgICAgICBjb25zdCByZWxhdGl2ZV95ID0gcC55IC0gcmVjdC55O1xyXG4gICAgICAgIGNvbnN0IGR4ID0gTWF0aC5taW4ocmVsYXRpdmVfeCwgcmVjdC5oYWxmX3dpZHRoKTtcclxuICAgICAgICBjb25zdCBkeDEgPSBNYXRoLm1heChkeCwgLXJlY3QuaGFsZl93aWR0aCk7XHJcbiAgICAgICAgY29uc3QgZHkgPSBNYXRoLm1pbihyZWxhdGl2ZV95LCByZWN0LmhhbGZfaGVpZ2h0KTtcclxuICAgICAgICBjb25zdCBkeTEgPSBNYXRoLm1heChkeSwgLXJlY3QuaGFsZl9oZWlnaHQpO1xyXG4gICAgICAgIHJldHVybiAoZHgxIC0gcmVsYXRpdmVfeCkgKiAoZHgxIC0gcmVsYXRpdmVfeCkgKyAoZHkxIC0gcmVsYXRpdmVfeSkgKiAoZHkxIC0gcmVsYXRpdmVfeSkgPD0gciAqIHI7XHJcbiAgICB9XHJcbn0iXX0= +//# 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/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/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/lq_collide_system/lq_collide.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, 'd2addiRqXVKQ4YEp6sK5d6R', 'lq_collide'); +// Script/lq_collide_system/lq_collide.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.LQCollide = void 0; +var ccclass = cc._decorator.ccclass; +var property = cc._decorator.property; +var requireComponent = cc._decorator.requireComponent; +var menu = cc._decorator.menu; +var Component = cc.Component; +var Enum = cc.Enum; +var Size = cc.Size; +var Vec2 = cc.Vec2; +var Graphics = cc.Graphics; +var Node = cc.Node; +var macro = cc.macro; +var Color = cc.Color; +var lq_const_1 = require("../lq_base/data/lq_const"); +var lq_collide_config_1 = require("./lq_collide_config"); +var lq_collide_system_1 = require("./lq_collide_system"); +var lq_data_1 = require("../lq_base/data/lq_data"); +var lq_collide_base_1 = require("./lq_collide_base"); +var lq_game_util_1 = require("../lq_base/util/lq_game_util"); +var Map_1 = require("../Map"); +var LQCollide = /** @class */ (function (_super) { + __extends(LQCollide, _super); + function LQCollide() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._draw_collide = true; + _this.can_move = true; + _this._collide_shape = lq_const_1.LQCollideShape.Rect; + _this._collide_group_index = -1; + _this.collide_group_id = 0; + _this.collide_scle = 1; + _this._radius = 50; + _this._size = new Size(100, 100); + _this._polygon_points = [new Vec2(-45, -45), new Vec2(45, -45), new Vec2(60, 40), new Vec2(0, 70), new Vec2(-60, 40)]; + //collide碰撞位置偏移 + _this._offset = new Vec2(0, 0); + _this.data_string = ''; + //每个collide的id唯一 + _this.collide_id = 0; + //状态 + _this.collide_status = lq_const_1.LQCollideStatus.Idle; + //是否可碰撞 + _this.is_enable = true; + //是否开启碰撞前后的函数 + _this.is_open_func = true; + //碰撞类别 + _this.collide_category = 0; + //碰撞筛选 + _this.collide_mask = 0; + _this.collide_map = {}; + return _this; + } + LQCollide_1 = LQCollide; + Object.defineProperty(LQCollide.prototype, "draw_collide", { + get: function () { + return this._draw_collide; + }, + set: function (value) { + this._draw_collide = value; + this.draw_shape(); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LQCollide.prototype, "collide_shape", { + get: function () { + return this._collide_shape; + }, + set: function (value) { + this._collide_shape = value; + this.draw_shape(); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LQCollide.prototype, "collide_group_index", { + get: function () { + if (this._collide_group_index === -1) { + this._collide_group_index = lq_collide_system_1.LQCollideSystem.get_info_by_id(this.collide_group_id).index; + } + return this._collide_group_index; + }, + set: function (value) { + if (this._collide_group_index === value) { + return; + } + this._collide_group_index = value; + this.collide_group_id = lq_collide_system_1.LQCollideSystem.get_group_by_index(value).id; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LQCollide.prototype, "radius", { + get: function () { + return this._radius; + }, + set: function (value) { + this._radius = value; + this.draw_shape(); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LQCollide.prototype, "size", { + // 物体速度 + // public velocity: Vec2 = new Vec2(0, 0); + get: function () { + return this._size; + }, + set: function (value) { + this._size = value; + if (this.world_rect) { + this.world_rect.width = value.width; + this.world_rect.height = value.height; + this.world_rect.half_width = value.width * 0.5; + this.world_rect.half_height = value.height * 0.5; + } + this.draw_shape(); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LQCollide.prototype, "offset", { + get: function () { + return this._offset; + }, + set: function (value) { + this._offset = value; + this.draw_shape(); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LQCollide.prototype, "polygon_points", { + get: function () { + return this._polygon_points; + }, + set: function (value) { + this._polygon_points = value; + this.draw_shape(); + }, + enumerable: false, + configurable: true + }); + //检测绘制组件是否添加 + LQCollide.prototype.checkDebugDrawValid = function () { + if (!this._debugDrawer || !this._debugDrawer.isValid) { + var node = this.node.getChildByName('Collide'); + if (!node) { + node = new Node('Collide'); + node.zIndex = macro.MAX_ZINDEX; + this.node.addChild(node); + // @ts-ignore + node._objFlags = 1096; + this._debugDrawer = node.addComponent(Graphics); + this._debugDrawer.lineWidth = 3; + this._debugDrawer.strokeColor = new Color(255, 0, 0); + this._debugDrawer.fillColor = new Color(255, 0, 0); + } + else { + this._debugDrawer = node.getComponent(Graphics); + } + } + }; + //绘制形状 + LQCollide.prototype.draw_shape = function () { + if (!this._draw_collide) { + if (this._debugDrawer) { + this._debugDrawer.clear(); + } + return; + } + this.checkDebugDrawValid(); + this._debugDrawer.clear(); + var o1 = { key: 'scaleX', value: this.node.scale }; + var o2 = { key: 'scaleY', value: this.node.scale }; + lq_game_util_1.LQGameUtil.recursion_node_property(this.node, o1); + lq_game_util_1.LQGameUtil.recursion_node_property(this.node, o2); + if (o1.value === 0 || o2.value === 0) { + return; + } + this._debugDrawer.node.scaleX = 1 / o1.value; + this._debugDrawer.node.scaleY = 1 / o2.value; + switch (this._collide_shape) { + case lq_const_1.LQCollideShape.Circle: + this._debugDrawer.circle(+this._offset.x, +this._offset.y, this._radius); + this._debugDrawer.stroke(); + break; + case lq_const_1.LQCollideShape.Rect: + this._debugDrawer.moveTo(-this._size.width * 0.5 + this._offset.x, -this._size.height * 0.5 + this._offset.y); + this._debugDrawer.lineTo(-this._size.width * 0.5 + this._offset.x, +this._size.height * 0.5 + this._offset.y); + this._debugDrawer.lineTo(this._size.width * 0.5 + this._offset.x, +this._size.height * 0.5 + this._offset.y); + this._debugDrawer.lineTo(this._size.width * 0.5 + this._offset.x, -this._size.height * 0.5 + this._offset.y); + this._debugDrawer.lineTo(-this._size.width * 0.5 + this._offset.x, -this._size.height * 0.5 + this._offset.y); + this._debugDrawer.stroke(); + break; + case lq_const_1.LQCollideShape.Polygon: + this._debugDrawer.moveTo(this._polygon_points[0].x + this._offset.x, this._polygon_points[0].y + this._offset.y); + for (var i = 1; i < this._polygon_points.length; i++) { + this._debugDrawer.lineTo(this._polygon_points[i].x + this._offset.x, this._polygon_points[i].y + this._offset.y); + } + this._debugDrawer.lineTo(this._polygon_points[0].x + this._offset.x, this._polygon_points[0].y + this._offset.y); + this._debugDrawer.stroke(); + break; + } + }; + //仅用于矩形 + LQCollide.prototype.update_size = function (width, height) { + this._size.width = width; + this.world_rect.width = width; + this.world_rect.half_width = width * 0.5; + this._size.height = height; + this.world_rect.height = height; + this.world_rect.half_height = height * 0.5; + this.draw_shape(); + }; + LQCollide.prototype.init_lq_collide = function () { + this.world_rect = new lq_data_1.LQRect(0, 0, this._size.width, this._size.height); + this.draw_shape(); + var info = lq_collide_system_1.LQCollideSystem.get_info_by_id(this.collide_group_id); + this.collide_mask = info.mask; + this.collide_category = info.category; + this.collide_id = LQCollide_1.id_maker++; + this.updateCollisionArea(); + }; + LQCollide.prototype.updateCollisionArea = function () { + if (this._size.width == 0 || this._size.height == 0 || Map_1.default._instance == undefined) { + return; + } + if (Map_1.default._instance.node.scale) { + var scaleX_1 = Map_1.default._instance.node.scale; + var scaleY_1 = Map_1.default._instance.node.scale; + if (scaleX_1 === 0 || scaleX_1 == undefined || scaleX_1 == null || scaleX_1 == 1) { + return; + } + switch (this._collide_shape) { + case lq_const_1.LQCollideShape.Circle: + // 圆形碰撞区域半径更新 + this._radius = this._radius * Math.max(scaleX_1, scaleY_1); + break; + case lq_const_1.LQCollideShape.Rect: + // 矩形碰撞区域尺寸更新 + // console.log(this.data_string); + if (this._size.width !== 10 && this.data_string != "-1") { + // if(this._size.width == 105 || this._size.height == 105){} + this._size.width = this._size.width * scaleX_1; + // console.log("放大倍数",scaleX); + } + if (this._size.height !== 10 && this.data_string != "-1") { + // if(this._size.width == 105 || this._size.height == 105){} + this._size.height = this._size.height * scaleY_1; + // console.log("放大倍数",scaleY); + } + // this._size.width = this._size.width * scaleX; + // this._size.height = this._size.height * scaleY; + if (this.world_rect) { + this.world_rect.width = this._size.width; + this.world_rect.height = this._size.height; + this.world_rect.half_width = this._size.width * 0.5; + this.world_rect.half_height = this._size.height * 0.5; + } + break; + case lq_const_1.LQCollideShape.Polygon: + // 多边形碰撞点坐标更新 + this._polygon_points = this._polygon_points.map(function (point) { + return new Vec2(point.x * scaleX_1, point.y * scaleY_1); + }); + break; + } + this.draw_shape(); + } + }; + LQCollide.prototype.enable_lq_collide = function () { + if (this.collide_status === lq_const_1.LQCollideStatus.Live) { + console.warn(this.node.name + '重复添加'); + return; + } + this.is_enable = true; + this.collide_status = lq_const_1.LQCollideStatus.Live; + lq_collide_system_1.LQCollideSystem.add_collide(this); + }; + LQCollide.prototype.disable_lq_collide = function () { + if (this.collide_status !== lq_const_1.LQCollideStatus.Live) { + return; + } + this.is_enable = false; + this.collide_status = lq_const_1.LQCollideStatus.Idle; + lq_collide_system_1.LQCollideSystem.remove_collide(this); + }; + LQCollide.prototype.update_lq_collide = function () { + }; + // @ts-ignore + // public on_collide(collide: LQCollide): void { + // if(collide.node.parent.uuid == this.node.parent.uuid){ + // return; + // } + // if (LQCollideConfig.switch_print_log) { + // if(this.node.parent.getComponent("Block")){ + // let block = this.node.parent.getComponent("Block"); + // if(block.isTouch){ + // block.checkCollision = true; + // // console.log("碰撞",this.node.name); + // if(this.node.name == "top" ){ + // console.log("碰到上边缘"); + // block.moveUp = false; + // if(block.touchPointY > (this.node.parent.y+this.node.height)){ + // block.moveY = 1; + // } + // } + // if(this.node.name === "down"){ + // block.moveDown = false; + // console.log("碰到下边缘"); + // if(block.touchPointY < (this.node.parent.y )){ + // block.moveY = -1; + // } + // } + // if(this.node.name === "left" ){ + // block.moveLeft = false; + // console.log("碰到左边缘"); + // if(block.touchPointX < (this.node.parent.x - this.node.parent.width)){ + // block.moveX = -1; + // } + // } + // if(this.node.name === "right"){ + // block.moveRight = false; + // console.log("碰到右边缘"); + // if(block.touchPointX > (this.node.parent.x)){ + // block.moveX = 1; + // } + // } + // } + // } + // } + // } + //@ts-ignore + LQCollide.prototype.on_enter = function (collide) { + if (this.disableCollider(collide)) { + return; + } + // if (LQCollideConfig.switch_print_log) { + // console.log(this.node.name + ' on_enter'); + // } + }; + //@ts-ignore + LQCollide.prototype.on_exit = function (collide) { + if (this.disableCollider(collide)) { + return; + } + if (lq_collide_config_1.LQCollideConfig.switch_print_log) { + if (this.node.parent.getComponent("Block")) { + var block = this.node.parent.getComponent("Block"); + // if(!block.isTouch){ + // return; + // } + block.checkCollision = false; + if (this.node.name == "top") { + block.moveUp = true; + } + if (this.node.name === "down") { + block.moveDown = true; + } + if (this.node.name === "left") { + block.moveLeft = true; + } + if (this.node.name === "right") { + block.moveRight = true; + } + } + } + }; + LQCollide.prototype.on_collide = function (collide) { + if (this.disableCollider(collide)) { + return; + } + if (lq_collide_config_1.LQCollideConfig.switch_print_log) { + if (this.node.parent.getComponent("Block")) { + var block = this.node.parent.getComponent("Block"); + var jg = false; + if (block.isTouch) { + block.checkCollision = true; + // console.log("碰撞",this.node.name); + if (this.node.name == "top") { + // console.log(collide.node.parent.name); + block.moveUp = false; + if (block.touchPointY > (this.node.parent.y + this.node.parent.height)) { + block.moveY = 1; + } + // console.log("碰到上边缘"); + } + if (this.node.name === "down") { + block.moveDown = false; + if (block.touchPointY < (this.node.parent.y)) { + block.moveY = -1; + } + // console.log("碰到下边缘"); + } + if (this.node.name === "left") { + block.moveLeft = false; + if (block.touchPointX < (this.node.parent.x - this.node.parent.width)) { + block.moveX = -1; + } + } + if (this.node.name === "right") { + block.moveRight = false; + if (block.touchPointX > (this.node.parent.x)) { + block.moveX = 1; + } + } + } + } + } + }; + LQCollide.prototype.disableCollider = function (collide) { + var jg = false; + if (collide.node && this.node) { + if (collide.node.parent && this.node.parent) { + if (collide.node.parent.uuid == this.node.parent.uuid) { + jg = true; + } + if (this.node.parent.getComponent("Block")) { + var block = this.node.parent.getComponent("Block"); + if (block.type == 1 || block.type == 10 || block.type == 9) { + if (collide.node.parent == block.block_Info.node) { + jg = true; + } + } + } + } + } + return jg; + }; + var LQCollide_1; + LQCollide.id_maker = 1; + __decorate([ + property({ displayName: '绘制形状' }) + ], LQCollide.prototype, "draw_collide", null); + __decorate([ + property + ], LQCollide.prototype, "_draw_collide", void 0); + __decorate([ + property({ tooltip: '能否移动' }) + ], LQCollide.prototype, "can_move", void 0); + __decorate([ + property({ + tooltip: '碰撞形状,None就是无敌,不参与碰撞', + type: Enum(lq_const_1.LQCollideShape), + displayName: '碰撞形状' + }) + ], LQCollide.prototype, "collide_shape", null); + __decorate([ + property() + ], LQCollide.prototype, "_collide_shape", void 0); + __decorate([ + property({ + type: Enum(lq_collide_config_1.LQCollideInfoList), tooltip: '碰撞类别', + displayName: '碰撞类别' + }) + ], LQCollide.prototype, "collide_group_index", null); + __decorate([ + property({ serializable: false }) + ], LQCollide.prototype, "_collide_group_index", void 0); + __decorate([ + property({ visible: false }) + ], LQCollide.prototype, "collide_group_id", void 0); + __decorate([ + property({ visible: false }) + ], LQCollide.prototype, "collide_scle", void 0); + __decorate([ + property({ + tooltip: 'collide半径', + visible: function () { + // @ts-ignore + return this._collide_shape === lq_const_1.LQCollideShape.Circle; + }, + displayName: '半径' + }) + ], LQCollide.prototype, "radius", null); + __decorate([ + property() + ], LQCollide.prototype, "_radius", void 0); + __decorate([ + property({ + tooltip: 'collide长宽', + visible: function () { + // @ts-ignore + return this._collide_shape === lq_const_1.LQCollideShape.Rect; + }, + displayName: '长宽' + }) + ], LQCollide.prototype, "size", null); + __decorate([ + property() + ], LQCollide.prototype, "_size", void 0); + __decorate([ + property({ displayName: '位置偏移' }) + ], LQCollide.prototype, "offset", null); + __decorate([ + property({ + type: Vec2, + visible: function () { + // @ts-ignore + return this._collide_shape === lq_const_1.LQCollideShape.Polygon; + }, + displayName: '多边形碰撞点' + }) + ], LQCollide.prototype, "polygon_points", null); + __decorate([ + property() + ], LQCollide.prototype, "_polygon_points", void 0); + __decorate([ + property() + ], LQCollide.prototype, "_offset", void 0); + __decorate([ + property({ displayName: '自定义字符串' }) + ], LQCollide.prototype, "data_string", void 0); + LQCollide = LQCollide_1 = __decorate([ + ccclass, + requireComponent(lq_collide_base_1.LQCollideBase), + menu("lq/collide") + ], LQCollide); + return LQCollide; +}(Component)); +exports.LQCollide = LQCollide; + +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,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/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() { + 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9nYW1lX3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTyxRQUFRLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQztBQUM5QixJQUFPLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO0FBR3hCLElBQU8sV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7QUFDcEMsSUFBTyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztBQUd0QjtJQUFBO0lBeUlBLENBQUM7SUF0SWlCLG9CQUFTLEdBQXZCLFVBQXdCLEdBQVcsRUFBRSxRQUFpRSxFQUFFLEtBQVk7UUFBWixzQkFBQSxFQUFBLFlBQVk7UUFDaEgsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFO1lBQ3BCLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDM0IsT0FBTztTQUNWO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE9BQU87U0FDVjtRQUNELGtCQUFrQjtRQUNsQiwrQkFBK0I7UUFDL0IseURBQXlEO1FBQ3pELHFCQUFxQjtRQUNyQiw4Q0FBOEM7UUFDOUMsMENBQTBDO1FBQzFDLHNCQUFzQjtRQUN0QixZQUFZO1FBQ1osa0RBQWtEO1FBQ2xELGlDQUFpQztRQUNqQyx1QkFBdUI7UUFDdkIsNkNBQTZDO1FBQzdDLFlBQVk7UUFDWixVQUFVO0lBQ2QsQ0FBQztJQUVhLHdCQUFhLEdBQTNCLFVBQTRCLENBQVMsRUFBRSxLQUFhLEVBQUUsTUFBYztRQUNoRSxhQUFhO1FBQ2IsSUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQ3JELElBQUksS0FBSyxHQUFHLE1BQU0sR0FBRyxLQUFLLEVBQUU7WUFDeEIsQ0FBQyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDcEIsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDckI7YUFBTTtZQUNILENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3RCO1FBQ0QsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3ZCLENBQUM7SUFFYSxrQ0FBdUIsR0FBckMsVUFBc0MsSUFBVSxFQUFFLENBQWlDO1FBQy9FLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLGFBQWE7WUFDYixDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDVyxvQkFBUyxHQUF2QixVQUF3QixJQUFZO1FBQ2hDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QixPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUNELElBQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUNELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNqQyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1AsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLE9BQU8sU0FBUyxDQUFDO2FBQ3BCO1lBQ0QsSUFBSSxHQUFHLElBQUksQ0FBQztTQUNmO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVhLGVBQUksR0FBbEIsVUFBbUIsSUFBWTtRQUMzQixPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTztZQUN2QixLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDeEMsT0FBTyxFQUFFLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVhLG1CQUFRLEdBQXRCLFVBQXVCLElBQXNCLEVBQUUsR0FBWSxFQUFFLE1BQWUsRUFBRSxNQUFlO1FBQ3pGLElBQUksQ0FBQyxHQUFHLFVBQUMsR0FBYTtZQUNsQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDYixJQUFJLE1BQU0sRUFBRTt3QkFDUixHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3BCO29CQUNELEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUNuQjtxQkFBTTtvQkFDSCxJQUFJLE1BQU0sRUFBRTt3QkFDUixHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3BCO29CQUNELEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUNuQjthQUNKO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQzlDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JDLElBQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7WUFDekMsSUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUMvQixJQUFJLFVBQVUsRUFBRTtnQkFDWixLQUFLLElBQUksR0FBQyxHQUFHLENBQUMsRUFBRSxHQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFDLEVBQUUsRUFBRTtvQkFDeEMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNwQjthQUNKO1lBQ0QsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ1o7SUFDTCxDQUFDO0lBRWEsd0JBQWEsR0FBM0IsVUFBNEIsTUFBaUIsRUFBRSxLQUFrQjtRQUFsQixzQkFBQSxFQUFBLFVBQWtCO1FBQzdELE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixJQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQy9GLElBQU0sSUFBSSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUMzQyxJQUFJLFFBQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDNUYsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUM5QyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNqQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLFFBQU0sQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FDTCxDQUFDLENBQUMsQ0FBQztTQUNQO2FBQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUN2RixJQUFJLFFBQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7WUFDOUYsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUM5QyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFNLENBQUMsQ0FBQyxFQUNqQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLFFBQU0sQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FDTCxDQUFDLENBQUMsQ0FBQztTQUNQO0lBQ0wsQ0FBQztJQXRJYyxzQkFBVyxHQUFtQyxFQUFFLENBQUM7SUF3SXBFLGlCQUFDO0NBeklELEFBeUlDLElBQUE7QUF6SVksZ0NBQVUiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3ByaXRlRnJhbWUgPSBjYy5TcHJpdGVGcmFtZTtcclxuaW1wb3J0IGRpcmVjdG9yID0gY2MuZGlyZWN0b3I7XHJcbmltcG9ydCB0d2VlbiA9IGNjLnR3ZWVuO1xyXG5pbXBvcnQgVGV4dHVyZTJEID0gY2MuVGV4dHVyZTJEO1xyXG5pbXBvcnQgQ2FudmFzID0gY2MuQ2FudmFzO1xyXG5pbXBvcnQgdmlzaWJsZVJlY3QgPSBjYy52aXNpYmxlUmVjdDtcclxuaW1wb3J0IGZpbmQgPSBjYy5maW5kO1xyXG5pbXBvcnQgTm9kZSA9IGNjLk5vZGU7XHJcblxyXG5leHBvcnQgY2xhc3MgTFFHYW1lVXRpbCB7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBpbWFnZV9jYWNoZTogeyBba2V5OiBzdHJpbmddOiBTcHJpdGVGcmFtZSB9ID0ge307XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBnZXRfaW1hZ2UodXJsOiBzdHJpbmcsIGNhbGxiYWNrOiAoc3VjY2VzczogYm9vbGVhbiwgc2Y6IFNwcml0ZUZyYW1lIHwgdW5kZWZpbmVkKSA9PiB2b2lkLCBjYWNoZSA9IHRydWUpIHtcclxuICAgICAgICBpZiAoIXVybCB8fCB1cmwgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKGZhbHNlLCB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmltYWdlX2NhY2hlW3VybF0pIHtcclxuICAgICAgICAgICAgY2FsbGJhY2sodHJ1ZSwgdGhpcy5pbWFnZV9jYWNoZVt1cmxdKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjYy5sb2FkZXIubG9hZChcclxuICAgICAgICAvLyAgICAge3VybDogdXJsLCB0eXBlOiAncG5nJ30sXHJcbiAgICAgICAgLy8gICAgIChlcnI6IHN0cmluZywgdGV4dHVyZTogVGV4dHVyZTJEIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgICAgICAgLy8gICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignZXJyOicgKyBlcnIpO1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIGNhbGxiYWNrKGZhbHNlLCB1bmRlZmluZWQpO1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAvLyAgICAgICAgIH1cclxuICAgICAgICAvLyAgICAgICAgIGNvbnN0IGZyYW1lID0gbmV3IFNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgIC8vICAgICAgICAgY2FsbGJhY2sodHJ1ZSwgZnJhbWUpO1xyXG4gICAgICAgIC8vICAgICAgICAgaWYgKGNhY2hlKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgdGhpcy5pbWFnZV9jYWNoZVt1cmxdID0gZnJhbWU7XHJcbiAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgLy8gICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgY2FudmFzX3BvbGljeShjOiBDYW52YXMsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIGNvbnN0IHJhdGlvID0gdmlzaWJsZVJlY3QuaGVpZ2h0IC8gdmlzaWJsZVJlY3Qud2lkdGg7XHJcbiAgICAgICAgaWYgKHJhdGlvID4gaGVpZ2h0IC8gd2lkdGgpIHtcclxuICAgICAgICAgICAgYy5maXRIZWlnaHQgPSBmYWxzZTtcclxuICAgICAgICAgICAgYy5maXRXaWR0aCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYy5maXRIZWlnaHQgPSB0cnVlO1xyXG4gICAgICAgICAgICBjLmZpdFdpZHRoID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjLmZpdEhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIHJlY3Vyc2lvbl9ub2RlX3Byb3BlcnR5KG5vZGU6IE5vZGUsIHA6IHsga2V5OiBzdHJpbmcsIHZhbHVlOiBudW1iZXIgfSkge1xyXG4gICAgICAgIGlmIChub2RlLnBhcmVudCkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHAudmFsdWUgKj0gbm9kZS5wYXJlbnRbcC5rZXldO1xyXG4gICAgICAgICAgICB0aGlzLnJlY3Vyc2lvbl9ub2RlX3Byb3BlcnR5KG5vZGUucGFyZW50LCBwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHBhdGhcclxuICAgICAqIGVnLidDYW52YXM+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/lq_base/util/lq_pool_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, '984882e2dpD17LvCQnTDykE', 'lq_pool_util'); +// Script/lq_base/util/lq_pool_util.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LQPoolUtil = void 0; +var Animation = cc.Animation; +var ParticleSystem = cc.ParticleSystem; +var instantiate = cc.instantiate; +var LQPoolUtil = /** @class */ (function () { + function LQPoolUtil() { + } + LQPoolUtil.reset_ani = function (node) { + var ani = node.getComponent(Animation); + if (ani) { + var clip = ani.currentClip ? ani.currentClip : ani.defaultClip; + if (!clip) { + return; + } + if (ani.playOnLoad && clip && clip.wrapMode === cc.WrapMode.Normal) { + ani.play(clip.name); + } + } + else { + var ani_1 = node.getComponent(sp.Skeleton); + if (ani_1 && !ani_1.loop) { + ani_1.setAnimation(0, ani_1.animation, false); + } + } + for (var i = 0; i < node.childrenCount; i++) { + var child = node.children[i]; + this.reset_ani(child); + } + }; + LQPoolUtil.recursion_stop_particle = function (node, obj) { + var p = node.getComponent(ParticleSystem); + if (p) { + p.stopSystem(); + obj.has = true; + p.node.opacity = 0; + } + for (var i = 0; i < node.childrenCount; i++) { + var child = node.children[i]; + this.recursion_stop_particle(child, obj); + } + }; + LQPoolUtil.recursion_reset_particle = function (node) { + if (!node.isValid) { + return; + } + var p = node.getComponent(ParticleSystem); + if (p) { + p.resetSystem(); + p.node.opacity = 255; + } + for (var i = 0; i < node.childrenCount; i++) { + var child = node.children[i]; + this.recursion_reset_particle(child); + } + }; + LQPoolUtil.get_node_from_pool = function (node_parent, prefab) { + var arr = this.any_pool[prefab.uuid]; + if (!arr) { + this.any_pool[prefab.uuid] = []; + arr = []; + } + var node = arr.pop(); + if (!node || !node.isValid) { + node = instantiate(prefab); + //@ts-ignore + node.recovery_uuid = prefab.uuid; + //@ts-ignore + node.is_from_pool = false; + node_parent.addChild(node); + } + else { + node.active = true; + //@ts-ignore + node.is_from_pool = true; + this.reset_ani(node); + } + return node; + }; + LQPoolUtil.check_pool_push = function (arr, node) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] === node) { + //@ts-ignore + console.warn("\u6C60\u5B50\u4E0D\u80FD\u91CD\u590D\u6DFB\u52A0\u8282\u70B9", node.name, node.recovery_uuid); + return; + } + } + node.active = false; + arr.push(node); + }; + LQPoolUtil.push_node_to_pool = function (node) { + var _this = this; + //@ts-ignore + if (!node.recovery_uuid || !this.any_pool[node.recovery_uuid]) { + if (node.isValid) { + node.destroy(); + } + return; + } + var obj = { has: false }; + this.recursion_stop_particle(node, obj); + if (obj.has) { + var old_opacity_1 = node.opacity; + node.opacity = 0; + setTimeout(function () { + _this.recursion_reset_particle(node); + node.opacity = old_opacity_1; + //@ts-ignore + _this.check_pool_push(_this.any_pool[node.recovery_uuid], node); + }, 500); + } + else { + //@ts-ignore + this.check_pool_push(this.any_pool[node.recovery_uuid], node); + } + }; + LQPoolUtil.any_pool = {}; + return LQPoolUtil; +}()); +exports.LQPoolUtil = LQPoolUtil; + +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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxscV9iYXNlXFx1dGlsXFxscV9wb29sX3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztBQUNoQyxJQUFPLGNBQWMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO0FBQzFDLElBQU8sV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7QUFFcEM7SUFBQTtJQWdIQSxDQUFDO0lBN0drQixvQkFBUyxHQUF4QixVQUF5QixJQUFVO1FBQy9CLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsSUFBSSxHQUFHLEVBQUU7WUFDTCxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQy9ELElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1AsT0FBTzthQUNWO1lBQ0QsSUFBSSxHQUFHLENBQUMsVUFBVSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUNoRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN2QjtTQUNKO2FBQU07WUFDSCxJQUFJLEtBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxJQUFJLEtBQUcsSUFBSSxDQUFDLEtBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2xCLEtBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLEtBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDN0M7U0FDSjtRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMs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QyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7YUFBTTtZQUNILFlBQVk7WUFDWixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2pFO0lBQ0wsQ0FBQztJQTlHYyxtQkFBUSxHQUE4QixFQUFFLENBQUM7SUErRzVELGlCQUFDO0NBaEhELEFBZ0hDLElBQUE7QUFoSFksZ0NBQVUiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTm9kZSA9IGNjLk5vZGU7XHJcbmltcG9ydCBBbmltYXRpb24gPSBjYy5BbmltYXRpb247XHJcbmltcG9ydCBQYXJ0aWNsZVN5c3RlbSA9IGNjLlBhcnRpY2xlU3lzdGVtO1xyXG5pbXBvcnQgaW5zdGFudGlhdGUgPSBjYy5pbnN0YW50aWF0ZTtcclxuXHJcbmV4cG9ydCBjbGFzcyBMUVBvb2xVdGlsIHtcclxuICAgIHByaXZhdGUgc3RhdGljIGFueV9wb29sOiB7IFtrZXk6IHN0cmluZ106IE5vZGVbXSB9ID0ge307XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVzZXRfYW5pKG5vZGU6IE5vZGUpIHtcclxuICAgICAgICBsZXQgYW5pID0gbm9kZS5nZXRDb21wb25lbnQoQW5pbWF0aW9uKTtcclxuICAgICAgICBpZiAoYW5pKSB7XHJcbiAgICAgICAgICAgIGxldCBjbGlwID0gYW5pLmN1cnJlbnRDbGlwID8gYW5pLmN1cnJlbnRDbGlwIDogYW5pLmRlZmF1bHRDbGlwO1xyXG4gICAgICAgICAgICBpZiAoIWNsaXApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYW5pLnBsYXlPbkxvYWQgJiYgY2xpcCAmJiBjbGlwLndyYXBNb2RlID09PSBjYy5XcmFwTW9kZS5Ob3JtYWwpIHtcclxuICAgICAgICAgICAgICAgIGFuaS5wbGF5KGNsaXAubmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgYW5pID0gbm9kZS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pO1xyXG4gICAgICAgICAgICBpZiAoYW5pICYmICFhbmkubG9vcCkge1xyXG4gICAgICAgICAgICAgICAgYW5pLnNldEFuaW1hdGlvbigwLCBhbmkuYW5pbWF0aW9uLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlLmNoaWxkcmVuQ291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBjaGlsZCA9IG5vZGUuY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRfYW5pKGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyByZWN1cnNpb25fc3RvcF9wYXJ0aWNsZShub2RlOiBOb2RlLCBvYmo6IHsgaGFzOiBib29sZWFuIH0pIHtcclxuICAgICAgICBjb25zdCBwID0gbm9kZS5nZXRDb21wb25lbnQoUGFydGljbGVTeXN0ZW0pO1xyXG4gICAgICAgIGlmIChwKSB7XHJcbiAgICAgICAgICAgIHAuc3RvcFN5c3RlbSgpO1xyXG4gICAgICAgICAgICBvYmouaGFzID0gdHJ1ZTtcclxuICAgICAgICAgICAgcC5ub2RlLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuY2hpbGRyZW5Db3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZS5jaGlsZHJlbltpXTtcclxuICAgICAgICAgICAgdGhpcy5yZWN1cnNpb25fc3RvcF9wYXJ0aWNsZShjaGlsZCwgb2JqKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyByZWN1cnNpb25fcmVzZXRfcGFydGljbGUobm9kZTogTm9kZSkge1xyXG4gICAgICAgIGlmICghbm9kZS5pc1ZhbGlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcCA9IG5vZGUuZ2V0Q29tcG9uZW50KFBhcnRpY2xlU3lzdGVtKTtcclxuICAgICAgICBpZiAocCkge1xyXG4gICAgICAgICAgICBwLnJlc2V0U3lzdGVtKCk7XHJcbiAgICAgICAgICAgIHAubm9kZS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuY2hpbGRyZW5Db3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZS5jaGlsZHJlbltpXTtcclxuICAgICAgICAgICAgdGhpcy5yZWN1cnNpb25fcmVzZXRfcGFydGljbGUoY2hpbGQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldF9ub2RlX2Zyb21fcG9vbChub2RlX3BhcmVudDogTm9kZSwgcHJlZmFiOiBOb2RlKSB7XHJcbiAgICAgICAgbGV0IGFyciA9IHRoaXMuYW55X3Bvb2xbcHJlZmFiLnV1aWRdO1xyXG4gICAgICAgIGlmICghYXJyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYW55X3Bvb2xbcHJlZmFiLnV1aWRdID0gW107XHJcbiAgICAgICAgICAgIGFyciA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbm9kZSA9IGFyci5wb3AoKTtcclxuICAgICAgICBpZiAoIW5vZGUgfHwgIW5vZGUuaXNWYWxpZCkge1xyXG4gICAgICAgICAgICBub2RlID0gaW5zdGFudGlhdGUocHJlZmFiKTtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIG5vZGUucmVjb3ZlcnlfdXVpZCA9IHByZWZhYi51dWlkO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgbm9kZS5pc19mcm9tX3Bvb2wgPSBmYWxzZTtcclxuICAgICAgICAgICAgbm9kZV9wYXJlbnQuYWRkQ2hpbGQobm9kZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgbm9kZS5pc19mcm9tX3Bvb2wgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0X2FuaShub2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgY2hlY2tfcG9vbF9wdXNoKGFycjogTm9kZVtdLCBub2RlOiBOb2RlKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGFycltpXSA9PT0gbm9kZSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYOaxoOWtkOS4jeiDvemHjeWkjea3u+WKoOiKgueCuWAsIG5vZGUubmFtZSwgbm9kZS5yZWNvdmVyeV91dWlkKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGFyci5wdXNoKG5vZGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgcHVzaF9ub2RlX3RvX3Bvb2wobm9kZTogTm9kZSkge1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIGlmICghbm9kZS5yZWNvdmVyeV91dWlkIHx8ICF0aGlzLmFueV9wb29sW25vZGUucmVjb3ZlcnlfdXVpZF0pIHtcclxuICAgICAgICAgICAgaWYgKG5vZGUuaXNWYWxpZCkge1xyXG4gICAgICAgICAgICAgICAgbm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBvYmo6IHsgaGFzOiBib29sZWFuIH0gPSB7aGFzOiBmYWxzZX07XHJcbiAgICAgICAgdGhpcy5yZWN1cnNpb25fc3RvcF9wYXJ0aWNsZShub2RlLCBvYmopO1xyXG4gICAgICAgIGlmIChvYmouaGFzKSB7XHJcbiAgICAgICAgICAgIGxldCBvbGRfb3BhY2l0eSA9IG5vZGUub3BhY2l0eTtcclxuICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlY3Vyc2lvbl9yZXNldF9wYXJ0aWNsZShub2RlKTtcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IG9sZF9vcGFjaXR5O1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrX3Bvb2xfcHVzaCh0aGlzLmFueV9wb29sW25vZGUucmVjb3ZlcnlfdXVpZF0sIG5vZGUpO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrX3Bvb2xfcHVzaCh0aGlzLmFueV9wb29sW25vZGUucmVjb3ZlcnlfdXVpZF0sIG5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ== +//------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/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/prop/Boom.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, '3c749iEEwlAMKPyjGEkwU2l', 'Boom'); +// Script/prop/Boom.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 NumberToImage_1 = require("../NumberToImage"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var Boom = /** @class */ (function (_super) { + __extends(Boom, _super); + function Boom() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.time = 60; + return _this; + // update (dt) {} + } + // mapInfo: number[][] = []; + Boom.prototype.onLoad = function () { + }; + Boom.prototype.start = function () { + }; + Boom.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); + // this.node.getChildByName("time").getComponent(cc.Label).string = this.time.toString(); + }; + Boom.prototype.startBoom = function () { + this.schedule(this.updateTime, 1); + }; + Boom.prototype.stopBoom = function () { + this.unschedule(this.updateTime); + this.node.parent.getComponent("Block").resetFreeze(); + this.node.destroy(); + }; + Boom.prototype.updateTime = function () { + var _this = this; + this.time--; + NumberToImage_1.default.numberToImageNodes(this.time, 20, 8, "lock_", this.node.getChildByName("time"), false); + if (this.time <= 0) { + this.unschedule(this.updateTime); + this.node.getChildByName("zhandan").active = true; + var skeleton = this.node.getChildByName("zhandan").getComponent(sp.Skeleton); + skeleton.setAnimation(1, "eff", false); + // 监听动画完成事件 + skeleton.setCompleteListener(function () { + // 动画播放完成后销毁节点 + _this.node.destroy(); + }); + Map_1.default._instance.failLevel("boom"); + // this.node.destroy(); + } + }; + Boom = __decorate([ + ccclass + ], Boom); + return Boom; +}(cc.Component)); +exports.default = Boom; + +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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxwcm9wXFxCb29tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxGLDhCQUFpQztBQUNqQyxrREFBNkM7QUFFdkMsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFLMUM7SUFBa0Msd0JBQVk7SUFBOUM7UUFBQSxxRUFtREM7UUFqREcsVUFBSSxHQUFXLEVBQUUsQ0FBQzs7UUFnRGxCLGlCQUFpQjtJQUNyQixDQUFDO0lBL0NHLDRCQUE0QjtJQUU1QixxQkFBTSxHQUFOO0lBRUEsQ0FBQztJQUVELG9CQUFLLEdBQUw7SUFDQSxDQUFDO0lBRUQsbUJBQUksR0FBSixVQUFLLElBQUk7UUFDTCxJQUFHLElBQUk7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzdDLHVCQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUNsRyx5RkFBeUY7SUFFN0YsQ0FBQztJQUVELHdCQUFTLEdBQVQ7UUFDSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELHVCQUFRLEdBQVI7UUFDSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBR0QseUJBQVUsR0FBVjtRQUFBLGlCQWdCQztRQWZHLElBQUksQ0FBQyxJQUFJLEVBQUcsQ0FBQztRQUNiLHVCQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUNoRyxJQUFHLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFDO1lBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNsRCxJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9FLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxXQUFXO1lBQ1gsUUFBUSxDQUFDLG1CQUFtQixDQUFDO2dCQUN6QixjQUFjO2dCQUNkLEtBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7WUFDSCxhQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4Qyx1QkFBdUI7U0FDMUI7SUFDTCxDQUFDO0lBaERnQixJQUFJO1FBRHhCLE9BQU87T0FDYSxJQUFJLENBbUR4QjtJQUFELFdBQUM7Q0FuREQsQUFtREMsQ0FuRGlDLEVBQUUsQ0FBQyxTQUFTLEdBbUQ3QztrQkFuRG9CLElBQUkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4uL01hcFwiO1xyXG5pbXBvcnQgTnVtYmVyVG9JbWFnZSBmcm9tIFwiLi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5cclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJvb20gZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG4gICAgdGltZTogbnVtYmVyID0gNjA7XHJcblxyXG4gICAgLy8gbWFwSW5mbzogbnVtYmVyW11bXSA9IFtdO1xyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcblxyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCh0aW1lKXtcclxuICAgICAgICBpZih0aW1lKSB0aGlzLnRpbWUgPSB0aW1lO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKHRoaXMudGltZSwyMCw4LFwibG9ja19cIix0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLGZhbHNlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy50aW1lLnRvU3RyaW5nKCk7XHJcbiAgIFxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0Qm9vbSgpe1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUodGhpcy51cGRhdGVUaW1lLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBzdG9wQm9vbSgpe1xyXG4gICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnVwZGF0ZVRpbWUpO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucmVzZXRGcmVlemUoKTtcclxuICAgICAgICB0aGlzLm5vZGUuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIFxyXG4gICAgdXBkYXRlVGltZSgpe1xyXG4gICAgICAgIHRoaXMudGltZSAtLTtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2Rlcyh0aGlzLnRpbWUsMjAsOCxcImxvY2tfXCIsdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGltZVwiKSxmYWxzZSk7XHJcbiAgICAgICAgaWYodGhpcy50aW1lIDw9IDApe1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy51cGRhdGVUaW1lKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemhhbmRhblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb25zdCBza2VsZXRvbiA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpoYW5kYW5cIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKTtcclxuICAgICAgICAgICAgc2tlbGV0b24uc2V0QW5pbWF0aW9uKDEsXCJlZmZcIixmYWxzZSk7XHJcbiAgICAgICAgICAgIC8vIOebkeWQrOWKqOeUu+WujOaIkOS6i+S7tlxyXG4gICAgICAgICAgICBza2VsZXRvbi5zZXRDb21wbGV0ZUxpc3RlbmVyKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIC8vIOWKqOeUu+aSreaUvuWujOaIkOWQjumUgOavgeiKgueCuVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5mYWlsTGV2ZWwoXCJib29tXCIpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUuZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxyXG59XHJcbiJdfQ== //------QC-SOURCE-SPLIT------ (function() { @@ -15205,7 +15126,7 @@ cc._RF.pop(); (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/module/Crypto/crypto-js.min.js'; + var __filename = 'preview-scripts/assets/shop/script/item.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -15213,2359 +15134,8 @@ cc._RF.pop(); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); -// Script/module/Crypto/crypto-js.min.js - -"use strict"; - -!function (t, r) { - "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r(); -}(void 0, function () { - var t = t || function (t, r) { - var e = Object.create || function () { - function t() {} - - return function (r) { - var e; - return t.prototype = r, e = new t(), t.prototype = null, e; - }; - }(), - i = {}, - n = i.lib = {}, - o = n.Base = function () { - return { - extend: function extend(t) { - var r = e(this); - return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { - r.$super.init.apply(this, arguments); - }), r.init.prototype = r, r.$super = this, r; - }, - create: function create() { - var t = this.extend(); - return t.init.apply(t, arguments), t; - }, - init: function init() {}, - mixIn: function mixIn(t) { - for (var r in t) { - t.hasOwnProperty(r) && (this[r] = t[r]); - } - - t.hasOwnProperty("toString") && (this.toString = t.toString); - }, - clone: function clone() { - return this.init.prototype.extend(this); - } - }; - }(), - s = n.WordArray = o.extend({ - init: function init(t, e) { - t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length; - }, - toString: function toString(t) { - return (t || c).stringify(this); - }, - concat: function concat(t) { - var r = this.words, - e = t.words, - i = this.sigBytes, - n = t.sigBytes; - if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { - var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; - r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8; - } else for (var o = 0; o < n; o += 4) { - r[i + o >>> 2] = e[o >>> 2]; - } - return this.sigBytes += n, this; - }, - clamp: function clamp() { - var r = this.words, - e = this.sigBytes; - r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4); - }, - clone: function clone() { - var t = o.clone.call(this); - return t.words = this.words.slice(0), t; - }, - random: function random(r) { - for (var e, i = [], n = function n(r) { - var r = r, - e = 987654321, - i = 4294967295; - return function () { - e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; - var n = (e << 16) + r & i; - return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1); - }; - }, o = 0; o < r; o += 4) { - var a = n(4294967296 * (e || t.random())); - e = 987654071 * a(), i.push(4294967296 * a() | 0); - } - - return new s.init(i, r); - } - }), - a = i.enc = {}, - c = a.Hex = { - stringify: function stringify(t) { - for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { - var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; - i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)); - } - - return i.join(""); - }, - parse: function parse(t) { - for (var r = t.length, e = [], i = 0; i < r; i += 2) { - e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; - } - - return new s.init(e, r / 2); - } - }, - h = a.Latin1 = { - stringify: function stringify(t) { - for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { - var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; - i.push(String.fromCharCode(o)); - } - - return i.join(""); - }, - parse: function parse(t) { - for (var r = t.length, e = [], i = 0; i < r; i++) { - e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; - } - - return new s.init(e, r); - } - }, - l = a.Utf8 = { - stringify: function stringify(t) { - try { - return decodeURIComponent(escape(h.stringify(t))); - } catch (t) { - throw new Error("Malformed UTF-8 data"); - } - }, - parse: function parse(t) { - return h.parse(unescape(encodeURIComponent(t))); - } - }, - f = n.BufferedBlockAlgorithm = o.extend({ - reset: function reset() { - this._data = new s.init(), this._nDataBytes = 0; - }, - _append: function _append(t) { - "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes; - }, - _process: function _process(r) { - var e = this._data, - i = e.words, - n = e.sigBytes, - o = this.blockSize, - a = 4 * o, - c = n / a; - c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); - var h = c * o, - l = t.min(4 * h, n); - - if (h) { - for (var f = 0; f < h; f += o) { - this._doProcessBlock(i, f); - } - - var u = i.splice(0, h); - e.sigBytes -= l; - } - - return new s.init(u, l); - }, - clone: function clone() { - var t = o.clone.call(this); - return t._data = this._data.clone(), t; - }, - _minBufferSize: 0 - }), - u = (n.Hasher = f.extend({ - cfg: o.extend(), - init: function init(t) { - this.cfg = this.cfg.extend(t), this.reset(); - }, - reset: function reset() { - f.reset.call(this), this._doReset(); - }, - update: function update(t) { - return this._append(t), this._process(), this; - }, - finalize: function finalize(t) { - t && this._append(t); - - var r = this._doFinalize(); - - return r; - }, - blockSize: 16, - _createHelper: function _createHelper(t) { - return function (r, e) { - return new t.init(e).finalize(r); - }; - }, - _createHmacHelper: function _createHmacHelper(t) { - return function (r, e) { - return new u.HMAC.init(t, e).finalize(r); - }; - } - }), i.algo = {}); - - return i; - }(Math); - - return function () { - function r(t, r, e) { - for (var i = [], o = 0, s = 0; s < r; s++) { - if (s % 4) { - var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, - c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; - i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++; - } - } - - return n.create(i, o); - } - - var e = t, - i = e.lib, - n = i.WordArray, - o = e.enc; - o.Base64 = { - stringify: function stringify(t) { - var r = t.words, - e = t.sigBytes, - i = this._map; - t.clamp(); - - for (var n = [], o = 0; o < e; o += 3) { - for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++) { - n.push(i.charAt(h >>> 6 * (3 - l) & 63)); - } - } - - var f = i.charAt(64); - if (f) for (; n.length % 4;) { - n.push(f); - } - return n.join(""); - }, - parse: function parse(t) { - var e = t.length, - i = this._map, - n = this._reverseMap; - - if (!n) { - n = this._reverseMap = []; - - for (var o = 0; o < i.length; o++) { - n[i.charCodeAt(o)] = o; - } - } - - var s = i.charAt(64); - - if (s) { - var a = t.indexOf(s); - a !== -1 && (e = a); - } - - return r(t, e, n); - }, - _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" - }; - }(), function (r) { - function e(t, r, e, i, n, o, s) { - var a = t + (r & e | ~r & i) + n + s; - return (a << o | a >>> 32 - o) + r; - } - - function i(t, r, e, i, n, o, s) { - var a = t + (r & i | e & ~i) + n + s; - return (a << o | a >>> 32 - o) + r; - } - - function n(t, r, e, i, n, o, s) { - var a = t + (r ^ e ^ i) + n + s; - return (a << o | a >>> 32 - o) + r; - } - - function o(t, r, e, i, n, o, s) { - var a = t + (e ^ (r | ~i)) + n + s; - return (a << o | a >>> 32 - o) + r; - } - - var s = t, - a = s.lib, - c = a.WordArray, - h = a.Hasher, - l = s.algo, - f = []; - !function () { - for (var t = 0; t < 64; t++) { - f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0; - } - }(); - var u = l.MD5 = h.extend({ - _doReset: function _doReset() { - this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - for (var s = 0; s < 16; s++) { - var a = r + s, - c = t[a]; - t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8); - } - - var h = this._hash.words, - l = t[r + 0], - u = t[r + 1], - d = t[r + 2], - v = t[r + 3], - p = t[r + 4], - _ = t[r + 5], - y = t[r + 6], - g = t[r + 7], - B = t[r + 8], - w = t[r + 9], - k = t[r + 10], - S = t[r + 11], - m = t[r + 12], - x = t[r + 13], - b = t[r + 14], - H = t[r + 15], - z = h[0], - A = h[1], - C = h[2], - D = h[3]; - z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0; - }, - _doFinalize: function _doFinalize() { - var t = this._data, - e = t.words, - i = 8 * this._nDataBytes, - n = 8 * t.sigBytes; - e[n >>> 5] |= 128 << 24 - n % 32; - var o = r.floor(i / 4294967296), - s = i; - e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); - - for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { - var l = c[h]; - c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); - } - - return a; - }, - clone: function clone() { - var t = h.clone.call(this); - return t._hash = this._hash.clone(), t; - } - }); - s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u); - }(Math), function () { - var r = t, - e = r.lib, - i = e.WordArray, - n = e.Hasher, - o = r.algo, - s = [], - a = o.SHA1 = n.extend({ - _doReset: function _doReset() { - this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { - if (h < 16) s[h] = 0 | t[r + h];else { - var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; - s[h] = l << 1 | l >>> 31; - } - var f = (i << 5 | i >>> 27) + c + s[h]; - f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f; - } - - e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0; - }, - _doFinalize: function _doFinalize() { - var t = this._data, - r = t.words, - e = 8 * this._nDataBytes, - i = 8 * t.sigBytes; - return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash; - }, - clone: function clone() { - var t = n.clone.call(this); - return t._hash = this._hash.clone(), t; - } - }); - r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a); - }(), function (r) { - var e = t, - i = e.lib, - n = i.WordArray, - o = i.Hasher, - s = e.algo, - a = [], - c = []; - !function () { - function t(t) { - for (var e = r.sqrt(t), i = 2; i <= e; i++) { - if (!(t % i)) return !1; - } - - return !0; - } - - function e(t) { - return 4294967296 * (t - (0 | t)) | 0; - } - - for (var i = 2, n = 0; n < 64;) { - t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++; - } - }(); - var h = [], - l = s.SHA256 = o.extend({ - _doReset: function _doReset() { - this._hash = new n.init(a.slice(0)); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { - if (d < 16) h[d] = 0 | t[r + d];else { - var v = h[d - 15], - p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, - _ = h[d - 2], - y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; - h[d] = p + h[d - 7] + y + h[d - 16]; - } - var g = a & l ^ ~a & f, - B = i & n ^ i & o ^ n & o, - w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), - k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), - S = u + k + g + c[d] + h[d], - m = w + B; - u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0; - } - - e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0; - }, - _doFinalize: function _doFinalize() { - var t = this._data, - e = t.words, - i = 8 * this._nDataBytes, - n = 8 * t.sigBytes; - return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash; - }, - clone: function clone() { - var t = o.clone.call(this); - return t._hash = this._hash.clone(), t; - } - }); - e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l); - }(Math), function () { - function r(t) { - return t << 8 & 4278255360 | t >>> 8 & 16711935; - } - - var e = t, - i = e.lib, - n = i.WordArray, - o = e.enc; - o.Utf16 = o.Utf16BE = { - stringify: function stringify(t) { - for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { - var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; - i.push(String.fromCharCode(o)); - } - - return i.join(""); - }, - parse: function parse(t) { - for (var r = t.length, e = [], i = 0; i < r; i++) { - e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; - } - - return n.create(e, 2 * r); - } - }; - o.Utf16LE = { - stringify: function stringify(t) { - for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { - var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); - n.push(String.fromCharCode(s)); - } - - return n.join(""); - }, - parse: function parse(t) { - for (var e = t.length, i = [], o = 0; o < e; o++) { - i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); - } - - return n.create(i, 2 * e); - } - }; - }(), function () { - if ("function" == typeof ArrayBuffer) { - var r = t, - e = r.lib, - i = e.WordArray, - n = i.init, - o = i.init = function (t) { - if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { - for (var r = t.byteLength, e = [], i = 0; i < r; i++) { - e[i >>> 2] |= t[i] << 24 - i % 4 * 8; - } - - n.call(this, e, r); - } else n.apply(this, arguments); - }; - - o.prototype = i; - } - }(), function (r) { - function e(t, r, e) { - return t ^ r ^ e; - } - - function i(t, r, e) { - return t & r | ~t & e; - } - - function n(t, r, e) { - return (t | ~r) ^ e; - } - - function o(t, r, e) { - return t & e | r & ~e; - } - - function s(t, r, e) { - return t ^ (r | ~e); - } - - function a(t, r) { - return t << r | t >>> 32 - r; - } - - var c = t, - h = c.lib, - l = h.WordArray, - f = h.Hasher, - u = c.algo, - d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), - v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), - p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), - _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), - y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), - g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), - B = u.RIPEMD160 = f.extend({ - _doReset: function _doReset() { - this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - for (var c = 0; c < 16; c++) { - var h = r + c, - l = t[h]; - t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); - } - - var f, - u, - B, - w, - k, - S, - m, - x, - b, - H, - z = this._hash.words, - A = y.words, - C = g.words, - D = d.words, - R = v.words, - E = p.words, - M = _.words; - S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; - - for (var F, c = 0; c < 80; c += 1) { - F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; - } - - F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F; - }, - _doFinalize: function _doFinalize() { - var t = this._data, - r = t.words, - e = 8 * this._nDataBytes, - i = 8 * t.sigBytes; - r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); - - for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { - var a = o[s]; - o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8); - } - - return n; - }, - clone: function clone() { - var t = f.clone.call(this); - return t._hash = this._hash.clone(), t; - } - }); - - c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B); - }(Math), function () { - var r = t, - e = r.lib, - i = e.Base, - n = r.enc, - o = n.Utf8, - s = r.algo; - s.HMAC = i.extend({ - init: function init(t, r) { - t = this._hasher = new t.init(), "string" == typeof r && (r = o.parse(r)); - var e = t.blockSize, - i = 4 * e; - r.sigBytes > i && (r = t.finalize(r)), r.clamp(); - - for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++) { - a[h] ^= 1549556828, c[h] ^= 909522486; - } - - n.sigBytes = s.sigBytes = i, this.reset(); - }, - reset: function reset() { - var t = this._hasher; - t.reset(), t.update(this._iKey); - }, - update: function update(t) { - return this._hasher.update(t), this; - }, - finalize: function finalize(t) { - var r = this._hasher, - e = r.finalize(t); - r.reset(); - var i = r.finalize(this._oKey.clone().concat(e)); - return i; - } - }); - }(), function () { - var r = t, - e = r.lib, - i = e.Base, - n = e.WordArray, - o = r.algo, - s = o.SHA1, - a = o.HMAC, - c = o.PBKDF2 = i.extend({ - cfg: i.extend({ - keySize: 4, - hasher: s, - iterations: 1 - }), - init: function init(t) { - this.cfg = this.cfg.extend(t); - }, - compute: function compute(t, r) { - for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { - var u = i.update(r).finalize(s); - i.reset(); - - for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { - p = i.finalize(p), i.reset(); - - for (var y = p.words, g = 0; g < v; g++) { - d[g] ^= y[g]; - } - } - - o.concat(u), h[0]++; - } - - return o.sigBytes = 4 * l, o; - } - }); - - r.PBKDF2 = function (t, r, e) { - return c.create(e).compute(t, r); - }; - }(), function () { - var r = t, - e = r.lib, - i = e.Base, - n = e.WordArray, - o = r.algo, - s = o.MD5, - a = o.EvpKDF = i.extend({ - cfg: i.extend({ - keySize: 4, - hasher: s, - iterations: 1 - }), - init: function init(t) { - this.cfg = this.cfg.extend(t); - }, - compute: function compute(t, r) { - for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { - h && i.update(h); - var h = i.update(t).finalize(r); - i.reset(); - - for (var l = 1; l < c; l++) { - h = i.finalize(h), i.reset(); - } - - o.concat(h); - } - - return o.sigBytes = 4 * a, o; - } - }); - - r.EvpKDF = function (t, r, e) { - return a.create(e).compute(t, r); - }; - }(), function () { - var r = t, - e = r.lib, - i = e.WordArray, - n = r.algo, - o = n.SHA256, - s = n.SHA224 = o.extend({ - _doReset: function _doReset() { - this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]); - }, - _doFinalize: function _doFinalize() { - var t = o._doFinalize.call(this); - - return t.sigBytes -= 4, t; - } - }); - r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s); - }(), function (r) { - var e = t, - i = e.lib, - n = i.Base, - o = i.WordArray, - s = e.x64 = {}; - s.Word = n.extend({ - init: function init(t, r) { - this.high = t, this.low = r; - } - }), s.WordArray = n.extend({ - init: function init(t, e) { - t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length; - }, - toX32: function toX32() { - for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { - var n = t[i]; - e.push(n.high), e.push(n.low); - } - - return o.create(e, this.sigBytes); - }, - clone: function clone() { - for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++) { - r[i] = r[i].clone(); - } - - return t; - } - }); - }(), function (r) { - var e = t, - i = e.lib, - n = i.WordArray, - o = i.Hasher, - s = e.x64, - a = s.Word, - c = e.algo, - h = [], - l = [], - f = []; - !function () { - for (var t = 1, r = 0, e = 0; e < 24; e++) { - h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; - var i = r % 5, - n = (2 * t + 3 * r) % 5; - t = i, r = n; - } - - for (var t = 0; t < 5; t++) { - for (var r = 0; r < 5; r++) { - l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; - } - } - - for (var o = 1, s = 0; s < 24; s++) { - for (var c = 0, u = 0, d = 0; d < 7; d++) { - if (1 & o) { - var v = (1 << d) - 1; - v < 32 ? u ^= 1 << v : c ^= 1 << v - 32; - } - - 128 & o ? o = o << 1 ^ 113 : o <<= 1; - } - - f[s] = a.create(c, u); - } - }(); - var u = []; - !function () { - for (var t = 0; t < 25; t++) { - u[t] = a.create(); - } - }(); - var d = c.SHA3 = o.extend({ - cfg: o.cfg.extend({ - outputLength: 512 - }), - _doReset: function _doReset() { - for (var t = this._state = [], r = 0; r < 25; r++) { - t[r] = new a.init(); - } - - this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; - }, - _doProcessBlock: function _doProcessBlock(t, r) { - for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { - var o = t[r + 2 * n], - s = t[r + 2 * n + 1]; - o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); - var a = e[n]; - a.high ^= s, a.low ^= o; - } - - for (var c = 0; c < 24; c++) { - for (var d = 0; d < 5; d++) { - for (var v = 0, p = 0, _ = 0; _ < 5; _++) { - var a = e[d + 5 * _]; - v ^= a.high, p ^= a.low; - } - - var y = u[d]; - y.high = v, y.low = p; - } - - for (var d = 0; d < 5; d++) { - for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { - var a = e[d + 5 * _]; - a.high ^= v, a.low ^= p; - } - } - - for (var S = 1; S < 25; S++) { - var a = e[S], - m = a.high, - x = a.low, - b = h[S]; - if (b < 32) var v = m << b | x >>> 32 - b, - p = x << b | m >>> 32 - b;else var v = x << b - 32 | m >>> 64 - b, - p = m << b - 32 | x >>> 64 - b; - var H = u[l[S]]; - H.high = v, H.low = p; - } - - var z = u[0], - A = e[0]; - z.high = A.high, z.low = A.low; - - for (var d = 0; d < 5; d++) { - for (var _ = 0; _ < 5; _++) { - var S = d + 5 * _, - a = e[S], - C = u[S], - D = u[(d + 1) % 5 + 5 * _], - R = u[(d + 2) % 5 + 5 * _]; - a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low; - } - } - - var a = e[0], - E = f[c]; - a.high ^= E.high, a.low ^= E.low; - } - }, - _doFinalize: function _doFinalize() { - var t = this._data, - e = t.words, - i = (8 * this._nDataBytes, 8 * t.sigBytes), - o = 32 * this.blockSize; - e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); - - for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { - var f = s[l], - u = f.high, - d = f.low; - u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u); - } - - return new n.init(h, a); - }, - clone: function clone() { - for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++) { - r[e] = r[e].clone(); - } - - return t; - } - }); - e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d); - }(Math), function () { - function r() { - return s.create.apply(s, arguments); - } - - var e = t, - i = e.lib, - n = i.Hasher, - o = e.x64, - s = o.Word, - a = o.WordArray, - c = e.algo, - h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], - l = []; - !function () { - for (var t = 0; t < 80; t++) { - l[t] = r(); - } - }(); - var f = c.SHA512 = n.extend({ - _doReset: function _doReset() { - this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { - var Z = l[T]; - if (T < 16) var q = Z.high = 0 | t[r + 2 * T], - G = Z.low = 0 | t[r + 2 * T + 1];else { - var J = l[T - 15], - $ = J.high, - Q = J.low, - V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, - Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), - tt = l[T - 2], - rt = tt.high, - et = tt.low, - it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, - nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), - ot = l[T - 7], - st = ot.high, - at = ot.low, - ct = l[T - 16], - ht = ct.high, - lt = ct.low, - G = Y + at, - q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), - G = G + nt, - q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), - G = G + lt, - q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); - Z.high = q, Z.low = G; - } - - var ft = O & I ^ ~O & X, - ut = U & K ^ ~U & L, - dt = C & R ^ C & M ^ R & M, - vt = D & E ^ D & F ^ E & F, - pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), - _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), - yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), - gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), - Bt = h[T], - wt = Bt.high, - kt = Bt.low, - St = N + gt, - mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), - St = St + ut, - mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), - St = St + kt, - mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), - St = St + G, - mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), - xt = _t + vt, - bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); - - j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0; - } - - v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0); - }, - _doFinalize: function _doFinalize() { - var t = this._data, - r = t.words, - e = 8 * this._nDataBytes, - i = 8 * t.sigBytes; - r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); - - var n = this._hash.toX32(); - - return n; - }, - clone: function clone() { - var t = n.clone.call(this); - return t._hash = this._hash.clone(), t; - }, - blockSize: 32 - }); - e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f); - }(), function () { - var r = t, - e = r.x64, - i = e.Word, - n = e.WordArray, - o = r.algo, - s = o.SHA512, - a = o.SHA384 = s.extend({ - _doReset: function _doReset() { - this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]); - }, - _doFinalize: function _doFinalize() { - var t = s._doFinalize.call(this); - - return t.sigBytes -= 16, t; - } - }); - r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a); - }(), t.lib.Cipher || function (r) { - var e = t, - i = e.lib, - n = i.Base, - o = i.WordArray, - s = i.BufferedBlockAlgorithm, - a = e.enc, - c = (a.Utf8, a.Base64), - h = e.algo, - l = h.EvpKDF, - f = i.Cipher = s.extend({ - cfg: n.extend(), - createEncryptor: function createEncryptor(t, r) { - return this.create(this._ENC_XFORM_MODE, t, r); - }, - createDecryptor: function createDecryptor(t, r) { - return this.create(this._DEC_XFORM_MODE, t, r); - }, - init: function init(t, r, e) { - this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset(); - }, - reset: function reset() { - s.reset.call(this), this._doReset(); - }, - process: function process(t) { - return this._append(t), this._process(); - }, - finalize: function finalize(t) { - t && this._append(t); - - var r = this._doFinalize(); - - return r; - }, - keySize: 4, - ivSize: 4, - _ENC_XFORM_MODE: 1, - _DEC_XFORM_MODE: 2, - _createHelper: function () { - function t(t) { - return "string" == typeof t ? m : w; - } - - return function (r) { - return { - encrypt: function encrypt(e, i, n) { - return t(i).encrypt(r, e, i, n); - }, - decrypt: function decrypt(e, i, n) { - return t(i).decrypt(r, e, i, n); - } - }; - }; - }() - }), - u = (i.StreamCipher = f.extend({ - _doFinalize: function _doFinalize() { - var t = this._process(!0); - - return t; - }, - blockSize: 1 - }), e.mode = {}), - d = i.BlockCipherMode = n.extend({ - createEncryptor: function createEncryptor(t, r) { - return this.Encryptor.create(t, r); - }, - createDecryptor: function createDecryptor(t, r) { - return this.Decryptor.create(t, r); - }, - init: function init(t, r) { - this._cipher = t, this._iv = r; - } - }), - v = u.CBC = function () { - function t(t, e, i) { - var n = this._iv; - - if (n) { - var o = n; - this._iv = r; - } else var o = this._prevBlock; - - for (var s = 0; s < i; s++) { - t[e + s] ^= o[s]; - } - } - - var e = d.extend(); - return e.Encryptor = e.extend({ - processBlock: function processBlock(r, e) { - var i = this._cipher, - n = i.blockSize; - t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n); - } - }), e.Decryptor = e.extend({ - processBlock: function processBlock(r, e) { - var i = this._cipher, - n = i.blockSize, - o = r.slice(e, e + n); - i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o; - } - }), e; - }(), - p = e.pad = {}, - _ = p.Pkcs7 = { - pad: function pad(t, r) { - for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4) { - s.push(n); - } - - var c = o.create(s, i); - t.concat(c); - }, - unpad: function unpad(t) { - var r = 255 & t.words[t.sigBytes - 1 >>> 2]; - t.sigBytes -= r; - } - }, - y = (i.BlockCipher = f.extend({ - cfg: f.cfg.extend({ - mode: v, - padding: _ - }), - reset: function reset() { - f.reset.call(this); - var t = this.cfg, - r = t.iv, - e = t.mode; - if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor;else { - var i = e.createDecryptor; - this._minBufferSize = 1; - } - this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - this._mode.processBlock(t, r); - }, - _doFinalize: function _doFinalize() { - var t = this.cfg.padding; - - if (this._xformMode == this._ENC_XFORM_MODE) { - t.pad(this._data, this.blockSize); - - var r = this._process(!0); - } else { - var r = this._process(!0); - - t.unpad(r); - } - - return r; - }, - blockSize: 4 - }), i.CipherParams = n.extend({ - init: function init(t) { - this.mixIn(t); - }, - toString: function toString(t) { - return (t || this.formatter).stringify(this); - } - })), - g = e.format = {}, - B = g.OpenSSL = { - stringify: function stringify(t) { - var r = t.ciphertext, - e = t.salt; - if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r);else var i = r; - return i.toString(c); - }, - parse: function parse(t) { - var r = c.parse(t), - e = r.words; - - if (1398893684 == e[0] && 1701076831 == e[1]) { - var i = o.create(e.slice(2, 4)); - e.splice(0, 4), r.sigBytes -= 16; - } - - return y.create({ - ciphertext: r, - salt: i - }); - } - }, - w = i.SerializableCipher = n.extend({ - cfg: n.extend({ - format: B - }), - encrypt: function encrypt(t, r, e, i) { - i = this.cfg.extend(i); - var n = t.createEncryptor(e, i), - o = n.finalize(r), - s = n.cfg; - return y.create({ - ciphertext: o, - key: e, - iv: s.iv, - algorithm: t, - mode: s.mode, - padding: s.padding, - blockSize: t.blockSize, - formatter: i.format - }); - }, - decrypt: function decrypt(t, r, e, i) { - i = this.cfg.extend(i), r = this._parse(r, i.format); - var n = t.createDecryptor(e, i).finalize(r.ciphertext); - return n; - }, - _parse: function _parse(t, r) { - return "string" == typeof t ? r.parse(t, this) : t; - } - }), - k = e.kdf = {}, - S = k.OpenSSL = { - execute: function execute(t, r, e, i) { - i || (i = o.random(8)); - var n = l.create({ - keySize: r + e - }).compute(t, i), - s = o.create(n.words.slice(r), 4 * e); - return n.sigBytes = 4 * r, y.create({ - key: n, - iv: s, - salt: i - }); - } - }, - m = i.PasswordBasedCipher = w.extend({ - cfg: w.cfg.extend({ - kdf: S - }), - encrypt: function encrypt(t, r, e, i) { - i = this.cfg.extend(i); - var n = i.kdf.execute(e, t.keySize, t.ivSize); - i.iv = n.iv; - var o = w.encrypt.call(this, t, r, n.key, i); - return o.mixIn(n), o; - }, - decrypt: function decrypt(t, r, e, i) { - i = this.cfg.extend(i), r = this._parse(r, i.format); - var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); - i.iv = n.iv; - var o = w.decrypt.call(this, t, r, n.key, i); - return o; - } - }); - }(), t.mode.CFB = function () { - function r(t, r, e, i) { - var n = this._iv; - - if (n) { - var o = n.slice(0); - this._iv = void 0; - } else var o = this._prevBlock; - - i.encryptBlock(o, 0); - - for (var s = 0; s < e; s++) { - t[r + s] ^= o[s]; - } - } - - var e = t.lib.BlockCipherMode.extend(); - return e.Encryptor = e.extend({ - processBlock: function processBlock(t, e) { - var i = this._cipher, - n = i.blockSize; - r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n); - } - }), e.Decryptor = e.extend({ - processBlock: function processBlock(t, e) { - var i = this._cipher, - n = i.blockSize, - o = t.slice(e, e + n); - r.call(this, t, e, n, i), this._prevBlock = o; - } - }), e; - }(), t.mode.ECB = function () { - var r = t.lib.BlockCipherMode.extend(); - return r.Encryptor = r.extend({ - processBlock: function processBlock(t, r) { - this._cipher.encryptBlock(t, r); - } - }), r.Decryptor = r.extend({ - processBlock: function processBlock(t, r) { - this._cipher.decryptBlock(t, r); - } - }), r; - }(), t.pad.AnsiX923 = { - pad: function pad(t, r) { - var e = t.sigBytes, - i = 4 * r, - n = i - e % i, - o = e + n - 1; - t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n; - }, - unpad: function unpad(t) { - var r = 255 & t.words[t.sigBytes - 1 >>> 2]; - t.sigBytes -= r; - } - }, t.pad.Iso10126 = { - pad: function pad(r, e) { - var i = 4 * e, - n = i - r.sigBytes % i; - r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)); - }, - unpad: function unpad(t) { - var r = 255 & t.words[t.sigBytes - 1 >>> 2]; - t.sigBytes -= r; - } - }, t.pad.Iso97971 = { - pad: function pad(r, e) { - r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e); - }, - unpad: function unpad(r) { - t.pad.ZeroPadding.unpad(r), r.sigBytes--; - } - }, t.mode.OFB = function () { - var r = t.lib.BlockCipherMode.extend(), - e = r.Encryptor = r.extend({ - processBlock: function processBlock(t, r) { - var e = this._cipher, - i = e.blockSize, - n = this._iv, - o = this._keystream; - n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); - - for (var s = 0; s < i; s++) { - t[r + s] ^= o[s]; - } - } - }); - return r.Decryptor = e, r; - }(), t.pad.NoPadding = { - pad: function pad() {}, - unpad: function unpad() {} - }, function (r) { - var e = t, - i = e.lib, - n = i.CipherParams, - o = e.enc, - s = o.Hex, - a = e.format; - a.Hex = { - stringify: function stringify(t) { - return t.ciphertext.toString(s); - }, - parse: function parse(t) { - var r = s.parse(t); - return n.create({ - ciphertext: r - }); - } - }; - }(), function () { - var r = t, - e = r.lib, - i = e.BlockCipher, - n = r.algo, - o = [], - s = [], - a = [], - c = [], - h = [], - l = [], - f = [], - u = [], - d = [], - v = []; - !function () { - for (var t = [], r = 0; r < 256; r++) { - r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; - } - - for (var e = 0, i = 0, r = 0; r < 256; r++) { - var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; - n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; - var p = t[e], - _ = t[p], - y = t[_], - g = 257 * t[n] ^ 16843008 * n; - a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; - var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; - f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1; - } - }(); - - var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], - _ = n.AES = i.extend({ - _doReset: function _doReset() { - if (!this._nRounds || this._keyPriorReset !== this._key) { - for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++) { - if (a < e) s[a] = r[a];else { - var c = s[a - 1]; - a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c; - } - } - - for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { - var a = n - l; - if (l % 4) var c = s[a];else var c = s[a - 4]; - l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]]; - } - } - }, - encryptBlock: function encryptBlock(t, r) { - this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o); - }, - decryptBlock: function decryptBlock(t, r) { - var e = t[r + 1]; - t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); - var e = t[r + 1]; - t[r + 1] = t[r + 3], t[r + 3] = e; - }, - _doCryptBlock: function _doCryptBlock(t, r, e, i, n, o, s, a) { - for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { - var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], - _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], - y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], - g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; - - h = p, l = _, f = y, u = g; - } - - var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], - _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], - y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], - g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; - - t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g; - }, - keySize: 8 - }); - - r.AES = i._createHelper(_); - }(), function () { - function r(t, r) { - var e = (this._lBlock >>> t ^ this._rBlock) & r; - this._rBlock ^= e, this._lBlock ^= e << t; - } - - function e(t, r) { - var e = (this._rBlock >>> t ^ this._lBlock) & r; - this._lBlock ^= e, this._rBlock ^= e << t; - } - - var i = t, - n = i.lib, - o = n.WordArray, - s = n.BlockCipher, - a = i.algo, - c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], - h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], - l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], - f = [{ - 0: 8421888, - 268435456: 32768, - 536870912: 8421378, - 805306368: 2, - 1073741824: 512, - 1342177280: 8421890, - 1610612736: 8389122, - 1879048192: 8388608, - 2147483648: 514, - 2415919104: 8389120, - 2684354560: 33280, - 2952790016: 8421376, - 3221225472: 32770, - 3489660928: 8388610, - 3758096384: 0, - 4026531840: 33282, - 134217728: 0, - 402653184: 8421890, - 671088640: 33282, - 939524096: 32768, - 1207959552: 8421888, - 1476395008: 512, - 1744830464: 8421378, - 2013265920: 2, - 2281701376: 8389120, - 2550136832: 33280, - 2818572288: 8421376, - 3087007744: 8389122, - 3355443200: 8388610, - 3623878656: 32770, - 3892314112: 514, - 4160749568: 8388608, - 1: 32768, - 268435457: 2, - 536870913: 8421888, - 805306369: 8388608, - 1073741825: 8421378, - 1342177281: 33280, - 1610612737: 512, - 1879048193: 8389122, - 2147483649: 8421890, - 2415919105: 8421376, - 2684354561: 8388610, - 2952790017: 33282, - 3221225473: 514, - 3489660929: 8389120, - 3758096385: 32770, - 4026531841: 0, - 134217729: 8421890, - 402653185: 8421376, - 671088641: 8388608, - 939524097: 512, - 1207959553: 32768, - 1476395009: 8388610, - 1744830465: 2, - 2013265921: 33282, - 2281701377: 32770, - 2550136833: 8389122, - 2818572289: 514, - 3087007745: 8421888, - 3355443201: 8389120, - 3623878657: 0, - 3892314113: 33280, - 4160749569: 8421378 - }, { - 0: 1074282512, - 16777216: 16384, - 33554432: 524288, - 50331648: 1074266128, - 67108864: 1073741840, - 83886080: 1074282496, - 100663296: 1073758208, - 117440512: 16, - 134217728: 540672, - 150994944: 1073758224, - 167772160: 1073741824, - 184549376: 540688, - 201326592: 524304, - 218103808: 0, - 234881024: 16400, - 251658240: 1074266112, - 8388608: 1073758208, - 25165824: 540688, - 41943040: 16, - 58720256: 1073758224, - 75497472: 1074282512, - 92274688: 1073741824, - 109051904: 524288, - 125829120: 1074266128, - 142606336: 524304, - 159383552: 0, - 176160768: 16384, - 192937984: 1074266112, - 209715200: 1073741840, - 226492416: 540672, - 243269632: 1074282496, - 260046848: 16400, - 268435456: 0, - 285212672: 1074266128, - 301989888: 1073758224, - 318767104: 1074282496, - 335544320: 1074266112, - 352321536: 16, - 369098752: 540688, - 385875968: 16384, - 402653184: 16400, - 419430400: 524288, - 436207616: 524304, - 452984832: 1073741840, - 469762048: 540672, - 486539264: 1073758208, - 503316480: 1073741824, - 520093696: 1074282512, - 276824064: 540688, - 293601280: 524288, - 310378496: 1074266112, - 327155712: 16384, - 343932928: 1073758208, - 360710144: 1074282512, - 377487360: 16, - 394264576: 1073741824, - 411041792: 1074282496, - 427819008: 1073741840, - 444596224: 1073758224, - 461373440: 524304, - 478150656: 0, - 494927872: 16400, - 511705088: 1074266128, - 528482304: 540672 - }, { - 0: 260, - 1048576: 0, - 2097152: 67109120, - 3145728: 65796, - 4194304: 65540, - 5242880: 67108868, - 6291456: 67174660, - 7340032: 67174400, - 8388608: 67108864, - 9437184: 67174656, - 10485760: 65792, - 11534336: 67174404, - 12582912: 67109124, - 13631488: 65536, - 14680064: 4, - 15728640: 256, - 524288: 67174656, - 1572864: 67174404, - 2621440: 0, - 3670016: 67109120, - 4718592: 67108868, - 5767168: 65536, - 6815744: 65540, - 7864320: 260, - 8912896: 4, - 9961472: 256, - 11010048: 67174400, - 12058624: 65796, - 13107200: 65792, - 14155776: 67109124, - 15204352: 67174660, - 16252928: 67108864, - 16777216: 67174656, - 17825792: 65540, - 18874368: 65536, - 19922944: 67109120, - 20971520: 256, - 22020096: 67174660, - 23068672: 67108868, - 24117248: 0, - 25165824: 67109124, - 26214400: 67108864, - 27262976: 4, - 28311552: 65792, - 29360128: 67174400, - 30408704: 260, - 31457280: 65796, - 32505856: 67174404, - 17301504: 67108864, - 18350080: 260, - 19398656: 67174656, - 20447232: 0, - 21495808: 65540, - 22544384: 67109120, - 23592960: 256, - 24641536: 67174404, - 25690112: 65536, - 26738688: 67174660, - 27787264: 65796, - 28835840: 67108868, - 29884416: 67109124, - 30932992: 67174400, - 31981568: 4, - 33030144: 65792 - }, { - 0: 2151682048, - 65536: 2147487808, - 131072: 4198464, - 196608: 2151677952, - 262144: 0, - 327680: 4198400, - 393216: 2147483712, - 458752: 4194368, - 524288: 2147483648, - 589824: 4194304, - 655360: 64, - 720896: 2147487744, - 786432: 2151678016, - 851968: 4160, - 917504: 4096, - 983040: 2151682112, - 32768: 2147487808, - 98304: 64, - 163840: 2151678016, - 229376: 2147487744, - 294912: 4198400, - 360448: 2151682112, - 425984: 0, - 491520: 2151677952, - 557056: 4096, - 622592: 2151682048, - 688128: 4194304, - 753664: 4160, - 819200: 2147483648, - 884736: 4194368, - 950272: 4198464, - 1015808: 2147483712, - 1048576: 4194368, - 1114112: 4198400, - 1179648: 2147483712, - 1245184: 0, - 1310720: 4160, - 1376256: 2151678016, - 1441792: 2151682048, - 1507328: 2147487808, - 1572864: 2151682112, - 1638400: 2147483648, - 1703936: 2151677952, - 1769472: 4198464, - 1835008: 2147487744, - 1900544: 4194304, - 1966080: 64, - 2031616: 4096, - 1081344: 2151677952, - 1146880: 2151682112, - 1212416: 0, - 1277952: 4198400, - 1343488: 4194368, - 1409024: 2147483648, - 1474560: 2147487808, - 1540096: 64, - 1605632: 2147483712, - 1671168: 4096, - 1736704: 2147487744, - 1802240: 2151678016, - 1867776: 4160, - 1933312: 2151682048, - 1998848: 4194304, - 2064384: 4198464 - }, { - 0: 128, - 4096: 17039360, - 8192: 262144, - 12288: 536870912, - 16384: 537133184, - 20480: 16777344, - 24576: 553648256, - 28672: 262272, - 32768: 16777216, - 36864: 537133056, - 40960: 536871040, - 45056: 553910400, - 49152: 553910272, - 53248: 0, - 57344: 17039488, - 61440: 553648128, - 2048: 17039488, - 6144: 553648256, - 10240: 128, - 14336: 17039360, - 18432: 262144, - 22528: 537133184, - 26624: 553910272, - 30720: 536870912, - 34816: 537133056, - 38912: 0, - 43008: 553910400, - 47104: 16777344, - 51200: 536871040, - 55296: 553648128, - 59392: 16777216, - 63488: 262272, - 65536: 262144, - 69632: 128, - 73728: 536870912, - 77824: 553648256, - 81920: 16777344, - 86016: 553910272, - 90112: 537133184, - 94208: 16777216, - 98304: 553910400, - 102400: 553648128, - 106496: 17039360, - 110592: 537133056, - 114688: 262272, - 118784: 536871040, - 122880: 0, - 126976: 17039488, - 67584: 553648256, - 71680: 16777216, - 75776: 17039360, - 79872: 537133184, - 83968: 536870912, - 88064: 17039488, - 92160: 128, - 96256: 553910272, - 100352: 262272, - 104448: 553910400, - 108544: 0, - 112640: 553648128, - 116736: 16777344, - 120832: 262144, - 124928: 537133056, - 129024: 536871040 - }, { - 0: 268435464, - 256: 8192, - 512: 270532608, - 768: 270540808, - 1024: 268443648, - 1280: 2097152, - 1536: 2097160, - 1792: 268435456, - 2048: 0, - 2304: 268443656, - 2560: 2105344, - 2816: 8, - 3072: 270532616, - 3328: 2105352, - 3584: 8200, - 3840: 270540800, - 128: 270532608, - 384: 270540808, - 640: 8, - 896: 2097152, - 1152: 2105352, - 1408: 268435464, - 1664: 268443648, - 1920: 8200, - 2176: 2097160, - 2432: 8192, - 2688: 268443656, - 2944: 270532616, - 3200: 0, - 3456: 270540800, - 3712: 2105344, - 3968: 268435456, - 4096: 268443648, - 4352: 270532616, - 4608: 270540808, - 4864: 8200, - 5120: 2097152, - 5376: 268435456, - 5632: 268435464, - 5888: 2105344, - 6144: 2105352, - 6400: 0, - 6656: 8, - 6912: 270532608, - 7168: 8192, - 7424: 268443656, - 7680: 270540800, - 7936: 2097160, - 4224: 8, - 4480: 2105344, - 4736: 2097152, - 4992: 268435464, - 5248: 268443648, - 5504: 8200, - 5760: 270540808, - 6016: 270532608, - 6272: 270540800, - 6528: 270532616, - 6784: 8192, - 7040: 2105352, - 7296: 2097160, - 7552: 0, - 7808: 268435456, - 8064: 268443656 - }, { - 0: 1048576, - 16: 33555457, - 32: 1024, - 48: 1049601, - 64: 34604033, - 80: 0, - 96: 1, - 112: 34603009, - 128: 33555456, - 144: 1048577, - 160: 33554433, - 176: 34604032, - 192: 34603008, - 208: 1025, - 224: 1049600, - 240: 33554432, - 8: 34603009, - 24: 0, - 40: 33555457, - 56: 34604032, - 72: 1048576, - 88: 33554433, - 104: 33554432, - 120: 1025, - 136: 1049601, - 152: 33555456, - 168: 34603008, - 184: 1048577, - 200: 1024, - 216: 34604033, - 232: 1, - 248: 1049600, - 256: 33554432, - 272: 1048576, - 288: 33555457, - 304: 34603009, - 320: 1048577, - 336: 33555456, - 352: 34604032, - 368: 1049601, - 384: 1025, - 400: 34604033, - 416: 1049600, - 432: 1, - 448: 0, - 464: 34603008, - 480: 33554433, - 496: 1024, - 264: 1049600, - 280: 33555457, - 296: 34603009, - 312: 1, - 328: 33554432, - 344: 1048576, - 360: 1025, - 376: 34604032, - 392: 33554433, - 408: 34603008, - 424: 0, - 440: 34604033, - 456: 1049601, - 472: 1024, - 488: 33555456, - 504: 1048577 - }, { - 0: 134219808, - 1: 131072, - 2: 134217728, - 3: 32, - 4: 131104, - 5: 134350880, - 6: 134350848, - 7: 2048, - 8: 134348800, - 9: 134219776, - 10: 133120, - 11: 134348832, - 12: 2080, - 13: 0, - 14: 134217760, - 15: 133152, - 2147483648: 2048, - 2147483649: 134350880, - 2147483650: 134219808, - 2147483651: 134217728, - 2147483652: 134348800, - 2147483653: 133120, - 2147483654: 133152, - 2147483655: 32, - 2147483656: 134217760, - 2147483657: 2080, - 2147483658: 131104, - 2147483659: 134350848, - 2147483660: 0, - 2147483661: 134348832, - 2147483662: 134219776, - 2147483663: 131072, - 16: 133152, - 17: 134350848, - 18: 32, - 19: 2048, - 20: 134219776, - 21: 134217760, - 22: 134348832, - 23: 131072, - 24: 0, - 25: 131104, - 26: 134348800, - 27: 134219808, - 28: 134350880, - 29: 133120, - 30: 2080, - 31: 134217728, - 2147483664: 131072, - 2147483665: 2048, - 2147483666: 134348832, - 2147483667: 133152, - 2147483668: 32, - 2147483669: 134348800, - 2147483670: 134217728, - 2147483671: 134219808, - 2147483672: 134350880, - 2147483673: 134217760, - 2147483674: 134219776, - 2147483675: 0, - 2147483676: 133120, - 2147483677: 2080, - 2147483678: 131104, - 2147483679: 134350848 - }], - u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], - d = a.DES = s.extend({ - _doReset: function _doReset() { - for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { - var n = c[i] - 1; - e[i] = r[n >>> 5] >>> 31 - n % 32 & 1; - } - - for (var o = this._subKeys = [], s = 0; s < 16; s++) { - for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++) { - a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; - } - - a[0] = a[0] << 1 | a[0] >>> 31; - - for (var i = 1; i < 7; i++) { - a[i] = a[i] >>> 4 * (i - 1) + 3; - } - - a[7] = a[7] << 5 | a[7] >>> 27; - } - - for (var u = this._invSubKeys = [], i = 0; i < 16; i++) { - u[i] = o[15 - i]; - } - }, - encryptBlock: function encryptBlock(t, r) { - this._doCryptBlock(t, r, this._subKeys); - }, - decryptBlock: function decryptBlock(t, r) { - this._doCryptBlock(t, r, this._invSubKeys); - }, - _doCryptBlock: function _doCryptBlock(t, i, n) { - this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); - - for (var o = 0; o < 16; o++) { - for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++) { - h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; - } - - this._lBlock = c, this._rBlock = a ^ h; - } - - var d = this._lBlock; - this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock; - }, - keySize: 2, - ivSize: 2, - blockSize: 2 - }); - i.DES = s._createHelper(d); - var v = a.TripleDES = s.extend({ - _doReset: function _doReset() { - var t = this._key, - r = t.words; - this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))); - }, - encryptBlock: function encryptBlock(t, r) { - this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r); - }, - decryptBlock: function decryptBlock(t, r) { - this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r); - }, - keySize: 6, - ivSize: 2, - blockSize: 2 - }); - i.TripleDES = s._createHelper(v); - }(), function () { - function r() { - for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) { - r = (r + 1) % 256, e = (e + t[r]) % 256; - var o = t[r]; - t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n; - } - - return this._i = r, this._j = e, i; - } - - var e = t, - i = e.lib, - n = i.StreamCipher, - o = e.algo, - s = o.RC4 = n.extend({ - _doReset: function _doReset() { - for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++) { - i[n] = n; - } - - for (var n = 0, o = 0; n < 256; n++) { - var s = n % e, - a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; - o = (o + i[n] + a) % 256; - var c = i[n]; - i[n] = i[o], i[o] = c; - } - - this._i = this._j = 0; - }, - _doProcessBlock: function _doProcessBlock(t, e) { - t[e] ^= r.call(this); - }, - keySize: 8, - ivSize: 0 - }); - e.RC4 = n._createHelper(s); - var a = o.RC4Drop = s.extend({ - cfg: s.cfg.extend({ - drop: 192 - }), - _doReset: function _doReset() { - s._doReset.call(this); - - for (var t = this.cfg.drop; t > 0; t--) { - r.call(this); - } - } - }); - e.RC4Drop = n._createHelper(a); - }(), t.mode.CTRGladman = function () { - function r(t) { - if (255 === (t >> 24 & 255)) { - var r = t >> 16 & 255, - e = t >> 8 & 255, - i = 255 & t; - 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i; - } else t += 1 << 24; - - return t; - } - - function e(t) { - return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t; - } - - var i = t.lib.BlockCipherMode.extend(), - n = i.Encryptor = i.extend({ - processBlock: function processBlock(t, r) { - var i = this._cipher, - n = i.blockSize, - o = this._iv, - s = this._counter; - o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); - var a = s.slice(0); - i.encryptBlock(a, 0); - - for (var c = 0; c < n; c++) { - t[r + c] ^= a[c]; - } - } - }); - return i.Decryptor = n, i; - }(), function () { - function r() { - for (var t = this._X, r = this._C, e = 0; e < 8; e++) { - a[e] = r[e]; - } - - r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; - - for (var e = 0; e < 8; e++) { - var i = t[e] + r[e], - n = 65535 & i, - o = i >>> 16, - s = ((n * n >>> 17) + n * o >>> 15) + o * o, - h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); - c[e] = s ^ h; - } - - t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; - } - - var e = t, - i = e.lib, - n = i.StreamCipher, - o = e.algo, - s = [], - a = [], - c = [], - h = o.Rabbit = n.extend({ - _doReset: function _doReset() { - for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++) { - t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); - } - - var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], - o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; - this._b = 0; - - for (var i = 0; i < 4; i++) { - r.call(this); - } - - for (var i = 0; i < 8; i++) { - o[i] ^= n[i + 4 & 7]; - } - - if (e) { - var s = e.words, - a = s[0], - c = s[1], - h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), - l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), - f = h >>> 16 | 4294901760 & l, - u = l << 16 | 65535 & h; - o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; - - for (var i = 0; i < 4; i++) { - r.call(this); - } - } - }, - _doProcessBlock: function _doProcessBlock(t, e) { - var i = this._X; - r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; - - for (var n = 0; n < 4; n++) { - s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; - } - }, - blockSize: 4, - ivSize: 2 - }); - e.Rabbit = n._createHelper(h); - }(), t.mode.CTR = function () { - var r = t.lib.BlockCipherMode.extend(), - e = r.Encryptor = r.extend({ - processBlock: function processBlock(t, r) { - var e = this._cipher, - i = e.blockSize, - n = this._iv, - o = this._counter; - n && (o = this._counter = n.slice(0), this._iv = void 0); - var s = o.slice(0); - e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; - - for (var a = 0; a < i; a++) { - t[r + a] ^= s[a]; - } - } - }); - return r.Decryptor = e, r; - }(), function () { - function r() { - for (var t = this._X, r = this._C, e = 0; e < 8; e++) { - a[e] = r[e]; - } - - r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; - - for (var e = 0; e < 8; e++) { - var i = t[e] + r[e], - n = 65535 & i, - o = i >>> 16, - s = ((n * n >>> 17) + n * o >>> 15) + o * o, - h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); - c[e] = s ^ h; - } - - t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; - } - - var e = t, - i = e.lib, - n = i.StreamCipher, - o = e.algo, - s = [], - a = [], - c = [], - h = o.RabbitLegacy = n.extend({ - _doReset: function _doReset() { - var t = this._key.words, - e = this.cfg.iv, - i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], - n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; - this._b = 0; - - for (var o = 0; o < 4; o++) { - r.call(this); - } - - for (var o = 0; o < 8; o++) { - n[o] ^= i[o + 4 & 7]; - } - - if (e) { - var s = e.words, - a = s[0], - c = s[1], - h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), - l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), - f = h >>> 16 | 4294901760 & l, - u = l << 16 | 65535 & h; - n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; - - for (var o = 0; o < 4; o++) { - r.call(this); - } - } - }, - _doProcessBlock: function _doProcessBlock(t, e) { - var i = this._X; - r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; - - for (var n = 0; n < 4; n++) { - s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; - } - }, - blockSize: 4, - ivSize: 2 - }); - e.RabbitLegacy = n._createHelper(h); - }(), t.pad.ZeroPadding = { - pad: function pad(t, r) { - var e = 4 * r; - t.clamp(), t.sigBytes += e - (t.sigBytes % e || e); - }, - unpad: function unpad(t) { - for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);) { - e--; - } - - t.sigBytes = e + 1; - } - }, t; -}); //# sourceMappingURL=crypto-js.min.js.map - -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENyeXB0b1xcY3J5cHRvLWpzLm1pbi5qcyJdLCJuYW1lcyI6WyJ0IiwiciIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJDcnlwdG9KUyIsImUiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm90b3R5cGUiLCJpIiwibiIsImxpYiIsIm8iLCJCYXNlIiwiZXh0ZW5kIiwibWl4SW4iLCJoYXNPd25Qcm9wZXJ0eSIsImluaXQiLCIkc3VwZXIiLCJhcHBseSIsImFyZ3VtZW50cyIsInRvU3RyaW5nIiwiY2xvbmUiLCJzIiwiV29yZEFycmF5Iiwid29yZHMiLCJzaWdCeXRlcyIsImxlbmd0aCIsImMiLCJzdHJpbmdpZnkiLCJjb25jYXQiLCJjbGFtcCIsImNlaWwiLCJjYWxsIiwic2xpY2UiLCJyYW5kb20iLCJhIiwicHVzaCIsImVuYyIsIkhleCIsImpvaW4iLCJwYXJzZSIsInBhcnNlSW50Iiwic3Vic3RyIiwiaCIsIkxhdGluMSIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsImNoYXJDb2RlQXQiLCJsIiwiVXRmOCIsImRlY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsIkVycm9yIiwidW5lc2NhcGUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJmIiwiQnVmZmVyZWRCbG9ja0FsZ29yaXRobSIsInJlc2V0IiwiX2RhdGEiLCJfbkRhdGFCeXRlcyIsIl9hcHBlbmQiLCJfcHJvY2VzcyIsImJsb2NrU2l6ZSIsIm1heCIsIl9taW5CdWZmZXJTaXplIiwibWluIiwiX2RvUHJvY2Vzc0Jsb2NrIiwidSIsInNwbGljZSIsIkhhc2hlciIsImNmZyIsIl9kb1Jlc2V0IiwidXBkYXRlIiwiZmluYWxpemUiLCJfZG9GaW5hbGl6ZSIsIl9jcmVhdGVIZWxwZXIiLCJfY3JlYXRlSG1hY0hlbHBlciIsIkhNQUMiLCJhbGdvIiwiTWF0aCIsIkJhc2U2NCIsIl9tYXAiLCJjaGFyQXQiLCJfcmV2ZXJzZU1hcCIsImluZGV4T2YiLCJhYnMiLCJzaW4iLCJNRDUiLCJfaGFzaCIsImQiLCJ2IiwicCIsIl8iLCJ5IiwiZyIsIkIiLCJ3IiwiayIsIlMiLCJtIiwieCIsImIiLCJIIiwieiIsIkEiLCJDIiwiRCIsImZsb29yIiwiSG1hY01ENSIsIlNIQTEiLCJIbWFjU0hBMSIsInNxcnQiLCJwb3ciLCJTSEEyNTYiLCJIbWFjU0hBMjU2IiwiVXRmMTYiLCJVdGYxNkJFIiwiVXRmMTZMRSIsIkFycmF5QnVmZmVyIiwiVWludDhBcnJheSIsIkludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiSW50MTZBcnJheSIsIlVpbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIlVpbnQzMkFycmF5IiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiYnVmZmVyIiwiYnl0ZU9mZnNldCIsImJ5dGVMZW5ndGgiLCJSSVBFTUQxNjAiLCJSIiwiRSIsIk0iLCJGIiwiSG1hY1JJUEVNRDE2MCIsIl9oYXNoZXIiLCJfb0tleSIsIl9pS2V5IiwiUEJLREYyIiwia2V5U2l6ZSIsImhhc2hlciIsIml0ZXJhdGlvbnMiLCJjb21wdXRlIiwiRXZwS0RGIiwiU0hBMjI0IiwiSG1hY1NIQTIyNCIsIng2NCIsIldvcmQiLCJoaWdoIiwibG93IiwidG9YMzIiLCJTSEEzIiwib3V0cHV0TGVuZ3RoIiwiX3N0YXRlIiwiSG1hY1NIQTMiLCJTSEE1MTIiLCJQIiwiVyIsIk8iLCJVIiwiSSIsIksiLCJYIiwiTCIsImoiLCJOIiwiVCIsIloiLCJxIiwiRyIsIkoiLCIkIiwiUSIsIlYiLCJZIiwidHQiLCJydCIsImV0IiwiaXQiLCJudCIsIm90Iiwic3QiLCJhdCIsImN0IiwiaHQiLCJsdCIsImZ0IiwidXQiLCJkdCIsInZ0IiwicHQiLCJfdCIsInl0IiwiZ3QiLCJCdCIsInd0Iiwia3QiLCJTdCIsIm10IiwieHQiLCJidCIsIkhtYWNTSEE1MTIiLCJTSEEzODQiLCJIbWFjU0hBMzg0IiwiQ2lwaGVyIiwiY3JlYXRlRW5jcnlwdG9yIiwiX0VOQ19YRk9STV9NT0RFIiwiY3JlYXRlRGVjcnlwdG9yIiwiX0RFQ19YRk9STV9NT0RFIiwiX3hmb3JtTW9kZSIsIl9rZXkiLCJwcm9jZXNzIiwiaXZTaXplIiwiZW5jcnlwdCIsImRlY3J5cHQiLCJTdHJlYW1DaXBoZXIiLCJtb2RlIiwiQmxvY2tDaXBoZXJNb2RlIiwiRW5jcnlwdG9yIiwiRGVjcnlwdG9yIiwiX2NpcGhlciIsIl9pdiIsIkNCQyIsIl9wcmV2QmxvY2siLCJwcm9jZXNzQmxvY2siLCJlbmNyeXB0QmxvY2siLCJkZWNyeXB0QmxvY2siLCJwYWQiLCJQa2NzNyIsInVucGFkIiwiQmxvY2tDaXBoZXIiLCJwYWRkaW5nIiwiaXYiLCJfbW9kZSIsIl9fY3JlYXRvciIsIkNpcGhlclBhcmFtcyIsImZvcm1hdHRlciIsImZvcm1hdCIsIk9wZW5TU0wiLCJjaXBoZXJ0ZXh0Iiwic2FsdCIsIlNlcmlhbGl6YWJsZUNpcGhlciIsImtleSIsImFsZ29yaXRobSIsIl9wYXJzZSIsImtkZiIsImV4ZWN1dGUiLCJQYXNzd29yZEJhc2VkQ2lwaGVyIiwiQ0ZCIiwiRUNCIiwiQW5zaVg5MjMiLCJJc28xMDEyNiIsIklzbzk3OTcxIiwiWmVyb1BhZGRpbmciLCJPRkIiLCJfa2V5c3RyZWFtIiwiTm9QYWRkaW5nIiwiQUVTIiwiX25Sb3VuZHMiLCJfa2V5UHJpb3JSZXNldCIsIl9rZXlTY2hlZHVsZSIsIl9pbnZLZXlTY2hlZHVsZSIsIl9kb0NyeXB0QmxvY2siLCJfbEJsb2NrIiwiX3JCbG9jayIsIkRFUyIsIl9zdWJLZXlzIiwiX2ludlN1YktleXMiLCJUcmlwbGVERVMiLCJfZGVzMSIsIl9kZXMyIiwiX2RlczMiLCJfUyIsIl9pIiwiX2oiLCJSQzQiLCJSQzREcm9wIiwiZHJvcCIsIkNUUkdsYWRtYW4iLCJfY291bnRlciIsIl9YIiwiX0MiLCJfYiIsIlJhYmJpdCIsIkNUUiIsIlJhYmJpdExlZ2FjeSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxDQUFDLFVBQVNBLENBQVQsRUFBV0MsQ0FBWCxFQUFhO0FBQUMs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RUFBYSxDQUFiLEVBQWUsQ0FBZixFQUFpQixDQUFqQixFQUFtQixDQUFuQixFQUFxQixFQUFyQixFQUF3QixFQUF4QixFQUEyQixFQUEzQixFQUE4QixFQUE5QixFQUFpQyxDQUFqQyxFQUFtQyxDQUFuQyxFQUFxQyxDQUFyQyxFQUF1QyxDQUF2QyxFQUF5QyxDQUF6QyxFQUEyQyxDQUEzQyxFQUE2QyxDQUE3QyxFQUErQyxFQUEvQyxFQUFrRCxFQUFsRCxFQUFxRCxDQUFyRCxFQUF1RCxDQUF2RCxFQUF5RCxFQUF6RCxFQUE0RCxDQUE1RCxFQUE4RCxFQUE5RCxFQUFpRSxFQUFqRSxFQUFvRSxDQUFwRSxFQUFzRSxFQUF0RSxFQUF5RSxDQUF6RSxFQUEyRSxFQUEzRSxFQUE4RSxFQUE5RSxFQUFpRixFQUFqRixFQUFvRixFQUFwRixFQUF1RixDQUF2RixFQUF5RixDQUF6RixFQUEyRixFQUEzRixFQUE4RixDQUE5RixFQUFnRyxFQUFoRyxFQUFtRyxFQUFuRyxFQUFzRyxFQUF0RyxFQUF5RyxDQUF6RyxFQUEyRyxFQUEzRyxFQUE4RyxDQUE5RyxFQUFnSCxDQUFoSCxFQUFrSCxFQUFsSCxFQUFxSCxDQUFySCxFQUF1SCxDQUF2SCxFQUF5SCxFQUF6SCxFQUE0SCxFQUE1SCxFQUErSCxFQUEvSCxFQUFrSSxFQUFsSSxFQUFxSSxFQUFySSxFQUF3SSxFQUF4SSxFQUEySSxDQUEzSSxFQUE2SSxDQUE3SSxFQUErSSxDQUEvSSxFQUFpSixFQUFqSixFQUFvSixDQUFwSixFQUFzSixDQUF0SixFQUF3SixDQUF4SixFQUEwSixDQUExSixFQUE0SixDQUE1SixFQUE4SixFQUE5SixFQUFpSyxDQUFqSyxFQUFtSyxFQUFuSyxFQUFzSyxDQUF0SyxFQUF3SyxFQUF4SyxFQUEySyxDQUEzSyxFQUE2SyxDQUE3SyxFQUErSyxFQUEvSyxFQUFrTCxFQUFsTCxFQUFxTCxDQUFyTCxFQUF1TCxFQUF2TCxFQUEwTCxFQUExTCxFQUE2TCxFQUE3TCxFQUFnTSxFQUFoTSxFQUFtTSxDQUFuTSxFQUFxTSxDQUFyTSxFQUF1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ckIsQ0FBQyxHQUFDLENBQWI7QUFBZTtBQUExSyxHQURueVgsRUFDKzhYUCxDQUR0OVg7QUFDdzlYLENBRGpoZixDQUFELEVBRUEiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIiFmdW5jdGlvbih0LHIpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWV4cG9ydHM9cigpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10scik6dC5DcnlwdG9KUz1yKCl9KHRoaXMsZnVuY3Rpb24oKXt2YXIgdD10fHxmdW5jdGlvbih0LHIpe3ZhciBlPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gZnVuY3Rpb24ocil7dmFyIGU7cmV0dXJuIHQucHJvdG90eXBlPXIsZT1uZXcgdCx0LnByb3RvdHlwZT1udWxsLGV9fSgpLGk9e30sbj1pLmxpYj17fSxvPW4uQmFzZT1mdW5jdGlvbigpe3JldHVybntleHRlbmQ6ZnVuY3Rpb24odCl7dmFyIHI9ZSh0aGlzKTtyZXR1cm4gdCYmci5taXhJbih0KSxyLmhhc093blByb3BlcnR5KFwiaW5pdFwiKSYmdGhpcy5pbml0IT09ci5pbml0fHwoci5pbml0PWZ1bmN0aW9uKCl7ci4kc3VwZXIuaW5pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxyLmluaXQucHJvdG90eXBlPXIsci4kc3VwZXI9dGhpcyxyfSxjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmV4dGVuZCgpO3JldHVybiB0LmluaXQuYXBwbHkodCxhcmd1bWVudHMpLHR9LGluaXQ6ZnVuY3Rpb24oKXt9LG1peEluOmZ1bmN0aW9uKHQpe2Zvcih2YXIgciBpbiB0KXQuaGFzT3duUHJvcGVydHkocikmJih0aGlzW3JdPXRbcl0pO3QuaGFzT3duUHJvcGVydHkoXCJ0b1N0cmluZ1wiKSYmKHRoaXMudG9TdHJpbmc9dC50b1N0cmluZyl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5pdC5wcm90b3R5cGUuZXh0ZW5kKHRoaXMpfX19KCkscz1uLldvcmRBcnJheT1vLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LGUpe3Q9dGhpcy53b3Jkcz10fHxbXSxlIT1yP3RoaXMuc2lnQnl0ZXM9ZTp0aGlzLnNpZ0J5dGVzPTQqdC5sZW5ndGh9LHRvU3RyaW5nOmZ1bmN0aW9uKHQpe3JldHVybih0fHxjKS5zdHJpbmdpZnkodGhpcyl9LGNvbmNhdDpmdW5jdGlvbih0KXt2YXIgcj10aGlzLndvcmRzLGU9dC53b3JkcyxpPXRoaXMuc2lnQnl0ZXMsbj10LnNpZ0J5dGVzO2lmKHRoaXMuY2xhbXAoKSxpJTQpZm9yKHZhciBvPTA7bzxuO28rKyl7dmFyIHM9ZVtvPj4+Ml0+Pj4yNC1vJTQqOCYyNTU7cltpK28+Pj4yXXw9czw8MjQtKGkrbyklNCo4fWVsc2UgZm9yKHZhciBvPTA7bzxuO28rPTQpcltpK28+Pj4yXT1lW28+Pj4yXTtyZXR1cm4gdGhpcy5zaWdCeXRlcys9bix0aGlzfSxjbGFtcDpmdW5jdGlvbigpe3ZhciByPXRoaXMud29yZHMsZT10aGlzLnNpZ0J5dGVzO3JbZT4+PjJdJj00Mjk0OTY3Mjk1PDwzMi1lJTQqOCxyLmxlbmd0aD10LmNlaWwoZS80KX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1vLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQud29yZHM9dGhpcy53b3Jkcy5zbGljZSgwKSx0fSxyYW5kb206ZnVuY3Rpb24ocil7Zm9yKHZhciBlLGk9W10sbj1mdW5jdGlvbihyKXt2YXIgcj1yLGU9OTg3NjU0MzIxLGk9NDI5NDk2NzI5NTtyZXR1cm4gZnVuY3Rpb24oKXtlPTM2OTY5Kig2NTUzNSZlKSsoZT4+MTYpJmkscj0xOGUzKig2NTUzNSZyKSsocj4+MTYpJmk7dmFyIG49KGU8PDE2KStyJmk7cmV0dXJuIG4vPTQyOTQ5NjcyOTYsbis9LjUsbioodC5yYW5kb20oKT4uNT8xOi0xKX19LG89MDtvPHI7bys9NCl7dmFyIGE9big0Mjk0OTY3Mjk2KihlfHx0LnJhbmRvbSgpKSk7ZT05ODc2NTQwNzEqYSgpLGkucHVzaCg0Mjk0OTY3Mjk2KmEoKXwwKX1yZXR1cm4gbmV3IHMuaW5pdChpLHIpfX0pLGE9aS5lbmM9e30sYz1hLkhleD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10LndvcmRzLGU9dC5zaWdCeXRlcyxpPVtdLG49MDtuPGU7bisrKXt2YXIgbz1yW24+Pj4yXT4+PjI0LW4lNCo4JjI1NTtpLnB1c2goKG8+Pj40KS50b1N0cmluZygxNikpLGkucHVzaCgoMTUmbykudG9TdHJpbmcoMTYpKX1yZXR1cm4gaS5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGgsZT1bXSxpPTA7aTxyO2krPTIpZVtpPj4+M118PXBhcnNlSW50KHQuc3Vic3RyKGksMiksMTYpPDwyNC1pJTgqNDtyZXR1cm4gbmV3IHMuaW5pdChlLHIvMil9fSxoPWEuTGF0aW4xPXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQud29yZHMsZT10LnNpZ0J5dGVzLGk9W10sbj0wO248ZTtuKyspe3ZhciBvPXJbbj4+PjJdPj4+MjQtbiU0KjgmMjU1O2kucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKG8pKX1yZXR1cm4gaS5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGgsZT1bXSxpPTA7aTxyO2krKyllW2k+Pj4yXXw9KDI1NSZ0LmNoYXJDb2RlQXQoaSkpPDwyNC1pJTQqODtyZXR1cm4gbmV3IHMuaW5pdChlLHIpfX0sbD1hLlV0Zjg9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoaC5zdHJpbmdpZnkodCkpKX1jYXRjaCh0KXt0aHJvdyBuZXcgRXJyb3IoXCJNYWxmb3JtZWQgVVRGLTggZGF0YVwiKX19LHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBoLnBhcnNlKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudCh0KSkpfX0sZj1uLkJ1ZmZlcmVkQmxvY2tBbGdvcml0aG09by5leHRlbmQoe3Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5fZGF0YT1uZXcgcy5pbml0LHRoaXMuX25EYXRhQnl0ZXM9MH0sX2FwcGVuZDpmdW5jdGlvbih0KXtcInN0cmluZ1wiPT10eXBlb2YgdCYmKHQ9bC5wYXJzZSh0KSksdGhpcy5fZGF0YS5jb25jYXQodCksdGhpcy5fbkRhdGFCeXRlcys9dC5zaWdCeXRlc30sX3Byb2Nlc3M6ZnVuY3Rpb24ocil7dmFyIGU9dGhpcy5fZGF0YSxpPWUud29yZHMsbj1lLnNpZ0J5dGVzLG89dGhpcy5ibG9ja1NpemUsYT00Km8sYz1uL2E7Yz1yP3QuY2VpbChjKTp0Lm1heCgoMHxjKS10aGlzLl9taW5CdWZmZXJTaXplLDApO3ZhciBoPWMqbyxsPXQubWluKDQqaCxuKTtpZihoKXtmb3IodmFyIGY9MDtmPGg7Zis9byl0aGlzLl9kb1Byb2Nlc3NCbG9jayhpLGYpO3ZhciB1PWkuc3BsaWNlKDAsaCk7ZS5zaWdCeXRlcy09bH1yZXR1cm4gbmV3IHMuaW5pdCh1LGwpfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PW8uY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5fZGF0YT10aGlzLl9kYXRhLmNsb25lKCksdH0sX21pbkJ1ZmZlclNpemU6MH0pLHU9KG4uSGFzaGVyPWYuZXh0ZW5kKHtjZmc6by5leHRlbmQoKSxpbml0OmZ1bmN0aW9uKHQpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZCh0KSx0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7Zi5yZXNldC5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX0sdXBkYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hcHBlbmQodCksdGhpcy5fcHJvY2VzcygpLHRoaXN9LGZpbmFsaXplOmZ1bmN0aW9uKHQpe3QmJnRoaXMuX2FwcGVuZCh0KTt2YXIgcj10aGlzLl9kb0ZpbmFsaXplKCk7cmV0dXJuIHJ9LGJsb2NrU2l6ZToxNixfY3JlYXRlSGVscGVyOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihyLGUpe3JldHVybiBuZXcgdC5pbml0KGUpLmZpbmFsaXplKHIpfX0sX2NyZWF0ZUhtYWNIZWxwZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHIsZSl7cmV0dXJuIG5ldyB1LkhNQUMuaW5pdCh0LGUpLmZpbmFsaXplKHIpfX19KSxpLmFsZ289e30pO3JldHVybiBpfShNYXRoKTtyZXR1cm4gZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQscixlKXtmb3IodmFyIGk9W10sbz0wLHM9MDtzPHI7cysrKWlmKHMlNCl7dmFyIGE9ZVt0LmNoYXJDb2RlQXQocy0xKV08PHMlNCoyLGM9ZVt0LmNoYXJDb2RlQXQocyldPj4+Ni1zJTQqMjtpW28+Pj4yXXw9KGF8Yyk8PDI0LW8lNCo4LG8rK31yZXR1cm4gbi5jcmVhdGUoaSxvKX12YXIgZT10LGk9ZS5saWIsbj1pLldvcmRBcnJheSxvPWUuZW5jO28uQmFzZTY0PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7dmFyIHI9dC53b3JkcyxlPXQuc2lnQnl0ZXMsaT10aGlzLl9tYXA7dC5jbGFtcCgpO2Zvcih2YXIgbj1bXSxvPTA7bzxlO28rPTMpZm9yKHZhciBzPXJbbz4+PjJdPj4+MjQtbyU0KjgmMjU1LGE9cltvKzE+Pj4yXT4+PjI0LShvKzEpJTQqOCYyNTUsYz1yW28rMj4+PjJdPj4+MjQtKG8rMiklNCo4JjI1NSxoPXM8PDE2fGE8PDh8YyxsPTA7bDw0JiZvKy43NSpsPGU7bCsrKW4ucHVzaChpLmNoYXJBdChoPj4+NiooMy1sKSY2MykpO3ZhciBmPWkuY2hhckF0KDY0KTtpZihmKWZvcig7bi5sZW5ndGglNDspbi5wdXNoKGYpO3JldHVybiBuLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoLGk9dGhpcy5fbWFwLG49dGhpcy5fcmV2ZXJzZU1hcDtpZighbil7bj10aGlzLl9yZXZlcnNlTWFwPVtdO2Zvcih2YXIgbz0wO288aS5sZW5ndGg7bysrKW5baS5jaGFyQ29kZUF0KG8pXT1vfXZhciBzPWkuY2hhckF0KDY0KTtpZihzKXt2YXIgYT10LmluZGV4T2Yocyk7YSE9PS0xJiYoZT1hKX1yZXR1cm4gcih0LGUsbil9LF9tYXA6XCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVwifX0oKSxmdW5jdGlvbihyKXtmdW5jdGlvbiBlKHQscixlLGksbixvLHMpe3ZhciBhPXQrKHImZXx+ciZpKStuK3M7cmV0dXJuKGE8PG98YT4+PjMyLW8pK3J9ZnVuY3Rpb24gaSh0LHIsZSxpLG4sbyxzKXt2YXIgYT10KyhyJml8ZSZ+aSkrbitzO3JldHVybihhPDxvfGE+Pj4zMi1vKStyfWZ1bmN0aW9uIG4odCxyLGUsaSxuLG8scyl7dmFyIGE9dCsocl5lXmkpK24rcztyZXR1cm4oYTw8b3xhPj4+MzItbykrcn1mdW5jdGlvbiBvKHQscixlLGksbixvLHMpe3ZhciBhPXQrKGVeKHJ8fmkpKStuK3M7cmV0dXJuKGE8PG98YT4+PjMyLW8pK3J9dmFyIHM9dCxhPXMubGliLGM9YS5Xb3JkQXJyYXksaD1hLkhhc2hlcixsPXMuYWxnbyxmPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8NjQ7dCsrKWZbdF09NDI5NDk2NzI5NipyLmFicyhyLnNpbih0KzEpKXwwfSgpO3ZhciB1PWwuTUQ1PWguZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IGMuaW5pdChbMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4XSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgcz0wO3M8MTY7cysrKXt2YXIgYT1yK3MsYz10W2FdO3RbYV09MTY3MTE5MzUmKGM8PDh8Yz4+PjI0KXw0Mjc4MjU1MzYwJihjPDwyNHxjPj4+OCl9dmFyIGg9dGhpcy5faGFzaC53b3JkcyxsPXRbciswXSx1PXRbcisxXSxkPXRbcisyXSx2PXRbciszXSxwPXRbcis0XSxfPXRbcis1XSx5PXRbcis2XSxnPXRbcis3XSxCPXRbcis4XSx3PXRbcis5XSxrPXRbcisxMF0sUz10W3IrMTFdLG09dFtyKzEyXSx4PXRbcisxM10sYj10W3IrMTRdLEg9dFtyKzE1XSx6PWhbMF0sQT1oWzFdLEM9aFsyXSxEPWhbM107ej1lKHosQSxDLEQsbCw3LGZbMF0pLEQ9ZShELHosQSxDLHUsMTIsZlsxXSksQz1lKEMsRCx6LEEsZCwxNyxmWzJdKSxBPWUoQSxDLEQseix2LDIyLGZbM10pLHo9ZSh6LEEsQyxELHAsNyxmWzRdKSxEPWUoRCx6LEEsQyxfLDEyLGZbNV0pLEM9ZShDLEQseixBLHksMTcsZls2XSksQT1lKEEsQyxELHosZywyMixmWzddKSx6PWUoeixBLEMsRCxCLDcsZls4XSksRD1lKEQseixBLEMsdywxMixmWzldKSxDPWUoQyxELHosQSxrLDE3LGZbMTBdKSxBPWUoQSxDLEQseixTLDIyLGZbMTFdKSx6PWUoeixBLEMsRCxtLDcsZlsxMl0pLEQ9ZShELHosQSxDLHgsMTIsZlsxM10pLEM9ZShDLEQseixBLGIsMTcsZlsxNF0pLEE9ZShBLEMsRCx6LEgsMjIsZlsxNV0pLHo9aSh6LEEsQyxELHUsNSxmWzE2XSksRD1pKEQseixBLEMseSw5LGZbMTddKSxDPWkoQyxELHosQSxTLDE0LGZbMThdKSxBPWkoQSxDLEQseixsLDIwLGZbMTldKSx6PWkoeixBLEMsRCxfLDUsZlsyMF0pLEQ9aShELHosQSxDLGssOSxmWzIxXSksQz1pKEMsRCx6LEEsSCwxNCxmWzIyXSksQT1pKEEsQyxELHoscCwyMCxmWzIzXSksej1pKHosQSxDLEQsdyw1LGZbMjRdKSxEPWkoRCx6LEEsQyxiLDksZlsyNV0pLEM9aShDLEQseixBLHYsMTQsZlsyNl0pLEE9aShBLEMsRCx6LEIsMjAsZlsyN10pLHo9aSh6LEEsQyxELHgsNSxmWzI4XSksRD1pKEQseixBLEMsZCw5LGZbMjldKSxDPWkoQyxELHosQSxnLDE0LGZbMzBdKSxBPWkoQSxDLEQseixtLDIwLGZbMzFdKSx6PW4oeixBLEMsRCxfLDQsZlszMl0pLEQ9bihELHosQSxDLEIsMTEsZlszM10pLEM9bihDLEQseixBLFMsMTYsZlszNF0pLEE9bihBLEMsRCx6LGIsMjMsZlszNV0pLHo9bih6LEEsQyxELHUsNCxmWzM2XSksRD1uKEQseixBLEMscCwxMSxmWzM3XSksQz1uKEMsRCx6LEEsZywxNixmWzM4XSksQT1uKEEsQyxELHosaywyMyxmWzM5XSksej1uKHosQSxDLEQseCw0LGZbNDBdKSxEPW4oRCx6LEEsQyxsLDExLGZbNDFdKSxDPW4oQyxELHosQSx2LDE2LGZbNDJdKSxBPW4oQSxDLEQseix5LDIzLGZbNDNdKSx6PW4oeixBLEMsRCx3LDQsZls0NF0pLEQ9bihELHosQSxDLG0sMTEsZls0NV0pLEM9bihDLEQseixBLEgsMTYsZls0Nl0pLEE9bihBLEMsRCx6LGQsMjMsZls0N10pLHo9byh6LEEsQyxELGwsNixmWzQ4XSksRD1vKEQseixBLEMsZywxMCxmWzQ5XSksQz1vKEMsRCx6LEEsYiwxNSxmWzUwXSksQT1vKEEsQyxELHosXywyMSxmWzUxXSksej1vKHosQSxDLEQsbSw2LGZbNTJdKSxEPW8oRCx6LEEsQyx2LDEwLGZbNTNdKSxDPW8oQyxELHosQSxrLDE1LGZbNTRdKSxBPW8oQSxDLEQseix1LDIxLGZbNTVdKSx6PW8oeixBLEMsRCxCLDYsZls1Nl0pLEQ9byhELHosQSxDLEgsMTAsZls1N10pLEM9byhDLEQseixBLHksMTUsZls1OF0pLEE9byhBLEMsRCx6LHgsMjEsZls1OV0pLHo9byh6LEEsQyxELHAsNixmWzYwXSksRD1vKEQseixBLEMsUywxMCxmWzYxXSksQz1vKEMsRCx6LEEsZCwxNSxmWzYyXSksQT1vKEEsQyxELHosdywyMSxmWzYzXSksaFswXT1oWzBdK3p8MCxoWzFdPWhbMV0rQXwwLGhbMl09aFsyXStDfDAsaFszXT1oWzNdK0R8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLGU9dC53b3JkcyxpPTgqdGhpcy5fbkRhdGFCeXRlcyxuPTgqdC5zaWdCeXRlcztlW24+Pj41XXw9MTI4PDwyNC1uJTMyO3ZhciBvPXIuZmxvb3IoaS80Mjk0OTY3Mjk2KSxzPWk7ZVsobis2ND4+Pjk8PDQpKzE1XT0xNjcxMTkzNSYobzw8OHxvPj4+MjQpfDQyNzgyNTUzNjAmKG88PDI0fG8+Pj44KSxlWyhuKzY0Pj4+OTw8NCkrMTRdPTE2NzExOTM1JihzPDw4fHM+Pj4yNCl8NDI3ODI1NTM2MCYoczw8MjR8cz4+PjgpLHQuc2lnQnl0ZXM9NCooZS5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgYT10aGlzLl9oYXNoLGM9YS53b3JkcyxoPTA7aDw0O2grKyl7dmFyIGw9Y1toXTtjW2hdPTE2NzExOTM1JihsPDw4fGw+Pj4yNCl8NDI3ODI1NTM2MCYobDw8MjR8bD4+PjgpfXJldHVybiBhfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWguY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KTtzLk1ENT1oLl9jcmVhdGVIZWxwZXIodSkscy5IbWFjTUQ1PWguX2NyZWF0ZUhtYWNIZWxwZXIodSl9KE1hdGgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5Xb3JkQXJyYXksbj1lLkhhc2hlcixvPXIuYWxnbyxzPVtdLGE9by5TSEExPW4uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IGkuaW5pdChbMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuX2hhc2gud29yZHMsaT1lWzBdLG49ZVsxXSxvPWVbMl0sYT1lWzNdLGM9ZVs0XSxoPTA7aDw4MDtoKyspe2lmKGg8MTYpc1toXT0wfHRbcitoXTtlbHNle3ZhciBsPXNbaC0zXV5zW2gtOF1ec1toLTE0XV5zW2gtMTZdO3NbaF09bDw8MXxsPj4+MzF9dmFyIGY9KGk8PDV8aT4+PjI3KStjK3NbaF07Zis9aDwyMD8obiZvfH5uJmEpKzE1MTg1MDAyNDk6aDw0MD8obl5vXmEpKzE4NTk3NzUzOTM6aDw2MD8obiZvfG4mYXxvJmEpLTE4OTQwMDc1ODg6KG5eb15hKS04OTk0OTc1MTQsYz1hLGE9byxvPW48PDMwfG4+Pj4yLG49aSxpPWZ9ZVswXT1lWzBdK2l8MCxlWzFdPWVbMV0rbnwwLGVbMl09ZVsyXStvfDAsZVszXT1lWzNdK2F8MCxlWzRdPWVbNF0rY3wwfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEscj10LndvcmRzLGU9OCp0aGlzLl9uRGF0YUJ5dGVzLGk9OCp0LnNpZ0J5dGVzO3JldHVybiByW2k+Pj41XXw9MTI4PDwyNC1pJTMyLHJbKGkrNjQ+Pj45PDw0KSsxNF09TWF0aC5mbG9vcihlLzQyOTQ5NjcyOTYpLHJbKGkrNjQ+Pj45PDw0KSsxNV09ZSx0LnNpZ0J5dGVzPTQqci5sZW5ndGgsdGhpcy5fcHJvY2VzcygpLHRoaXMuX2hhc2h9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9bi5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fX0pO3IuU0hBMT1uLl9jcmVhdGVIZWxwZXIoYSksci5IbWFjU0hBMT1uLl9jcmVhdGVIbWFjSGVscGVyKGEpfSgpLGZ1bmN0aW9uKHIpe3ZhciBlPXQsaT1lLmxpYixuPWkuV29yZEFycmF5LG89aS5IYXNoZXIscz1lLmFsZ28sYT1bXSxjPVtdOyFmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7Zm9yKHZhciBlPXIuc3FydCh0KSxpPTI7aTw9ZTtpKyspaWYoISh0JWkpKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGUodCl7cmV0dXJuIDQyOTQ5NjcyOTYqKHQtKDB8dCkpfDB9Zm9yKHZhciBpPTIsbj0wO248NjQ7KXQoaSkmJihuPDgmJihhW25dPWUoci5wb3coaSwuNSkpKSxjW25dPWUoci5wb3coaSwxLzMpKSxuKyspLGkrK30oKTt2YXIgaD1bXSxsPXMuU0hBMjU2PW8uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IG4uaW5pdChhLnNsaWNlKDApKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuX2hhc2gud29yZHMsaT1lWzBdLG49ZVsxXSxvPWVbMl0scz1lWzNdLGE9ZVs0XSxsPWVbNV0sZj1lWzZdLHU9ZVs3XSxkPTA7ZDw2NDtkKyspe2lmKGQ8MTYpaFtkXT0wfHRbcitkXTtlbHNle3ZhciB2PWhbZC0xNV0scD0odjw8MjV8dj4+PjcpXih2PDwxNHx2Pj4+MTgpXnY+Pj4zLF89aFtkLTJdLHk9KF88PDE1fF8+Pj4xNyleKF88PDEzfF8+Pj4xOSleXz4+PjEwO2hbZF09cCtoW2QtN10reStoW2QtMTZdfXZhciBnPWEmbF5+YSZmLEI9aSZuXmkmb15uJm8sdz0oaTw8MzB8aT4+PjIpXihpPDwxOXxpPj4+MTMpXihpPDwxMHxpPj4+MjIpLGs9KGE8PDI2fGE+Pj42KV4oYTw8MjF8YT4+PjExKV4oYTw8N3xhPj4+MjUpLFM9dStrK2crY1tkXStoW2RdLG09dytCO3U9ZixmPWwsbD1hLGE9cytTfDAscz1vLG89bixuPWksaT1TK218MH1lWzBdPWVbMF0raXwwLGVbMV09ZVsxXStufDAsZVsyXT1lWzJdK298MCxlWzNdPWVbM10rc3wwLGVbNF09ZVs0XSthfDAsZVs1XT1lWzVdK2x8MCxlWzZdPWVbNl0rZnwwLGVbN109ZVs3XSt1fDB9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxlPXQud29yZHMsaT04KnRoaXMuX25EYXRhQnl0ZXMsbj04KnQuc2lnQnl0ZXM7cmV0dXJuIGVbbj4+PjVdfD0xMjg8PDI0LW4lMzIsZVsobis2ND4+Pjk8PDQpKzE0XT1yLmZsb29yKGkvNDI5NDk2NzI5NiksZVsobis2ND4+Pjk8PDQpKzE1XT1pLHQuc2lnQnl0ZXM9NCplLmxlbmd0aCx0aGlzLl9wcm9jZXNzKCksdGhpcy5faGFzaH0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1vLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9fSk7ZS5TSEEyNTY9by5fY3JlYXRlSGVscGVyKGwpLGUuSG1hY1NIQTI1Nj1vLl9jcmVhdGVIbWFjSGVscGVyKGwpfShNYXRoKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQ8PDgmNDI3ODI1NTM2MHx0Pj4+OCYxNjcxMTkzNX12YXIgZT10LGk9ZS5saWIsbj1pLldvcmRBcnJheSxvPWUuZW5jO28uVXRmMTY9by5VdGYxNkJFPXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQud29yZHMsZT10LnNpZ0J5dGVzLGk9W10sbj0wO248ZTtuKz0yKXt2YXIgbz1yW24+Pj4yXT4+PjE2LW4lNCo4JjY1NTM1O2kucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKG8pKX1yZXR1cm4gaS5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGgsZT1bXSxpPTA7aTxyO2krKyllW2k+Pj4xXXw9dC5jaGFyQ29kZUF0KGkpPDwxNi1pJTIqMTY7cmV0dXJuIG4uY3JlYXRlKGUsMipyKX19O28uVXRmMTZMRT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLGk9dC5zaWdCeXRlcyxuPVtdLG89MDtvPGk7bys9Mil7dmFyIHM9cihlW28+Pj4yXT4+PjE2LW8lNCo4JjY1NTM1KTtuLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShzKSl9cmV0dXJuIG4uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLGk9W10sbz0wO288ZTtvKyspaVtvPj4+MV18PXIodC5jaGFyQ29kZUF0KG8pPDwxNi1vJTIqMTYpO3JldHVybiBuLmNyZWF0ZShpLDIqZSl9fX0oKSxmdW5jdGlvbigpe2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIEFycmF5QnVmZmVyKXt2YXIgcj10LGU9ci5saWIsaT1lLldvcmRBcnJheSxuPWkuaW5pdCxvPWkuaW5pdD1mdW5jdGlvbih0KXtpZih0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXImJih0PW5ldyBVaW50OEFycmF5KHQpKSwodCBpbnN0YW5jZW9mIEludDhBcnJheXx8XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5JiZ0IGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXl8fHQgaW5zdGFuY2VvZiBJbnQxNkFycmF5fHx0IGluc3RhbmNlb2YgVWludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBJbnQzMkFycmF5fHx0IGluc3RhbmNlb2YgVWludDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBGbG9hdDY0QXJyYXkpJiYodD1uZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKSksdCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpe2Zvcih2YXIgcj10LmJ5dGVMZW5ndGgsZT1bXSxpPTA7aTxyO2krKyllW2k+Pj4yXXw9dFtpXTw8MjQtaSU0Kjg7bi5jYWxsKHRoaXMsZSxyKX1lbHNlIG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfTtvLnByb3RvdHlwZT1pfX0oKSxmdW5jdGlvbihyKXtmdW5jdGlvbiBlKHQscixlKXtyZXR1cm4gdF5yXmV9ZnVuY3Rpb24gaSh0LHIsZSl7cmV0dXJuIHQmcnx+dCZlfWZ1bmN0aW9uIG4odCxyLGUpe3JldHVybih0fH5yKV5lfWZ1bmN0aW9uIG8odCxyLGUpe3JldHVybiB0JmV8ciZ+ZX1mdW5jdGlvbiBzKHQscixlKXtyZXR1cm4gdF4ocnx+ZSl9ZnVuY3Rpb24gYSh0LHIpe3JldHVybiB0PDxyfHQ+Pj4zMi1yfXZhciBjPXQsaD1jLmxpYixsPWguV29yZEFycmF5LGY9aC5IYXNoZXIsdT1jLmFsZ28sZD1sLmNyZWF0ZShbMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSw3LDQsMTMsMSwxMCw2LDE1LDMsMTIsMCw5LDUsMiwxNCwxMSw4LDMsMTAsMTQsNCw5LDE1LDgsMSwyLDcsMCw2LDEzLDExLDUsMTIsMSw5LDExLDEwLDAsOCwxMiw0LDEzLDMsNywxNSwxNCw1LDYsMiw0LDAsNSw5LDcsMTIsMiwxMCwxNCwxLDMsOCwxMSw2LDE1LDEzXSksdj1sLmNyZWF0ZShbNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSkscD1sLmNyZWF0ZShbMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcsMTQsOSwxMywxNSwxNCw4LDEzLDYsNSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0pLF89bC5jcmVhdGUoWzgsOSw5LDExLDEzLDE1LDE1LDUsNyw3LDgsMTEsMTQsMTQsMTIsNiw5LDEzLDE1LDcsMTIsOCw5LDExLDcsNywxMiw3LDYsMTUsMTMsMTEsOSw3LDE1LDExLDgsNiw2LDE0LDEyLDEzLDUsMTQsMTMsMTMsNyw1LDE1LDUsOCwxMSwxNCwxNCw2LDE0LDYsOSwxMiw5LDEyLDUsMTUsOCw4LDUsMTIsOSwxMiw1LDE0LDYsOCwxMyw2LDUsMTUsMTMsMTEsMTFdKSx5PWwuY3JlYXRlKFswLDE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDI4NDA4NTM4MzhdKSxnPWwuY3JlYXRlKFsxMzUyODI5OTI2LDE1NDg2MDM2ODQsMTgzNjA3MjY5MSwyMDUzOTk0MjE3LDBdKSxCPXUuUklQRU1EMTYwPWYuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bC5jcmVhdGUoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgYz0wO2M8MTY7YysrKXt2YXIgaD1yK2MsbD10W2hdO3RbaF09MTY3MTE5MzUmKGw8PDh8bD4+PjI0KXw0Mjc4MjU1MzYwJihsPDwyNHxsPj4+OCl9dmFyIGYsdSxCLHcsayxTLG0seCxiLEgsej10aGlzLl9oYXNoLndvcmRzLEE9eS53b3JkcyxDPWcud29yZHMsRD1kLndvcmRzLFI9di53b3JkcyxFPXAud29yZHMsTT1fLndvcmRzO1M9Zj16WzBdLG09dT16WzFdLHg9Qj16WzJdLGI9dz16WzNdLEg9az16WzRdO2Zvcih2YXIgRixjPTA7Yzw4MDtjKz0xKUY9Zit0W3IrRFtjXV18MCxGKz1jPDE2P2UodSxCLHcpK0FbMF06YzwzMj9pKHUsQix3KStBWzFdOmM8NDg/bih1LEIsdykrQVsyXTpjPDY0P28odSxCLHcpK0FbM106cyh1LEIsdykrQVs0XSxGfD0wLEY9YShGLEVbY10pLEY9RitrfDAsZj1rLGs9dyx3PWEoQiwxMCksQj11LHU9RixGPVMrdFtyK1JbY11dfDAsRis9YzwxNj9zKG0seCxiKStDWzBdOmM8MzI/byhtLHgsYikrQ1sxXTpjPDQ4P24obSx4LGIpK0NbMl06Yzw2ND9pKG0seCxiKStDWzNdOmUobSx4LGIpK0NbNF0sRnw9MCxGPWEoRixNW2NdKSxGPUYrSHwwLFM9SCxIPWIsYj1hKHgsMTApLHg9bSxtPUY7Rj16WzFdK0IrYnwwLHpbMV09elsyXSt3K0h8MCx6WzJdPXpbM10raytTfDAselszXT16WzRdK2YrbXwwLHpbNF09elswXSt1K3h8MCx6WzBdPUZ9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxyPXQud29yZHMsZT04KnRoaXMuX25EYXRhQnl0ZXMsaT04KnQuc2lnQnl0ZXM7cltpPj4+NV18PTEyODw8MjQtaSUzMixyWyhpKzY0Pj4+OTw8NCkrMTRdPTE2NzExOTM1JihlPDw4fGU+Pj4yNCl8NDI3ODI1NTM2MCYoZTw8MjR8ZT4+PjgpLHQuc2lnQnl0ZXM9NCooci5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgbj10aGlzLl9oYXNoLG89bi53b3JkcyxzPTA7czw1O3MrKyl7dmFyIGE9b1tzXTtvW3NdPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpfXJldHVybiBufSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWYuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KTtjLlJJUEVNRDE2MD1mLl9jcmVhdGVIZWxwZXIoQiksYy5IbWFjUklQRU1EMTYwPWYuX2NyZWF0ZUhtYWNIZWxwZXIoQil9KE1hdGgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5CYXNlLG49ci5lbmMsbz1uLlV0Zjgscz1yLmFsZ287cy5ITUFDPWkuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQscil7dD10aGlzLl9oYXNoZXI9bmV3IHQuaW5pdCxcInN0cmluZ1wiPT10eXBlb2YgciYmKHI9by5wYXJzZShyKSk7dmFyIGU9dC5ibG9ja1NpemUsaT00KmU7ci5zaWdCeXRlcz5pJiYocj10LmZpbmFsaXplKHIpKSxyLmNsYW1wKCk7Zm9yKHZhciBuPXRoaXMuX29LZXk9ci5jbG9uZSgpLHM9dGhpcy5faUtleT1yLmNsb25lKCksYT1uLndvcmRzLGM9cy53b3JkcyxoPTA7aDxlO2grKylhW2hdXj0xNTQ5NTU2ODI4LGNbaF1ePTkwOTUyMjQ4NjtuLnNpZ0J5dGVzPXMuc2lnQnl0ZXM9aSx0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5faGFzaGVyO3QucmVzZXQoKSx0LnVwZGF0ZSh0aGlzLl9pS2V5KX0sdXBkYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9oYXNoZXIudXBkYXRlKHQpLHRoaXN9LGZpbmFsaXplOmZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX2hhc2hlcixlPXIuZmluYWxpemUodCk7ci5yZXNldCgpO3ZhciBpPXIuZmluYWxpemUodGhpcy5fb0tleS5jbG9uZSgpLmNvbmNhdChlKSk7cmV0dXJuIGl9fSl9KCksZnVuY3Rpb24oKXt2YXIgcj10LGU9ci5saWIsaT1lLkJhc2Usbj1lLldvcmRBcnJheSxvPXIuYWxnbyxzPW8uU0hBMSxhPW8uSE1BQyxjPW8uUEJLREYyPWkuZXh0ZW5kKHtjZmc6aS5leHRlbmQoe2tleVNpemU6NCxoYXNoZXI6cyxpdGVyYXRpb25zOjF9KSxpbml0OmZ1bmN0aW9uKHQpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZCh0KX0sY29tcHV0ZTpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10aGlzLmNmZyxpPWEuY3JlYXRlKGUuaGFzaGVyLHQpLG89bi5jcmVhdGUoKSxzPW4uY3JlYXRlKFsxXSksYz1vLndvcmRzLGg9cy53b3JkcyxsPWUua2V5U2l6ZSxmPWUuaXRlcmF0aW9ucztjLmxlbmd0aDxsOyl7dmFyIHU9aS51cGRhdGUocikuZmluYWxpemUocyk7aS5yZXNldCgpO2Zvcih2YXIgZD11LndvcmRzLHY9ZC5sZW5ndGgscD11LF89MTtfPGY7XysrKXtwPWkuZmluYWxpemUocCksaS5yZXNldCgpO2Zvcih2YXIgeT1wLndvcmRzLGc9MDtnPHY7ZysrKWRbZ11ePXlbZ119by5jb25jYXQodSksaFswXSsrfXJldHVybiBvLnNpZ0J5dGVzPTQqbCxvfX0pO3IuUEJLREYyPWZ1bmN0aW9uKHQscixlKXtyZXR1cm4gYy5jcmVhdGUoZSkuY29tcHV0ZSh0LHIpfX0oKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLmxpYixpPWUuQmFzZSxuPWUuV29yZEFycmF5LG89ci5hbGdvLHM9by5NRDUsYT1vLkV2cEtERj1pLmV4dGVuZCh7Y2ZnOmkuZXh0ZW5kKHtrZXlTaXplOjQsaGFzaGVyOnMsaXRlcmF0aW9uczoxfSksaW5pdDpmdW5jdGlvbih0KXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQodCl9LGNvbXB1dGU6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dGhpcy5jZmcsaT1lLmhhc2hlci5jcmVhdGUoKSxvPW4uY3JlYXRlKCkscz1vLndvcmRzLGE9ZS5rZXlTaXplLGM9ZS5pdGVyYXRpb25zO3MubGVuZ3RoPGE7KXtoJiZpLnVwZGF0ZShoKTt2YXIgaD1pLnVwZGF0ZSh0KS5maW5hbGl6ZShyKTtpLnJlc2V0KCk7Zm9yKHZhciBsPTE7bDxjO2wrKyloPWkuZmluYWxpemUoaCksaS5yZXNldCgpO28uY29uY2F0KGgpfXJldHVybiBvLnNpZ0J5dGVzPTQqYSxvfX0pO3IuRXZwS0RGPWZ1bmN0aW9uKHQscixlKXtyZXR1cm4gYS5jcmVhdGUoZSkuY29tcHV0ZSh0LHIpfX0oKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLmxpYixpPWUuV29yZEFycmF5LG49ci5hbGdvLG89bi5TSEEyNTYscz1uLlNIQTIyND1vLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBpLmluaXQoWzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEyNjk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2ODM5LDMyMDQwNzU0MjhdKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD1vLl9kb0ZpbmFsaXplLmNhbGwodGhpcyk7cmV0dXJuIHQuc2lnQnl0ZXMtPTQsdH19KTtyLlNIQTIyND1vLl9jcmVhdGVIZWxwZXIocyksci5IbWFjU0hBMjI0PW8uX2NyZWF0ZUhtYWNIZWxwZXIocyl9KCksZnVuY3Rpb24ocil7dmFyIGU9dCxpPWUubGliLG49aS5CYXNlLG89aS5Xb3JkQXJyYXkscz1lLng2ND17fTtzLldvcmQ9bi5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCxyKXt0aGlzLmhpZ2g9dCx0aGlzLmxvdz1yfX0pLHMuV29yZEFycmF5PW4uZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQsZSl7dD10aGlzLndvcmRzPXR8fFtdLGUhPXI/dGhpcy5zaWdCeXRlcz1lOnRoaXMuc2lnQnl0ZXM9OCp0Lmxlbmd0aH0sdG9YMzI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy53b3JkcyxyPXQubGVuZ3RoLGU9W10saT0wO2k8cjtpKyspe3ZhciBuPXRbaV07ZS5wdXNoKG4uaGlnaCksZS5wdXNoKG4ubG93KX1yZXR1cm4gby5jcmVhdGUoZSx0aGlzLnNpZ0J5dGVzKX0sY2xvbmU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9bi5jbG9uZS5jYWxsKHRoaXMpLHI9dC53b3Jkcz10aGlzLndvcmRzLnNsaWNlKDApLGU9ci5sZW5ndGgsaT0wO2k8ZTtpKyspcltpXT1yW2ldLmNsb25lKCk7cmV0dXJuIHR9fSl9KCksZnVuY3Rpb24ocil7dmFyIGU9dCxpPWUubGliLG49aS5Xb3JkQXJyYXksbz1pLkhhc2hlcixzPWUueDY0LGE9cy5Xb3JkLGM9ZS5hbGdvLGg9W10sbD1bXSxmPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0xLHI9MCxlPTA7ZTwyNDtlKyspe2hbdCs1KnJdPShlKzEpKihlKzIpLzIlNjQ7dmFyIGk9ciU1LG49KDIqdCszKnIpJTU7dD1pLHI9bn1mb3IodmFyIHQ9MDt0PDU7dCsrKWZvcih2YXIgcj0wO3I8NTtyKyspbFt0KzUqcl09cisoMip0KzMqciklNSo1O2Zvcih2YXIgbz0xLHM9MDtzPDI0O3MrKyl7Zm9yKHZhciBjPTAsdT0wLGQ9MDtkPDc7ZCsrKXtpZigxJm8pe3ZhciB2PSgxPDxkKS0xO3Y8MzI/dV49MTw8djpjXj0xPDx2LTMyfTEyOCZvP289bzw8MV4xMTM6bzw8PTF9ZltzXT1hLmNyZWF0ZShjLHUpfX0oKTt2YXIgdT1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PDI1O3QrKyl1W3RdPWEuY3JlYXRlKCl9KCk7dmFyIGQ9Yy5TSEEzPW8uZXh0ZW5kKHtjZmc6by5jZmcuZXh0ZW5kKHtvdXRwdXRMZW5ndGg6NTEyfSksX2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fc3RhdGU9W10scj0wO3I8MjU7cisrKXRbcl09bmV3IGEuaW5pdDt0aGlzLmJsb2NrU2l6ZT0oMTYwMC0yKnRoaXMuY2ZnLm91dHB1dExlbmd0aCkvMzJ9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10aGlzLl9zdGF0ZSxpPXRoaXMuYmxvY2tTaXplLzIsbj0wO248aTtuKyspe3ZhciBvPXRbcisyKm5dLHM9dFtyKzIqbisxXTtvPTE2NzExOTM1JihvPDw4fG8+Pj4yNCl8NDI3ODI1NTM2MCYobzw8MjR8bz4+PjgpLHM9MTY3MTE5MzUmKHM8PDh8cz4+PjI0KXw0Mjc4MjU1MzYwJihzPDwyNHxzPj4+OCk7dmFyIGE9ZVtuXTthLmhpZ2hePXMsYS5sb3dePW99Zm9yKHZhciBjPTA7YzwyNDtjKyspe2Zvcih2YXIgZD0wO2Q8NTtkKyspe2Zvcih2YXIgdj0wLHA9MCxfPTA7Xzw1O18rKyl7dmFyIGE9ZVtkKzUqX107dl49YS5oaWdoLHBePWEubG93fXZhciB5PXVbZF07eS5oaWdoPXYseS5sb3c9cH1mb3IodmFyIGQ9MDtkPDU7ZCsrKWZvcih2YXIgZz11WyhkKzQpJTVdLEI9dVsoZCsxKSU1XSx3PUIuaGlnaCxrPUIubG93LHY9Zy5oaWdoXih3PDwxfGs+Pj4zMSkscD1nLmxvd14oazw8MXx3Pj4+MzEpLF89MDtfPDU7XysrKXt2YXIgYT1lW2QrNSpfXTthLmhpZ2hePXYsYS5sb3dePXB9Zm9yKHZhciBTPTE7UzwyNTtTKyspe3ZhciBhPWVbU10sbT1hLmhpZ2gseD1hLmxvdyxiPWhbU107aWYoYjwzMil2YXIgdj1tPDxifHg+Pj4zMi1iLHA9eDw8YnxtPj4+MzItYjtlbHNlIHZhciB2PXg8PGItMzJ8bT4+PjY0LWIscD1tPDxiLTMyfHg+Pj42NC1iO3ZhciBIPXVbbFtTXV07SC5oaWdoPXYsSC5sb3c9cH12YXIgej11WzBdLEE9ZVswXTt6LmhpZ2g9QS5oaWdoLHoubG93PUEubG93O2Zvcih2YXIgZD0wO2Q8NTtkKyspZm9yKHZhciBfPTA7Xzw1O18rKyl7dmFyIFM9ZCs1Kl8sYT1lW1NdLEM9dVtTXSxEPXVbKGQrMSklNSs1Kl9dLFI9dVsoZCsyKSU1KzUqX107YS5oaWdoPUMuaGlnaF5+RC5oaWdoJlIuaGlnaCxhLmxvdz1DLmxvd15+RC5sb3cmUi5sb3d9dmFyIGE9ZVswXSxFPWZbY107YS5oaWdoXj1FLmhpZ2gsYS5sb3dePUUubG93fX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLGU9dC53b3JkcyxpPSg4KnRoaXMuX25EYXRhQnl0ZXMsOCp0LnNpZ0J5dGVzKSxvPTMyKnRoaXMuYmxvY2tTaXplO2VbaT4+PjVdfD0xPDwyNC1pJTMyLGVbKHIuY2VpbCgoaSsxKS9vKSpvPj4+NSktMV18PTEyOCx0LnNpZ0J5dGVzPTQqZS5sZW5ndGgsdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgcz10aGlzLl9zdGF0ZSxhPXRoaXMuY2ZnLm91dHB1dExlbmd0aC84LGM9YS84LGg9W10sbD0wO2w8YztsKyspe3ZhciBmPXNbbF0sdT1mLmhpZ2gsZD1mLmxvdzt1PTE2NzExOTM1Jih1PDw4fHU+Pj4yNCl8NDI3ODI1NTM2MCYodTw8MjR8dT4+PjgpLGQ9MTY3MTE5MzUmKGQ8PDh8ZD4+PjI0KXw0Mjc4MjU1MzYwJihkPDwyNHxkPj4+OCksaC5wdXNoKGQpLGgucHVzaCh1KX1yZXR1cm4gbmV3IG4uaW5pdChoLGEpfSxjbG9uZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1vLmNsb25lLmNhbGwodGhpcykscj10Ll9zdGF0ZT10aGlzLl9zdGF0ZS5zbGljZSgwKSxlPTA7ZTwyNTtlKyspcltlXT1yW2VdLmNsb25lKCk7cmV0dXJuIHR9fSk7ZS5TSEEzPW8uX2NyZWF0ZUhlbHBlcihkKSxlLkhtYWNTSEEzPW8uX2NyZWF0ZUhtYWNIZWxwZXIoZCl9KE1hdGgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcigpe3JldHVybiBzLmNyZWF0ZS5hcHBseShzLGFyZ3VtZW50cyl9dmFyIGU9dCxpPWUubGliLG49aS5IYXNoZXIsbz1lLng2NCxzPW8uV29yZCxhPW8uV29yZEFycmF5LGM9ZS5hbGdvLGg9W3IoMTExNjM1MjQwOCwzNjA5NzY3NDU4KSxyKDE4OTk0NDc0NDEsNjAyODkxNzI1KSxyKDMwNDkzMjM0NzEsMzk2NDQ4NDM5OSkscigzOTIxMDA5NTczLDIxNzMyOTU1NDgpLHIoOTYxOTg3MTYzLDQwODE2Mjg0NzIpLHIoMTUwODk3MDk5MywzMDUzODM0MjY1KSxyKDI0NTM2MzU3NDgsMjkzNzY3MTU3OSkscigyODcwNzYzMjIxLDM2NjQ2MDk1NjApLHIoMzYyNDM4MTA4MCwyNzM0ODgzMzk0KSxyKDMxMDU5ODQwMSwxMTY0OTk2NTQyKSxyKDYwNzIyNTI3OCwxMzIzNjEwNzY0KSxyKDE0MjY4ODE5ODcsMzU5MDMwNDk5NCkscigxOTI1MDc4Mzg4LDQwNjgxODIzODMpLHIoMjE2MjA3ODIwNiw5OTEzMzYxMTMpLHIoMjYxNDg4ODEwMyw2MzM4MDMzMTcpLHIoMzI0ODIyMjU4MCwzNDc5Nzc0ODY4KSxyKDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCkscig0MDIyMjI0Nzc0LDk0NDcxMTEzOSkscigyNjQzNDcwNzgsMjM0MTI2Mjc3Mykscig2MDQ4MDc2MjgsMjAwNzgwMDkzMykscig3NzAyNTU5ODMsMTQ5NTk5MDkwMSkscigxMjQ5MTUwMTIyLDE4NTY0MzEyMzUpLHIoMTU1NTA4MTY5MiwzMTc1MjE4MTMyKSxyKDE5OTYwNjQ5ODYsMjE5ODk1MDgzNykscigyNTU0MjIwODgyLDM5OTk3MTkzMzkpLHIoMjgyMTgzNDM0OSw3NjY3ODQwMTYpLHIoMjk1Mjk5NjgwOCwyNTY2NTk0ODc5KSxyKDMyMTAzMTM2NzEsMzIwMzMzNzk1NikscigzMzM2NTcxODkxLDEwMzQ0NTcwMjYpLHIoMzU4NDUyODcxMSwyNDY2OTQ4OTAxKSxyKDExMzkyNjk5MywzNzU4MzI2MzgzKSxyKDMzODI0MTg5NSwxNjg3MTc5MzYpLHIoNjY2MzA3MjA1LDExODgxNzk5NjQpLHIoNzczNTI5OTEyLDE1NDYwNDU3MzQpLHIoMTI5NDc1NzM3MiwxNTIyODA1NDg1KSxyKDEzOTYxODIyOTEsMjY0MzgzMzgyMykscigxNjk1MTgzNzAwLDIzNDM1MjczOTApLHIoMTk4NjY2MTA1MSwxMDE0NDc3NDgwKSxyKDIxNzcwMjYzNTAsMTIwNjc1OTE0MikscigyNDU2OTU2MDM3LDM0NDA3NzYyNykscigyNzMwNDg1OTIxLDEyOTA4NjM0NjApLHIoMjgyMDMwMjQxMSwzMTU4NDU0MjczKSxyKDMyNTk3MzA4MDAsMzUwNTk1MjY1NykscigzMzQ1NzY0NzcxLDEwNjIxNzAwOCkscigzNTE2MDY1ODE3LDM2MDYwMDgzNDQpLHIoMzYwMDM1MjgwNCwxNDMyNzI1Nzc2KSxyKDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCkscigyNzU0MjMzNDQsODUxMTY5NzIwKSxyKDQzMDIyNzczNCwzMTAwODIzNzUyKSxyKDUwNjk0ODYxNiwxMzYzMjU4MTk1KSxyKDY1OTA2MDU1NiwzNzUwNjg1NTkzKSxyKDg4Mzk5Nzg3NywzNzg1MDUwMjgwKSxyKDk1ODEzOTU3MSwzMzE4MzA3NDI3KSxyKDEzMjI4MjIyMTgsMzgxMjcyMzQwMykscigxNTM3MDAyMDYzLDIwMDMwMzQ5OTUpLHIoMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5KSxyKDE5NTU1NjIyMjIsMTU3NTk5MDAxMikscigyMDI0MTA0ODE1LDExMjU1OTI5MjgpLHIoMjIyNzczMDQ1MiwyNzE2OTA0MzA2KSxyKDIzNjE4NTI0MjQsNDQyNzc2MDQ0KSxyKDI0Mjg0MzY0NzQsNTkzNjk4MzQ0KSxyKDI3NTY3MzQxODcsMzczMzExMDI0OSkscigzMjA0MDMxNDc5LDI5OTkzNTE1NzMpLHIoMzMyOTMyNTI5OCwzODE1OTIwNDI3KSxyKDMzOTE1Njk2MTQsMzkyODM4MzkwMCkscigzNTE1MjY3MjcxLDU2NjI4MDcxMSkscigzOTQwMTg3NjA2LDM0NTQwNjk1MzQpLHIoNDExODYzMDI3MSw0MDAwMjM5OTkyKSxyKDExNjQxODQ3NCwxOTE0MTM4NTU0KSxyKDE3NDI5MjQyMSwyNzMxMDU1MjcwKSxyKDI4OTM4MDM1NiwzMjAzOTkzMDA2KSxyKDQ2MDM5MzI2OSwzMjA2MjAzMTUpLHIoNjg1NDcxNzMzLDU4NzQ5NjgzNikscig4NTIxNDI5NzEsMTA4Njc5Mjg1MSkscigxMDE3MDM2Mjk4LDM2NTU0MzEwMCkscigxMTI2MDAwNTgwLDI2MTgyOTc2NzYpLHIoMTI4ODAzMzQ3MCwzNDA5ODU1MTU4KSxyKDE1MDE1MDU5NDgsNDIzNDUwOTg2NikscigxNjA3MTY3OTE1LDk4NzE2NzQ2OCkscigxODE2NDAyMzE2LDEyNDYxODk1OTEpXSxsPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8ODA7dCsrKWxbdF09cigpfSgpO3ZhciBmPWMuU0hBNTEyPW4uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IGEuaW5pdChbbmV3IHMuaW5pdCgxNzc5MDMzNzAzLDQwODkyMzU3MjApLG5ldyBzLmluaXQoMzE0NDEzNDI3NywyMjI3ODczNTk1KSxuZXcgcy5pbml0KDEwMTM5MDQyNDIsNDI3MTE3NTcyMyksbmV3IHMuaW5pdCgyNzczNDgwNzYyLDE1OTU3NTAxMjkpLG5ldyBzLmluaXQoMTM1OTg5MzExOSwyOTE3NTY1MTM3KSxuZXcgcy5pbml0KDI2MDA4MjI5MjQsNzI1NTExMTk5KSxuZXcgcy5pbml0KDUyODczNDYzNSw0MjE1Mzg5NTQ3KSxuZXcgcy5pbml0KDE1NDE0NTkyMjUsMzI3MDMzMjA5KV0pfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dGhpcy5faGFzaC53b3JkcyxpPWVbMF0sbj1lWzFdLG89ZVsyXSxzPWVbM10sYT1lWzRdLGM9ZVs1XSxmPWVbNl0sdT1lWzddLGQ9aS5oaWdoLHY9aS5sb3cscD1uLmhpZ2gsXz1uLmxvdyx5PW8uaGlnaCxnPW8ubG93LEI9cy5oaWdoLHc9cy5sb3csaz1hLmhpZ2gsUz1hLmxvdyxtPWMuaGlnaCx4PWMubG93LGI9Zi5oaWdoLEg9Zi5sb3csej11LmhpZ2gsQT11LmxvdyxDPWQsRD12LFI9cCxFPV8sTT15LEY9ZyxQPUIsVz13LE89ayxVPVMsST1tLEs9eCxYPWIsTD1ILGo9eixOPUEsVD0wO1Q8ODA7VCsrKXt2YXIgWj1sW1RdO2lmKFQ8MTYpdmFyIHE9Wi5oaWdoPTB8dFtyKzIqVF0sRz1aLmxvdz0wfHRbcisyKlQrMV07ZWxzZXt2YXIgSj1sW1QtMTVdLCQ9Si5oaWdoLFE9Si5sb3csVj0oJD4+PjF8UTw8MzEpXigkPj4+OHxRPDwyNCleJD4+PjcsWT0oUT4+PjF8JDw8MzEpXihRPj4+OHwkPDwyNCleKFE+Pj43fCQ8PDI1KSx0dD1sW1QtMl0scnQ9dHQuaGlnaCxldD10dC5sb3csaXQ9KHJ0Pj4+MTl8ZXQ8PDEzKV4ocnQ8PDN8ZXQ+Pj4yOSlecnQ+Pj42LG50PShldD4+PjE5fHJ0PDwxMyleKGV0PDwzfHJ0Pj4+MjkpXihldD4+PjZ8cnQ8PDI2KSxvdD1sW1QtN10sc3Q9b3QuaGlnaCxhdD1vdC5sb3csY3Q9bFtULTE2XSxodD1jdC5oaWdoLGx0PWN0LmxvdyxHPVkrYXQscT1WK3N0KyhHPj4+MDxZPj4+MD8xOjApLEc9RytudCxxPXEraXQrKEc+Pj4wPG50Pj4+MD8xOjApLEc9RytsdCxxPXEraHQrKEc+Pj4wPGx0Pj4+MD8xOjApO1ouaGlnaD1xLFoubG93PUd9dmFyIGZ0PU8mSV5+TyZYLHV0PVUmS15+VSZMLGR0PUMmUl5DJk1eUiZNLHZ0PUQmRV5EJkZeRSZGLHB0PShDPj4+Mjh8RDw8NCleKEM8PDMwfEQ+Pj4yKV4oQzw8MjV8RD4+PjcpLF90PShEPj4+Mjh8Qzw8NCleKEQ8PDMwfEM+Pj4yKV4oRDw8MjV8Qz4+PjcpLHl0PShPPj4+MTR8VTw8MTgpXihPPj4+MTh8VTw8MTQpXihPPDwyM3xVPj4+OSksZ3Q9KFU+Pj4xNHxPPDwxOCleKFU+Pj4xOHxPPDwxNCleKFU8PDIzfE8+Pj45KSxCdD1oW1RdLHd0PUJ0LmhpZ2gsa3Q9QnQubG93LFN0PU4rZ3QsbXQ9ait5dCsoU3Q+Pj4wPE4+Pj4wPzE6MCksU3Q9U3QrdXQsbXQ9bXQrZnQrKFN0Pj4+MDx1dD4+PjA/MTowKSxTdD1TdCtrdCxtdD1tdCt3dCsoU3Q+Pj4wPGt0Pj4+MD8xOjApLFN0PVN0K0csbXQ9bXQrcSsoU3Q+Pj4wPEc+Pj4wPzE6MCkseHQ9X3QrdnQsYnQ9cHQrZHQrKHh0Pj4+MDxfdD4+PjA/MTowKTtqPVgsTj1MLFg9SSxMPUssST1PLEs9VSxVPVcrU3R8MCxPPVArbXQrKFU+Pj4wPFc+Pj4wPzE6MCl8MCxQPU0sVz1GLE09UixGPUUsUj1DLEU9RCxEPVN0K3h0fDAsQz1tdCtidCsoRD4+PjA8U3Q+Pj4wPzE6MCl8MH12PWkubG93PXYrRCxpLmhpZ2g9ZCtDKyh2Pj4+MDxEPj4+MD8xOjApLF89bi5sb3c9XytFLG4uaGlnaD1wK1IrKF8+Pj4wPEU+Pj4wPzE6MCksZz1vLmxvdz1nK0Ysby5oaWdoPXkrTSsoZz4+PjA8Rj4+PjA/MTowKSx3PXMubG93PXcrVyxzLmhpZ2g9QitQKyh3Pj4+MDxXPj4+MD8xOjApLFM9YS5sb3c9UytVLGEuaGlnaD1rK08rKFM+Pj4wPFU+Pj4wPzE6MCkseD1jLmxvdz14K0ssYy5oaWdoPW0rSSsoeD4+PjA8Sz4+PjA/MTowKSxIPWYubG93PUgrTCxmLmhpZ2g9YitYKyhIPj4+MDxMPj4+MD8xOjApLEE9dS5sb3c9QStOLHUuaGlnaD16K2orKEE+Pj4wPE4+Pj4wPzE6MCl9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxyPXQud29yZHMsZT04KnRoaXMuX25EYXRhQnl0ZXMsaT04KnQuc2lnQnl0ZXM7cltpPj4+NV18PTEyODw8MjQtaSUzMixyWyhpKzEyOD4+PjEwPDw1KSszMF09TWF0aC5mbG9vcihlLzQyOTQ5NjcyOTYpLHJbKGkrMTI4Pj4+MTA8PDUpKzMxXT1lLHQuc2lnQnl0ZXM9NCpyLmxlbmd0aCx0aGlzLl9wcm9jZXNzKCk7dmFyIG49dGhpcy5faGFzaC50b1gzMigpO3JldHVybiBufSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PW4uY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH0sYmxvY2tTaXplOjMyfSk7ZS5TSEE1MTI9bi5fY3JlYXRlSGVscGVyKGYpLGUuSG1hY1NIQTUxMj1uLl9jcmVhdGVIbWFjSGVscGVyKGYpfSgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIueDY0LGk9ZS5Xb3JkLG49ZS5Xb3JkQXJyYXksbz1yLmFsZ28scz1vLlNIQTUxMixhPW8uU0hBMzg0PXMuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IG4uaW5pdChbbmV3IGkuaW5pdCgzNDE4MDcwMzY1LDMyMzgzNzEwMzIpLG5ldyBpLmluaXQoMTY1NDI3MDI1MCw5MTQxNTA2NjMpLG5ldyBpLmluaXQoMjQzODUyOTM3MCw4MTI3MDI5OTkpLG5ldyBpLmluaXQoMzU1NDYyMzYwLDQxNDQ5MTI2OTcpLG5ldyBpLmluaXQoMTczMTQwNTQxNSw0MjkwNzc1ODU3KSxuZXcgaS5pbml0KDIzOTQxODAyMzEsMTc1MDYwMzAyNSksbmV3IGkuaW5pdCgzNjc1MDA4NTI1LDE2OTQwNzY4MzkpLG5ldyBpLmluaXQoMTIwMzA2MjgxMywzMjA0MDc1NDI4KV0pfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXMuX2RvRmluYWxpemUuY2FsbCh0aGlzKTtyZXR1cm4gdC5zaWdCeXRlcy09MTYsdH19KTtyLlNIQTM4ND1zLl9jcmVhdGVIZWxwZXIoYSksci5IbWFjU0hBMzg0PXMuX2NyZWF0ZUhtYWNIZWxwZXIoYSl9KCksdC5saWIuQ2lwaGVyfHxmdW5jdGlvbihyKXt2YXIgZT10LGk9ZS5saWIsbj1pLkJhc2Usbz1pLldvcmRBcnJheSxzPWkuQnVmZmVyZWRCbG9ja0FsZ29yaXRobSxhPWUuZW5jLGM9KGEuVXRmOCxhLkJhc2U2NCksaD1lLmFsZ28sbD1oLkV2cEtERixmPWkuQ2lwaGVyPXMuZXh0ZW5kKHtjZmc6bi5leHRlbmQoKSxjcmVhdGVFbmNyeXB0b3I6ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fRU5DX1hGT1JNX01PREUsdCxyKX0sY3JlYXRlRGVjcnlwdG9yOmZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuX0RFQ19YRk9STV9NT0RFLHQscil9LGluaXQ6ZnVuY3Rpb24odCxyLGUpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZChlKSx0aGlzLl94Zm9ybU1vZGU9dCx0aGlzLl9rZXk9cix0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7cy5yZXNldC5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX0scHJvY2VzczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYXBwZW5kKHQpLHRoaXMuX3Byb2Nlc3MoKX0sZmluYWxpemU6ZnVuY3Rpb24odCl7dCYmdGhpcy5fYXBwZW5kKHQpO3ZhciByPXRoaXMuX2RvRmluYWxpemUoKTtyZXR1cm4gcn0sa2V5U2l6ZTo0LGl2U2l6ZTo0LF9FTkNfWEZPUk1fTU9ERToxLF9ERUNfWEZPUk1fTU9ERToyLF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P206d31yZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJue2VuY3J5cHQ6ZnVuY3Rpb24oZSxpLG4pe3JldHVybiB0KGkpLmVuY3J5cHQocixlLGksbil9LGRlY3J5cHQ6ZnVuY3Rpb24oZSxpLG4pe3JldHVybiB0KGkpLmRlY3J5cHQocixlLGksbil9fX19KCl9KSx1PShpLlN0cmVhbUNpcGhlcj1mLmV4dGVuZCh7X2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9wcm9jZXNzKCEwKTtyZXR1cm4gdH0sYmxvY2tTaXplOjF9KSxlLm1vZGU9e30pLGQ9aS5CbG9ja0NpcGhlck1vZGU9bi5leHRlbmQoe2NyZWF0ZUVuY3J5cHRvcjpmdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLkVuY3J5cHRvci5jcmVhdGUodCxyKX0sY3JlYXRlRGVjcnlwdG9yOmZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMuRGVjcnlwdG9yLmNyZWF0ZSh0LHIpfSxpbml0OmZ1bmN0aW9uKHQscil7dGhpcy5fY2lwaGVyPXQsdGhpcy5faXY9cn19KSx2PXUuQ0JDPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsaSl7dmFyIG49dGhpcy5faXY7aWYobil7dmFyIG89bjt0aGlzLl9pdj1yfWVsc2UgdmFyIG89dGhpcy5fcHJldkJsb2NrO2Zvcih2YXIgcz0wO3M8aTtzKyspdFtlK3NdXj1vW3NdfXZhciBlPWQuZXh0ZW5kKCk7cmV0dXJuIGUuRW5jcnlwdG9yPWUuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24ocixlKXt2YXIgaT10aGlzLl9jaXBoZXIsbj1pLmJsb2NrU2l6ZTt0LmNhbGwodGhpcyxyLGUsbiksaS5lbmNyeXB0QmxvY2socixlKSx0aGlzLl9wcmV2QmxvY2s9ci5zbGljZShlLGUrbil9fSksZS5EZWNyeXB0b3I9ZS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbihyLGUpe3ZhciBpPXRoaXMuX2NpcGhlcixuPWkuYmxvY2tTaXplLG89ci5zbGljZShlLGUrbik7aS5kZWNyeXB0QmxvY2socixlKSx0LmNhbGwodGhpcyxyLGUsbiksdGhpcy5fcHJldkJsb2NrPW99fSksZX0oKSxwPWUucGFkPXt9LF89cC5Qa2NzNz17cGFkOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPTQqcixpPWUtdC5zaWdCeXRlcyVlLG49aTw8MjR8aTw8MTZ8aTw8OHxpLHM9W10sYT0wO2E8aTthKz00KXMucHVzaChuKTt2YXIgYz1vLmNyZWF0ZShzLGkpO3QuY29uY2F0KGMpfSx1bnBhZDpmdW5jdGlvbih0KXt2YXIgcj0yNTUmdC53b3Jkc1t0LnNpZ0J5dGVzLTE+Pj4yXTt0LnNpZ0J5dGVzLT1yfX0seT0oaS5CbG9ja0NpcGhlcj1mLmV4dGVuZCh7Y2ZnOmYuY2ZnLmV4dGVuZCh7bW9kZTp2LHBhZGRpbmc6X30pLHJlc2V0OmZ1bmN0aW9uKCl7Zi5yZXNldC5jYWxsKHRoaXMpO3ZhciB0PXRoaXMuY2ZnLHI9dC5pdixlPXQubW9kZTtpZih0aGlzLl94Zm9ybU1vZGU9PXRoaXMuX0VOQ19YRk9STV9NT0RFKXZhciBpPWUuY3JlYXRlRW5jcnlwdG9yO2Vsc2V7dmFyIGk9ZS5jcmVhdGVEZWNyeXB0b3I7dGhpcy5fbWluQnVmZmVyU2l6ZT0xfXRoaXMuX21vZGUmJnRoaXMuX21vZGUuX19jcmVhdG9yPT1pP3RoaXMuX21vZGUuaW5pdCh0aGlzLHImJnIud29yZHMpOih0aGlzLl9tb2RlPWkuY2FsbChlLHRoaXMsciYmci53b3JkcyksdGhpcy5fbW9kZS5fX2NyZWF0b3I9aSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX21vZGUucHJvY2Vzc0Jsb2NrKHQscil9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jZmcucGFkZGluZztpZih0aGlzLl94Zm9ybU1vZGU9PXRoaXMuX0VOQ19YRk9STV9NT0RFKXt0LnBhZCh0aGlzLl9kYXRhLHRoaXMuYmxvY2tTaXplKTt2YXIgcj10aGlzLl9wcm9jZXNzKCEwKX1lbHNle3ZhciByPXRoaXMuX3Byb2Nlc3MoITApO3QudW5wYWQocil9cmV0dXJuIHJ9LGJsb2NrU2l6ZTo0fSksaS5DaXBoZXJQYXJhbXM9bi5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCl7dGhpcy5taXhJbih0KX0sdG9TdHJpbmc6ZnVuY3Rpb24odCl7cmV0dXJuKHR8fHRoaXMuZm9ybWF0dGVyKS5zdHJpbmdpZnkodGhpcyl9fSkpLGc9ZS5mb3JtYXQ9e30sQj1nLk9wZW5TU0w9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXt2YXIgcj10LmNpcGhlcnRleHQsZT10LnNhbHQ7aWYoZSl2YXIgaT1vLmNyZWF0ZShbMTM5ODg5MzY4NCwxNzAxMDc2ODMxXSkuY29uY2F0KGUpLmNvbmNhdChyKTtlbHNlIHZhciBpPXI7cmV0dXJuIGkudG9TdHJpbmcoYyl9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciByPWMucGFyc2UodCksZT1yLndvcmRzO2lmKDEzOTg4OTM2ODQ9PWVbMF0mJjE3MDEwNzY4MzE9PWVbMV0pe3ZhciBpPW8uY3JlYXRlKGUuc2xpY2UoMiw0KSk7ZS5zcGxpY2UoMCw0KSxyLnNpZ0J5dGVzLT0xNn1yZXR1cm4geS5jcmVhdGUoe2NpcGhlcnRleHQ6cixzYWx0Oml9KX19LHc9aS5TZXJpYWxpemFibGVDaXBoZXI9bi5leHRlbmQoe2NmZzpuLmV4dGVuZCh7Zm9ybWF0OkJ9KSxlbmNyeXB0OmZ1bmN0aW9uKHQscixlLGkpe2k9dGhpcy5jZmcuZXh0ZW5kKGkpO3ZhciBuPXQuY3JlYXRlRW5jcnlwdG9yKGUsaSksbz1uLmZpbmFsaXplKHIpLHM9bi5jZmc7cmV0dXJuIHkuY3JlYXRlKHtjaXBoZXJ0ZXh0Om8sa2V5OmUsaXY6cy5pdixhbGdvcml0aG06dCxtb2RlOnMubW9kZSxwYWRkaW5nOnMucGFkZGluZyxibG9ja1NpemU6dC5ibG9ja1NpemUsZm9ybWF0dGVyOmkuZm9ybWF0fSl9LGRlY3J5cHQ6ZnVuY3Rpb24odCxyLGUsaSl7aT10aGlzLmNmZy5leHRlbmQoaSkscj10aGlzLl9wYXJzZShyLGkuZm9ybWF0KTt2YXIgbj10LmNyZWF0ZURlY3J5cHRvcihlLGkpLmZpbmFsaXplKHIuY2lwaGVydGV4dCk7cmV0dXJuIG59LF9wYXJzZTpmdW5jdGlvbih0LHIpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P3IucGFyc2UodCx0aGlzKTp0fX0pLGs9ZS5rZGY9e30sUz1rLk9wZW5TU0w9e2V4ZWN1dGU6ZnVuY3Rpb24odCxyLGUsaSl7aXx8KGk9by5yYW5kb20oOCkpO3ZhciBuPWwuY3JlYXRlKHtrZXlTaXplOnIrZX0pLmNvbXB1dGUodCxpKSxzPW8uY3JlYXRlKG4ud29yZHMuc2xpY2UociksNCplKTtyZXR1cm4gbi5zaWdCeXRlcz00KnIseS5jcmVhdGUoe2tleTpuLGl2OnMsc2FsdDppfSl9fSxtPWkuUGFzc3dvcmRCYXNlZENpcGhlcj13LmV4dGVuZCh7Y2ZnOncuY2ZnLmV4dGVuZCh7a2RmOlN9KSxlbmNyeXB0OmZ1bmN0aW9uKHQscixlLGkpe2k9dGhpcy5jZmcuZXh0ZW5kKGkpO3ZhciBuPWkua2RmLmV4ZWN1dGUoZSx0LmtleVNpemUsdC5pdlNpemUpO2kuaXY9bi5pdjt2YXIgbz13LmVuY3J5cHQuY2FsbCh0aGlzLHQscixuLmtleSxpKTtyZXR1cm4gby5taXhJbihuKSxvfSxkZWNyeXB0OmZ1bmN0aW9uKHQscixlLGkpe2k9dGhpcy5jZmcuZXh0ZW5kKGkpLHI9dGhpcy5fcGFyc2UocixpLmZvcm1hdCk7dmFyIG49aS5rZGYuZXhlY3V0ZShlLHQua2V5U2l6ZSx0Lml2U2l6ZSxyLnNhbHQpO2kuaXY9bi5pdjt2YXIgbz13LmRlY3J5cHQuY2FsbCh0aGlzLHQscixuLmtleSxpKTtyZXR1cm4gb319KX0oKSx0Lm1vZGUuQ0ZCPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0LHIsZSxpKXt2YXIgbj10aGlzLl9pdjtpZihuKXt2YXIgbz1uLnNsaWNlKDApO3RoaXMuX2l2PXZvaWQgMH1lbHNlIHZhciBvPXRoaXMuX3ByZXZCbG9jaztpLmVuY3J5cHRCbG9jayhvLDApO2Zvcih2YXIgcz0wO3M8ZTtzKyspdFtyK3NdXj1vW3NdfXZhciBlPXQubGliLkJsb2NrQ2lwaGVyTW9kZS5leHRlbmQoKTtyZXR1cm4gZS5FbmNyeXB0b3I9ZS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuX2NpcGhlcixuPWkuYmxvY2tTaXplO3IuY2FsbCh0aGlzLHQsZSxuLGkpLHRoaXMuX3ByZXZCbG9jaz10LnNsaWNlKGUsZStuKX19KSxlLkRlY3J5cHRvcj1lLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5fY2lwaGVyLG49aS5ibG9ja1NpemUsbz10LnNsaWNlKGUsZStuKTtyLmNhbGwodGhpcyx0LGUsbixpKSx0aGlzLl9wcmV2QmxvY2s9b319KSxlfSgpLHQubW9kZS5FQ0I9ZnVuY3Rpb24oKXt2YXIgcj10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCk7cmV0dXJuIHIuRW5jcnlwdG9yPXIuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9jaXBoZXIuZW5jcnlwdEJsb2NrKHQscil9fSksci5EZWNyeXB0b3I9ci5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2NpcGhlci5kZWNyeXB0QmxvY2sodCxyKX19KSxyfSgpLHQucGFkLkFuc2lYOTIzPXtwYWQ6ZnVuY3Rpb24odCxyKXt2YXIgZT10LnNpZ0J5dGVzLGk9NCpyLG49aS1lJWksbz1lK24tMTt0LmNsYW1wKCksdC53b3Jkc1tvPj4+Ml18PW48PDI0LW8lNCo4LHQuc2lnQnl0ZXMrPW59LHVucGFkOmZ1bmN0aW9uKHQpe3ZhciByPTI1NSZ0LndvcmRzW3Quc2lnQnl0ZXMtMT4+PjJdO3Quc2lnQnl0ZXMtPXJ9fSx0LnBhZC5Jc28xMDEyNj17cGFkOmZ1bmN0aW9uKHIsZSl7dmFyIGk9NCplLG49aS1yLnNpZ0J5dGVzJWk7ci5jb25jYXQodC5saWIuV29yZEFycmF5LnJhbmRvbShuLTEpKS5jb25jYXQodC5saWIuV29yZEFycmF5LmNyZWF0ZShbbjw8MjRdLDEpKX0sdW5wYWQ6ZnVuY3Rpb24odCl7dmFyIHI9MjU1JnQud29yZHNbdC5zaWdCeXRlcy0xPj4+Ml07dC5zaWdCeXRlcy09cn19LHQucGFkLklzbzk3OTcxPXtwYWQ6ZnVuY3Rpb24ocixlKXtyLmNvbmNhdCh0LmxpYi5Xb3JkQXJyYXkuY3JlYXRlKFsyMTQ3NDgzNjQ4XSwxKSksdC5wYWQuWmVyb1BhZGRpbmcucGFkKHIsZSl9LHVucGFkOmZ1bmN0aW9uKHIpe3QucGFkLlplcm9QYWRkaW5nLnVucGFkKHIpLHIuc2lnQnl0ZXMtLX19LHQubW9kZS5PRkI9ZnVuY3Rpb24oKXt2YXIgcj10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksZT1yLkVuY3J5cHRvcj1yLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fY2lwaGVyLGk9ZS5ibG9ja1NpemUsbj10aGlzLl9pdixvPXRoaXMuX2tleXN0cmVhbTtuJiYobz10aGlzLl9rZXlzdHJlYW09bi5zbGljZSgwKSx0aGlzLl9pdj12b2lkIDApLGUuZW5jcnlwdEJsb2NrKG8sMCk7Zm9yKHZhciBzPTA7czxpO3MrKyl0W3Irc11ePW9bc119fSk7cmV0dXJuIHIuRGVjcnlwdG9yPWUscn0oKSx0LnBhZC5Ob1BhZGRpbmc9e3BhZDpmdW5jdGlvbigpe30sdW5wYWQ6ZnVuY3Rpb24oKXt9fSxmdW5jdGlvbihyKXt2YXIgZT10LGk9ZS5saWIsbj1pLkNpcGhlclBhcmFtcyxvPWUuZW5jLHM9by5IZXgsYT1lLmZvcm1hdDthLkhleD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe3JldHVybiB0LmNpcGhlcnRleHQudG9TdHJpbmcocyl9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciByPXMucGFyc2UodCk7cmV0dXJuIG4uY3JlYXRlKHtjaXBoZXJ0ZXh0OnJ9KX19fSgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5CbG9ja0NpcGhlcixuPXIuYWxnbyxvPVtdLHM9W10sYT1bXSxjPVtdLGg9W10sbD1bXSxmPVtdLHU9W10sZD1bXSx2PVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxyPTA7cjwyNTY7cisrKXI8MTI4P3Rbcl09cjw8MTp0W3JdPXI8PDFeMjgzO2Zvcih2YXIgZT0wLGk9MCxyPTA7cjwyNTY7cisrKXt2YXIgbj1pXmk8PDFeaTw8Ml5pPDwzXmk8PDQ7bj1uPj4+OF4yNTUmbl45OSxvW2VdPW4sc1tuXT1lO3ZhciBwPXRbZV0sXz10W3BdLHk9dFtfXSxnPTI1Nyp0W25dXjE2ODQzMDA4Km47YVtlXT1nPDwyNHxnPj4+OCxjW2VdPWc8PDE2fGc+Pj4xNixoW2VdPWc8PDh8Zz4+PjI0LGxbZV09Zzt2YXIgZz0xNjg0MzAwOSp5XjY1NTM3Kl9eMjU3KnBeMTY4NDMwMDgqZTtmW25dPWc8PDI0fGc+Pj44LHVbbl09Zzw8MTZ8Zz4+PjE2LGRbbl09Zzw8OHxnPj4+MjQsdltuXT1nLGU/KGU9cF50W3RbdFt5XnBdXV0saV49dFt0W2ldXSk6ZT1pPTF9fSgpO3ZhciBwPVswLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0XSxfPW4uQUVTPWkuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2lmKCF0aGlzLl9uUm91bmRzfHx0aGlzLl9rZXlQcmlvclJlc2V0IT09dGhpcy5fa2V5KXtmb3IodmFyIHQ9dGhpcy5fa2V5UHJpb3JSZXNldD10aGlzLl9rZXkscj10LndvcmRzLGU9dC5zaWdCeXRlcy80LGk9dGhpcy5fblJvdW5kcz1lKzYsbj00KihpKzEpLHM9dGhpcy5fa2V5U2NoZWR1bGU9W10sYT0wO2E8bjthKyspaWYoYTxlKXNbYV09clthXTtlbHNle3ZhciBjPXNbYS0xXTthJWU/ZT42JiZhJWU9PTQmJihjPW9bYz4+PjI0XTw8MjR8b1tjPj4+MTYmMjU1XTw8MTZ8b1tjPj4+OCYyNTVdPDw4fG9bMjU1JmNdKTooYz1jPDw4fGM+Pj4yNCxjPW9bYz4+PjI0XTw8MjR8b1tjPj4+MTYmMjU1XTw8MTZ8b1tjPj4+OCYyNTVdPDw4fG9bMjU1JmNdLGNePXBbYS9lfDBdPDwyNCksc1thXT1zW2EtZV1eY31mb3IodmFyIGg9dGhpcy5faW52S2V5U2NoZWR1bGU9W10sbD0wO2w8bjtsKyspe3ZhciBhPW4tbDtpZihsJTQpdmFyIGM9c1thXTtlbHNlIHZhciBjPXNbYS00XTtsPDR8fGE8PTQ/aFtsXT1jOmhbbF09ZltvW2M+Pj4yNF1dXnVbb1tjPj4+MTYmMjU1XV1eZFtvW2M+Pj44JjI1NV1dXnZbb1syNTUmY11dfX19LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2RvQ3J5cHRCbG9jayh0LHIsdGhpcy5fa2V5U2NoZWR1bGUsYSxjLGgsbCxvKX0sZGVjcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGU9dFtyKzFdO3RbcisxXT10W3IrM10sdFtyKzNdPWUsdGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9pbnZLZXlTY2hlZHVsZSxmLHUsZCx2LHMpO3ZhciBlPXRbcisxXTt0W3IrMV09dFtyKzNdLHRbciszXT1lfSxfZG9DcnlwdEJsb2NrOmZ1bmN0aW9uKHQscixlLGksbixvLHMsYSl7Zm9yKHZhciBjPXRoaXMuX25Sb3VuZHMsaD10W3JdXmVbMF0sbD10W3IrMV1eZVsxXSxmPXRbcisyXV5lWzJdLHU9dFtyKzNdXmVbM10sZD00LHY9MTt2PGM7disrKXt2YXIgcD1pW2g+Pj4yNF1ebltsPj4+MTYmMjU1XV5vW2Y+Pj44JjI1NV1ec1syNTUmdV1eZVtkKytdLF89aVtsPj4+MjRdXm5bZj4+PjE2JjI1NV1eb1t1Pj4+OCYyNTVdXnNbMjU1JmhdXmVbZCsrXSx5PWlbZj4+PjI0XV5uW3U+Pj4xNiYyNTVdXm9baD4+PjgmMjU1XV5zWzI1NSZsXV5lW2QrK10sZz1pW3U+Pj4yNF1ebltoPj4+MTYmMjU1XV5vW2w+Pj44JjI1NV1ec1syNTUmZl1eZVtkKytdO2g9cCxsPV8sZj15LHU9Z312YXIgcD0oYVtoPj4+MjRdPDwyNHxhW2w+Pj4xNiYyNTVdPDwxNnxhW2Y+Pj44JjI1NV08PDh8YVsyNTUmdV0pXmVbZCsrXSxfPShhW2w+Pj4yNF08PDI0fGFbZj4+PjE2JjI1NV08PDE2fGFbdT4+PjgmMjU1XTw8OHxhWzI1NSZoXSleZVtkKytdLHk9KGFbZj4+PjI0XTw8MjR8YVt1Pj4+MTYmMjU1XTw8MTZ8YVtoPj4+OCYyNTVdPDw4fGFbMjU1JmxdKV5lW2QrK10sZz0oYVt1Pj4+MjRdPDwyNHxhW2g+Pj4xNiYyNTVdPDwxNnxhW2w+Pj44JjI1NV08PDh8YVsyNTUmZl0pXmVbZCsrXTt0W3JdPXAsdFtyKzFdPV8sdFtyKzJdPXksdFtyKzNdPWd9LGtleVNpemU6OH0pO3IuQUVTPWkuX2NyZWF0ZUhlbHBlcihfKX0oKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIodCxyKXt2YXIgZT0odGhpcy5fbEJsb2NrPj4+dF50aGlzLl9yQmxvY2spJnI7dGhpcy5fckJsb2NrXj1lLHRoaXMuX2xCbG9ja149ZTw8dH1mdW5jdGlvbiBlKHQscil7dmFyIGU9KHRoaXMuX3JCbG9jaz4+PnRedGhpcy5fbEJsb2NrKSZyO3RoaXMuX2xCbG9ja149ZSx0aGlzLl9yQmxvY2tePWU8PHQ7XG59dmFyIGk9dCxuPWkubGliLG89bi5Xb3JkQXJyYXkscz1uLkJsb2NrQ2lwaGVyLGE9aS5hbGdvLGM9WzU3LDQ5LDQxLDMzLDI1LDE3LDksMSw1OCw1MCw0MiwzNCwyNiwxOCwxMCwyLDU5LDUxLDQzLDM1LDI3LDE5LDExLDMsNjAsNTIsNDQsMzYsNjMsNTUsNDcsMzksMzEsMjMsMTUsNyw2Miw1NCw0NiwzOCwzMCwyMiwxNCw2LDYxLDUzLDQ1LDM3LDI5LDIxLDEzLDUsMjgsMjAsMTIsNF0saD1bMTQsMTcsMTEsMjQsMSw1LDMsMjgsMTUsNiwyMSwxMCwyMywxOSwxMiw0LDI2LDgsMTYsNywyNywyMCwxMywyLDQxLDUyLDMxLDM3LDQ3LDU1LDMwLDQwLDUxLDQ1LDMzLDQ4LDQ0LDQ5LDM5LDU2LDM0LDUzLDQ2LDQyLDUwLDM2LDI5LDMyXSxsPVsxLDIsNCw2LDgsMTAsMTIsMTQsMTUsMTcsMTksMjEsMjMsMjUsMjcsMjhdLGY9W3swOjg0MjE4ODgsMjY4NDM1NDU2OjMyNzY4LDUzNjg3MDkxMjo4NDIxMzc4LDgwNTMwNjM2ODoyLDEwNzM3NDE4MjQ6NTEyLDEzNDIxNzcyODA6ODQyMTg5MCwxNjEwNjEyNzM2OjgzODkxMjIsMTg3OTA0ODE5Mjo4Mzg4NjA4LDIxNDc0ODM2NDg6NTE0LDI0MTU5MTkxMDQ6ODM4OTEyMCwyNjg0MzU0NTYwOjMzMjgwLDI5NTI3OTAwMTY6ODQyMTM3NiwzMjIxMjI1NDcyOjMyNzcwLDM0ODk2NjA5Mjg6ODM4ODYxMCwzNzU4MDk2Mzg0OjAsNDAyNjUzMTg0MDozMzI4MiwxMzQyMTc3Mjg6MCw0MDI2NTMxODQ6ODQyMTg5MCw2NzEwODg2NDA6MzMyODIsOTM5NTI0MDk2OjMyNzY4LDEyMDc5NTk1NTI6ODQyMTg4OCwxNDc2Mzk1MDA4OjUxMiwxNzQ0ODMwNDY0Ojg0MjEzNzgsMjAxMzI2NTkyMDoyLDIyODE3MDEzNzY6ODM4OTEyMCwyNTUwMTM2ODMyOjMzMjgwLDI4MTg1NzIyODg6ODQyMTM3NiwzMDg3MDA3NzQ0OjgzODkxMjIsMzM1NTQ0MzIwMDo4Mzg4NjEwLDM2MjM4Nzg2NTY6MzI3NzAsMzg5MjMxNDExMjo1MTQsNDE2MDc0OTU2ODo4Mzg4NjA4LDE6MzI3NjgsMjY4NDM1NDU3OjIsNTM2ODcwOTEzOjg0MjE4ODgsODA1MzA2MzY5OjgzODg2MDgsMTA3Mzc0MTgyNTo4NDIxMzc4LDEzNDIxNzcyODE6MzMyODAsMTYxMDYxMjczNzo1MTIsMTg3OTA0ODE5Mzo4Mzg5MTIyLDIxNDc0ODM2NDk6ODQyMTg5MCwyNDE1OTE5MTA1Ojg0MjEzNzYsMjY4NDM1NDU2MTo4Mzg4NjEwLDI5NTI3OTAwMTc6MzMyODIsMzIyMTIyNTQ3Mzo1MTQsMzQ4OTY2MDkyOTo4Mzg5MTIwLDM3NTgwOTYzODU6MzI3NzAsNDAyNjUzMTg0MTowLDEzNDIxNzcyOTo4NDIxODkwLDQwMjY1MzE4NTo4NDIxMzc2LDY3MTA4ODY0MTo4Mzg4NjA4LDkzOTUyNDA5Nzo1MTIsMTIwNzk1OTU1MzozMjc2OCwxNDc2Mzk1MDA5OjgzODg2MTAsMTc0NDgzMDQ2NToyLDIwMTMyNjU5MjE6MzMyODIsMjI4MTcwMTM3NzozMjc3MCwyNTUwMTM2ODMzOjgzODkxMjIsMjgxODU3MjI4OTo1MTQsMzA4NzAwNzc0NTo4NDIxODg4LDMzNTU0NDMyMDE6ODM4OTEyMCwzNjIzODc4NjU3OjAsMzg5MjMxNDExMzozMzI4MCw0MTYwNzQ5NTY5Ojg0MjEzNzh9LHswOjEwNzQyODI1MTIsMTY3NzcyMTY6MTYzODQsMzM1NTQ0MzI6NTI0Mjg4LDUwMzMxNjQ4OjEwNzQyNjYxMjgsNjcxMDg4NjQ6MTA3Mzc0MTg0MCw4Mzg4NjA4MDoxMDc0MjgyNDk2LDEwMDY2MzI5NjoxMDczNzU4MjA4LDExNzQ0MDUxMjoxNiwxMzQyMTc3Mjg6NTQwNjcyLDE1MDk5NDk0NDoxMDczNzU4MjI0LDE2Nzc3MjE2MDoxMDczNzQxODI0LDE4NDU0OTM3Njo1NDA2ODgsMjAxMzI2NTkyOjUyNDMwNCwyMTgxMDM4MDg6MCwyMzQ4ODEwMjQ6MTY0MDAsMjUxNjU4MjQwOjEwNzQyNjYxMTIsODM4ODYwODoxMDczNzU4MjA4LDI1MTY1ODI0OjU0MDY4OCw0MTk0MzA0MDoxNiw1ODcyMDI1NjoxMDczNzU4MjI0LDc1NDk3NDcyOjEwNzQyODI1MTIsOTIyNzQ2ODg6MTA3Mzc0MTgyNCwxMDkwNTE5MDQ6NTI0Mjg4LDEyNTgyOTEyMDoxMDc0MjY2MTI4LDE0MjYwNjMzNjo1MjQzMDQsMTU5MzgzNTUyOjAsMTc2MTYwNzY4OjE2Mzg0LDE5MjkzNzk4NDoxMDc0MjY2MTEyLDIwOTcxNTIwMDoxMDczNzQxODQwLDIyNjQ5MjQxNjo1NDA2NzIsMjQzMjY5NjMyOjEwNzQyODI0OTYsMjYwMDQ2ODQ4OjE2NDAwLDI2ODQzNTQ1NjowLDI4NTIxMjY3MjoxMDc0MjY2MTI4LDMwMTk4OTg4ODoxMDczNzU4MjI0LDMxODc2NzEwNDoxMDc0MjgyNDk2LDMzNTU0NDMyMDoxMDc0MjY2MTEyLDM1MjMyMTUzNjoxNiwzNjkwOTg3NTI6NTQwNjg4LDM4NTg3NTk2ODoxNjM4NCw0MDI2NTMxODQ6MTY0MDAsNDE5NDMwNDAwOjUyNDI4OCw0MzYyMDc2MTY6NTI0MzA0LDQ1Mjk4NDgzMjoxMDczNzQxODQwLDQ2OTc2MjA0ODo1NDA2NzIsNDg2NTM5MjY0OjEwNzM3NTgyMDgsNTAzMzE2NDgwOjEwNzM3NDE4MjQsNTIwMDkzNjk2OjEwNzQyODI1MTIsMjc2ODI0MDY0OjU0MDY4OCwyOTM2MDEyODA6NTI0Mjg4LDMxMDM3ODQ5NjoxMDc0MjY2MTEyLDMyNzE1NTcxMjoxNjM4NCwzNDM5MzI5Mjg6MTA3Mzc1ODIwOCwzNjA3MTAxNDQ6MTA3NDI4MjUxMiwzNzc0ODczNjA6MTYsMzk0MjY0NTc2OjEwNzM3NDE4MjQsNDExMDQxNzkyOjEwNzQyODI0OTYsNDI3ODE5MDA4OjEwNzM3NDE4NDAsNDQ0NTk2MjI0OjEwNzM3NTgyMjQsNDYxMzczNDQwOjUyNDMwNCw0NzgxNTA2NTY6MCw0OTQ5Mjc4NzI6MTY0MDAsNTExNzA1MDg4OjEwNzQyNjYxMjgsNTI4NDgyMzA0OjU0MDY3Mn0sezA6MjYwLDEwNDg1NzY6MCwyMDk3MTUyOjY3MTA5MTIwLDMxNDU3Mjg6NjU3OTYsNDE5NDMwNDo2NTU0MCw1MjQyODgwOjY3MTA4ODY4LDYyOTE0NTY6NjcxNzQ2NjAsNzM0MDAzMjo2NzE3NDQwMCw4Mzg4NjA4OjY3MTA4ODY0LDk0MzcxODQ6NjcxNzQ2NTYsMTA0ODU3NjA6NjU3OTIsMTE1MzQzMzY6NjcxNzQ0MDQsMTI1ODI5MTI6NjcxMDkxMjQsMTM2MzE0ODg6NjU1MzYsMTQ2ODAwNjQ6NCwxNTcyODY0MDoyNTYsNTI0Mjg4OjY3MTc0NjU2LDE1NzI4NjQ6NjcxNzQ0MDQsMjYyMTQ0MDowLDM2NzAwMTY6NjcxMDkxMjAsNDcxODU5Mjo2NzEwODg2OCw1NzY3MTY4OjY1NTM2LDY4MTU3NDQ6NjU1NDAsNzg2NDMyMDoyNjAsODkxMjg5Njo0LDk5NjE0NzI6MjU2LDExMDEwMDQ4OjY3MTc0NDAwLDEyMDU4NjI0OjY1Nzk2LDEzMTA3MjAwOjY1NzkyLDE0MTU1Nzc2OjY3MTA5MTI0LDE1MjA0MzUyOjY3MTc0NjYwLDE2MjUyOTI4OjY3MTA4ODY0LDE2Nzc3MjE2OjY3MTc0NjU2LDE3ODI1NzkyOjY1NTQwLDE4ODc0MzY4OjY1NTM2LDE5OTIyOTQ0OjY3MTA5MTIwLDIwOTcxNTIwOjI1NiwyMjAyMDA5Njo2NzE3NDY2MCwyMzA2ODY3Mjo2NzEwODg2OCwyNDExNzI0ODowLDI1MTY1ODI0OjY3MTA5MTI0LDI2MjE0NDAwOjY3MTA4ODY0LDI3MjYyOTc2OjQsMjgzMTE1NTI6NjU3OTIsMjkzNjAxMjg6NjcxNzQ0MDAsMzA0MDg3MDQ6MjYwLDMxNDU3MjgwOjY1Nzk2LDMyNTA1ODU2OjY3MTc0NDA0LDE3MzAxNTA0OjY3MTA4ODY0LDE4MzUwMDgwOjI2MCwxOTM5ODY1Njo2NzE3NDY1NiwyMDQ0NzIzMjowLDIxNDk1ODA4OjY1NTQwLDIyNTQ0Mzg0OjY3MTA5MTIwLDIzNTkyOTYwOjI1NiwyNDY0MTUzNjo2NzE3NDQwNCwyNTY5MDExMjo2NTUzNiwyNjczODY4ODo2NzE3NDY2MCwyNzc4NzI2NDo2NTc5NiwyODgzNTg0MDo2NzEwODg2OCwyOTg4NDQxNjo2NzEwOTEyNCwzMDkzMjk5Mjo2NzE3NDQwMCwzMTk4MTU2ODo0LDMzMDMwMTQ0OjY1NzkyfSx7MDoyMTUxNjgyMDQ4LDY1NTM2OjIxNDc0ODc4MDgsMTMxMDcyOjQxOTg0NjQsMTk2NjA4OjIxNTE2Nzc5NTIsMjYyMTQ0OjAsMzI3NjgwOjQxOTg0MDAsMzkzMjE2OjIxNDc0ODM3MTIsNDU4NzUyOjQxOTQzNjgsNTI0Mjg4OjIxNDc0ODM2NDgsNTg5ODI0OjQxOTQzMDQsNjU1MzYwOjY0LDcyMDg5NjoyMTQ3NDg3NzQ0LDc4NjQzMjoyMTUxNjc4MDE2LDg1MTk2ODo0MTYwLDkxNzUwNDo0MDk2LDk4MzA0MDoyMTUxNjgyMTEyLDMyNzY4OjIxNDc0ODc4MDgsOTgzMDQ6NjQsMTYzODQwOjIxNTE2NzgwMTYsMjI5Mzc2OjIxNDc0ODc3NDQsMjk0OTEyOjQxOTg0MDAsMzYwNDQ4OjIxNTE2ODIxMTIsNDI1OTg0OjAsNDkxNTIwOjIxNTE2Nzc5NTIsNTU3MDU2OjQwOTYsNjIyNTkyOjIxNTE2ODIwNDgsNjg4MTI4OjQxOTQzMDQsNzUzNjY0OjQxNjAsODE5MjAwOjIxNDc0ODM2NDgsODg0NzM2OjQxOTQzNjgsOTUwMjcyOjQxOTg0NjQsMTAxNTgwODoyMTQ3NDgzNzEyLDEwNDg1NzY6NDE5NDM2OCwxMTE0MTEyOjQxOTg0MDAsMTE3OTY0ODoyMTQ3NDgzNzEyLDEyNDUxODQ6MCwxMzEwNzIwOjQxNjAsMTM3NjI1NjoyMTUxNjc4MDE2LDE0NDE3OTI6MjE1MTY4MjA0OCwxNTA3MzI4OjIxNDc0ODc4MDgsMTU3Mjg2NDoyMTUxNjgyMTEyLDE2Mzg0MDA6MjE0NzQ4MzY0OCwxNzAzOTM2OjIxNTE2Nzc5NTIsMTc2OTQ3Mjo0MTk4NDY0LDE4MzUwMDg6MjE0NzQ4Nzc0NCwxOTAwNTQ0OjQxOTQzMDQsMTk2NjA4MDo2NCwyMDMxNjE2OjQwOTYsMTA4MTM0NDoyMTUxNjc3OTUyLDExNDY4ODA6MjE1MTY4MjExMiwxMjEyNDE2OjAsMTI3Nzk1Mjo0MTk4NDAwLDEzNDM0ODg6NDE5NDM2OCwxNDA5MDI0OjIxNDc0ODM2NDgsMTQ3NDU2MDoyMTQ3NDg3ODA4LDE1NDAwOTY6NjQsMTYwNTYzMjoyMTQ3NDgzNzEyLDE2NzExNjg6NDA5NiwxNzM2NzA0OjIxNDc0ODc3NDQsMTgwMjI0MDoyMTUxNjc4MDE2LDE4Njc3NzY6NDE2MCwxOTMzMzEyOjIxNTE2ODIwNDgsMTk5ODg0ODo0MTk0MzA0LDIwNjQzODQ6NDE5ODQ2NH0sezA6MTI4LDQwOTY6MTcwMzkzNjAsODE5MjoyNjIxNDQsMTIyODg6NTM2ODcwOTEyLDE2Mzg0OjUzNzEzMzE4NCwyMDQ4MDoxNjc3NzM0NCwyNDU3Njo1NTM2NDgyNTYsMjg2NzI6MjYyMjcyLDMyNzY4OjE2Nzc3MjE2LDM2ODY0OjUzNzEzMzA1Niw0MDk2MDo1MzY4NzEwNDAsNDUwNTY6NTUzOTEwNDAwLDQ5MTUyOjU1MzkxMDI3Miw1MzI0ODowLDU3MzQ0OjE3MDM5NDg4LDYxNDQwOjU1MzY0ODEyOCwyMDQ4OjE3MDM5NDg4LDYxNDQ6NTUzNjQ4MjU2LDEwMjQwOjEyOCwxNDMzNjoxNzAzOTM2MCwxODQzMjoyNjIxNDQsMjI1Mjg6NTM3MTMzMTg0LDI2NjI0OjU1MzkxMDI3MiwzMDcyMDo1MzY4NzA5MTIsMzQ4MTY6NTM3MTMzMDU2LDM4OTEyOjAsNDMwMDg6NTUzOTEwNDAwLDQ3MTA0OjE2Nzc3MzQ0LDUxMjAwOjUzNjg3MTA0MCw1NTI5Njo1NTM2NDgxMjgsNTkzOTI6MTY3NzcyMTYsNjM0ODg6MjYyMjcyLDY1NTM2OjI2MjE0NCw2OTYzMjoxMjgsNzM3Mjg6NTM2ODcwOTEyLDc3ODI0OjU1MzY0ODI1Niw4MTkyMDoxNjc3NzM0NCw4NjAxNjo1NTM5MTAyNzIsOTAxMTI6NTM3MTMzMTg0LDk0MjA4OjE2Nzc3MjE2LDk4MzA0OjU1MzkxMDQwMCwxMDI0MDA6NTUzNjQ4MTI4LDEwNjQ5NjoxNzAzOTM2MCwxMTA1OTI6NTM3MTMzMDU2LDExNDY4ODoyNjIyNzIsMTE4Nzg0OjUzNjg3MTA0MCwxMjI4ODA6MCwxMjY5NzY6MTcwMzk0ODgsNjc1ODQ6NTUzNjQ4MjU2LDcxNjgwOjE2Nzc3MjE2LDc1Nzc2OjE3MDM5MzYwLDc5ODcyOjUzNzEzMzE4NCw4Mzk2ODo1MzY4NzA5MTIsODgwNjQ6MTcwMzk0ODgsOTIxNjA6MTI4LDk2MjU2OjU1MzkxMDI3MiwxMDAzNTI6MjYyMjcyLDEwNDQ0ODo1NTM5MTA0MDAsMTA4NTQ0OjAsMTEyNjQwOjU1MzY0ODEyOCwxMTY3MzY6MTY3NzczNDQsMTIwODMyOjI2MjE0NCwxMjQ5Mjg6NTM3MTMzMDU2LDEyOTAyNDo1MzY4NzEwNDB9LHswOjI2ODQzNTQ2NCwyNTY6ODE5Miw1MTI6MjcwNTMyNjA4LDc2ODoyNzA1NDA4MDgsMTAyNDoyNjg0NDM2NDgsMTI4MDoyMDk3MTUyLDE1MzY6MjA5NzE2MCwxNzkyOjI2ODQzNTQ1NiwyMDQ4OjAsMjMwNDoyNjg0NDM2NTYsMjU2MDoyMTA1MzQ0LDI4MTY6OCwzMDcyOjI3MDUzMjYxNiwzMzI4OjIxMDUzNTIsMzU4NDo4MjAwLDM4NDA6MjcwNTQwODAwLDEyODoyNzA1MzI2MDgsMzg0OjI3MDU0MDgwOCw2NDA6OCw4OTY6MjA5NzE1MiwxMTUyOjIxMDUzNTIsMTQwODoyNjg0MzU0NjQsMTY2NDoyNjg0NDM2NDgsMTkyMDo4MjAwLDIxNzY6MjA5NzE2MCwyNDMyOjgxOTIsMjY4ODoyNjg0NDM2NTYsMjk0NDoyNzA1MzI2MTYsMzIwMDowLDM0NTY6MjcwNTQwODAwLDM3MTI6MjEwNTM0NCwzOTY4OjI2ODQzNTQ1Niw0MDk2OjI2ODQ0MzY0OCw0MzUyOjI3MDUzMjYxNiw0NjA4OjI3MDU0MDgwOCw0ODY0OjgyMDAsNTEyMDoyMDk3MTUyLDUzNzY6MjY4NDM1NDU2LDU2MzI6MjY4NDM1NDY0LDU4ODg6MjEwNTM0NCw2MTQ0OjIxMDUzNTIsNjQwMDowLDY2NTY6OCw2OTEyOjI3MDUzMjYwOCw3MTY4OjgxOTIsNzQyNDoyNjg0NDM2NTYsNzY4MDoyNzA1NDA4MDAsNzkzNjoyMDk3MTYwLDQyMjQ6OCw0NDgwOjIxMDUzNDQsNDczNjoyMDk3MTUyLDQ5OTI6MjY4NDM1NDY0LDUyNDg6MjY4NDQzNjQ4LDU1MDQ6ODIwMCw1NzYwOjI3MDU0MDgwOCw2MDE2OjI3MDUzMjYwOCw2MjcyOjI3MDU0MDgwMCw2NTI4OjI3MDUzMjYxNiw2Nzg0OjgxOTIsNzA0MDoyMTA1MzUyLDcyOTY6MjA5NzE2MCw3NTUyOjAsNzgwODoyNjg0MzU0NTYsODA2NDoyNjg0NDM2NTZ9LHswOjEwNDg1NzYsMTY6MzM1NTU0NTcsMzI6MTAyNCw0ODoxMDQ5NjAxLDY0OjM0NjA0MDMzLDgwOjAsOTY6MSwxMTI6MzQ2MDMwMDksMTI4OjMzNTU1NDU2LDE0NDoxMDQ4NTc3LDE2MDozMzU1NDQzMywxNzY6MzQ2MDQwMzIsMTkyOjM0NjAzMDA4LDIwODoxMDI1LDIyNDoxMDQ5NjAwLDI0MDozMzU1NDQzMiw4OjM0NjAzMDA5LDI0OjAsNDA6MzM1NTU0NTcsNTY6MzQ2MDQwMzIsNzI6MTA0ODU3Niw4ODozMzU1NDQzMywxMDQ6MzM1NTQ0MzIsMTIwOjEwMjUsMTM2OjEwNDk2MDEsMTUyOjMzNTU1NDU2LDE2ODozNDYwMzAwOCwxODQ6MTA0ODU3NywyMDA6MTAyNCwyMTY6MzQ2MDQwMzMsMjMyOjEsMjQ4OjEwNDk2MDAsMjU2OjMzNTU0NDMyLDI3MjoxMDQ4NTc2LDI4ODozMzU1NTQ1NywzMDQ6MzQ2MDMwMDksMzIwOjEwNDg1NzcsMzM2OjMzNTU1NDU2LDM1MjozNDYwNDAzMiwzNjg6MTA0OTYwMSwzODQ6MTAyNSw0MDA6MzQ2MDQwMzMsNDE2OjEwNDk2MDAsNDMyOjEsNDQ4OjAsNDY0OjM0NjAzMDA4LDQ4MDozMzU1NDQzMyw0OTY6MTAyNCwyNjQ6MTA0OTYwMCwyODA6MzM1NTU0NTcsMjk2OjM0NjAzMDA5LDMxMjoxLDMyODozMzU1NDQzMiwzNDQ6MTA0ODU3NiwzNjA6MTAyNSwzNzY6MzQ2MDQwMzIsMzkyOjMzNTU0NDMzLDQwODozNDYwMzAwOCw0MjQ6MCw0NDA6MzQ2MDQwMzMsNDU2OjEwNDk2MDEsNDcyOjEwMjQsNDg4OjMzNTU1NDU2LDUwNDoxMDQ4NTc3fSx7MDoxMzQyMTk4MDgsMToxMzEwNzIsMjoxMzQyMTc3MjgsMzozMiw0OjEzMTEwNCw1OjEzNDM1MDg4MCw2OjEzNDM1MDg0OCw3OjIwNDgsODoxMzQzNDg4MDAsOToxMzQyMTk3NzYsMTA6MTMzMTIwLDExOjEzNDM0ODgzMiwxMjoyMDgwLDEzOjAsMTQ6MTM0MjE3NzYwLDE1OjEzMzE1MiwyMTQ3NDgzNjQ4OjIwNDgsMjE0NzQ4MzY0OToxMzQzNTA4ODAsMjE0NzQ4MzY1MDoxMzQyMTk4MDgsMjE0NzQ4MzY1MToxMzQyMTc3MjgsMjE0NzQ4MzY1MjoxMzQzNDg4MDAsMjE0NzQ4MzY1MzoxMzMxMjAsMjE0NzQ4MzY1NDoxMzMxNTIsMjE0NzQ4MzY1NTozMiwyMTQ3NDgzNjU2OjEzNDIxNzc2MCwyMTQ3NDgzNjU3OjIwODAsMjE0NzQ4MzY1ODoxMzExMDQsMjE0NzQ4MzY1OToxMzQzNTA4NDgsMjE0NzQ4MzY2MDowLDIxNDc0ODM2NjE6MTM0MzQ4ODMyLDIxNDc0ODM2NjI6MTM0MjE5Nzc2LDIxNDc0ODM2NjM6MTMxMDcyLDE2OjEzMzE1MiwxNzoxMzQzNTA4NDgsMTg6MzIsMTk6MjA0OCwyMDoxMzQyMTk3NzYsMjE6MTM0MjE3NzYwLDIyOjEzNDM0ODgzMiwyMzoxMzEwNzIsMjQ6MCwyNToxMzExMDQsMjY6MTM0MzQ4ODAwLDI3OjEzNDIxOTgwOCwyODoxMzQzNTA4ODAsMjk6MTMzMTIwLDMwOjIwODAsMzE6MTM0MjE3NzI4LDIxNDc0ODM2NjQ6MTMxMDcyLDIxNDc0ODM2NjU6MjA0OCwyMTQ3NDgzNjY2OjEzNDM0ODgzMiwyMTQ3NDgzNjY3OjEzMzE1MiwyMTQ3NDgzNjY4OjMyLDIxNDc0ODM2Njk6MTM0MzQ4ODAwLDIxNDc0ODM2NzA6MTM0MjE3NzI4LDIxNDc0ODM2NzE6MTM0MjE5ODA4LDIxNDc0ODM2NzI6MTM0MzUwODgwLDIxNDc0ODM2NzM6MTM0MjE3NzYwLDIxNDc0ODM2NzQ6MTM0MjE5Nzc2LDIxNDc0ODM2NzU6MCwyMTQ3NDgzNjc2OjEzMzEyMCwyMTQ3NDgzNjc3OjIwODAsMjE0NzQ4MzY3ODoxMzExMDQsMjE0NzQ4MzY3OToxMzQzNTA4NDh9XSx1PVs0MTYwNzQ5NTY5LDUyODQ4MjMwNCwzMzAzMDE0NCwyMDY0Mzg0LDEyOTAyNCw4MDY0LDUwNCwyMTQ3NDgzNjc5XSxkPWEuREVTPXMuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkscj10LndvcmRzLGU9W10saT0wO2k8NTY7aSsrKXt2YXIgbj1jW2ldLTE7ZVtpXT1yW24+Pj41XT4+PjMxLW4lMzImMX1mb3IodmFyIG89dGhpcy5fc3ViS2V5cz1bXSxzPTA7czwxNjtzKyspe2Zvcih2YXIgYT1vW3NdPVtdLGY9bFtzXSxpPTA7aTwyNDtpKyspYVtpLzZ8MF18PWVbKGhbaV0tMStmKSUyOF08PDMxLWklNixhWzQrKGkvNnwwKV18PWVbMjgrKGhbaSsyNF0tMStmKSUyOF08PDMxLWklNjthWzBdPWFbMF08PDF8YVswXT4+PjMxO2Zvcih2YXIgaT0xO2k8NztpKyspYVtpXT1hW2ldPj4+NCooaS0xKSszO2FbN109YVs3XTw8NXxhWzddPj4+Mjd9Zm9yKHZhciB1PXRoaXMuX2ludlN1YktleXM9W10saT0wO2k8MTY7aSsrKXVbaV09b1sxNS1pXX0sZW5jcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9zdWJLZXlzKX0sZGVjcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9pbnZTdWJLZXlzKX0sX2RvQ3J5cHRCbG9jazpmdW5jdGlvbih0LGksbil7dGhpcy5fbEJsb2NrPXRbaV0sdGhpcy5fckJsb2NrPXRbaSsxXSxyLmNhbGwodGhpcyw0LDI1MjY0NTEzNSksci5jYWxsKHRoaXMsMTYsNjU1MzUpLGUuY2FsbCh0aGlzLDIsODU4OTkzNDU5KSxlLmNhbGwodGhpcyw4LDE2NzExOTM1KSxyLmNhbGwodGhpcywxLDE0MzE2NTU3NjUpO2Zvcih2YXIgbz0wO288MTY7bysrKXtmb3IodmFyIHM9bltvXSxhPXRoaXMuX2xCbG9jayxjPXRoaXMuX3JCbG9jayxoPTAsbD0wO2w8ODtsKyspaHw9ZltsXVsoKGNec1tsXSkmdVtsXSk+Pj4wXTt0aGlzLl9sQmxvY2s9Yyx0aGlzLl9yQmxvY2s9YV5ofXZhciBkPXRoaXMuX2xCbG9jazt0aGlzLl9sQmxvY2s9dGhpcy5fckJsb2NrLHRoaXMuX3JCbG9jaz1kLHIuY2FsbCh0aGlzLDEsMTQzMTY1NTc2NSksZS5jYWxsKHRoaXMsOCwxNjcxMTkzNSksZS5jYWxsKHRoaXMsMiw4NTg5OTM0NTkpLHIuY2FsbCh0aGlzLDE2LDY1NTM1KSxyLmNhbGwodGhpcyw0LDI1MjY0NTEzNSksdFtpXT10aGlzLl9sQmxvY2ssdFtpKzFdPXRoaXMuX3JCbG9ja30sa2V5U2l6ZToyLGl2U2l6ZToyLGJsb2NrU2l6ZToyfSk7aS5ERVM9cy5fY3JlYXRlSGVscGVyKGQpO3ZhciB2PWEuVHJpcGxlREVTPXMuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2tleSxyPXQud29yZHM7dGhpcy5fZGVzMT1kLmNyZWF0ZUVuY3J5cHRvcihvLmNyZWF0ZShyLnNsaWNlKDAsMikpKSx0aGlzLl9kZXMyPWQuY3JlYXRlRW5jcnlwdG9yKG8uY3JlYXRlKHIuc2xpY2UoMiw0KSkpLHRoaXMuX2RlczM9ZC5jcmVhdGVFbmNyeXB0b3Ioby5jcmVhdGUoci5zbGljZSg0LDYpKSl9LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2RlczEuZW5jcnlwdEJsb2NrKHQsciksdGhpcy5fZGVzMi5kZWNyeXB0QmxvY2sodCxyKSx0aGlzLl9kZXMzLmVuY3J5cHRCbG9jayh0LHIpfSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9kZXMzLmRlY3J5cHRCbG9jayh0LHIpLHRoaXMuX2RlczIuZW5jcnlwdEJsb2NrKHQsciksdGhpcy5fZGVzMS5kZWNyeXB0QmxvY2sodCxyKX0sa2V5U2l6ZTo2LGl2U2l6ZToyLGJsb2NrU2l6ZToyfSk7aS5UcmlwbGVERVM9cy5fY3JlYXRlSGVscGVyKHYpfSgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcigpe2Zvcih2YXIgdD10aGlzLl9TLHI9dGhpcy5faSxlPXRoaXMuX2osaT0wLG49MDtuPDQ7bisrKXtyPShyKzEpJTI1NixlPShlK3Rbcl0pJTI1Njt2YXIgbz10W3JdO3Rbcl09dFtlXSx0W2VdPW8saXw9dFsodFtyXSt0W2VdKSUyNTZdPDwyNC04Km59cmV0dXJuIHRoaXMuX2k9cix0aGlzLl9qPWUsaX12YXIgZT10LGk9ZS5saWIsbj1pLlN0cmVhbUNpcGhlcixvPWUuYWxnbyxzPW8uUkM0PW4uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkscj10LndvcmRzLGU9dC5zaWdCeXRlcyxpPXRoaXMuX1M9W10sbj0wO248MjU2O24rKylpW25dPW47Zm9yKHZhciBuPTAsbz0wO248MjU2O24rKyl7dmFyIHM9biVlLGE9cltzPj4+Ml0+Pj4yNC1zJTQqOCYyNTU7bz0obytpW25dK2EpJTI1Njt2YXIgYz1pW25dO2lbbl09aVtvXSxpW29dPWN9dGhpcy5faT10aGlzLl9qPTB9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3RbZV1ePXIuY2FsbCh0aGlzKX0sa2V5U2l6ZTo4LGl2U2l6ZTowfSk7ZS5SQzQ9bi5fY3JlYXRlSGVscGVyKHMpO3ZhciBhPW8uUkM0RHJvcD1zLmV4dGVuZCh7Y2ZnOnMuY2ZnLmV4dGVuZCh7ZHJvcDoxOTJ9KSxfZG9SZXNldDpmdW5jdGlvbigpe3MuX2RvUmVzZXQuY2FsbCh0aGlzKTtmb3IodmFyIHQ9dGhpcy5jZmcuZHJvcDt0PjA7dC0tKXIuY2FsbCh0aGlzKX19KTtlLlJDNERyb3A9bi5fY3JlYXRlSGVscGVyKGEpfSgpLHQubW9kZS5DVFJHbGFkbWFuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0KXtpZigyNTU9PT0odD4+MjQmMjU1KSl7dmFyIHI9dD4+MTYmMjU1LGU9dD4+OCYyNTUsaT0yNTUmdDsyNTU9PT1yPyhyPTAsMjU1PT09ZT8oZT0wLDI1NT09PWk/aT0wOisraSk6KytlKTorK3IsdD0wLHQrPXI8PDE2LHQrPWU8PDgsdCs9aX1lbHNlIHQrPTE8PDI0O3JldHVybiB0fWZ1bmN0aW9uIGUodCl7cmV0dXJuIDA9PT0odFswXT1yKHRbMF0pKSYmKHRbMV09cih0WzFdKSksdH12YXIgaT10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksbj1pLkVuY3J5cHRvcj1pLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGk9dGhpcy5fY2lwaGVyLG49aS5ibG9ja1NpemUsbz10aGlzLl9pdixzPXRoaXMuX2NvdW50ZXI7byYmKHM9dGhpcy5fY291bnRlcj1vLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCksZShzKTt2YXIgYT1zLnNsaWNlKDApO2kuZW5jcnlwdEJsb2NrKGEsMCk7Zm9yKHZhciBjPTA7YzxuO2MrKyl0W3IrY11ePWFbY119fSk7cmV0dXJuIGkuRGVjcnlwdG9yPW4saX0oKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIoKXtmb3IodmFyIHQ9dGhpcy5fWCxyPXRoaXMuX0MsZT0wO2U8ODtlKyspYVtlXT1yW2VdO3JbMF09clswXSsxMjk1MzA3NTk3K3RoaXMuX2J8MCxyWzFdPXJbMV0rMzU0NTA1MjM3MSsoclswXT4+PjA8YVswXT4+PjA/MTowKXwwLHJbMl09clsyXSs4ODYyNjMwOTIrKHJbMV0+Pj4wPGFbMV0+Pj4wPzE6MCl8MCxyWzNdPXJbM10rMTI5NTMwNzU5NysoclsyXT4+PjA8YVsyXT4+PjA/MTowKXwwLHJbNF09cls0XSszNTQ1MDUyMzcxKyhyWzNdPj4+MDxhWzNdPj4+MD8xOjApfDAscls1XT1yWzVdKzg4NjI2MzA5Misocls0XT4+PjA8YVs0XT4+PjA/MTowKXwwLHJbNl09cls2XSsxMjk1MzA3NTk3KyhyWzVdPj4+MDxhWzVdPj4+MD8xOjApfDAscls3XT1yWzddKzM1NDUwNTIzNzErKHJbNl0+Pj4wPGFbNl0+Pj4wPzE6MCl8MCx0aGlzLl9iPXJbN10+Pj4wPGFbN10+Pj4wPzE6MDtmb3IodmFyIGU9MDtlPDg7ZSsrKXt2YXIgaT10W2VdK3JbZV0sbj02NTUzNSZpLG89aT4+PjE2LHM9KChuKm4+Pj4xNykrbipvPj4+MTUpK28qbyxoPSgoNDI5NDkwMTc2MCZpKSppfDApKygoNjU1MzUmaSkqaXwwKTtjW2VdPXNeaH10WzBdPWNbMF0rKGNbN108PDE2fGNbN10+Pj4xNikrKGNbNl08PDE2fGNbNl0+Pj4xNil8MCx0WzFdPWNbMV0rKGNbMF08PDh8Y1swXT4+PjI0KStjWzddfDAsdFsyXT1jWzJdKyhjWzFdPDwxNnxjWzFdPj4+MTYpKyhjWzBdPDwxNnxjWzBdPj4+MTYpfDAsdFszXT1jWzNdKyhjWzJdPDw4fGNbMl0+Pj4yNCkrY1sxXXwwLHRbNF09Y1s0XSsoY1szXTw8MTZ8Y1szXT4+PjE2KSsoY1syXTw8MTZ8Y1syXT4+PjE2KXwwLHRbNV09Y1s1XSsoY1s0XTw8OHxjWzRdPj4+MjQpK2NbM118MCx0WzZdPWNbNl0rKGNbNV08PDE2fGNbNV0+Pj4xNikrKGNbNF08PDE2fGNbNF0+Pj4xNil8MCx0WzddPWNbN10rKGNbNl08PDh8Y1s2XT4+PjI0KStjWzVdfDB9dmFyIGU9dCxpPWUubGliLG49aS5TdHJlYW1DaXBoZXIsbz1lLmFsZ28scz1bXSxhPVtdLGM9W10saD1vLlJhYmJpdD1uLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9dGhpcy5jZmcuaXYsaT0wO2k8NDtpKyspdFtpXT0xNjcxMTkzNSYodFtpXTw8OHx0W2ldPj4+MjQpfDQyNzgyNTUzNjAmKHRbaV08PDI0fHRbaV0+Pj44KTt2YXIgbj10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbz10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dO3RoaXMuX2I9MDtmb3IodmFyIGk9MDtpPDQ7aSsrKXIuY2FsbCh0aGlzKTtmb3IodmFyIGk9MDtpPDg7aSsrKW9baV1ePW5baSs0JjddO2lmKGUpe3ZhciBzPWUud29yZHMsYT1zWzBdLGM9c1sxXSxoPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpLGw9MTY3MTE5MzUmKGM8PDh8Yz4+PjI0KXw0Mjc4MjU1MzYwJihjPDwyNHxjPj4+OCksZj1oPj4+MTZ8NDI5NDkwMTc2MCZsLHU9bDw8MTZ8NjU1MzUmaDtvWzBdXj1oLG9bMV1ePWYsb1syXV49bCxvWzNdXj11LG9bNF1ePWgsb1s1XV49ZixvWzZdXj1sLG9bN11ePXU7Zm9yKHZhciBpPTA7aTw0O2krKylyLmNhbGwodGhpcyl9fSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl9YO3IuY2FsbCh0aGlzKSxzWzBdPWlbMF1eaVs1XT4+PjE2XmlbM108PDE2LHNbMV09aVsyXV5pWzddPj4+MTZeaVs1XTw8MTYsc1syXT1pWzRdXmlbMV0+Pj4xNl5pWzddPDwxNixzWzNdPWlbNl1eaVszXT4+PjE2XmlbMV08PDE2O2Zvcih2YXIgbj0wO248NDtuKyspc1tuXT0xNjcxMTkzNSYoc1tuXTw8OHxzW25dPj4+MjQpfDQyNzgyNTUzNjAmKHNbbl08PDI0fHNbbl0+Pj44KSx0W2Urbl1ePXNbbl19LGJsb2NrU2l6ZTo0LGl2U2l6ZToyfSk7ZS5SYWJiaXQ9bi5fY3JlYXRlSGVscGVyKGgpfSgpLHQubW9kZS5DVFI9ZnVuY3Rpb24oKXt2YXIgcj10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksZT1yLkVuY3J5cHRvcj1yLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fY2lwaGVyLGk9ZS5ibG9ja1NpemUsbj10aGlzLl9pdixvPXRoaXMuX2NvdW50ZXI7biYmKG89dGhpcy5fY291bnRlcj1uLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCk7dmFyIHM9by5zbGljZSgwKTtlLmVuY3J5cHRCbG9jayhzLDApLG9baS0xXT1vW2ktMV0rMXwwO2Zvcih2YXIgYT0wO2E8aTthKyspdFtyK2FdXj1zW2FdfX0pO3JldHVybiByLkRlY3J5cHRvcj1lLHJ9KCksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7Zm9yKHZhciB0PXRoaXMuX1gscj10aGlzLl9DLGU9MDtlPDg7ZSsrKWFbZV09cltlXTtyWzBdPXJbMF0rMTI5NTMwNzU5Nyt0aGlzLl9ifDAsclsxXT1yWzFdKzM1NDUwNTIzNzErKHJbMF0+Pj4wPGFbMF0+Pj4wPzE6MCl8MCxyWzJdPXJbMl0rODg2MjYzMDkyKyhyWzFdPj4+MDxhWzFdPj4+MD8xOjApfDAsclszXT1yWzNdKzEyOTUzMDc1OTcrKHJbMl0+Pj4wPGFbMl0+Pj4wPzE6MCl8MCxyWzRdPXJbNF0rMzU0NTA1MjM3MSsoclszXT4+PjA8YVszXT4+PjA/MTowKXwwLHJbNV09cls1XSs4ODYyNjMwOTIrKHJbNF0+Pj4wPGFbNF0+Pj4wPzE6MCl8MCxyWzZdPXJbNl0rMTI5NTMwNzU5Nysocls1XT4+PjA8YVs1XT4+PjA/MTowKXwwLHJbN109cls3XSszNTQ1MDUyMzcxKyhyWzZdPj4+MDxhWzZdPj4+MD8xOjApfDAsdGhpcy5fYj1yWzddPj4+MDxhWzddPj4+MD8xOjA7Zm9yKHZhciBlPTA7ZTw4O2UrKyl7dmFyIGk9dFtlXStyW2VdLG49NjU1MzUmaSxvPWk+Pj4xNixzPSgobipuPj4+MTcpK24qbz4+PjE1KStvKm8saD0oKDQyOTQ5MDE3NjAmaSkqaXwwKSsoKDY1NTM1JmkpKml8MCk7Y1tlXT1zXmh9dFswXT1jWzBdKyhjWzddPDwxNnxjWzddPj4+MTYpKyhjWzZdPDwxNnxjWzZdPj4+MTYpfDAsdFsxXT1jWzFdKyhjWzBdPDw4fGNbMF0+Pj4yNCkrY1s3XXwwLHRbMl09Y1syXSsoY1sxXTw8MTZ8Y1sxXT4+PjE2KSsoY1swXTw8MTZ8Y1swXT4+PjE2KXwwLHRbM109Y1szXSsoY1syXTw8OHxjWzJdPj4+MjQpK2NbMV18MCx0WzRdPWNbNF0rKGNbM108PDE2fGNbM10+Pj4xNikrKGNbMl08PDE2fGNbMl0+Pj4xNil8MCx0WzVdPWNbNV0rKGNbNF08PDh8Y1s0XT4+PjI0KStjWzNdfDAsdFs2XT1jWzZdKyhjWzVdPDwxNnxjWzVdPj4+MTYpKyhjWzRdPDwxNnxjWzRdPj4+MTYpfDAsdFs3XT1jWzddKyhjWzZdPDw4fGNbNl0+Pj4yNCkrY1s1XXwwfXZhciBlPXQsaT1lLmxpYixuPWkuU3RyZWFtQ2lwaGVyLG89ZS5hbGdvLHM9W10sYT1bXSxjPVtdLGg9by5SYWJiaXRMZWdhY3k9bi5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9dGhpcy5jZmcuaXYsaT10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbj10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dO3RoaXMuX2I9MDtmb3IodmFyIG89MDtvPDQ7bysrKXIuY2FsbCh0aGlzKTtmb3IodmFyIG89MDtvPDg7bysrKW5bb11ePWlbbys0JjddO2lmKGUpe3ZhciBzPWUud29yZHMsYT1zWzBdLGM9c1sxXSxoPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpLGw9MTY3MTE5MzUmKGM8PDh8Yz4+PjI0KXw0Mjc4MjU1MzYwJihjPDwyNHxjPj4+OCksZj1oPj4+MTZ8NDI5NDkwMTc2MCZsLHU9bDw8MTZ8NjU1MzUmaDtuWzBdXj1oLG5bMV1ePWYsblsyXV49bCxuWzNdXj11LG5bNF1ePWgsbls1XV49ZixuWzZdXj1sLG5bN11ePXU7Zm9yKHZhciBvPTA7bzw0O28rKylyLmNhbGwodGhpcyl9fSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl9YO3IuY2FsbCh0aGlzKSxzWzBdPWlbMF1eaVs1XT4+PjE2XmlbM108PDE2LHNbMV09aVsyXV5pWzddPj4+MTZeaVs1XTw8MTYsc1syXT1pWzRdXmlbMV0+Pj4xNl5pWzddPDwxNixzWzNdPWlbNl1eaVszXT4+PjE2XmlbMV08PDE2O2Zvcih2YXIgbj0wO248NDtuKyspc1tuXT0xNjcxMTkzNSYoc1tuXTw8OHxzW25dPj4+MjQpfDQyNzgyNTUzNjAmKHNbbl08PDI0fHNbbl0+Pj44KSx0W2Urbl1ePXNbbl19LGJsb2NrU2l6ZTo0LGl2U2l6ZToyfSk7ZS5SYWJiaXRMZWdhY3k9bi5fY3JlYXRlSGVscGVyKGgpfSgpLHQucGFkLlplcm9QYWRkaW5nPXtwYWQ6ZnVuY3Rpb24odCxyKXt2YXIgZT00KnI7dC5jbGFtcCgpLHQuc2lnQnl0ZXMrPWUtKHQuc2lnQnl0ZXMlZXx8ZSl9LHVucGFkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10LndvcmRzLGU9dC5zaWdCeXRlcy0xOyEocltlPj4+Ml0+Pj4yNC1lJTQqOCYyNTUpOyllLS07dC5zaWdCeXRlcz1lKzF9fSx0fSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcnlwdG8tanMubWluLmpzLm1hcCJdfQ== -//------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 +cc._RF.push(module, 'de906iE/HVHpI6VO7IMvKaI', 'item'); +// shop/script/item.ts "use strict"; var __extends = (this && this.__extends) || (function () { @@ -17589,83 +15159,41 @@ 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 NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { var _this = _super !== null && _super.apply(this, arguments) || this; - /**数据 */ - _this.data = null; - /**索引 0表示第一项*/ - _this.itemIndex = 0; + _this.label = null; + _this.text = 'hello'; return _this; + // update (dt) {} } - /**数据改变时调用 */ - 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(); + // LIFE-CYCLE CALLBACKS: + // onLoad () {} + NewClass.prototype.start = function () { }; - 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); - } - }); + //购买商品道具 + 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; }; - ItemRender = __decorate([ + __decorate([ + property(cc.Label) + ], NewClass.prototype, "label", void 0); + __decorate([ + property + ], NewClass.prototype, "text", void 0); + NewClass = __decorate([ ccclass - ], ItemRender); - return ItemRender; + ], NewClass); + return NewClass; }(cc.Component)); -exports.default = ItemRender; +exports.default = NewClass; cc._RF.pop(); } @@ -17678,7 +15206,238 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFJhbmtMaXN0XFxJdGVtUmVuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdNLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXdDLDhCQUFZO0lBQXBEO1FBQUEscUVBc0VDO1FBckVHLFFBQVE7UUFDRCxVQUFJLEdBQU8sSUFBSSxDQUFDO1FBQ3ZCLGNBQWM7UUFDUCxlQUFTLEdBQVUsQ0FBQyxDQUFDOztJQWtFaEMsQ0FBQztJQWhFRyxhQUFhO0lBQ04sZ0NBQVcsR0FBbEI7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN4RixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNyRixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxxRkFBcUY7UUFDckYsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDeEUsSUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUN0RDthQUNJLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFDO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDdEQ7YUFDSSxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBQztZQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUN2RSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1NBQ3REO2FBQUk7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFTSwyQkFBTSxHQUFiO1FBQUEsaUJBZ0NDO1FBL0JHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUUsS0FBSyxDQUFDO1FBQ3BFLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUN4QixLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1QsSUFBSSxDQUFDLFVBQUEsUUFBUTtZQUNWLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUM7YUFFRCxJQUFJLENBQUMsVUFBQSxLQUFLO1lBQ1AsK0RBQStEO1lBQy9ELElBQUcsS0FBSyxJQUFJLE1BQU0sRUFBQztnQkFDZixxQ0FBcUM7Z0JBQ3JDLEtBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ3hFO1FBQ0wsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLFVBQUEsS0FBSztZQUNSLGtEQUFrRDtRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsRUFBQyxVQUFDLEdBQUcsRUFBRSxPQUFvQjtZQUNuRSxJQUFHLE9BQU8sRUFBQztnQkFDUCxLQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFFLElBQUksQ0FBQztnQkFDbkUsSUFBSSxNQUFNLEdBQUcsS0FBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzNGLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqRCw0Q0FBNEM7YUFDL0M7aUJBQ0c7Z0JBQ0EsNkJBQTZCO2dCQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBQyxPQUFPLENBQUMsQ0FBQTthQUMzQjtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQW5FZ0IsVUFBVTtRQUQ5QixPQUFPO09BQ2EsVUFBVSxDQXNFOUI7SUFBRCxpQkFBQztDQXRFRCxBQXNFQyxDQXRFdUMsRUFBRSxDQUFDLFNBQVMsR0FzRW5EO2tCQXRFb0IsVUFBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgTGlzdCwgeyBMaXN0VHlwZSB9IGZyb20gXCIuL0xpc3RcIjtcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJdGVtUmVuZGVyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIC8qKuaVsOaNriAqL1xyXG4gICAgcHVibGljIGRhdGE6YW55ID0gbnVsbDtcclxuICAgIC8qKue0ouW8lSAw6KGo56S656ys5LiA6aG5Ki9cclxuICAgIHB1YmxpYyBpdGVtSW5kZXg6bnVtYmVyID0gMDsgICAgXHJcblxyXG4gICAgLyoq5pWw5o2u5pS55Y+Y5pe26LCD55SoICovXHJcbiAgICBwdWJsaWMgZGF0YUNoYW5nZWQoKXtcclxuICAgICAgICB0aGlzLmRhdGEubmFtZSA9IGNjLmZ4LkdhbWVUb29sLnN1Yk5hbWUodGhpcy5kYXRhLm5hbWUsNik7XHJcblxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLmRhdGEucmFuayArIFwiXCI7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibmFtZUxhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGF0YS5uYW1lICsgXCJcIjtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0b3RhbExhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGF0YS50b3RhbDtcclxuICAgICAgICBsZXQgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lU2hlbk5vbmcodGhpcy5kYXRhLnRpbWUpO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcCArIFwiXCI7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBpZih0aGlzLmRhdGEucmFuayA9PSAxKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMuZGF0YS5yYW5rID09IDIpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYodGhpcy5kYXRhLnJhbmsgPT0gMyl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0UGljKCk7XHJcbiAgICB9ICAgXHJcbiAgICBcclxuICAgIHB1YmxpYyBzZXRQaWMoKXtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJwaWNcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5hY3RpdmU9IGZhbHNlO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICBsZXQgdXJsID0gdGhpcy5kYXRhLnBpYztcclxuICAgICAgICBmZXRjaCh1cmwpXHJcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtTGVuZ3RoJyk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgLnRoZW4oZXJyTm8gPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEucmFuaywnWC1JbmZvOicsIGVyck5vKTsgLy8g6L6T5Ye6WC1FcnJOb+eahOWAvFxyXG4gICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEucmFuayxcIuayoeWktOWDj1wiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5wbmcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5hY3RpdmU9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB2YXIgc3ByaXRlID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicGljXCIpLmdldENoaWxkQnlOYW1lKFwicGljXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgc3ByaXRlLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5kYXRhLnJhbmssXCLorr7nva7lpLTlg4/miJDlip9cIixlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuiuvue9ruWktOWDj+Wksei0pVwiLHVybCk7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIsdGV4dHVyZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG5cclxufVxyXG4iXX0= +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2hvcFxcc2NyaXB0XFxpdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVNLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBMkJDO1FBeEJHLFdBQUssR0FBYSxJQUFJLENBQUM7UUFHdkIsVUFBSSxHQUFXLE9BQU8sQ0FBQzs7UUFvQnZCLGlCQUFpQjtJQUNyQixDQUFDO0lBcEJHLHdCQUF3QjtJQUV4QixlQUFlO0lBRWYsd0JBQUssR0FBTDtJQUVBLENBQUM7SUFFRCxRQUFRO0lBQ1IsMEJBQU8sR0FBUCxVQUFRLFFBQVE7UUFDWiw0Q0FBNEM7UUFDNUMsZ0RBQWdEO1FBQ2hELGNBQWM7UUFDZCxJQUFJO1FBQ0oseUVBQXlFO1FBQ3pFLDZCQUE2QjtRQUM3Qix5Q0FBeUM7SUFDN0MsQ0FBQztJQXJCRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDOzJDQUNJO0lBR3ZCO1FBREMsUUFBUTswQ0FDYztJQU5OLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0EyQjVCO0lBQUQsZUFBQztDQTNCRCxBQTJCQyxDQTNCcUMsRUFBRSxDQUFDLFNBQVMsR0EyQmpEO2tCQTNCb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xuXG5AY2NjbGFzc1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xuXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxuICAgIGxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XG5cbiAgICBAcHJvcGVydHlcbiAgICB0ZXh0OiBzdHJpbmcgPSAnaGVsbG8nO1xuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxuXG4gICAgLy8gb25Mb2FkICgpIHt9XG5cbiAgICBzdGFydCgpIHtcblxuICAgIH1cblxuICAgIC8v6LSt5Lmw5ZWG5ZOB6YGT5YW3XG4gICAgYnV5UHJvcChwcm9wTmFtZSkge1xuICAgICAgICAvLyBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xuICAgICAgICAvLyAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcbiAgICAgICAgLy8gICAgIHJldHVybjtcbiAgICAgICAgLy8gfVxuICAgICAgICAvLyBsZXQgcHJvcFdpbmRvdyA9IHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKTtcbiAgICAgICAgLy8gcHJvcFdpbmRvdy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gLT0gMTUwMDtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxufVxuIl19 +//------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/TmoObjectGroup.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, '30e2eSQWDNKI69FbaYfN62j', 'TmoObjectGroup'); +// Script/TmoObjectGroup.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 + +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; + } + 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; + } + } + 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(); + } + 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vT2JqZWN0R3JvdXAuanMiXSwibmFtZXMiOlsiVG1vU3ByaXRlIiwicmVxdWlyZSIsIl9kZWZhdWx0IiwiY2MiLCJDbGFzcyIsIlRpbGVkT2JqZWN0R3JvdXAiLCJfaW5pdCIsImdyb3VwSW5mbyIsIm1hcEluZm8iLCJ0ZXhHcmlkcyIsInRpbGVkTWFwIiwiVGlsZWRNYXAiLCJUTVhPYmplY3RUeXBlIiwiT3JpZW50YXRpb24iLCJTdGFnZ2VyQXhpcyIsIlRpbGVGbGFnIiwiRkxJUFBFRF9NQVNLIiwiRkxBR19IT1JJWk9OVEFMIiwiSE9SSVpPTlRBTCIsIkZMQUdfVkVSVElDQUwiLCJWRVJUSUNBTCIsIl9ncm91cE5hbWUiLCJuYW1lIiwiX3Bvc2l0aW9uT2Zmc2V0Iiwib2Zmc2V0IiwiX21hcEluZm8iLCJfcHJvcGVydGllcyIsImdldFByb3BlcnRpZXMiLCJfb2Zmc2V0IiwidjIiLCJ4IiwieSIsIl9vcGFjaXR5IiwibWFwU2l6ZSIsIl9tYXBTaXplIiwidGlsZVNpemUiLCJfdGlsZVNpemUiLCJ3aWR0aCIsImhlaWdodCIsIm9yaWVudGF0aW9uIiwiSEVYIiwiZ2V0U3RhZ2dlckF4aXMiLCJTVEFHR0VSQVhJU19YIiwiZ2V0SGV4U2lkZUxlbmd0aCIsIk1hdGgiLCJmbG9vciIsIklTTyIsIndoIiwibm9kZSIsInNldENvbnRlbnRTaXplIiwibGVmdFRvcFgiLCJhbmNob3JYIiwibGVmdFRvcFkiLCJhbmNob3JZIiwib2JqZWN0cyIsIl9vYmplY3RzIiwiYWxpdmVOb2RlcyIsInRleHR1cmVJbmRleE1hcCIsIk1hcCIsIm9iamVjdFRleHR1cmVzIiwiZ2V0T2JqZWN0VGV4dHVyZXMiLCJmb3JFYWNoIiwidGV4dHVyZSIsImlkeCIsInNldCIsImkiLCJsIiwibGVuZ3RoIiwib2JqZWN0Iiwib2JqVHlwZSIsInR5cGUiLCJwb2ludHMiLCJwb2x5bGluZVBvaW50cyIsInBpIiwicG9zSWR4WCIsInBvc0lkeFkiLCJURVhUIiwidGV4dE5hbWUiLCJpZCIsInRleHROb2RlIiwiZ2V0Q2hpbGRCeU5hbWUiLCJOb2RlIiwiYWN0aXZlIiwidmlzaWJsZSIsImFuZ2xlIiwicm90YXRpb24iLCJwYXJlbnQiLCJjb2xvciIsIm9wYWNpdHkiLCJzZXRTaWJsaW5nSW5kZXgiLCJsYWJlbCIsImdldENvbXBvbmVudCIsIkxhYmVsIiwiYWRkQ29tcG9uZW50Iiwib3ZlcmZsb3ciLCJPdmVyZmxvdyIsIlNIUklOSyIsImxpbmVIZWlnaHQiLCJzdHJpbmciLCJ0ZXh0IiwiaG9yaXpvbnRhbEFsaWduIiwiaGFsaWduIiwidmVydGljYWxBbGlnbiIsInZhbGlnbiIsImZvbnRTaXplIiwicGl4ZWxzaXplIiwiSU1BR0UiLCJnaWQiLCJncmlkIiwidGlsZXNldCIsImltZ05hbWUiLCJpbWdOb2RlIiwiaW1nV2lkdGgiLCJpbWdIZWlnaHQiLCJ0aWxlT2Zmc2V0WCIsInRpbGVPZmZzZXQiLCJ0aWxlT2Zmc2V0WSIsIlByaXZhdGVOb2RlIiwicmVtb3ZlRnJvbVBhcmVudCIsImRlc3Ryb3kiLCJfdGlsZWRNYXAiLCJzcCIsInNwZiIsInNwcml0ZUZyYW1lIiwiU3ByaXRlRnJhbWUiLCJzZXRGbGlwWCIsInNldEZsaXBZIiwic291cmNlSW1hZ2UiLCJzZXRUZXh0dXJlIiwicmVjdCIsInNldFZlcnRzRGlydHkiLCJoYXMiLCJwdXNoIiwidGV4dHVyZUluZGV4IiwiZ2V0Iiwic2V0VGV4dHVyZUlkeCIsImNoaWxkcmVuIiwidXNlbGVzc0V4cCIsIm4iLCJjIiwiY05hbWUiLCJfbmFtZSIsImlzVXNlbGVzcyIsInRlc3QiLCJleHBvcnRzIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQU1BLFNBQVMsR0FBR0MsT0FBTyxDQUFDLGFBQWEsQ0FBQztBQUFDLElBQUFDLFFBQUEsR0FFMUJDLEVBQUUsQ0FB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RyxDQUFDSixXQUFXLENBQUMsRUFBRTtVQUNuQ3RFLGVBQWUsQ0FBQ08sR0FBRyxDQUFDK0QsV0FBVyxFQUFFcEUsY0FBYyxDQUFDUSxNQUFNLENBQUM7VUFDdkRSLGNBQWMsQ0FBQ3lFLElBQUksQ0FBQ0wsV0FBVyxDQUFDO1FBQ3BDOztRQUVBO1FBQ0EsSUFBSU0sWUFBWSxHQUFHNUUsZUFBZSxDQUFDNkUsR0FBRyxDQUFDUCxXQUFXLENBQUM7UUFDbkROLEVBQUUsQ0FBQ2MsYUFBYSxDQUFDRixZQUFZLEdBQUcsQ0FBQyxDQUFDO01BQ3RDO0lBQ0o7SUFDQSxJQUFJLENBQUM5RSxRQUFRLEdBQUdELE9BQU87O0lBR3ZCO0lBQ0EsSUFBSWtGLFFBQVEsR0FBRyxJQUFJLENBQUN4RixJQUFJLENBQUN3RixRQUFRO0lBQ2pDLElBQUlDLFVBQVUsR0FBRyxtQkFBbUI7SUFDcEMsS0FBSyxJQUFJeEUsRUFBQyxHQUFHLENBQUMsRUFBRXlFLENBQUMsR0FBR0YsUUFBUSxDQUFDckUsTUFBTSxFQUFFRixFQUFDLEdBQUd5RSxDQUFDLEVBQUV6RSxFQUFDLEVBQUUsRUFBRTtNQUM3QyxJQUFJMEUsQ0FBQyxHQUFHSCxRQUFRLENBQUN2RSxFQUFDLENBQUM7TUFDbkIsSUFBSTJFLEtBQUssR0FBR0QsQ0FBQyxDQUFDRSxLQUFLO01BQ25CLElBQUlDLFNBQVMsR0FBR0wsVUFBVSxDQUFDTSxJQUFJLENBQUNILEtBQUssQ0FBQztNQUN0QyxJQUFJRSxTQUFTLElBQUksQ0FBQ3RGLFVBQVUsQ0FBQ29GLEtBQUssQ0FBQyxFQUFFRCxDQUFDLENBQUNwQixPQUFPLEVBQUU7SUFDcEQ7RUFFSjtBQUNKLENBQUMsQ0FBQztBQUFBeUIsT0FBQSxjQUFBOUksUUFBQTtBQUFBK0ksTUFBQSxDQUFBRCxPQUFBLEdBQUFBLE9BQUEiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuY29uc3QgVG1vU3ByaXRlID0gcmVxdWlyZShcIi4vVG1vU3ByaXRlXCIpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuVGlsZWRPYmplY3RHcm91cCxcclxuXHJcbiAgICBfaW5pdChncm91cEluZm8sIG1hcEluZm8sIHRleEdyaWRzLCB0aWxlZE1hcCkge1xyXG4gICAgICAgIGNvbnN0IFRpbGVkTWFwID0gY2MuVGlsZWRNYXA7XHJcbiAgICAgICAgY29uc3QgVE1YT2JqZWN0VHlwZSA9IFRpbGVkTWFwLlRNWE9iamVjdFR5cGU7XHJcbiAgICAgICAgY29uc3QgT3JpZW50YXRpb24gPSBUaWxlZE1hcC5PcmllbnRhdGlvbjtcclxuICAgICAgICBjb25zdCBTdGFnZ2VyQXhpcyA9IFRpbGVkTWFwLlN0YWdnZXJBeGlzO1xyXG4gICAgICAgIGNvbnN0IFRpbGVGbGFnID0gVGlsZWRNYXAuVGlsZUZsYWc7XHJcbiAgICAgICAgY29uc3QgRkxJUFBFRF9NQVNLID0gVGlsZUZsYWcuRkxJUFBFRF9NQVNLO1xyXG4gICAgICAgIGNvbnN0IEZMQUdfSE9SSVpPTlRBTCA9IFRpbGVGbGFnLkhPUklaT05UQUw7XHJcbiAgICAgICAgY29uc3QgRkxBR19WRVJUSUNBTCA9IFRpbGVGbGFnLlZFUlRJQ0FMO1xyXG5cclxuICAgICAgICB0aGlzLl9ncm91cE5hbWUgPSBncm91cEluZm8ubmFtZTtcclxuICAgICAgICB0aGlzLl9wb3NpdGlvbk9mZnNldCA9IGdyb3VwSW5mby5vZmZzZXQ7XHJcbiAgICAgICAgdGhpcy5fbWFwSW5mbyA9IG1hcEluZm87XHJcbiAgICAgICAgdGhpcy5fcHJvcGVydGllcyA9IGdyb3VwSW5mby5nZXRQcm9wZXJ0aWVzKCk7XHJcbiAgICAgICAgdGhpcy5fb2Zmc2V0ID0gY2MudjIoZ3JvdXBJbmZvLm9mZnNldC54LCAtZ3JvdXBJbmZvLm9mZnNldC55KTtcclxuICAgICAgICB0aGlzLl9vcGFjaXR5ID0gZ3JvdXBJbmZvLl9vcGFjaXR5O1xyXG5cclxuICAgICAgICBsZXQgbWFwU2l6ZSA9IG1hcEluZm8uX21hcFNpemU7XHJcbiAgICAgICAgbGV0IHRpbGVTaXplID0gbWFwSW5mby5fdGlsZVNpemU7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDtcclxuICAgICAgICBpZiAobWFwSW5mby5vcmllbnRhdGlvbiA9PT0gT3JpZW50YXRpb24uSEVYKSB7XHJcbiAgICAgICAgICAgIGlmIChtYXBJbmZvLmdldFN0YWdnZXJBeGlzKCkgPT09IFN0YWdnZXJBeGlzLlNUQUdHRVJBWElTX1gpIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IHRpbGVTaXplLmhlaWdodCAqIChtYXBTaXplLmhlaWdodCArIDAuNSk7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA9ICh0aWxlU2l6ZS53aWR0aCArIG1hcEluZm8uZ2V0SGV4U2lkZUxlbmd0aCgpKSAqIE1hdGguZmxvb3IobWFwU2l6ZS53aWR0aCAvIDIpICsgdGlsZVNpemUud2lkdGggKiAobWFwU2l6ZS53aWR0aCAlIDIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgd2lkdGggPSB0aWxlU2l6ZS53aWR0aCAqIChtYXBTaXplLndpZHRoICsgMC41KTtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9ICh0aWxlU2l6ZS5oZWlnaHQgKyBtYXBJbmZvLmdldEhleFNpZGVMZW5ndGgoKSkgKiBNYXRoLmZsb29yKG1hcFNpemUuaGVpZ2h0IC8gMikgKyB0aWxlU2l6ZS5oZWlnaHQgKiAobWFwU2l6ZS5oZWlnaHQgJSAyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAobWFwSW5mby5vcmllbnRhdGlvbiA9PT0gT3JpZW50YXRpb24uSVNPKSB7XHJcbiAgICAgICAgICAgIGxldCB3aCA9IG1hcFNpemUud2lkdGggKyBtYXBTaXplLmhlaWdodDtcclxuICAgICAgICAgICAgd2lkdGggPSB0aWxlU2l6ZS53aWR0aCAqIDAuNSAqIHdoO1xyXG4gICAgICAgICAgICBoZWlnaHQgPSB0aWxlU2l6ZS5oZWlnaHQgKiAwLjUgKiB3aDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB3aWR0aCA9IG1hcFNpemUud2lkdGggKiB0aWxlU2l6ZS53aWR0aDtcclxuICAgICAgICAgICAgaGVpZ2h0ID0gbWFwU2l6ZS5oZWlnaHQgKiB0aWxlU2l6ZS5oZWlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5zZXRDb250ZW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgbGV0IGxlZnRUb3BYID0gd2lkdGggKiB0aGlzLm5vZGUuYW5jaG9yWDtcclxuICAgICAgICBsZXQgbGVmdFRvcFkgPSBoZWlnaHQgKiAoMSAtIHRoaXMubm9kZS5hbmNob3JZKTtcclxuXHJcbiAgICAgICAgbGV0IG9iamVjdHMgPSBncm91cEluZm8uX29iamVjdHM7XHJcbiAgICAgICAgbGV0IGFsaXZlTm9kZXMgPSB7fTtcclxuXHJcbiAgICAgICAgLy8g55Sf5oiQ5pig5bCETWFwICAgeyBUZXh0dXJlMkQ6IHRleHR1cmVJbmRleCB9XHJcbiAgICAgICAgbGV0IHRleHR1cmVJbmRleE1hcCA9IG5ldyBNYXAoKTtcclxuICAgICAgICBsZXQgb2JqZWN0VGV4dHVyZXMgPSB0aWxlZE1hcC5nZXRPYmplY3RUZXh0dXJlcygpO1xyXG4gICAgICAgIG9iamVjdFRleHR1cmVzLmZvckVhY2goKHRleHR1cmUsIGlkeCkgPT4gdGV4dHVyZUluZGV4TWFwLnNldCh0ZXh0dXJlLCBpZHgpKTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBvYmplY3RzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgb2JqZWN0ID0gb2JqZWN0c1tpXTtcclxuICAgICAgICAgICAgbGV0IG9ialR5cGUgPSBvYmplY3QudHlwZTtcclxuICAgICAgICAgICAgb2JqZWN0Lm9mZnNldCA9IGNjLnYyKG9iamVjdC54LCBvYmplY3QueSk7XHJcblxyXG4gICAgICAgICAgICBsZXQgcG9pbnRzID0gb2JqZWN0LnBvaW50cyB8fCBvYmplY3QucG9seWxpbmVQb2ludHM7XHJcbiAgICAgICAgICAgIGlmIChwb2ludHMpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IHBpID0gMDsgcGkgPCBwb2ludHMubGVuZ3RoOyBwaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRzW3BpXS55ICo9IC0xO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoT3JpZW50YXRpb24uSVNPICE9PSBtYXBJbmZvLm9yaWVudGF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QueSA9IGhlaWdodCAtIG9iamVjdC55O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvc0lkeFggPSBvYmplY3QueCAvIHRpbGVTaXplLmhlaWdodDtcclxuICAgICAgICAgICAgICAgIGxldCBwb3NJZHhZID0gb2JqZWN0LnkgLyB0aWxlU2l6ZS5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QueCA9IHRpbGVTaXplLndpZHRoICogMC41ICogKG1hcFNpemUuaGVpZ2h0ICsgcG9zSWR4WCAtIHBvc0lkeFkpO1xyXG4gICAgICAgICAgICAgICAgb2JqZWN0LnkgPSB0aWxlU2l6ZS5oZWlnaHQgKiAwLjUgKiAobWFwU2l6ZS53aWR0aCArIG1hcFNpemUuaGVpZ2h0IC0gcG9zSWR4WCAtIHBvc0lkeFkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAob2JqVHlwZSA9PT0gVE1YT2JqZWN0VHlwZS5URVhUKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGV4dE5hbWUgPSBcInRleHRcIiArIG9iamVjdC5pZDtcclxuICAgICAgICAgICAgICAgIGFsaXZlTm9kZXNbdGV4dE5hbWVdID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgdGV4dE5vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUodGV4dE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0ZXh0Tm9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHROb2RlID0gbmV3IGNjLk5vZGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5hY3RpdmUgPSBvYmplY3QudmlzaWJsZTtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLmFuY2hvclggPSAwO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUuYW5jaG9yWSA9IDE7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5hbmdsZSA9IC1vYmplY3Qucm90YXRpb247XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS54ID0gb2JqZWN0LnggLSBsZWZ0VG9wWDtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLnkgPSBvYmplY3QueSAtIGxlZnRUb3BZO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUubmFtZSA9IHRleHROYW1lO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUuY29sb3IgPSBvYmplY3QuY29sb3I7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5vcGFjaXR5ID0gdGhpcy5fb3BhY2l0eTtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLnNldFNpYmxpbmdJbmRleChpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgbGFiZWwgPSB0ZXh0Tm9kZS5nZXRDb21wb25lbnQoY2MuTGFiZWwpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFsYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsID0gdGV4dE5vZGUuYWRkQ29tcG9uZW50KGNjLkxhYmVsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsYWJlbC5vdmVyZmxvdyA9IGNjLkxhYmVsLk92ZXJmbG93LlNIUklOSztcclxuICAgICAgICAgICAgICAgIGxhYmVsLmxpbmVIZWlnaHQgPSBvYmplY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgbGFiZWwuc3RyaW5nID0gb2JqZWN0LnRleHQ7XHJcbiAgICAgICAgICAgICAgICBsYWJlbC5ob3Jpem9udGFsQWxpZ24gPSBvYmplY3QuaGFsaWduO1xyXG4gICAgICAgICAgICAgICAgbGFiZWwudmVydGljYWxBbGlnbiA9IG9iamVjdC52YWxpZ247XHJcbiAgICAgICAgICAgICAgICBsYWJlbC5mb250U2l6ZSA9IG9iamVjdC5waXhlbHNpemU7XHJcblxyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUud2lkdGggPSBvYmplY3Qud2lkdGg7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5oZWlnaHQgPSBvYmplY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAob2JqVHlwZSA9PT0gVE1YT2JqZWN0VHlwZS5JTUFHRSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGdpZCA9IG9iamVjdC5naWQ7XHJcbiAgICAgICAgICAgICAgICBsZXQgZ3JpZCA9IHRleEdyaWRzWyhnaWQgJiBGTElQUEVEX01BU0spID4+PiAwXTtcclxuICAgICAgICAgICAgICAgIGlmICghZ3JpZCkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGlsZXNldCA9IGdyaWQudGlsZXNldDtcclxuICAgICAgICAgICAgICAgIGxldCBpbWdOYW1lID0gXCJpbWdcIiArIG9iamVjdC5pZDtcclxuICAgICAgICAgICAgICAgIGFsaXZlTm9kZXNbaW1nTmFtZV0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgbGV0IGltZ05vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoaW1nTmFtZSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgaW1nV2lkdGggPSBvYmplY3Qud2lkdGggfHwgZ3JpZC53aWR0aDtcclxuICAgICAgICAgICAgICAgIGxldCBpbWdIZWlnaHQgPSBvYmplY3QuaGVpZ2h0IHx8IGdyaWQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgbGV0IHRpbGVPZmZzZXRYID0gdGlsZXNldC50aWxlT2Zmc2V0Lng7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGlsZU9mZnNldFkgPSB0aWxlc2V0LnRpbGVPZmZzZXQueTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBEZWxldGUgaW1hZ2Ugbm9kZXMgaW1wbGVtZW50ZWQgYXMgcHJpdmF0ZSBub2Rlc1xyXG4gICAgICAgICAgICAgICAgLy8gVXNlIGNjLk5vZGUgdG8gaW1wbGVtZW50IG5vZGUtbGV2ZWwgcmVxdWlyZW1lbnRzXHJcbiAgICAgICAgICAgICAgICBpZiAoaW1nTm9kZSBpbnN0YW5jZW9mIGNjLlByaXZhdGVOb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCFpbWdOb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZSA9IG5ldyBjYy5Ob2RlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKE9yaWVudGF0aW9uLklTTyA9PSBtYXBJbmZvLm9yaWVudGF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5hbmNob3JYID0gMC41ICsgdGlsZU9mZnNldFggLyBpbWdXaWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBpbWdOb2RlLmFuY2hvclkgPSB0aWxlT2Zmc2V0WSAvIGltZ0hlaWdodDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5hbmNob3JYID0gdGlsZU9mZnNldFggLyBpbWdXaWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBpbWdOb2RlLmFuY2hvclkgPSB0aWxlT2Zmc2V0WSAvIGltZ0hlaWdodDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGltZ05vZGUuYWN0aXZlID0gb2JqZWN0LnZpc2libGU7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLmFuZ2xlID0gLW9iamVjdC5yb3RhdGlvbjtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUueCA9IG9iamVjdC54IC0gbGVmdFRvcFg7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLnkgPSBvYmplY3QueSAtIGxlZnRUb3BZO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5uYW1lID0gaW1nTmFtZTtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5vcGFjaXR5ID0gdGhpcy5fb3BhY2l0eTtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUuc2V0U2libGluZ0luZGV4KGkpO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5fdGlsZWRNYXAgPSB0aWxlZE1hcDtcclxuXHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHNwID0gaW1nTm9kZS5nZXRDb21wb25lbnQoVG1vU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgIGlmICghc3ApIHtcclxuICAgICAgICAgICAgICAgICAgICBzcCA9IGltZ05vZGUuYWRkQ29tcG9uZW50KFRtb1Nwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgc3BmID0gc3Auc3ByaXRlRnJhbWU7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXNwZikge1xyXG4gICAgICAgICAgICAgICAgICAgIHNwZiA9IG5ldyBjYy5TcHJpdGVGcmFtZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmICgoZ2lkICYgRkxBR19IT1JJWk9OVEFMKSA+Pj4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNwZi5zZXRGbGlwWCh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldEZsaXBYKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoKGdpZCAmIEZMQUdfVkVSVElDQUwpID4+PiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldEZsaXBZKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBzcGYuc2V0RmxpcFkoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCBzb3VyY2VJbWFnZSA9IGdyaWQudGlsZXNldC5zb3VyY2VJbWFnZTtcclxuICAgICAgICAgICAgICAgIHNwZi5zZXRUZXh0dXJlKHNvdXJjZUltYWdlLCBjYy5yZWN0KGdyaWQpKTtcclxuICAgICAgICAgICAgICAgIHNwLnNwcml0ZUZyYW1lID0gc3BmO1xyXG4gICAgICAgICAgICAgICAgc3Auc2V0VmVydHNEaXJ0eSgpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIG9iamVjdCBncm91cCBtYXkgaGFzIG5vIHdpZHRoIG9yIGhlaWdodCBpbmZvXHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLndpZHRoID0gaW1nV2lkdGg7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLmhlaWdodCA9IGltZ0hlaWdodDtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyDmlLbpm4blm77pm4Yg5pu05pawdGV4dHVyZUluZGV4TWFwXHJcbiAgICAgICAgICAgICAgICBpZiAoIXRleHR1cmVJbmRleE1hcC5oYXMoc291cmNlSW1hZ2UpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dHVyZUluZGV4TWFwLnNldChzb3VyY2VJbWFnZSwgb2JqZWN0VGV4dHVyZXMubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgICAgICBvYmplY3RUZXh0dXJlcy5wdXNoKHNvdXJjZUltYWdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyDorr7nva50ZXh0dXJlSW5kZXhcclxuICAgICAgICAgICAgICAgIGxldCB0ZXh0dXJlSW5kZXggPSB0ZXh0dXJlSW5kZXhNYXAuZ2V0KHNvdXJjZUltYWdlKTtcclxuICAgICAgICAgICAgICAgIHNwLnNldFRleHR1cmVJZHgodGV4dHVyZUluZGV4ICsgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fb2JqZWN0cyA9IG9iamVjdHM7XHJcblxyXG5cclxuICAgICAgICAvLyBkZXN0cm95IHVzZWxlc3Mgbm9kZVxyXG4gICAgICAgIGxldCBjaGlsZHJlbiA9IHRoaXMubm9kZS5jaGlsZHJlbjtcclxuICAgICAgICBsZXQgdXNlbGVzc0V4cCA9IC9eKD86aW1nfHRleHQpXFxkKyQvO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBuID0gY2hpbGRyZW4ubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBjID0gY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgIGxldCBjTmFtZSA9IGMuX25hbWU7XHJcbiAgICAgICAgICAgIGxldCBpc1VzZWxlc3MgPSB1c2VsZXNzRXhwLnRlc3QoY05hbWUpO1xyXG4gICAgICAgICAgICBpZiAoaXNVc2VsZXNzICYmICFhbGl2ZU5vZGVzW2NOYW1lXSkgYy5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxufSk7XHJcbiJdfQ== //------QC-SOURCE-SPLIT------ (function() { @@ -17699,12 +15458,9 @@ cc._RF.push(module, '4fa6cO05aBKGoM+5EX9zhkC', 'TmoSprite'); exports.__esModule = true; exports["default"] = void 0; - var _TmoAssembler = require("./TmoAssembler"); - var _default = cc.Class({ "extends": cc.Sprite, - /** * 设置TextureIndex */ @@ -17719,28 +15475,24 @@ var _default = cc.Class({ _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宏定义 + } + // 手动设置哈希值,避免无法合批 + 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() { @@ -17750,7 +15502,6 @@ var _default = cc.Class({ return this._getTiledMap().isNoColor(); } }); - exports["default"] = _default; module.exports = exports["default"]; @@ -17765,13 +15516,13 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vU3ByaXRlLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJTcHJpdGUiLCJzZXRUZXh0dXJlSWR4IiwiaWR4IiwiX3RleHR1cmVJZHgiLCJzZXRWZXJ0c0RpcnR5IiwiX2dldERlZmF1bHRNYXRlcmlhbCIsIl9nZXRUaWxlZE1hcCIsImdldE9iamVjdE1hdGVyaWFsIiwiX3VwZGF0ZU1hdGVyaWFsIiwibWF0ZXJpYWwiLCJnZXRNYXRlcmlhbCIsImdldERlZmluZSIsInVuZGVmaW5lZCIsImRlZmluZSIsInVwZGF0ZUhhc2giLCJub0NvbG9yIiwiaXNOb0NvbG9yIiwiQmxlbmRGdW5jIiwicHJvdG90eXBlIiwiY2FsbCIsIl9yZXNldEFzc2VtYmxlciIsImFzc2VtYmxlciIsIl9hc3NlbWJsZXIiLCJUbW9Bc3NlbWJsZXIiLCJpbml0IiwiX3VwZGF0ZUNvbG9yIiwibm9kZSIsIl90aWxlZE1hcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7ZUFFZUEsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDcEIsYUFBU0QsRUFBRSxDQUFDRSxNQURROztBQUdwQjtBQUNKO0FBQ0E7QUFDSUMsRUFBQUEsYUFOb0IseUJBTU5DLEdBTk0sRUFNRDtBQUNmLFNBQUtDLFdBQUwsR0FBbUJELEdBQW5CO0FBQ0EsU0FBS0UsYUFBTDtBQUNILEdBVG1CO0FBV3BCQyxFQUFBQSxtQkFYb0IsaUNBV0U7QUFDbEI7QUFDQSxXQUFPLEtBQUtDLFlBQUwsR0FBb0JDLGlCQUFwQixFQUFQO0FBQ0gsR0FkbUI7QUFnQnBCQyxFQUFBQSxlQWhCb0IsNkJBZ0JGO0FBQ2Q7QUFDQSxRQUFJQyxRQUFRLEdBQUcsS0FBS0MsV0FBTCxDQUFpQixDQUFqQixDQUFmOztBQUNBLFFBQUlELFFBQUosRUFBYztBQUNWLFVBQUlBLFFBQVEsQ0FBQ0UsU0FBVCxDQUFtQixhQUFuQixNQUFzQ0MsU0FBMUMsRUFBcUQ7QUFDakRILFFBQUFBLFFBQVEsQ0FBQ0ksTUFBVCxDQUFnQixhQUFoQixFQUErQixJQUEvQjtBQUNILE9BSFMsQ0FJVjs7O0FBQ0FKLE1BQUFBLFFBQVEsQ0FBQ0ssVUFBVCxDQUFvQixNQUFwQixFQUxVLENBT1Y7O0FBQ0EsVUFBSUMsT0FBTyxHQUFHLEtBQUtDLFNBQUwsRUFBZDtBQUNBUCxNQUFBQSxRQUFRLENBQUNJLE1BQVQsQ0FBZ0IsWUFBaEIsRUFBOEIsQ0FBQ0UsT0FBL0I7QUFDSDs7QUFFRGpCLElBQUFBLEVBQUUsQ0FBQ21CLFNBQUgsQ0FBYUMsU0FBYixDQUF1QlYsZUFBdkIsQ0FBdUNXLElBQXZDLENBQTRDLElBQTVDO0FBQ0gsR0FoQ21CO0FBa0NwQkMsRUFBQUEsZUFsQ29CLDZCQWtDRjtBQUNkO0FBQ0EsUUFBSUMsU0FBUyxHQUFHLEtBQUtDLFVBQUwsR0FBa0IsSUFBSUMsMEJBQUosRUFBbEM7QUFDQUYsSUFBQUEsU0FBUyxDQUFDRyxJQUFWLENBQWUsSUFBZjs7QUFFQSxTQUFLQyxZQUFMOztBQUNBLFNBQUtyQixhQUFMO0FBQ0gsR0F6Q21CO0FBMkNwQkUsRUFBQUEsWUEzQ29CLDBCQTJDTDtBQUNYLFdBQU8sS0FBS29CLElBQUwsQ0FBVUMsU0FBakI7QUFDSCxHQTdDbUI7QUErQ3BCWCxFQUFBQSxTQS9Db0IsdUJBK0NSO0FBQ1IsV0FBTyxLQUFLVixZQUFMLEdBQW9CVSxTQUFwQixFQUFQO0FBQ0g7QUFqRG1CLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRtb0Fzc2VtYmxlciB9IGZyb20gXCIuL1Rtb0Fzc2VtYmxlclwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuU3ByaXRlLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6K6+572uVGV4dHVyZUluZGV4XHJcbiAgICAgKi9cclxuICAgIHNldFRleHR1cmVJZHgoaWR4KSB7XHJcbiAgICAgICAgdGhpcy5fdGV4dHVyZUlkeCA9IGlkeFxyXG4gICAgICAgIHRoaXMuc2V0VmVydHNEaXJ0eSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICBfZ2V0RGVmYXVsdE1hdGVyaWFsKCkge1xyXG4gICAgICAgIC8vIOS7jlRpbGVkTWFw5Y+W5b6X6buY6K6k55qE5p2Q6LSoXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFRpbGVkTWFwKCkuZ2V0T2JqZWN0TWF0ZXJpYWwoKTtcclxuICAgIH0sXHJcblxyXG4gICAgX3VwZGF0ZU1hdGVyaWFsKCkge1xyXG4gICAgICAgIC8vIG1ha2Ugc3VyZSBtYXRlcmlhbCBpcyBiZWxvbmcgdG8gc2VsZi5cclxuICAgICAgICBsZXQgbWF0ZXJpYWwgPSB0aGlzLmdldE1hdGVyaWFsKDApO1xyXG4gICAgICAgIGlmIChtYXRlcmlhbCkge1xyXG4gICAgICAgICAgICBpZiAobWF0ZXJpYWwuZ2V0RGVmaW5lKCdVU0VfVEVYVFVSRScpICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmRlZmluZSgnVVNFX1RFWFRVUkUnLCB0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDmiYvliqjorr7nva7lk4jluIzlgLzvvIzpgb/lhY3ml6Dms5XlkIjmiblcclxuICAgICAgICAgICAgbWF0ZXJpYWwudXBkYXRlSGFzaCg5OTk5OTkpO1xyXG5cclxuICAgICAgICAgICAgLy8g5aKe5YqgV0lUSF9DT0xPUuWuj+WumuS5iVxyXG4gICAgICAgICAgICBsZXQgbm9Db2xvciA9IHRoaXMuaXNOb0NvbG9yKCk7XHJcbiAgICAgICAgICAgIG1hdGVyaWFsLmRlZmluZSgnV0lUSF9DT0xPUicsICFub0NvbG9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNjLkJsZW5kRnVuYy5wcm90b3R5cGUuX3VwZGF0ZU1hdGVyaWFsLmNhbGwodGhpcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIF9yZXNldEFzc2VtYmxlcigpIHtcclxuICAgICAgICAvLyDkv67mlLnpu5jorqRBc3NlbWJsZXJcclxuICAgICAgICBsZXQgYXNzZW1ibGVyID0gdGhpcy5fYXNzZW1ibGVyID0gbmV3IFRtb0Fzc2VtYmxlcigpO1xyXG4gICAgICAgIGFzc2VtYmxlci5pbml0KHRoaXMpO1xyXG5cclxuICAgICAgICB0aGlzLl91cGRhdGVDb2xvcigpO1xyXG4gICAgICAgIHRoaXMuc2V0VmVydHNEaXJ0eSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICBfZ2V0VGlsZWRNYXAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZS5fdGlsZWRNYXA7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzTm9Db2xvcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0VGlsZWRNYXAoKS5pc05vQ29sb3IoKTtcclxuICAgIH1cclxufSk7XHJcbiJdfQ== +//# 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 __filename = 'preview-scripts/assets/Script/module/Crypto/crypto-js.min.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { @@ -17779,185 +15530,2234 @@ 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, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); +// Script/module/Crypto/crypto-js.min.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 -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; - } // 修改结束 - +!function (t, r) { + "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r(); +}(void 0, function () { + var t = t || function (t, r) { + var e = Object.create || function () { + function t() {} + return function (r) { + var e; + return t.prototype = r, e = new t(), t.prototype = null, e; + }; + }(), + i = {}, + n = i.lib = {}, + o = n.Base = function () { + return { + extend: function extend(t) { + var r = e(this); + return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { + r.$super.init.apply(this, arguments); + }), r.init.prototype = r, r.$super = this, r; + }, + create: function create() { + var t = this.extend(); + return t.init.apply(t, arguments), t; + }, + init: function init() {}, + mixIn: function mixIn(t) { + for (var r in t) t.hasOwnProperty(r) && (this[r] = t[r]); + t.hasOwnProperty("toString") && (this.toString = t.toString); + }, + clone: function clone() { + return this.init.prototype.extend(this); + } + }; + }(), + s = n.WordArray = o.extend({ + init: function init(t, e) { + t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length; + }, + toString: function toString(t) { + return (t || c).stringify(this); + }, + concat: function concat(t) { + var r = this.words, + e = t.words, + i = this.sigBytes, + n = t.sigBytes; + if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { + var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; + r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8; + } else for (var o = 0; o < n; o += 4) r[i + o >>> 2] = e[o >>> 2]; + return this.sigBytes += n, this; + }, + clamp: function clamp() { + var r = this.words, + e = this.sigBytes; + r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4); + }, + clone: function clone() { + var t = o.clone.call(this); + return t.words = this.words.slice(0), t; + }, + random: function random(r) { + for (var e, i = [], n = function n(r) { + var r = r, + e = 987654321, + i = 4294967295; + return function () { + e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; + var n = (e << 16) + r & i; + return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1); + }; + }, o = 0; o < r; o += 4) { + var a = n(4294967296 * (e || t.random())); + e = 987654071 * a(), i.push(4294967296 * a() | 0); + } + return new s.init(i, r); + } + }), + a = i.enc = {}, + c = a.Hex = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { + var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; + i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)); + } + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i += 2) e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; + return new s.init(e, r / 2); + } + }, + h = a.Latin1 = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { + var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; + i.push(String.fromCharCode(o)); + } + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i++) e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; + return new s.init(e, r); + } + }, + l = a.Utf8 = { + stringify: function stringify(t) { + try { + return decodeURIComponent(escape(h.stringify(t))); + } catch (t) { + throw new Error("Malformed UTF-8 data"); + } + }, + parse: function parse(t) { + return h.parse(unescape(encodeURIComponent(t))); + } + }, + f = n.BufferedBlockAlgorithm = o.extend({ + reset: function reset() { + this._data = new s.init(), this._nDataBytes = 0; + }, + _append: function _append(t) { + "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes; + }, + _process: function _process(r) { + var e = this._data, + i = e.words, + n = e.sigBytes, + o = this.blockSize, + a = 4 * o, + c = n / a; + c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); + var h = c * o, + l = t.min(4 * h, n); + if (h) { + for (var f = 0; f < h; f += o) this._doProcessBlock(i, f); + var u = i.splice(0, h); + e.sigBytes -= l; + } + return new s.init(u, l); + }, + clone: function clone() { + var t = o.clone.call(this); + return t._data = this._data.clone(), t; + }, + _minBufferSize: 0 + }), + u = (n.Hasher = f.extend({ + cfg: o.extend(), + init: function init(t) { + this.cfg = this.cfg.extend(t), this.reset(); + }, + reset: function reset() { + f.reset.call(this), this._doReset(); + }, + update: function update(t) { + return this._append(t), this._process(), this; + }, + finalize: function finalize(t) { + t && this._append(t); + var r = this._doFinalize(); + return r; + }, + blockSize: 16, + _createHelper: function _createHelper(t) { + return function (r, e) { + return new t.init(e).finalize(r); + }; + }, + _createHmacHelper: function _createHmacHelper(t) { + return function (r, e) { + return new u.HMAC.init(t, e).finalize(r); + }; + } + }), i.algo = {}); + return i; + }(Math); + return function () { + function r(t, r, e) { + for (var i = [], o = 0, s = 0; s < r; s++) if (s % 4) { + var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, + c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; + i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++; } + return n.create(i, o); } - }, - _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; - } // 修改结束 - + var e = t, + i = e.lib, + n = i.WordArray, + o = e.enc; + o.Base64 = { + stringify: function stringify(t) { + var r = t.words, + e = t.sigBytes, + i = this._map; + t.clamp(); + for (var n = [], o = 0; o < e; o += 3) for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++) n.push(i.charAt(h >>> 6 * (3 - l) & 63)); + var f = i.charAt(64); + if (f) for (; n.length % 4;) n.push(f); + return n.join(""); + }, + parse: function parse(t) { + var e = t.length, + i = this._map, + n = this._reverseMap; + if (!n) { + n = this._reverseMap = []; + for (var o = 0; o < i.length; o++) n[i.charCodeAt(o)] = o; + } + var s = i.charAt(64); + if (s) { + var a = t.indexOf(s); + a !== -1 && (e = a); + } + return r(t, e, n); + }, + _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" + }; + }(), function (r) { + function e(t, r, e, i, n, o, s) { + var a = t + (r & e | ~r & i) + n + s; + return (a << o | a >>> 32 - o) + r; } - } + function i(t, r, e, i, n, o, s) { + var a = t + (r & i | e & ~i) + n + s; + return (a << o | a >>> 32 - o) + r; + } + function n(t, r, e, i, n, o, s) { + var a = t + (r ^ e ^ i) + n + s; + return (a << o | a >>> 32 - o) + r; + } + function o(t, r, e, i, n, o, s) { + var a = t + (e ^ (r | ~i)) + n + s; + return (a << o | a >>> 32 - o) + r; + } + var s = t, + a = s.lib, + c = a.WordArray, + h = a.Hasher, + l = s.algo, + f = []; + !function () { + for (var t = 0; t < 64; t++) f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0; + }(); + var u = l.MD5 = h.extend({ + _doReset: function _doReset() { + this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var s = 0; s < 16; s++) { + var a = r + s, + c = t[a]; + t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8); + } + var h = this._hash.words, + l = t[r + 0], + u = t[r + 1], + d = t[r + 2], + v = t[r + 3], + p = t[r + 4], + _ = t[r + 5], + y = t[r + 6], + g = t[r + 7], + B = t[r + 8], + w = t[r + 9], + k = t[r + 10], + S = t[r + 11], + m = t[r + 12], + x = t[r + 13], + b = t[r + 14], + H = t[r + 15], + z = h[0], + A = h[1], + C = h[2], + D = h[3]; + z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + e = t.words, + i = 8 * this._nDataBytes, + n = 8 * t.sigBytes; + e[n >>> 5] |= 128 << 24 - n % 32; + var o = r.floor(i / 4294967296), + s = i; + e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); + for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { + var l = c[h]; + c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); + } + return a; + }, + clone: function clone() { + var t = h.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u); + }(Math), function () { + var r = t, + e = r.lib, + i = e.WordArray, + n = e.Hasher, + o = r.algo, + s = [], + a = o.SHA1 = n.extend({ + _doReset: function _doReset() { + this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { + if (h < 16) s[h] = 0 | t[r + h];else { + var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; + s[h] = l << 1 | l >>> 31; + } + var f = (i << 5 | i >>> 27) + c + s[h]; + f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f; + } + e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash; + }, + clone: function clone() { + var t = n.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a); + }(), function (r) { + var e = t, + i = e.lib, + n = i.WordArray, + o = i.Hasher, + s = e.algo, + a = [], + c = []; + !function () { + function t(t) { + for (var e = r.sqrt(t), i = 2; i <= e; i++) if (!(t % i)) return !1; + return !0; + } + function e(t) { + return 4294967296 * (t - (0 | t)) | 0; + } + for (var i = 2, n = 0; n < 64;) t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++; + }(); + var h = [], + l = s.SHA256 = o.extend({ + _doReset: function _doReset() { + this._hash = new n.init(a.slice(0)); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { + if (d < 16) h[d] = 0 | t[r + d];else { + var v = h[d - 15], + p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, + _ = h[d - 2], + y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; + h[d] = p + h[d - 7] + y + h[d - 16]; + } + var g = a & l ^ ~a & f, + B = i & n ^ i & o ^ n & o, + w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), + k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), + S = u + k + g + c[d] + h[d], + m = w + B; + u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0; + } + e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + e = t.words, + i = 8 * this._nDataBytes, + n = 8 * t.sigBytes; + return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash; + }, + clone: function clone() { + var t = o.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l); + }(Math), function () { + function r(t) { + return t << 8 & 4278255360 | t >>> 8 & 16711935; + } + var e = t, + i = e.lib, + n = i.WordArray, + o = e.enc; + o.Utf16 = o.Utf16BE = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { + var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; + i.push(String.fromCharCode(o)); + } + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i++) e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; + return n.create(e, 2 * r); + } + }; + o.Utf16LE = { + stringify: function stringify(t) { + for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { + var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); + n.push(String.fromCharCode(s)); + } + return n.join(""); + }, + parse: function parse(t) { + for (var e = t.length, i = [], o = 0; o < e; o++) i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); + return n.create(i, 2 * e); + } + }; + }(), function () { + if ("function" == typeof ArrayBuffer) { + var r = t, + e = r.lib, + i = e.WordArray, + n = i.init, + o = i.init = function (t) { + if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { + for (var r = t.byteLength, e = [], i = 0; i < r; i++) e[i >>> 2] |= t[i] << 24 - i % 4 * 8; + n.call(this, e, r); + } else n.apply(this, arguments); + }; + o.prototype = i; + } + }(), function (r) { + function e(t, r, e) { + return t ^ r ^ e; + } + function i(t, r, e) { + return t & r | ~t & e; + } + function n(t, r, e) { + return (t | ~r) ^ e; + } + function o(t, r, e) { + return t & e | r & ~e; + } + function s(t, r, e) { + return t ^ (r | ~e); + } + function a(t, r) { + return t << r | t >>> 32 - r; + } + var c = t, + h = c.lib, + l = h.WordArray, + f = h.Hasher, + u = c.algo, + d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), + v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), + p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), + _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), + y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), + g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), + B = u.RIPEMD160 = f.extend({ + _doReset: function _doReset() { + this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var c = 0; c < 16; c++) { + var h = r + c, + l = t[h]; + t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); + } + var f, + u, + B, + w, + k, + S, + m, + x, + b, + H, + z = this._hash.words, + A = y.words, + C = g.words, + D = d.words, + R = v.words, + E = p.words, + M = _.words; + S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; + for (var F, c = 0; c < 80; c += 1) F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; + F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); + for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { + var a = o[s]; + o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8); + } + return n; + }, + clone: function clone() { + var t = f.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B); + }(Math), function () { + var r = t, + e = r.lib, + i = e.Base, + n = r.enc, + o = n.Utf8, + s = r.algo; + s.HMAC = i.extend({ + init: function init(t, r) { + t = this._hasher = new t.init(), "string" == typeof r && (r = o.parse(r)); + var e = t.blockSize, + i = 4 * e; + r.sigBytes > i && (r = t.finalize(r)), r.clamp(); + for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++) a[h] ^= 1549556828, c[h] ^= 909522486; + n.sigBytes = s.sigBytes = i, this.reset(); + }, + reset: function reset() { + var t = this._hasher; + t.reset(), t.update(this._iKey); + }, + update: function update(t) { + return this._hasher.update(t), this; + }, + finalize: function finalize(t) { + var r = this._hasher, + e = r.finalize(t); + r.reset(); + var i = r.finalize(this._oKey.clone().concat(e)); + return i; + } + }); + }(), function () { + var r = t, + e = r.lib, + i = e.Base, + n = e.WordArray, + o = r.algo, + s = o.SHA1, + a = o.HMAC, + c = o.PBKDF2 = i.extend({ + cfg: i.extend({ + keySize: 4, + hasher: s, + iterations: 1 + }), + init: function init(t) { + this.cfg = this.cfg.extend(t); + }, + compute: function compute(t, r) { + for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { + var u = i.update(r).finalize(s); + i.reset(); + for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { + p = i.finalize(p), i.reset(); + for (var y = p.words, g = 0; g < v; g++) d[g] ^= y[g]; + } + o.concat(u), h[0]++; + } + return o.sigBytes = 4 * l, o; + } + }); + r.PBKDF2 = function (t, r, e) { + return c.create(e).compute(t, r); + }; + }(), function () { + var r = t, + e = r.lib, + i = e.Base, + n = e.WordArray, + o = r.algo, + s = o.MD5, + a = o.EvpKDF = i.extend({ + cfg: i.extend({ + keySize: 4, + hasher: s, + iterations: 1 + }), + init: function init(t) { + this.cfg = this.cfg.extend(t); + }, + compute: function compute(t, r) { + for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { + h && i.update(h); + var h = i.update(t).finalize(r); + i.reset(); + for (var l = 1; l < c; l++) h = i.finalize(h), i.reset(); + o.concat(h); + } + return o.sigBytes = 4 * a, o; + } + }); + r.EvpKDF = function (t, r, e) { + return a.create(e).compute(t, r); + }; + }(), function () { + var r = t, + e = r.lib, + i = e.WordArray, + n = r.algo, + o = n.SHA256, + s = n.SHA224 = o.extend({ + _doReset: function _doReset() { + this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]); + }, + _doFinalize: function _doFinalize() { + var t = o._doFinalize.call(this); + return t.sigBytes -= 4, t; + } + }); + r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s); + }(), function (r) { + var e = t, + i = e.lib, + n = i.Base, + o = i.WordArray, + s = e.x64 = {}; + s.Word = n.extend({ + init: function init(t, r) { + this.high = t, this.low = r; + } + }), s.WordArray = n.extend({ + init: function init(t, e) { + t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length; + }, + toX32: function toX32() { + for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { + var n = t[i]; + e.push(n.high), e.push(n.low); + } + return o.create(e, this.sigBytes); + }, + clone: function clone() { + for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++) r[i] = r[i].clone(); + return t; + } + }); + }(), function (r) { + var e = t, + i = e.lib, + n = i.WordArray, + o = i.Hasher, + s = e.x64, + a = s.Word, + c = e.algo, + h = [], + l = [], + f = []; + !function () { + for (var t = 1, r = 0, e = 0; e < 24; e++) { + h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; + var i = r % 5, + n = (2 * t + 3 * r) % 5; + t = i, r = n; + } + for (var t = 0; t < 5; t++) for (var r = 0; r < 5; r++) l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; + for (var o = 1, s = 0; s < 24; s++) { + for (var c = 0, u = 0, d = 0; d < 7; d++) { + if (1 & o) { + var v = (1 << d) - 1; + v < 32 ? u ^= 1 << v : c ^= 1 << v - 32; + } + 128 & o ? o = o << 1 ^ 113 : o <<= 1; + } + f[s] = a.create(c, u); + } + }(); + var u = []; + !function () { + for (var t = 0; t < 25; t++) u[t] = a.create(); + }(); + var d = c.SHA3 = o.extend({ + cfg: o.cfg.extend({ + outputLength: 512 + }), + _doReset: function _doReset() { + for (var t = this._state = [], r = 0; r < 25; r++) t[r] = new a.init(); + this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { + var o = t[r + 2 * n], + s = t[r + 2 * n + 1]; + o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); + var a = e[n]; + a.high ^= s, a.low ^= o; + } + for (var c = 0; c < 24; c++) { + for (var d = 0; d < 5; d++) { + for (var v = 0, p = 0, _ = 0; _ < 5; _++) { + var a = e[d + 5 * _]; + v ^= a.high, p ^= a.low; + } + var y = u[d]; + y.high = v, y.low = p; + } + for (var d = 0; d < 5; d++) for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { + var a = e[d + 5 * _]; + a.high ^= v, a.low ^= p; + } + for (var S = 1; S < 25; S++) { + var a = e[S], + m = a.high, + x = a.low, + b = h[S]; + if (b < 32) var v = m << b | x >>> 32 - b, + p = x << b | m >>> 32 - b;else var v = x << b - 32 | m >>> 64 - b, + p = m << b - 32 | x >>> 64 - b; + var H = u[l[S]]; + H.high = v, H.low = p; + } + var z = u[0], + A = e[0]; + z.high = A.high, z.low = A.low; + for (var d = 0; d < 5; d++) for (var _ = 0; _ < 5; _++) { + var S = d + 5 * _, + a = e[S], + C = u[S], + D = u[(d + 1) % 5 + 5 * _], + R = u[(d + 2) % 5 + 5 * _]; + a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low; + } + var a = e[0], + E = f[c]; + a.high ^= E.high, a.low ^= E.low; + } + }, + _doFinalize: function _doFinalize() { + var t = this._data, + e = t.words, + i = (8 * this._nDataBytes, 8 * t.sigBytes), + o = 32 * this.blockSize; + e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); + for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { + var f = s[l], + u = f.high, + d = f.low; + u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u); + } + return new n.init(h, a); + }, + clone: function clone() { + for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++) r[e] = r[e].clone(); + return t; + } + }); + e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d); + }(Math), function () { + function r() { + return s.create.apply(s, arguments); + } + var e = t, + i = e.lib, + n = i.Hasher, + o = e.x64, + s = o.Word, + a = o.WordArray, + c = e.algo, + h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], + l = []; + !function () { + for (var t = 0; t < 80; t++) l[t] = r(); + }(); + var f = c.SHA512 = n.extend({ + _doReset: function _doReset() { + this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { + var Z = l[T]; + if (T < 16) var q = Z.high = 0 | t[r + 2 * T], + G = Z.low = 0 | t[r + 2 * T + 1];else { + var J = l[T - 15], + $ = J.high, + Q = J.low, + V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, + Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), + tt = l[T - 2], + rt = tt.high, + et = tt.low, + it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, + nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), + ot = l[T - 7], + st = ot.high, + at = ot.low, + ct = l[T - 16], + ht = ct.high, + lt = ct.low, + G = Y + at, + q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), + G = G + nt, + q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), + G = G + lt, + q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); + Z.high = q, Z.low = G; + } + var ft = O & I ^ ~O & X, + ut = U & K ^ ~U & L, + dt = C & R ^ C & M ^ R & M, + vt = D & E ^ D & F ^ E & F, + pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), + _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), + yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), + gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), + Bt = h[T], + wt = Bt.high, + kt = Bt.low, + St = N + gt, + mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), + St = St + ut, + mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), + St = St + kt, + mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), + St = St + G, + mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), + xt = _t + vt, + bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); + j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0; + } + v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0); + }, + _doFinalize: function _doFinalize() { + var t = this._data, + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); + var n = this._hash.toX32(); + return n; + }, + clone: function clone() { + var t = n.clone.call(this); + return t._hash = this._hash.clone(), t; + }, + blockSize: 32 + }); + e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f); + }(), function () { + var r = t, + e = r.x64, + i = e.Word, + n = e.WordArray, + o = r.algo, + s = o.SHA512, + a = o.SHA384 = s.extend({ + _doReset: function _doReset() { + this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]); + }, + _doFinalize: function _doFinalize() { + var t = s._doFinalize.call(this); + return t.sigBytes -= 16, t; + } + }); + r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a); + }(), t.lib.Cipher || function (r) { + var e = t, + i = e.lib, + n = i.Base, + o = i.WordArray, + s = i.BufferedBlockAlgorithm, + a = e.enc, + c = (a.Utf8, a.Base64), + h = e.algo, + l = h.EvpKDF, + f = i.Cipher = s.extend({ + cfg: n.extend(), + createEncryptor: function createEncryptor(t, r) { + return this.create(this._ENC_XFORM_MODE, t, r); + }, + createDecryptor: function createDecryptor(t, r) { + return this.create(this._DEC_XFORM_MODE, t, r); + }, + init: function init(t, r, e) { + this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset(); + }, + reset: function reset() { + s.reset.call(this), this._doReset(); + }, + process: function process(t) { + return this._append(t), this._process(); + }, + finalize: function finalize(t) { + t && this._append(t); + var r = this._doFinalize(); + return r; + }, + keySize: 4, + ivSize: 4, + _ENC_XFORM_MODE: 1, + _DEC_XFORM_MODE: 2, + _createHelper: function () { + function t(t) { + return "string" == typeof t ? m : w; + } + return function (r) { + return { + encrypt: function encrypt(e, i, n) { + return t(i).encrypt(r, e, i, n); + }, + decrypt: function decrypt(e, i, n) { + return t(i).decrypt(r, e, i, n); + } + }; + }; + }() + }), + u = (i.StreamCipher = f.extend({ + _doFinalize: function _doFinalize() { + var t = this._process(!0); + return t; + }, + blockSize: 1 + }), e.mode = {}), + d = i.BlockCipherMode = n.extend({ + createEncryptor: function createEncryptor(t, r) { + return this.Encryptor.create(t, r); + }, + createDecryptor: function createDecryptor(t, r) { + return this.Decryptor.create(t, r); + }, + init: function init(t, r) { + this._cipher = t, this._iv = r; + } + }), + v = u.CBC = function () { + function t(t, e, i) { + var n = this._iv; + if (n) { + var o = n; + this._iv = r; + } else var o = this._prevBlock; + for (var s = 0; s < i; s++) t[e + s] ^= o[s]; + } + var e = d.extend(); + return e.Encryptor = e.extend({ + processBlock: function processBlock(r, e) { + var i = this._cipher, + n = i.blockSize; + t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n); + } + }), e.Decryptor = e.extend({ + processBlock: function processBlock(r, e) { + var i = this._cipher, + n = i.blockSize, + o = r.slice(e, e + n); + i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o; + } + }), e; + }(), + p = e.pad = {}, + _ = p.Pkcs7 = { + pad: function pad(t, r) { + for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4) s.push(n); + var c = o.create(s, i); + t.concat(c); + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; + } + }, + y = (i.BlockCipher = f.extend({ + cfg: f.cfg.extend({ + mode: v, + padding: _ + }), + reset: function reset() { + f.reset.call(this); + var t = this.cfg, + r = t.iv, + e = t.mode; + if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor;else { + var i = e.createDecryptor; + this._minBufferSize = 1; + } + this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + this._mode.processBlock(t, r); + }, + _doFinalize: function _doFinalize() { + var t = this.cfg.padding; + if (this._xformMode == this._ENC_XFORM_MODE) { + t.pad(this._data, this.blockSize); + var r = this._process(!0); + } else { + var r = this._process(!0); + t.unpad(r); + } + return r; + }, + blockSize: 4 + }), i.CipherParams = n.extend({ + init: function init(t) { + this.mixIn(t); + }, + toString: function toString(t) { + return (t || this.formatter).stringify(this); + } + })), + g = e.format = {}, + B = g.OpenSSL = { + stringify: function stringify(t) { + var r = t.ciphertext, + e = t.salt; + if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r);else var i = r; + return i.toString(c); + }, + parse: function parse(t) { + var r = c.parse(t), + e = r.words; + if (1398893684 == e[0] && 1701076831 == e[1]) { + var i = o.create(e.slice(2, 4)); + e.splice(0, 4), r.sigBytes -= 16; + } + return y.create({ + ciphertext: r, + salt: i + }); + } + }, + w = i.SerializableCipher = n.extend({ + cfg: n.extend({ + format: B + }), + encrypt: function encrypt(t, r, e, i) { + i = this.cfg.extend(i); + var n = t.createEncryptor(e, i), + o = n.finalize(r), + s = n.cfg; + return y.create({ + ciphertext: o, + key: e, + iv: s.iv, + algorithm: t, + mode: s.mode, + padding: s.padding, + blockSize: t.blockSize, + formatter: i.format + }); + }, + decrypt: function decrypt(t, r, e, i) { + i = this.cfg.extend(i), r = this._parse(r, i.format); + var n = t.createDecryptor(e, i).finalize(r.ciphertext); + return n; + }, + _parse: function _parse(t, r) { + return "string" == typeof t ? r.parse(t, this) : t; + } + }), + k = e.kdf = {}, + S = k.OpenSSL = { + execute: function execute(t, r, e, i) { + i || (i = o.random(8)); + var n = l.create({ + keySize: r + e + }).compute(t, i), + s = o.create(n.words.slice(r), 4 * e); + return n.sigBytes = 4 * r, y.create({ + key: n, + iv: s, + salt: i + }); + } + }, + m = i.PasswordBasedCipher = w.extend({ + cfg: w.cfg.extend({ + kdf: S + }), + encrypt: function encrypt(t, r, e, i) { + i = this.cfg.extend(i); + var n = i.kdf.execute(e, t.keySize, t.ivSize); + i.iv = n.iv; + var o = w.encrypt.call(this, t, r, n.key, i); + return o.mixIn(n), o; + }, + decrypt: function decrypt(t, r, e, i) { + i = this.cfg.extend(i), r = this._parse(r, i.format); + var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); + i.iv = n.iv; + var o = w.decrypt.call(this, t, r, n.key, i); + return o; + } + }); + }(), t.mode.CFB = function () { + function r(t, r, e, i) { + var n = this._iv; + if (n) { + var o = n.slice(0); + this._iv = void 0; + } else var o = this._prevBlock; + i.encryptBlock(o, 0); + for (var s = 0; s < e; s++) t[r + s] ^= o[s]; + } + var e = t.lib.BlockCipherMode.extend(); + return e.Encryptor = e.extend({ + processBlock: function processBlock(t, e) { + var i = this._cipher, + n = i.blockSize; + r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n); + } + }), e.Decryptor = e.extend({ + processBlock: function processBlock(t, e) { + var i = this._cipher, + n = i.blockSize, + o = t.slice(e, e + n); + r.call(this, t, e, n, i), this._prevBlock = o; + } + }), e; + }(), t.mode.ECB = function () { + var r = t.lib.BlockCipherMode.extend(); + return r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + this._cipher.encryptBlock(t, r); + } + }), r.Decryptor = r.extend({ + processBlock: function processBlock(t, r) { + this._cipher.decryptBlock(t, r); + } + }), r; + }(), t.pad.AnsiX923 = { + pad: function pad(t, r) { + var e = t.sigBytes, + i = 4 * r, + n = i - e % i, + o = e + n - 1; + t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n; + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; + } + }, t.pad.Iso10126 = { + pad: function pad(r, e) { + var i = 4 * e, + n = i - r.sigBytes % i; + r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)); + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; + } + }, t.pad.Iso97971 = { + pad: function pad(r, e) { + r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e); + }, + unpad: function unpad(r) { + t.pad.ZeroPadding.unpad(r), r.sigBytes--; + } + }, t.mode.OFB = function () { + var r = t.lib.BlockCipherMode.extend(), + e = r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + var e = this._cipher, + i = e.blockSize, + n = this._iv, + o = this._keystream; + n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); + for (var s = 0; s < i; s++) t[r + s] ^= o[s]; + } + }); + return r.Decryptor = e, r; + }(), t.pad.NoPadding = { + pad: function pad() {}, + unpad: function unpad() {} + }, function (r) { + var e = t, + i = e.lib, + n = i.CipherParams, + o = e.enc, + s = o.Hex, + a = e.format; + a.Hex = { + stringify: function stringify(t) { + return t.ciphertext.toString(s); + }, + parse: function parse(t) { + var r = s.parse(t); + return n.create({ + ciphertext: r + }); + } + }; + }(), function () { + var r = t, + e = r.lib, + i = e.BlockCipher, + n = r.algo, + o = [], + s = [], + a = [], + c = [], + h = [], + l = [], + f = [], + u = [], + d = [], + v = []; + !function () { + for (var t = [], r = 0; r < 256; r++) r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; + for (var e = 0, i = 0, r = 0; r < 256; r++) { + var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; + n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; + var p = t[e], + _ = t[p], + y = t[_], + g = 257 * t[n] ^ 16843008 * n; + a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; + var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; + f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1; + } + }(); + var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], + _ = n.AES = i.extend({ + _doReset: function _doReset() { + if (!this._nRounds || this._keyPriorReset !== this._key) { + for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++) if (a < e) s[a] = r[a];else { + var c = s[a - 1]; + a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c; + } + for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { + var a = n - l; + if (l % 4) var c = s[a];else var c = s[a - 4]; + l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]]; + } + } + }, + encryptBlock: function encryptBlock(t, r) { + this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o); + }, + decryptBlock: function decryptBlock(t, r) { + var e = t[r + 1]; + t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); + var e = t[r + 1]; + t[r + 1] = t[r + 3], t[r + 3] = e; + }, + _doCryptBlock: function _doCryptBlock(t, r, e, i, n, o, s, a) { + for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { + var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], + _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], + y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], + g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; + h = p, l = _, f = y, u = g; + } + var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], + _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], + y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], + g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; + t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g; + }, + keySize: 8 + }); + r.AES = i._createHelper(_); + }(), function () { + function r(t, r) { + var e = (this._lBlock >>> t ^ this._rBlock) & r; + this._rBlock ^= e, this._lBlock ^= e << t; + } + function e(t, r) { + var e = (this._rBlock >>> t ^ this._lBlock) & r; + this._lBlock ^= e, this._rBlock ^= e << t; + } + var i = t, + n = i.lib, + o = n.WordArray, + s = n.BlockCipher, + a = i.algo, + c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], + h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], + l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], + f = [{ + 0: 8421888, + 268435456: 32768, + 536870912: 8421378, + 805306368: 2, + 1073741824: 512, + 1342177280: 8421890, + 1610612736: 8389122, + 1879048192: 8388608, + 2147483648: 514, + 2415919104: 8389120, + 2684354560: 33280, + 2952790016: 8421376, + 3221225472: 32770, + 3489660928: 8388610, + 3758096384: 0, + 4026531840: 33282, + 134217728: 0, + 402653184: 8421890, + 671088640: 33282, + 939524096: 32768, + 1207959552: 8421888, + 1476395008: 512, + 1744830464: 8421378, + 2013265920: 2, + 2281701376: 8389120, + 2550136832: 33280, + 2818572288: 8421376, + 3087007744: 8389122, + 3355443200: 8388610, + 3623878656: 32770, + 3892314112: 514, + 4160749568: 8388608, + 1: 32768, + 268435457: 2, + 536870913: 8421888, + 805306369: 8388608, + 1073741825: 8421378, + 1342177281: 33280, + 1610612737: 512, + 1879048193: 8389122, + 2147483649: 8421890, + 2415919105: 8421376, + 2684354561: 8388610, + 2952790017: 33282, + 3221225473: 514, + 3489660929: 8389120, + 3758096385: 32770, + 4026531841: 0, + 134217729: 8421890, + 402653185: 8421376, + 671088641: 8388608, + 939524097: 512, + 1207959553: 32768, + 1476395009: 8388610, + 1744830465: 2, + 2013265921: 33282, + 2281701377: 32770, + 2550136833: 8389122, + 2818572289: 514, + 3087007745: 8421888, + 3355443201: 8389120, + 3623878657: 0, + 3892314113: 33280, + 4160749569: 8421378 + }, { + 0: 1074282512, + 16777216: 16384, + 33554432: 524288, + 50331648: 1074266128, + 67108864: 1073741840, + 83886080: 1074282496, + 100663296: 1073758208, + 117440512: 16, + 134217728: 540672, + 150994944: 1073758224, + 167772160: 1073741824, + 184549376: 540688, + 201326592: 524304, + 218103808: 0, + 234881024: 16400, + 251658240: 1074266112, + 8388608: 1073758208, + 25165824: 540688, + 41943040: 16, + 58720256: 1073758224, + 75497472: 1074282512, + 92274688: 1073741824, + 109051904: 524288, + 125829120: 1074266128, + 142606336: 524304, + 159383552: 0, + 176160768: 16384, + 192937984: 1074266112, + 209715200: 1073741840, + 226492416: 540672, + 243269632: 1074282496, + 260046848: 16400, + 268435456: 0, + 285212672: 1074266128, + 301989888: 1073758224, + 318767104: 1074282496, + 335544320: 1074266112, + 352321536: 16, + 369098752: 540688, + 385875968: 16384, + 402653184: 16400, + 419430400: 524288, + 436207616: 524304, + 452984832: 1073741840, + 469762048: 540672, + 486539264: 1073758208, + 503316480: 1073741824, + 520093696: 1074282512, + 276824064: 540688, + 293601280: 524288, + 310378496: 1074266112, + 327155712: 16384, + 343932928: 1073758208, + 360710144: 1074282512, + 377487360: 16, + 394264576: 1073741824, + 411041792: 1074282496, + 427819008: 1073741840, + 444596224: 1073758224, + 461373440: 524304, + 478150656: 0, + 494927872: 16400, + 511705088: 1074266128, + 528482304: 540672 + }, { + 0: 260, + 1048576: 0, + 2097152: 67109120, + 3145728: 65796, + 4194304: 65540, + 5242880: 67108868, + 6291456: 67174660, + 7340032: 67174400, + 8388608: 67108864, + 9437184: 67174656, + 10485760: 65792, + 11534336: 67174404, + 12582912: 67109124, + 13631488: 65536, + 14680064: 4, + 15728640: 256, + 524288: 67174656, + 1572864: 67174404, + 2621440: 0, + 3670016: 67109120, + 4718592: 67108868, + 5767168: 65536, + 6815744: 65540, + 7864320: 260, + 8912896: 4, + 9961472: 256, + 11010048: 67174400, + 12058624: 65796, + 13107200: 65792, + 14155776: 67109124, + 15204352: 67174660, + 16252928: 67108864, + 16777216: 67174656, + 17825792: 65540, + 18874368: 65536, + 19922944: 67109120, + 20971520: 256, + 22020096: 67174660, + 23068672: 67108868, + 24117248: 0, + 25165824: 67109124, + 26214400: 67108864, + 27262976: 4, + 28311552: 65792, + 29360128: 67174400, + 30408704: 260, + 31457280: 65796, + 32505856: 67174404, + 17301504: 67108864, + 18350080: 260, + 19398656: 67174656, + 20447232: 0, + 21495808: 65540, + 22544384: 67109120, + 23592960: 256, + 24641536: 67174404, + 25690112: 65536, + 26738688: 67174660, + 27787264: 65796, + 28835840: 67108868, + 29884416: 67109124, + 30932992: 67174400, + 31981568: 4, + 33030144: 65792 + }, { + 0: 2151682048, + 65536: 2147487808, + 131072: 4198464, + 196608: 2151677952, + 262144: 0, + 327680: 4198400, + 393216: 2147483712, + 458752: 4194368, + 524288: 2147483648, + 589824: 4194304, + 655360: 64, + 720896: 2147487744, + 786432: 2151678016, + 851968: 4160, + 917504: 4096, + 983040: 2151682112, + 32768: 2147487808, + 98304: 64, + 163840: 2151678016, + 229376: 2147487744, + 294912: 4198400, + 360448: 2151682112, + 425984: 0, + 491520: 2151677952, + 557056: 4096, + 622592: 2151682048, + 688128: 4194304, + 753664: 4160, + 819200: 2147483648, + 884736: 4194368, + 950272: 4198464, + 1015808: 2147483712, + 1048576: 4194368, + 1114112: 4198400, + 1179648: 2147483712, + 1245184: 0, + 1310720: 4160, + 1376256: 2151678016, + 1441792: 2151682048, + 1507328: 2147487808, + 1572864: 2151682112, + 1638400: 2147483648, + 1703936: 2151677952, + 1769472: 4198464, + 1835008: 2147487744, + 1900544: 4194304, + 1966080: 64, + 2031616: 4096, + 1081344: 2151677952, + 1146880: 2151682112, + 1212416: 0, + 1277952: 4198400, + 1343488: 4194368, + 1409024: 2147483648, + 1474560: 2147487808, + 1540096: 64, + 1605632: 2147483712, + 1671168: 4096, + 1736704: 2147487744, + 1802240: 2151678016, + 1867776: 4160, + 1933312: 2151682048, + 1998848: 4194304, + 2064384: 4198464 + }, { + 0: 128, + 4096: 17039360, + 8192: 262144, + 12288: 536870912, + 16384: 537133184, + 20480: 16777344, + 24576: 553648256, + 28672: 262272, + 32768: 16777216, + 36864: 537133056, + 40960: 536871040, + 45056: 553910400, + 49152: 553910272, + 53248: 0, + 57344: 17039488, + 61440: 553648128, + 2048: 17039488, + 6144: 553648256, + 10240: 128, + 14336: 17039360, + 18432: 262144, + 22528: 537133184, + 26624: 553910272, + 30720: 536870912, + 34816: 537133056, + 38912: 0, + 43008: 553910400, + 47104: 16777344, + 51200: 536871040, + 55296: 553648128, + 59392: 16777216, + 63488: 262272, + 65536: 262144, + 69632: 128, + 73728: 536870912, + 77824: 553648256, + 81920: 16777344, + 86016: 553910272, + 90112: 537133184, + 94208: 16777216, + 98304: 553910400, + 102400: 553648128, + 106496: 17039360, + 110592: 537133056, + 114688: 262272, + 118784: 536871040, + 122880: 0, + 126976: 17039488, + 67584: 553648256, + 71680: 16777216, + 75776: 17039360, + 79872: 537133184, + 83968: 536870912, + 88064: 17039488, + 92160: 128, + 96256: 553910272, + 100352: 262272, + 104448: 553910400, + 108544: 0, + 112640: 553648128, + 116736: 16777344, + 120832: 262144, + 124928: 537133056, + 129024: 536871040 + }, { + 0: 268435464, + 256: 8192, + 512: 270532608, + 768: 270540808, + 1024: 268443648, + 1280: 2097152, + 1536: 2097160, + 1792: 268435456, + 2048: 0, + 2304: 268443656, + 2560: 2105344, + 2816: 8, + 3072: 270532616, + 3328: 2105352, + 3584: 8200, + 3840: 270540800, + 128: 270532608, + 384: 270540808, + 640: 8, + 896: 2097152, + 1152: 2105352, + 1408: 268435464, + 1664: 268443648, + 1920: 8200, + 2176: 2097160, + 2432: 8192, + 2688: 268443656, + 2944: 270532616, + 3200: 0, + 3456: 270540800, + 3712: 2105344, + 3968: 268435456, + 4096: 268443648, + 4352: 270532616, + 4608: 270540808, + 4864: 8200, + 5120: 2097152, + 5376: 268435456, + 5632: 268435464, + 5888: 2105344, + 6144: 2105352, + 6400: 0, + 6656: 8, + 6912: 270532608, + 7168: 8192, + 7424: 268443656, + 7680: 270540800, + 7936: 2097160, + 4224: 8, + 4480: 2105344, + 4736: 2097152, + 4992: 268435464, + 5248: 268443648, + 5504: 8200, + 5760: 270540808, + 6016: 270532608, + 6272: 270540800, + 6528: 270532616, + 6784: 8192, + 7040: 2105352, + 7296: 2097160, + 7552: 0, + 7808: 268435456, + 8064: 268443656 + }, { + 0: 1048576, + 16: 33555457, + 32: 1024, + 48: 1049601, + 64: 34604033, + 80: 0, + 96: 1, + 112: 34603009, + 128: 33555456, + 144: 1048577, + 160: 33554433, + 176: 34604032, + 192: 34603008, + 208: 1025, + 224: 1049600, + 240: 33554432, + 8: 34603009, + 24: 0, + 40: 33555457, + 56: 34604032, + 72: 1048576, + 88: 33554433, + 104: 33554432, + 120: 1025, + 136: 1049601, + 152: 33555456, + 168: 34603008, + 184: 1048577, + 200: 1024, + 216: 34604033, + 232: 1, + 248: 1049600, + 256: 33554432, + 272: 1048576, + 288: 33555457, + 304: 34603009, + 320: 1048577, + 336: 33555456, + 352: 34604032, + 368: 1049601, + 384: 1025, + 400: 34604033, + 416: 1049600, + 432: 1, + 448: 0, + 464: 34603008, + 480: 33554433, + 496: 1024, + 264: 1049600, + 280: 33555457, + 296: 34603009, + 312: 1, + 328: 33554432, + 344: 1048576, + 360: 1025, + 376: 34604032, + 392: 33554433, + 408: 34603008, + 424: 0, + 440: 34604033, + 456: 1049601, + 472: 1024, + 488: 33555456, + 504: 1048577 + }, { + 0: 134219808, + 1: 131072, + 2: 134217728, + 3: 32, + 4: 131104, + 5: 134350880, + 6: 134350848, + 7: 2048, + 8: 134348800, + 9: 134219776, + 10: 133120, + 11: 134348832, + 12: 2080, + 13: 0, + 14: 134217760, + 15: 133152, + 2147483648: 2048, + 2147483649: 134350880, + 2147483650: 134219808, + 2147483651: 134217728, + 2147483652: 134348800, + 2147483653: 133120, + 2147483654: 133152, + 2147483655: 32, + 2147483656: 134217760, + 2147483657: 2080, + 2147483658: 131104, + 2147483659: 134350848, + 2147483660: 0, + 2147483661: 134348832, + 2147483662: 134219776, + 2147483663: 131072, + 16: 133152, + 17: 134350848, + 18: 32, + 19: 2048, + 20: 134219776, + 21: 134217760, + 22: 134348832, + 23: 131072, + 24: 0, + 25: 131104, + 26: 134348800, + 27: 134219808, + 28: 134350880, + 29: 133120, + 30: 2080, + 31: 134217728, + 2147483664: 131072, + 2147483665: 2048, + 2147483666: 134348832, + 2147483667: 133152, + 2147483668: 32, + 2147483669: 134348800, + 2147483670: 134217728, + 2147483671: 134219808, + 2147483672: 134350880, + 2147483673: 134217760, + 2147483674: 134219776, + 2147483675: 0, + 2147483676: 133120, + 2147483677: 2080, + 2147483678: 131104, + 2147483679: 134350848 + }], + u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], + d = a.DES = s.extend({ + _doReset: function _doReset() { + for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { + var n = c[i] - 1; + e[i] = r[n >>> 5] >>> 31 - n % 32 & 1; + } + for (var o = this._subKeys = [], s = 0; s < 16; s++) { + for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++) a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; + a[0] = a[0] << 1 | a[0] >>> 31; + for (var i = 1; i < 7; i++) a[i] = a[i] >>> 4 * (i - 1) + 3; + a[7] = a[7] << 5 | a[7] >>> 27; + } + for (var u = this._invSubKeys = [], i = 0; i < 16; i++) u[i] = o[15 - i]; + }, + encryptBlock: function encryptBlock(t, r) { + this._doCryptBlock(t, r, this._subKeys); + }, + decryptBlock: function decryptBlock(t, r) { + this._doCryptBlock(t, r, this._invSubKeys); + }, + _doCryptBlock: function _doCryptBlock(t, i, n) { + this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); + for (var o = 0; o < 16; o++) { + for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++) h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; + this._lBlock = c, this._rBlock = a ^ h; + } + var d = this._lBlock; + this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock; + }, + keySize: 2, + ivSize: 2, + blockSize: 2 + }); + i.DES = s._createHelper(d); + var v = a.TripleDES = s.extend({ + _doReset: function _doReset() { + var t = this._key, + r = t.words; + this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))); + }, + encryptBlock: function encryptBlock(t, r) { + this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r); + }, + decryptBlock: function decryptBlock(t, r) { + this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r); + }, + keySize: 6, + ivSize: 2, + blockSize: 2 + }); + i.TripleDES = s._createHelper(v); + }(), function () { + function r() { + for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) { + r = (r + 1) % 256, e = (e + t[r]) % 256; + var o = t[r]; + t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n; + } + return this._i = r, this._j = e, i; + } + var e = t, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = o.RC4 = n.extend({ + _doReset: function _doReset() { + for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++) i[n] = n; + for (var n = 0, o = 0; n < 256; n++) { + var s = n % e, + a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; + o = (o + i[n] + a) % 256; + var c = i[n]; + i[n] = i[o], i[o] = c; + } + this._i = this._j = 0; + }, + _doProcessBlock: function _doProcessBlock(t, e) { + t[e] ^= r.call(this); + }, + keySize: 8, + ivSize: 0 + }); + e.RC4 = n._createHelper(s); + var a = o.RC4Drop = s.extend({ + cfg: s.cfg.extend({ + drop: 192 + }), + _doReset: function _doReset() { + s._doReset.call(this); + for (var t = this.cfg.drop; t > 0; t--) r.call(this); + } + }); + e.RC4Drop = n._createHelper(a); + }(), t.mode.CTRGladman = function () { + function r(t) { + if (255 === (t >> 24 & 255)) { + var r = t >> 16 & 255, + e = t >> 8 & 255, + i = 255 & t; + 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i; + } else t += 1 << 24; + return t; + } + function e(t) { + return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t; + } + var i = t.lib.BlockCipherMode.extend(), + n = i.Encryptor = i.extend({ + processBlock: function processBlock(t, r) { + var i = this._cipher, + n = i.blockSize, + o = this._iv, + s = this._counter; + o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); + var a = s.slice(0); + i.encryptBlock(a, 0); + for (var c = 0; c < n; c++) t[r + c] ^= a[c]; + } + }); + return i.Decryptor = n, i; + }(), function () { + function r() { + for (var t = this._X, r = this._C, e = 0; e < 8; e++) a[e] = r[e]; + r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; + for (var e = 0; e < 8; e++) { + var i = t[e] + r[e], + n = 65535 & i, + o = i >>> 16, + s = ((n * n >>> 17) + n * o >>> 15) + o * o, + h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); + c[e] = s ^ h; + } + t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; + } + var e = t, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = [], + a = [], + c = [], + h = o.Rabbit = n.extend({ + _doReset: function _doReset() { + for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++) t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); + var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], + o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; + this._b = 0; + for (var i = 0; i < 4; i++) r.call(this); + for (var i = 0; i < 8; i++) o[i] ^= n[i + 4 & 7]; + if (e) { + var s = e.words, + a = s[0], + c = s[1], + h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), + l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), + f = h >>> 16 | 4294901760 & l, + u = l << 16 | 65535 & h; + o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; + for (var i = 0; i < 4; i++) r.call(this); + } + }, + _doProcessBlock: function _doProcessBlock(t, e) { + var i = this._X; + r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; + for (var n = 0; n < 4; n++) s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; + }, + blockSize: 4, + ivSize: 2 + }); + e.Rabbit = n._createHelper(h); + }(), t.mode.CTR = function () { + var r = t.lib.BlockCipherMode.extend(), + e = r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + var e = this._cipher, + i = e.blockSize, + n = this._iv, + o = this._counter; + n && (o = this._counter = n.slice(0), this._iv = void 0); + var s = o.slice(0); + e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; + for (var a = 0; a < i; a++) t[r + a] ^= s[a]; + } + }); + return r.Decryptor = e, r; + }(), function () { + function r() { + for (var t = this._X, r = this._C, e = 0; e < 8; e++) a[e] = r[e]; + r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; + for (var e = 0; e < 8; e++) { + var i = t[e] + r[e], + n = 65535 & i, + o = i >>> 16, + s = ((n * n >>> 17) + n * o >>> 15) + o * o, + h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); + c[e] = s ^ h; + } + t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; + } + var e = t, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = [], + a = [], + c = [], + h = o.RabbitLegacy = n.extend({ + _doReset: function _doReset() { + var t = this._key.words, + e = this.cfg.iv, + i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], + n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; + this._b = 0; + for (var o = 0; o < 4; o++) r.call(this); + for (var o = 0; o < 8; o++) n[o] ^= i[o + 4 & 7]; + if (e) { + var s = e.words, + a = s[0], + c = s[1], + h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), + l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), + f = h >>> 16 | 4294901760 & l, + u = l << 16 | 65535 & h; + n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; + for (var o = 0; o < 4; o++) r.call(this); + } + }, + _doProcessBlock: function _doProcessBlock(t, e) { + var i = this._X; + r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; + for (var n = 0; n < 4; n++) s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; + }, + blockSize: 4, + ivSize: 2 + }); + e.RabbitLegacy = n._createHelper(h); + }(), t.pad.ZeroPadding = { + pad: function pad(t, r) { + var e = 4 * r; + t.clamp(), t.sigBytes += e - (t.sigBytes % e || e); + }, + unpad: function unpad(t) { + for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);) e--; + t.sigBytes = e + 1; + } + }, t; }); -exports["default"] = _default; -module.exports = exports["default"]; +cc._RF.pop(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENyeXB0b1xcY3J5cHRvLWpzLm1pbi5qcyJdLCJuYW1lcyI6WyJ0IiwiciIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJDcnlwdG9KUyIsImUiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm90b3R5cGUiLCJpIiwibiIsImxpYiIsIm8iLCJCYXNlIiwiZXh0ZW5kIiwibWl4SW4iLCJoYXNPd25Qcm9wZXJ0eSIsImluaXQiLCIkc3VwZXIiLCJhcHBseSIsImFyZ3VtZW50cyIsInRvU3RyaW5nIiwiY2xvbmUiLCJzIiwiV29yZEFycmF5Iiwid29yZHMiLCJzaWdCeXRlcyIsImxlbmd0aCIsImMiLCJzdHJpbmdpZnkiLCJjb25jYXQiLCJjbGFtcCIsImNlaWwiLCJjYWxsIiwic2xpY2UiLCJyYW5kb20iLCJhIiwicHVzaCIsImVuYyIsIkhleCIsImpvaW4iLCJwYXJzZSIsInBhcnNlSW50Iiwic3Vic3RyIiwiaCIsIkxhdGluMSIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsImNoYXJDb2RlQXQiLCJsIiwiVXRmOCIsImRlY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsIkVycm9yIiwidW5lc2NhcGUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJmIiwiQnVmZmVyZWRCbG9ja0FsZ29yaXRobSIsInJlc2V0IiwiX2RhdGEiLCJfbkRhdGFCeXRlcyIsIl9hcHBlbmQiLCJfcHJvY2VzcyIsImJsb2NrU2l6ZSIsIm1heCIsIl9taW5CdWZmZXJTaXplIiwibWluIiwiX2RvUHJvY2Vzc0Jsb2NrIiwidSIsInNwbGljZSIsIkhhc2hlciIsImNmZyIsIl9kb1Jlc2V0IiwidXBkYXRlIiwiZmluYWxpemUiLCJfZG9GaW5hbGl6ZSIsIl9jcmVhdGVIZWxwZXIiLCJfY3JlYXRlSG1hY0hlbHBlciIsIkhNQUMiLCJhbGdvIiwiTWF0aCIsIkJhc2U2NCIsIl9tYXAiLCJjaGFyQXQiLCJfcmV2ZXJzZU1hcCIsImluZGV4T2YiLCJhYnMiLCJzaW4iLCJNRDUiLCJfaGFzaCIsImQiLCJ2IiwicCIsIl8iLCJ5IiwiZyIsIkIiLCJ3IiwiayIsIlMiLCJtIiwieCIsImIiLCJIIiwieiIsIkEiLCJDIiwiRCIsImZsb29yIiwiSG1hY01ENSIsIlNIQTEiLCJIbWFjU0hBMSIsInNxcnQiLCJwb3ciLCJTSEEyNTYiLCJIbWFjU0hBMjU2IiwiVXRmMTYiLCJVdGYxNkJFIiwiVXRmMTZMRSIsIkFycmF5QnVmZmVyIiwiVWludDhBcnJheSIsIkludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiSW50MTZBcnJheSIsIlVpbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIlVpbnQzMkFycmF5IiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiYnVmZmVyIiwiYnl0ZU9mZnNldCIsImJ5dGVMZW5ndGgiLCJSSVBFTUQxNjAiLCJSIiwiRSIsIk0iLCJGIiwiSG1hY1JJUEVNRDE2MCIsIl9oYXNoZXIiLCJfb0tleSIsIl9pS2V5IiwiUEJLREYyIiwia2V5U2l6ZSIsImhhc2hlciIsIml0ZXJhdGlvbnMiLCJjb21wdXRlIiwiRXZwS0RGIiwiU0hBMjI0IiwiSG1hY1NIQTIyNCIsIng2NCIsIldvcmQiLCJoaWdoIiwibG93IiwidG9YMzIiLCJTSEEzIiwib3V0cHV0TGVuZ3RoIiwiX3N0YXRlIiwiSG1hY1NIQTMiLCJTSEE1MTIiLCJQIiwiVyIsIk8iLCJVIiwiSSIsIksiLCJYIiwiTCIsImoiLCJOIiwiVCIsIloiLCJxIiwiRyIsIkoiLCIkIiwiUSIsIlYiLCJZIiwidHQiLCJydCIsImV0IiwiaXQiLCJudCIsIm90Iiwic3QiLCJhdCIsImN0IiwiaHQiLCJsdCIsImZ0IiwidXQiLCJkdCIsInZ0IiwicHQiLCJfdCIsInl0IiwiZ3QiLCJCdCIsInd0Iiwia3QiLCJTdCIsIm10IiwieHQiLCJidCIsIkhtYWNTSEE1MTIiLCJTSEEzODQiLCJIbWFjU0hBMzg0IiwiQ2lwaGVyIiwiY3JlYXRlRW5jcnlwdG9yIiwiX0VOQ19YRk9STV9NT0RFIiwiY3JlYXRlRGVjcnlwdG9yIiwiX0RFQ19YRk9STV9NT0RFIiwiX3hmb3JtTW9kZSIsIl9rZXkiLCJwcm9jZXNzIiwiaXZTaXplIiwiZW5jcnlwdCIsImRlY3J5cHQiLCJTdHJlYW1DaXBoZXIiLCJtb2RlIiwiQmxvY2tDaXBoZXJNb2RlIiwiRW5jcnlwdG9yIiwiRGVjcnlwdG9yIiwiX2NpcGhlciIsIl9pdiIsIkNCQyIsIl9wcmV2QmxvY2siLCJwcm9jZXNzQmxvY2siLCJlbmNyeXB0QmxvY2siLCJkZWNyeXB0QmxvY2siLCJwYWQiLCJQa2NzNyIsInVucGFkIiwiQmxvY2tDaXBoZXIiLCJwYWRkaW5nIiwiaXYiLCJfbW9kZSIsIl9fY3JlYXRvciIsIkNpcGhlclBhcmFtcyIsImZvcm1hdHRlciIsImZvcm1hdCIsIk9wZW5TU0wiLCJjaXBoZXJ0ZXh0Iiwic2FsdCIsIlNlcmlhbGl6YWJsZUNpcGhlciIsImtleSIsImFsZ29yaXRobSIsIl9wYXJzZSIsImtkZiIsImV4ZWN1dGUiLCJQYXNzd29yZEJhc2VkQ2lwaGVyIiwiQ0ZCIiwiRUNCIiwiQW5zaVg5MjMiLCJJc28xMDEyNiIsIklzbzk3OTcxIiwiWmVyb1BhZGRpbmciLCJPRkIiLCJfa2V5c3RyZWFtIiwiTm9QYWRkaW5nIiwiQUVTIiwiX25Sb3VuZHMiLCJfa2V5UHJpb3JSZXNldCIsIl9rZXlTY2hlZHVsZSIsIl9pbnZLZXlTY2hlZHVsZSIsIl9kb0NyeXB0QmxvY2siLCJfbEJsb2NrIiwiX3JCbG9jayIsIkRFUyIsIl9zdWJLZXlzIiwiX2ludlN1YktleXMiLCJUcmlwbGVERVMiLCJfZGVzMSIsIl9kZXMyIiwiX2RlczMiLCJfUyIsIl9pIiwiX2oiLCJSQzQiLCJSQzREcm9wIiwiZHJvcCIsIkNUUkdsYWRtYW4iLCJfY291bnRlciIsIl9YIiwiX0MiLCJfYiIsIlJhYmJpdCIsIkNUUiIsIlJhYmJpdExlZ2FjeSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsQ0FBQyxVQUFTQSxDQUFDLEVBQUNDLENBQUMsRUFBQztFQUFDLFFBQVEsSUFBRSxP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Q2hCLENBQUMsQ0FBQ2pCLEdBQUc7TUFBQ3NDLENBQUMsR0FBQ0wsQ0FBQyxDQUFDcEIsU0FBUztNQUFDZ0MsQ0FBQyxHQUFDWixDQUFDLENBQUMwQixNQUFNO01BQUNGLENBQUMsR0FBQ3hDLENBQUMsQ0FBQ21ELElBQUk7TUFBQ1csQ0FBQyxHQUFDekMsQ0FBQyxDQUFDMUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDO01BQUNvRixDQUFDLEdBQUMxQyxDQUFDLENBQUMxQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUM7TUFBQ3FGLENBQUMsR0FBQzNDLENBQUMsQ0FBQzFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztNQUFDc0YsQ0FBQyxHQUFDNUMsQ0FBQyxDQUFDMUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDO01BQUN1RixDQUFDLEdBQUM3QyxDQUFDLENBQUMxQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLFVBQVUs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QUMsR0FBQ1AsQ0FBQztNQUFDVyxDQUFDLEdBQUNKLENBQUMsQ0FBQ00sR0FBRztNQUFDRCxDQUFDLEdBQUNELENBQUMsQ0FBQzZELE1BQU07TUFBQzFELENBQUMsR0FBQ1AsQ0FBQyxDQUFDZ0osR0FBRztNQUFDOUgsQ0FBQyxHQUFDWCxDQUFDLENBQUMwSSxJQUFJO01BQUNsSCxDQUFDLEdBQUN4QixDQUFDLENBQUNZLFNBQVM7TUFBQ0ksQ0FBQyxHQUFDdkIsQ0FBQyxDQUFDMEUsSUFBSTtNQUFDbkMsQ0FBQyxHQUFDLENBQUM3QyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxDQUFDO01BQUNrRCxDQUFDLEdBQUMsRUFBRTtJQUFDLENBQUMsWUFBVTtNQUFDLEtBQUksSUFBSW5ELENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQyxFQUFFLEVBQUNBLENBQUMsRUFBRSxFQUFDbUQsQ0FBQyxDQUFDbkQsQ0FBQyxDQUFDLEdBQUNDLENBQUMsRUFBRTtJQUFBLENBQUMsRUFBRTtJQUFDLElBQUl5RCxDQUFDLEdBQUM1QixDQUFDLENBQUNrSSxNQUFNLEdBQUNwSixDQUFDLENBQUNJLE1BQU0sQ0FBQztNQUFDMEQsUUFBUSxFQUFDLFNBQUFBLFNBQUEsRUFBVTtRQUFDLElBQUksQ0FBQ2lCLEtBQUssR0FBQyxJQUFJckQsQ0FBQyxDQUFDbkIsSUFBSSxDQUFDLENBQUMsSUFBSU0sQ0FBQyxDQUFDTixJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUlNLENBQUMsQ0FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxJQUFJTSxDQUFDLENBQUNOLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSU0sQ0FBQyxDQUFDTixJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUlNLENBQUMsQ0FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxJQUFJTSxDQUFDLENBQUNOLElBQUksQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsSUFBSU0sQ0FBQyxDQUFDTixJQUFJLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUlNLENBQUMsQ0FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO01BQUEsQ0FBQztNQUFDa0QsZUFBZSxFQUFDLFNBQUFBLGdCQUFTckUsQ0FBQyxFQUFDQyxDQUFDLEVBQUM7UUFBQyxLQUFJLElBQUlNLENBQUMsR0FBQyxJQUFJLENBQUNvRixLQUFLLENBQUNoRSxLQUFLLEVBQUNoQixDQUFDLEdBQUNKLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ0ssQ0FBQyxHQUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNPLENBQUMsR0FBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDa0IsQ0FBQyxHQUFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDK0IsQ0FBQyxHQUFDL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDdUIsQ0FBQyxHQUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDbUQsQ0FBQyxHQUFDbkQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDK0QsQ0FBQyxHQUFDL0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDcUYsQ0FBQyxHQUFDakYsQ0FBQyxDQUFDOEksSUFBSSxFQUFDNUQsQ0FBQyxHQUFDbEYsQ0FBQyxDQUFDK0ksR0FBRyxFQUFDNUQsQ0FBQyxHQUFDbEYsQ0FBQyxDQUFDNkksSUFBSSxFQUFDMUQsQ0FBQyxHQUFDbkYsQ0FBQyxDQUFDOEksR0FBRyxFQUFDMUQsQ0FBQyxHQUFDbEYsQ0FBQyxDQUFDMkksSUFBSSxFQUFDeEQsQ0FBQyxHQUFDbkYsQ0FBQyxDQUFDNEksR0FBRyxFQUFDeEQsQ0FBQyxHQUFDekUsQ0FBQyxDQUFDZ0ksSUFBSSxFQUFDdEQsQ0FBQyxHQUFDMUUsQ0FBQyxDQUFDaUksR0FBRyxFQUFDdEQsQ0FBQyxHQUFDOUQsQ0FBQyxDQUFDbUgsSUFBSSxFQUFDcEQsQ0FBQyxHQUFDL0QsQ0FBQyxDQUFDb0gsR0FBRyxFQUFDcEQsQ0FBQyxHQUFDeEUsQ0FBQyxDQUFDMkgsSUFBSSxFQUFDbEQsQ0FBQyxHQUFDekUsQ0FBQyxDQUFDNEgsR0FBRyxFQUFDbEQsQ0FBQyxHQUFDOUMsQ0FBQyxDQUFDK0YsSUFBSSxFQUFDaEQsQ0FBQyxHQUFDL0MsQ0FBQyxDQUFDZ0csR0FBRyxFQUFDaEQsQ0FBQyxHQUFDcEMsQ0FBQyxDQUFDbUYsSUFBSSxFQUFDOUMsQ0FBQyxHQUFDckMsQ0FBQyxDQUFDb0YsR0FBRyxFQUFDOUMsQ0FBQyxHQUFDaEIsQ0FBQyxFQUFDaUIsQ0FBQyxHQUFDaEIsQ0FBQyxFQUFDMEMsQ0FBQyxHQUFDekMsQ0FBQyxFQUFDMEMsQ0FBQyxHQUFDekMsQ0FBQyxFQUFDMEMsQ0FBQyxHQUFDekMsQ0FBQyxFQUFDMEMsQ0FBQyxHQUFDekMsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLEVBQUUsRUFBQ0EsQ0FBQyxFQUFFLEVBQUM7VUFBQyxJQUFJQyxDQUFDLEdBQUN6SCxDQUFDLENBQUN3SCxDQUFDLENBQUM7VUFBQyxJQUFHQSxDQUFDLEdBQUMsRUFBRSxFQUFDLElB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QUN5QyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQ3ZDLENBQUMsR0FBQzFFLENBQUMsQ0FBQ2lJLEdBQUcsR0FBQ3ZELENBQUMsR0FBQytELENBQUMsRUFBQ3pJLENBQUMsQ0FBQ2dJLElBQUksR0FBQ3ZELENBQUMsR0FBQytELENBQUMsSUFBRTlELENBQUMsS0FBRyxDQUFDLEdBQUMrRCxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQzdELENBQUMsR0FBQy9ELENBQUMsQ0FBQ29ILEdBQUcsR0FBQ3JELENBQUMsR0FBQytELENBQUMsRUFBQzlILENBQUMsQ0FBQ21ILElBQUksR0FBQ3JELENBQUMsR0FBQytELENBQUMsSUFBRTlELENBQUMsS0FBRyxDQUFDLEdBQUMrRCxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQzdELENBQUMsR0FBQ3pFLENBQUMsQ0FBQzRILEdBQUcsR0FBQ25ELENBQUMsR0FBQytELENBQUMsRUFBQ3hJLENBQUMsQ0FBQzJILElBQUksR0FBQ25ELENBQUMsR0FBQytELENBQUMsSUFBRTlELENBQUMsS0FBRyxDQUFDLEdBQUMrRCxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQzdELENBQUMsR0FBQy9DLENBQUMsQ0FBQ2dHLEdBQUcsR0FBQ2pELENBQUMsR0FBQytELENBQUMsRUFBQzlHLENBQUMsQ0FBQytGLElBQUksR0FBQ2pELENBQUMsR0FBQytELENBQUMsSUFBRTlELENBQUMsS0FBRyxDQUFDLEdBQUMrRCxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQzdELENBQUMsR0FBQ3JDLENBQUMsQ0FBQ29GLEdBQUcsR0FBQy9DLENBQUMsR0FBQytELENBQUMsRUFBQ3BHLENBQUMsQ0FBQ21GLElBQUksR0FBQy9DLENBQUMsR0FBQytELENBQUMsSUFBRTlELENBQUMsS0FBRyxDQUFDLEdBQUMrRCxDQUFDLEtBQUcs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QUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQztNQUFDZ0IsQ0FBQyxHQUFDLENBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLENBQUM7TUFBQ0ssQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxDQUFDO01BQUNPLENBQUMsR0FBQyxDQUFDO1FBQUMsQ0FBQyxFQUFDLE9BQU87UUFBQyxTQUFTLEVBQUMsS0FBSztRQUFDLFNBQVMsRUFBQyxPQUFPO1FBQUMsU0FBUyxFQUFDLENBQUM7UUFBQyxVQUFVLEVBQUMsR0FBRztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxHQUFHO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLEtBQUs7UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxDQUFDO1FBQUMsVUFBVSxFQUFDLEtBQUs7UUFBQyxTQUFTLEVBQUMsQ0FBQztRQUFDLFNBQVMsRUFBQyxPQUFPO1FBQUMsU0FBUyxFQUFDLEtBQUs7UUFBQyxTQUFTLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLEdBQUc7UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxDQUFDO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLEdBQUc7UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLENBQUMsRUFBQyxLQUFLO1FBQUMsU0FBUyxFQUFDLENBQUM7UUFBQyxTQUFTLEVBQUMsT0FBTztRQUFDLFNBQVMsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxHQUFHO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxHQUFHO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxDQUFDO1FBQUMsU0FBUyxFQUFDLE9BQU87UUFBQyxTQUFTLEVBQUMsT0FBTztRQUFDLFNBQVMsRUFBQyxPQUFPO1FBQUMsU0FBUyxFQUFDLEdBQUc7UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLENBQUM7UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsR0FBRztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsQ0FBQztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDO01BQU8sQ0FBQyxFQUFDO1FBQUMsQ0FBQyxFQUFDLFVBQVU7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxNQUFNO1FBQUMsUUFBUSxFQUFDLFVBQVU7UUFBQyxRQUFRLEVBQUMsVUFBVTtRQUFDLFFBQVEsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsRUFBRTtRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsQ0FBQztRQUFDLFNBQVMsRUFBQyxLQUFLO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLFFBQVEsRUFBQyxNQUFNO1FBQUMsUUFBUSxFQUFDLEVBQUU7UUFBQyxRQUFRLEVBQUMsVUFBVTtRQUFDLFFBQVEsRUFBQyxVQUFVO1FBQUMsUUFBUSxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsTUFBTTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsQ0FBQztRQUFDLFNBQVMsRUFBQyxLQUFLO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsS0FBSztRQUFDLFNBQVMsRUFBQyxDQUFDO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsRUFBRTtRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLEtBQUs7UUFBQyxTQUFTLEVBQUMsS0FBSztRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsTUFBTTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLEtBQUs7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLEVBQUU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLENBQUM7UUFBQyxTQUFTLEVBQUMsS0FBSztRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDO01BQU0sQ0FBQyxFQUFDO1FBQUMsQ0FBQyxFQUFDLEdBQUc7UUFBQyxPQUFPLEVBQUMsQ0FBQztRQUFDLE9BQU8sRUFBQyxRQUFRO1FBQUMsT0FBTyxFQUFDLEtBQUs7UUFBQyxPQUFPLEVBQUMsS0FBSztRQUFDLE9BQU8sRUFBQyxRQUFRO1FBQUMsT0FBTyxFQUFDLFFBQVE7UUFBQyxPQUFPLEVBQUMsUUFBUTtRQUFDLE9BQU8sRUFBQyxRQUFRO1FBQUMsT0FBTyxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxDQUFDO1FBQUMsUUFBUSxFQUFDLEdBQUc7UUFBQyxNQUFNLEVBQUMsUUFBUTtRQUFDLE9BQU8sRUFBQyxRQUFRO1FBQUMsT0FBTyxFQUFDLENBQUM7UUFBQyxPQUFPLEVBQUMsUUFBUTtRQUFDLE9BQU8sRUFBQyxRQUFRO1FBQUMsT0FBTyxFQUFDLEtBQUs7UUFBQyxPQUFPLEVBQUMsS0FBSztRQUFDLE9BQU8sRUFBQyxHQUFHO1FBQUMsT0FBTyxFQUFDLENBQUM7UUFBQyxPQUFPLEVBQUMsR0FBRztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLEtBQUs7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLEtBQUs7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLEdBQUc7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLENBQUM7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLENBQUM7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLEdBQUc7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsR0FBRztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLENBQUM7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLEdBQUc7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxDQUFDO1FBQUMsUUFBUSxFQUFDO01BQUssQ0FBQyxFQUFDO1FBQUMsQ0FBQyxFQUFDLFVBQVU7UUFBQyxLQUFLLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxPQUFPO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxNQUFNLEVBQUMsQ0FBQztRQUFDLE1BQU0sRUFBQyxPQUFPO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxNQUFNLEVBQUMsT0FBTztRQUFDLE1BQU0sRUFBQyxVQUFVO1FBQUMsTUFBTSxFQUFDLE9BQU87UUFBQyxNQUFNLEVBQUMsRUFBRTtRQUFDLE1BQU0sRUFBQyxVQUFVO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxNQUFNLEVBQUMsSUFBSTtRQUFDLE1BQU0sRUFBQyxJQUFJO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxLQUFLLEVBQUMsVUFBVTtRQUFDLEtBQUssRUFBQyxFQUFFO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxPQUFPO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxNQUFNLEVBQUMsQ0FBQztRQUFDLE1BQU0sRUFBQyxVQUFVO1FBQUMsTUFBTSxFQUFDLElBQUk7UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxPQUFPO1FBQUMsTUFBTSxFQUFDLElBQUk7UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxPQUFPO1FBQUMsTUFBTSxFQUFDLE9BQU87UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxPQUFPO1FBQUMsT0FBTyxFQUFDLE9BQU87UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxDQUFDO1FBQUMsT0FBTyxFQUFDLElBQUk7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsT0FBTztRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLE9BQU87UUFBQyxPQUFPLEVBQUMsRUFBRTtRQUFDLE9BQU8sRUFBQyxJQUFJO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxDQUFDO1FBQUMsT0FBTyxFQUFDLE9BQU87UUFBQyxPQUFPLEVBQUMsT0FBTztRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsRUFBRTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLElBQUk7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLElBQUk7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxPQUFPO1FBQUMsT0FBTyxFQUFDO01BQU8sQ0FBQyxFQUFDO1FBQUMsQ0FBQyxFQUFDLEdBQUc7UUFBQyxJQUFJLEVBQUMsUUFBUTtRQUFDLElBQUksRUFBQyxNQUFNO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxRQUFRO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsTUFBTTtRQUFDLEtBQUssRUFBQyxRQUFRO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsQ0FBQztRQUFDLEtBQUssRUFBQyxRQUFRO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsUUFBUTtRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLEdBQUc7UUFBQyxLQUFLLEVBQUMsUUFBUTtRQUFDLEtBQUssRUFBQyxNQUFNO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsQ0FBQztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsTUFBTTtRQUFDLEtBQUssRUFBQyxNQUFNO1FBQUMsS0FBSyxFQUFDLEdBQUc7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLE1BQU0sRUFBQyxTQUFTO1FBQUMsTUFBTSxFQUFDLFFBQVE7UUFBQyxNQUFNLEVBQUMsU0FBUztRQUFDLE1BQU0sRUFBQyxNQUFNO1FBQUMsTUFBTSxFQUFDLFNBQVM7UUFBQyxNQUFNLEVBQUMsQ0FBQztRQUFDLE1BQU0sRUFBQyxRQUFRO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsUUFBUTtRQUFDLEtBQUssRUFBQyxRQUFRO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxRQUFRO1FBQUMsS0FBSyxFQUFDLEdBQUc7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLE1BQU0sRUFBQyxNQUFNO1FBQUMsTUFBTSxFQUFDLFNBQVM7UUFBQyxNQUFNLEVBQUMsQ0FBQztRQUFDLE1BQU0sRUFBQyxTQUFTO1FBQUMsTUFBTSxFQUFDLFFBQVE7UUFBQyxNQUFNLEVBQUMsTUFBTTtRQUFDLE1BQU0sRUFBQyxTQUFTO1FBQUMsTUFBTSxFQUFDO01BQVMsQ0FBQyxFQUFDO1FBQUMsQ0FBQyxFQUFDLFNBQVM7UUFBQyxHQUFHLEVBQUMsSUFBSTtRQUFDLEdBQUcsRUFBQyxTQUFTO1FBQUMsR0FBRyxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxDQUFDO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxDQUFDO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxJQUFJO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxHQUFHLEVBQUMsU0FBUztRQUFDLEdBQUcsRUFBQyxTQUFTO1FBQUMsR0FBRyxFQUFDLENBQUM7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxJQUFJO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsSUFBSTtRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsQ0FBQztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxJQUFJO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxDQUFDO1FBQUMsSUFBSSxFQUFDLENBQUM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxJQUFJO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLENBQUM7UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxJQUFJO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsSUFBSTtRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsQ0FBQztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDO01BQVMsQ0FBQyxFQUFDO1FBQUMsQ0FBQyxFQUFDLE9BQU87UUFBQyxFQUFFLEVBQUMsUUFBUTtRQUFDLEVBQUUsRUFBQyxJQUFJO1FBQUMsRUFBRSxFQUFDLE9BQU87UUFBQyxFQUFFLEVBQUMsUUFBUTtRQUFDLEVBQUUsRUFBQyxDQUFDO1FBQUMsRUFBRSxFQUFDLENBQUM7UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsSUFBSTtRQUFDLEdBQUcsRUFBQyxPQUFPO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxDQUFDLEVBQUMsUUFBUTtRQUFDLEVBQUUsRUFBQyxDQUFDO1FBQUMsRUFBRSxFQUFDLFFBQVE7UUFBQyxFQUFFLEVBQUMsUUFBUTtRQUFDLEVBQUUsRUFBQyxPQUFPO1FBQUMsRUFBRSxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxJQUFJO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsSUFBSTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLENBQUM7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsSUFBSTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsQ0FBQztRQUFDLEdBQUcsRUFBQyxDQUFDO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxJQUFJO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLENBQUM7UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxPQUFPO1FBQUMsR0FBRyxFQUFDLElBQUk7UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsQ0FBQztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsSUFBSTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDO01BQU8sQ0FBQyxFQUFDO1FBQUMsQ0FBQyxFQUFDLFNBQVM7UUFBQyxDQUFDLEVBQUMsTUFBTTtRQUFDLENBQUMsRUFBQyxTQUFTO1FBQUMsQ0FBQyxFQUFDLEVBQUU7UUFBQyxDQUFDLEVBQUMsTUFBTTtRQUFDLENBQUMsRUFBQyxTQUFTO1FBQUMsQ0FBQyxFQUFDLFNBQVM7UUFBQyxDQUFDLEVBQUMsSUFBSTtRQUFDLENBQUMsRUFBQyxTQUFTO1FBQUMsQ0FBQyxFQUFDLFNBQVM7UUFBQyxFQUFFLEVBQUMsTUFBTTtRQUFDLEVBQUUsRUFBQyxTQUFTO1FBQUMsRUFBRSxFQUFDLElBQUk7UUFBQyxFQUFFLEVBQUMsQ0FBQztRQUFDLEVBQUUsRUFBQyxTQUFTO1FBQUMsRUFBRSxFQUFDLE1BQU07UUFBQyxVQUFVLEVBQUMsSUFBSTtRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLE1BQU07UUFBQyxVQUFVLEVBQUMsTUFBTTtRQUFDLFVBQVUsRUFBQyxFQUFFO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsSUFBSTtRQUFDLFVBQVUsRUFBQyxNQUFNO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsQ0FBQztRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsTUFBTTtRQUFDLEVBQUUsRUFBQyxNQUFNO1FBQUMsRUFBRSxFQUFDLFNBQVM7UUFBQyxFQUFFLEVBQUMsRUFBRTtRQUFDLEVBQUUsRUFBQyxJQUFJO1FBQUMsRUFBRSxFQUFDLFNBQVM7UUFBQyxFQUFFLEVBQUMsU0FBUztRQUFDLEVBQUUsRUFBQyxTQUFTO1FBQUMsRUFBRSxFQUFDLE1BQU07UUFBQyxFQUFFLEVBQUMsQ0FBQztRQUFDLEVBQUUsRUFBQyxNQUFNO1FBQUMsRUFBRSxFQUFDLFNBQVM7UUFBQyxFQUFFLEVBQUMsU0FBUztRQUFDLEVBQUUsRUFBQyxTQUFTO1FBQUMsRUFBRSxFQUFDLE1BQU07UUFBQyxFQUFFLEVBQUMsSUFBSTtRQUFDLEVBQUUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLE1BQU07UUFBQyxVQUFVLEVBQUMsSUFBSTtRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLE1BQU07UUFBQyxVQUFVLEVBQUMsRUFBRTtRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxDQUFDO1FBQUMsVUFBVSxFQUFDLE1BQU07UUFBQyxVQUFVLEVBQUMsSUFBSTtRQUFDLFVBQVUsRUFBQyxNQUFNO1FBQUMsVUFBVSxFQUFDO01BQVMsQ0FBQyxDQUFDO01BQUNZLENBQUMsR0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxVQUFVLENBQUM7TUFBQ3NCLENBQUMsR0FBQ3RELENBQUMsQ0FBQ3dPLEdBQUcsR0FBQ3JQLENBQUMsQ0FB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QUksQ0FBQzhSLEVBQUUsR0FBQyxDQUFDLEVBQUM5UixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxTQUFTLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxTQUFTLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDeVAsRUFBRSxHQUFDOVIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUM7TUFBQyxLQUFJLElBQUkvQixDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEVBQUUsRUFBQztRQUFDLElBQUlJLENBQUMsR0FBQ1gsQ0FBQyxDQUFDTyxDQUFDLENBQUMsR0FBQ04sQ0FBQyxDQUFDTSxDQUFDLENBQUM7VUFBQ0ssQ0FBQyxHQUFDLEtBQUssR0FBQ0QsQ0FBQztVQUFDRyxDQUFDLEdBQUNILENBQUMsS0FBRyxFQUFFO1VBQUNjLENBQUMsR0FBQyxDQUFDLENBQUNiLENBQUMsR0FBQ0EsQ0FBQyxLQUFHLEVBQUUsSUFBRUEsQ0FBQyxHQUFDRSxDQUFDLEtBQUcsRUFBRSxJQUFFQSxDQUFDLEdBQUNBLENBQUM7VUFBQ2dDLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxHQUFDbkMsQ0FBQyxJQUFFQSxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsS0FBSyxHQUFDQSxDQUFDLElBQUVBLENBQUMsR0FBQyxDQUFDLENBQUM7UUFBQ21CLENBQUMsQ0FBQ3ZCLENBQUMsQ0FBQyxHQUFDa0IsQ0FBQyxHQUFDcUIsQ0FBQztNQUFBO01BQUM5QyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxD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QUFFLEdBQUMsQ0FBQzlSLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7VUFBQyxJQUFJLENBQUMrUixFQUFFLEdBQUMsQ0FBQztVQUFDLEtBQUksSUFBSXBSLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsRUFBRSxFQUFDVixDQUFDLENBQUNrQyxJQUFJLENBQUMsSUFBSSxDQUFDO1VBQUMsS0FBSSxJQUFJeEIsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxFQUFFLEVBQUNHLENBQUMsQ0FBQ0gsQ0FBQyxDQUFDLElBQUVDLENBQUMsQ0FBQ0QsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7VUFBQyxJQUFHSixDQUFDLEVBQUM7WUFBQyxJQUFJa0IsQ0FBQyxHQUFDbEIsQ0FBQyxDQUFDb0IsS0FBSztjQUFDVyxDQUFDLEdBQUNiLENBQUMsQ0FBQyxDQUFDLENBQUM7Y0FBQ0ssQ0FBQyxHQUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDO2NBQUNxQixDQUFDLEdBQUMsUUFBUSxJQUFFUixDQUFDLElBQUUsQ0FBQyxHQUFDQSxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxJQUFFQSxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLEtBQUcsQ0FBQyxDQUFDO2NBQUNhLENBQUMsR0FBQyxRQUFRLElBQUVyQixDQUFDLElBQUUsQ0FBQyxHQUFDQSxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxJQUFFQSxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLEtBQUcsQ0FBQyxDQUFDO2NBQUM0QixDQUFDLEdBQUNaLENBQUMsS0FBRyxFQUFFLEdBQUMsVUFBVSxHQUFDSyxDQUFDO2NBQUNtQixDQUFDLEdBQUNuQixDQUFDLElBQUUsRUFBRSxHQUFDLEtBQUssR0FBQ0wsQ0FBQztZQUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFZ0MsQ0FBQyxFQUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFNEMsQ0FBQyxFQUFDNUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFcUMsQ0FBQyxFQUFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFd0QsQ0FBQyxFQUFDeEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFZ0MsQ0FBQyxFQUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFNEMsQ0FBQyxFQUFDNUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFcUMsQ0FBQyxFQUFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFd0QsQ0FBQztZQUFDLEtBQUksSUFBSTNELENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsRUFBRSxFQUFDVixDQUFDLENBQUNrQyxJQUFJLENBQUMsSUFBSSxDQUFDO1VBQUE7UUFBQyxDQUFDO1FBQUNrQyxlQUFlLEVBQUMsU0FBQUEsZ0JBQVNyRSxDQUFDLEVBQUNPLENBQUMsRUFBQztVQUFDLElBQUlJLENBQUMsR0FBQyxJQUFJLENBQUNrUixFQUFFO1VBQUM1UixDQUFDLENBQUNrQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUNWLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxFQUFDYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNkLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQ2MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDZCxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEVBQUNjLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRTtVQUFDLEtBQUksSUFBSUMsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxFQUFFLEVBQUNhLENBQUMsQ0FBQ2IsQ0FBQyxDQUFDLEdBQUMsUUFBUSxJQUFFYSxDQUFDLENBQUNiLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQ2EsQ0FBQyxDQUFDYixDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLElBQUVhLENBQUMsQ0FBQ2IsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDYSxDQUFDLENBQUNiLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FB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ckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsU0FBUyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQ3lQLEVBQUUsR0FBQzlSLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDO01BQUMsS0FBSSxJQUFJL0IsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxFQUFFLEVBQUM7UUFBQyxJQUFJSSxDQUFDLEdBQUNYLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLEdBQUNOLENBQUMsQ0FBQ00sQ0FBQyxDQUFDO1VBQUNLLENBQUMsR0FBQyxLQUFLLEdBQUNELENBQUM7VUFBQ0csQ0FBQyxHQUFDSCxDQUFDLEtBQUcsRUFBRTtVQUFDYyxDQUFDLEdBQUMsQ0FBQyxDQUFDYixDQUFDLEdBQUNBLENBQUMsS0FBRyxFQUFFLElBQUVBLENBQUMsR0FBQ0UsQ0FBQyxLQUFHLEVBQUUsSUFBRUEsQ0FBQyxHQUFDQSxDQUFDO1VBQUNnQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQ25DLENBQUMsSUFBRUEsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLEtBQUssR0FBQ0EsQ0FBQyxJQUFFQSxDQUFDLEdBQUMsQ0FBQyxDQUFDO1FBQUNtQixDQUFDLENBQUN2QixDQUFDLENBQUMsR0FBQ2tCLENBQUMsR0FBQ3FCLENBQUM7TUFBQTtNQUFDOUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUM7SUFBQTtJQUFDLElBQUl2QixDQUFDLEdBQUNQLENBQUM7TUFBQ1csQ0FBQyxHQUFDSixDQUFDLENBQUNNLEdBQUc7TUFBQ0QsQ0FBQyxHQUFDRCxDQUFDLENBQUNpTixZQUFZO01BQUM5TSxDQUFDLEdBQUNQLENBQUMsQ0FBQzBFLElBQUk7TUFBQ3hELENBQUMsR0FBQyxFQUFFO01BQUNhLENBQUMsR0FBQyxFQUFFO01BQUNSLENBQUMsR0FBQyxFQUFFO01BQUNnQixDQUFDLEdBQUNoQyxDQUFDLENBQUNvUixZQUFZLEdBQUN0UixDQUFDLENBQUNJLE1BQU0sQ0FBQztRQUFDMEQsUUFBUSxFQUFDLFNBQUFBLFNBQUEsRUFBVTtVQUFDLElBQUkxRSxDQUFDLEdBQUMsSUFBSSxDQUFDdU4sSUFBSSxDQUFDNUwsS0FBSztZQUFDcEIsQ0FBQyxHQUFDLElBQUksQ0FBQ2tFLEdBQUcsQ0FBQ29LLEVBQUU7WUFBQ2xPLENBQUMsR0FBQyxJQUFJLENBQUNrUixFQUFFLEdBQUMsQ0FBQzdSLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQztZQUFDWSxDQUFDLEdBQUMsSUFBSSxDQUFDa1IsRUFBRSxHQUFDLENBQUM5UixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1VBQUMsSUFBSSxDQUFDK1IsRUFBRSxHQUFDLENBQUM7VUFBQyxLQUFJLElBQUlqUixDQUFD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QUUsR0FBQ0EsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFDLEdBQUVBLENBQUMsRUFBRTtNQUFDUCxDQUFDLENBQUM0QixRQUFRLEdBQUNyQixDQUFDLEdBQUMsQ0FBQztJQUFBO0VBQUMsQ0FBQyxFQUFDUCxDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBQ25oZiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiIWZ1bmN0aW9uKHQscil7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZXhwb3J0cz1yKCk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXSxyKTp0LkNyeXB0b0pTPXIoKX0odGhpcyxmdW5jdGlvbigpe3ZhciB0PXR8fGZ1bmN0aW9uKHQscil7dmFyIGU9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiBmdW5jdGlvbihyKXt2YXIgZTtyZXR1cm4gdC5wcm90b3R5cGU9cixlPW5ldyB0LHQucHJvdG90eXBlPW51bGwsZX19KCksaT17fSxuPWkubGliPXt9LG89bi5CYXNlPWZ1bmN0aW9uKCl7cmV0dXJue2V4dGVuZDpmdW5jdGlvbih0KXt2YXIgcj1lKHRoaXMpO3JldHVybiB0JiZyLm1peEluKHQpLHIuaGFzT3duUHJvcGVydHkoXCJpbml0XCIpJiZ0aGlzLmluaXQhPT1yLmluaXR8fChyLmluaXQ9ZnVuY3Rpb24oKXtyLiRzdXBlci5pbml0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLHIuaW5pdC5wcm90b3R5cGU9cixyLiRzdXBlcj10aGlzLHJ9LGNyZWF0ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZXh0ZW5kKCk7cmV0dXJuIHQuaW5pdC5hcHBseSh0LGFyZ3VtZW50cyksdH0saW5pdDpmdW5jdGlvbigpe30sbWl4SW46ZnVuY3Rpb24odCl7Zm9yKHZhciByIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShyKSYmKHRoaXNbcl09dFtyXSk7dC5oYXNPd25Qcm9wZXJ0eShcInRvU3RyaW5nXCIpJiYodGhpcy50b1N0cmluZz10LnRvU3RyaW5nKX0sY2xvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbml0LnByb3RvdHlwZS5leHRlbmQodGhpcyl9fX0oKSxzPW4uV29yZEFycmF5PW8uZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQsZSl7dD10aGlzLndvcmRzPXR8fFtdLGUhPXI/dGhpcy5zaWdCeXRlcz1lOnRoaXMuc2lnQnl0ZXM9NCp0Lmxlbmd0aH0sdG9TdHJpbmc6ZnVuY3Rpb24odCl7cmV0dXJuKHR8fGMpLnN0cmluZ2lmeSh0aGlzKX0sY29uY2F0OmZ1bmN0aW9uKHQpe3ZhciByPXRoaXMud29yZHMsZT10LndvcmRzLGk9dGhpcy5zaWdCeXRlcyxuPXQuc2lnQnl0ZXM7aWYodGhpcy5jbGFtcCgpLGklNClmb3IodmFyIG89MDtvPG47bysrKXt2YXIgcz1lW28+Pj4yXT4+PjI0LW8lNCo4JjI1NTtyW2krbz4+PjJdfD1zPDwyNC0oaStvKSU0Kjh9ZWxzZSBmb3IodmFyIG89MDtvPG47bys9NClyW2krbz4+PjJdPWVbbz4+PjJdO3JldHVybiB0aGlzLnNpZ0J5dGVzKz1uLHRoaXN9LGNsYW1wOmZ1bmN0aW9uKCl7dmFyIHI9dGhpcy53b3JkcyxlPXRoaXMuc2lnQnl0ZXM7cltlPj4+Ml0mPTQyOTQ5NjcyOTU8PDMyLWUlNCo4LHIubGVuZ3RoPXQuY2VpbChlLzQpfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PW8uY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC53b3Jkcz10aGlzLndvcmRzLnNsaWNlKDApLHR9LHJhbmRvbTpmdW5jdGlvbihyKXtmb3IodmFyIGUsaT1bXSxuPWZ1bmN0aW9uKHIpe3ZhciByPXIsZT05ODc2NTQzMjEsaT00Mjk0OTY3Mjk1O3JldHVybiBmdW5jdGlvbigpe2U9MzY5NjkqKDY1NTM1JmUpKyhlPj4xNikmaSxyPTE4ZTMqKDY1NTM1JnIpKyhyPj4xNikmaTt2YXIgbj0oZTw8MTYpK3ImaTtyZXR1cm4gbi89NDI5NDk2NzI5NixuKz0uNSxuKih0LnJhbmRvbSgpPi41PzE6LTEpfX0sbz0wO288cjtvKz00KXt2YXIgYT1uKDQyOTQ5NjcyOTYqKGV8fHQucmFuZG9tKCkpKTtlPTk4NzY1NDA3MSphKCksaS5wdXNoKDQyOTQ5NjcyOTYqYSgpfDApfXJldHVybiBuZXcgcy5pbml0KGkscil9fSksYT1pLmVuYz17fSxjPWEuSGV4PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQud29yZHMsZT10LnNpZ0J5dGVzLGk9W10sbj0wO248ZTtuKyspe3ZhciBvPXJbbj4+PjJdPj4+MjQtbiU0KjgmMjU1O2kucHVzaCgobz4+PjQpLnRvU3RyaW5nKDE2KSksaS5wdXNoKCgxNSZvKS50b1N0cmluZygxNikpfXJldHVybiBpLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aCxlPVtdLGk9MDtpPHI7aSs9MillW2k+Pj4zXXw9cGFyc2VJbnQodC5zdWJzdHIoaSwyKSwxNik8PDI0LWklOCo0O3JldHVybiBuZXcgcy5pbml0KGUsci8yKX19LGg9YS5MYXRpbjE9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC53b3JkcyxlPXQuc2lnQnl0ZXMsaT1bXSxuPTA7bjxlO24rKyl7dmFyIG89cltuPj4+Ml0+Pj4yNC1uJTQqOCYyNTU7aS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUobykpfXJldHVybiBpLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aCxlPVtdLGk9MDtpPHI7aSsrKWVbaT4+PjJdfD0oMjU1JnQuY2hhckNvZGVBdChpKSk8PDI0LWklNCo4O3JldHVybiBuZXcgcy5pbml0KGUscil9fSxsPWEuVXRmOD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZShoLnN0cmluZ2lmeSh0KSkpfWNhdGNoKHQpe3Rocm93IG5ldyBFcnJvcihcIk1hbGZvcm1lZCBVVEYtOCBkYXRhXCIpfX0scGFyc2U6ZnVuY3Rpb24odCl7cmV0dXJuIGgucGFyc2UodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHQpKSl9fSxmPW4uQnVmZmVyZWRCbG9ja0FsZ29yaXRobT1vLmV4dGVuZCh7cmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9kYXRhPW5ldyBzLmluaXQsdGhpcy5fbkRhdGFCeXRlcz0wfSxfYXBwZW5kOmZ1bmN0aW9uKHQpe1wic3RyaW5nXCI9PXR5cGVvZiB0JiYodD1sLnBhcnNlKHQpKSx0aGlzLl9kYXRhLmNvbmNhdCh0KSx0aGlzLl9uRGF0YUJ5dGVzKz10LnNpZ0J5dGVzfSxfcHJvY2VzczpmdW5jdGlvbihyKXt2YXIgZT10aGlzLl9kYXRhLGk9ZS53b3JkcyxuPWUuc2lnQnl0ZXMsbz10aGlzLmJsb2NrU2l6ZSxhPTQqbyxjPW4vYTtjPXI/dC5jZWlsKGMpOnQubWF4KCgwfGMpLXRoaXMuX21pbkJ1ZmZlclNpemUsMCk7dmFyIGg9YypvLGw9dC5taW4oNCpoLG4pO2lmKGgpe2Zvcih2YXIgZj0wO2Y8aDtmKz1vKXRoaXMuX2RvUHJvY2Vzc0Jsb2NrKGksZik7dmFyIHU9aS5zcGxpY2UoMCxoKTtlLnNpZ0J5dGVzLT1sfXJldHVybiBuZXcgcy5pbml0KHUsbCl9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9by5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9kYXRhPXRoaXMuX2RhdGEuY2xvbmUoKSx0fSxfbWluQnVmZmVyU2l6ZTowfSksdT0obi5IYXNoZXI9Zi5leHRlbmQoe2NmZzpvLmV4dGVuZCgpLGluaXQ6ZnVuY3Rpb24odCl7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHQpLHRoaXMucmVzZXQoKX0scmVzZXQ6ZnVuY3Rpb24oKXtmLnJlc2V0LmNhbGwodGhpcyksdGhpcy5fZG9SZXNldCgpfSx1cGRhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FwcGVuZCh0KSx0aGlzLl9wcm9jZXNzKCksdGhpc30sZmluYWxpemU6ZnVuY3Rpb24odCl7dCYmdGhpcy5fYXBwZW5kKHQpO3ZhciByPXRoaXMuX2RvRmluYWxpemUoKTtyZXR1cm4gcn0sYmxvY2tTaXplOjE2LF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHIsZSl7cmV0dXJuIG5ldyB0LmluaXQoZSkuZmluYWxpemUocil9fSxfY3JlYXRlSG1hY0hlbHBlcjpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24ocixlKXtyZXR1cm4gbmV3IHUuSE1BQy5pbml0KHQsZSkuZmluYWxpemUocil9fX0pLGkuYWxnbz17fSk7cmV0dXJuIGl9KE1hdGgpO3JldHVybiBmdW5jdGlvbigpe2Z1bmN0aW9uIHIodCxyLGUpe2Zvcih2YXIgaT1bXSxvPTAscz0wO3M8cjtzKyspaWYocyU0KXt2YXIgYT1lW3QuY2hhckNvZGVBdChzLTEpXTw8cyU0KjIsYz1lW3QuY2hhckNvZGVBdChzKV0+Pj42LXMlNCoyO2lbbz4+PjJdfD0oYXxjKTw8MjQtbyU0KjgsbysrfXJldHVybiBuLmNyZWF0ZShpLG8pfXZhciBlPXQsaT1lLmxpYixuPWkuV29yZEFycmF5LG89ZS5lbmM7by5CYXNlNjQ9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXt2YXIgcj10LndvcmRzLGU9dC5zaWdCeXRlcyxpPXRoaXMuX21hcDt0LmNsYW1wKCk7Zm9yKHZhciBuPVtdLG89MDtvPGU7bys9Mylmb3IodmFyIHM9cltvPj4+Ml0+Pj4yNC1vJTQqOCYyNTUsYT1yW28rMT4+PjJdPj4+MjQtKG8rMSklNCo4JjI1NSxjPXJbbysyPj4+Ml0+Pj4yNC0obysyKSU0KjgmMjU1LGg9czw8MTZ8YTw8OHxjLGw9MDtsPDQmJm8rLjc1Kmw8ZTtsKyspbi5wdXNoKGkuY2hhckF0KGg+Pj42KigzLWwpJjYzKSk7dmFyIGY9aS5jaGFyQXQoNjQpO2lmKGYpZm9yKDtuLmxlbmd0aCU0OyluLnB1c2goZik7cmV0dXJuIG4uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGgsaT10aGlzLl9tYXAsbj10aGlzLl9yZXZlcnNlTWFwO2lmKCFuKXtuPXRoaXMuX3JldmVyc2VNYXA9W107Zm9yKHZhciBvPTA7bzxpLmxlbmd0aDtvKyspbltpLmNoYXJDb2RlQXQobyldPW99dmFyIHM9aS5jaGFyQXQoNjQpO2lmKHMpe3ZhciBhPXQuaW5kZXhPZihzKTthIT09LTEmJihlPWEpfXJldHVybiByKHQsZSxuKX0sX21hcDpcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89XCJ9fSgpLGZ1bmN0aW9uKHIpe2Z1bmN0aW9uIGUodCxyLGUsaSxuLG8scyl7dmFyIGE9dCsociZlfH5yJmkpK24rcztyZXR1cm4oYTw8b3xhPj4+MzItbykrcn1mdW5jdGlvbiBpKHQscixlLGksbixvLHMpe3ZhciBhPXQrKHImaXxlJn5pKStuK3M7cmV0dXJuKGE8PG98YT4+PjMyLW8pK3J9ZnVuY3Rpb24gbih0LHIsZSxpLG4sbyxzKXt2YXIgYT10KyhyXmVeaSkrbitzO3JldHVybihhPDxvfGE+Pj4zMi1vKStyfWZ1bmN0aW9uIG8odCxyLGUsaSxuLG8scyl7dmFyIGE9dCsoZV4ocnx+aSkpK24rcztyZXR1cm4oYTw8b3xhPj4+MzItbykrcn12YXIgcz10LGE9cy5saWIsYz1hLldvcmRBcnJheSxoPWEuSGFzaGVyLGw9cy5hbGdvLGY9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDw2NDt0KyspZlt0XT00Mjk0OTY3Mjk2KnIuYWJzKHIuc2luKHQrMSkpfDB9KCk7dmFyIHU9bC5NRDU9aC5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgYy5pbml0KFsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzhdKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBzPTA7czwxNjtzKyspe3ZhciBhPXIrcyxjPXRbYV07dFthXT0xNjcxMTkzNSYoYzw8OHxjPj4+MjQpfDQyNzgyNTUzNjAmKGM8PDI0fGM+Pj44KX12YXIgaD10aGlzLl9oYXNoLndvcmRzLGw9dFtyKzBdLHU9dFtyKzFdLGQ9dFtyKzJdLHY9dFtyKzNdLHA9dFtyKzRdLF89dFtyKzVdLHk9dFtyKzZdLGc9dFtyKzddLEI9dFtyKzhdLHc9dFtyKzldLGs9dFtyKzEwXSxTPXRbcisxMV0sbT10W3IrMTJdLHg9dFtyKzEzXSxiPXRbcisxNF0sSD10W3IrMTVdLHo9aFswXSxBPWhbMV0sQz1oWzJdLEQ9aFszXTt6PWUoeixBLEMsRCxsLDcsZlswXSksRD1lKEQseixBLEMsdSwxMixmWzFdKSxDPWUoQyxELHosQSxkLDE3LGZbMl0pLEE9ZShBLEMsRCx6LHYsMjIsZlszXSksej1lKHosQSxDLEQscCw3LGZbNF0pLEQ9ZShELHosQSxDLF8sMTIsZls1XSksQz1lKEMsRCx6LEEseSwxNyxmWzZdKSxBPWUoQSxDLEQseixnLDIyLGZbN10pLHo9ZSh6LEEsQyxELEIsNyxmWzhdKSxEPWUoRCx6LEEsQyx3LDEyLGZbOV0pLEM9ZShDLEQseixBLGssMTcsZlsxMF0pLEE9ZShBLEMsRCx6LFMsMjIsZlsxMV0pLHo9ZSh6LEEsQyxELG0sNyxmWzEyXSksRD1lKEQseixBLEMseCwxMixmWzEzXSksQz1lKEMsRCx6LEEsYiwxNyxmWzE0XSksQT1lKEEsQyxELHosSCwyMixmWzE1XSksej1pKHosQSxDLEQsdSw1LGZbMTZdKSxEPWkoRCx6LEEsQyx5LDksZlsxN10pLEM9aShDLEQseixBLFMsMTQsZlsxOF0pLEE9aShBLEMsRCx6LGwsMjAsZlsxOV0pLHo9aSh6LEEsQyxELF8sNSxmWzIwXSksRD1pKEQseixBLEMsayw5LGZbMjFdKSxDPWkoQyxELHosQSxILDE0LGZbMjJdKSxBPWkoQSxDLEQseixwLDIwLGZbMjNdKSx6PWkoeixBLEMsRCx3LDUsZlsyNF0pLEQ9aShELHosQSxDLGIsOSxmWzI1XSksQz1pKEMsRCx6LEEsdiwxNCxmWzI2XSksQT1pKEEsQyxELHosQiwyMCxmWzI3XSksej1pKHosQSxDLEQseCw1LGZbMjhdKSxEPWkoRCx6LEEsQyxkLDksZlsyOV0pLEM9aShDLEQseixBLGcsMTQsZlszMF0pLEE9aShBLEMsRCx6LG0sMjAsZlszMV0pLHo9bih6LEEsQyxELF8sNCxmWzMyXSksRD1uKEQseixBLEMsQiwxMSxmWzMzXSksQz1uKEMsRCx6LEEsUywxNixmWzM0XSksQT1uKEEsQyxELHosYiwyMyxmWzM1XSksej1uKHosQSxDLEQsdSw0LGZbMzZdKSxEPW4oRCx6LEEsQyxwLDExLGZbMzddKSxDPW4oQyxELHosQSxnLDE2LGZbMzhdKSxBPW4oQSxDLEQseixrLDIzLGZbMzldKSx6PW4oeixBLEMsRCx4LDQsZls0MF0pLEQ9bihELHosQSxDLGwsMTEsZls0MV0pLEM9bihDLEQseixBLHYsMTYsZls0Ml0pLEE9bihBLEMsRCx6LHksMjMsZls0M10pLHo9bih6LEEsQyxELHcsNCxmWzQ0XSksRD1uKEQseixBLEMsbSwxMSxmWzQ1XSksQz1uKEMsRCx6LEEsSCwxNixmWzQ2XSksQT1uKEEsQyxELHosZCwyMyxmWzQ3XSksej1vKHosQSxDLEQsbCw2LGZbNDhdKSxEPW8oRCx6LEEsQyxnLDEwLGZbNDldKSxDPW8oQyxELHosQSxiLDE1LGZbNTBdKSxBPW8oQSxDLEQseixfLDIxLGZbNTFdKSx6PW8oeixBLEMsRCxtLDYsZls1Ml0pLEQ9byhELHosQSxDLHYsMTAsZls1M10pLEM9byhDLEQseixBLGssMTUsZls1NF0pLEE9byhBLEMsRCx6LHUsMjEsZls1NV0pLHo9byh6LEEsQyxELEIsNixmWzU2XSksRD1vKEQseixBLEMsSCwxMCxmWzU3XSksQz1vKEMsRCx6LEEseSwxNSxmWzU4XSksQT1vKEEsQyxELHoseCwyMSxmWzU5XSksej1vKHosQSxDLEQscCw2LGZbNjBdKSxEPW8oRCx6LEEsQyxTLDEwLGZbNjFdKSxDPW8oQyxELHosQSxkLDE1LGZbNjJdKSxBPW8oQSxDLEQseix3LDIxLGZbNjNdKSxoWzBdPWhbMF0renwwLGhbMV09aFsxXStBfDAsaFsyXT1oWzJdK0N8MCxoWzNdPWhbM10rRHwwfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEsZT10LndvcmRzLGk9OCp0aGlzLl9uRGF0YUJ5dGVzLG49OCp0LnNpZ0J5dGVzO2Vbbj4+PjVdfD0xMjg8PDI0LW4lMzI7dmFyIG89ci5mbG9vcihpLzQyOTQ5NjcyOTYpLHM9aTtlWyhuKzY0Pj4+OTw8NCkrMTVdPTE2NzExOTM1JihvPDw4fG8+Pj4yNCl8NDI3ODI1NTM2MCYobzw8MjR8bz4+PjgpLGVbKG4rNjQ+Pj45PDw0KSsxNF09MTY3MTE5MzUmKHM8PDh8cz4+PjI0KXw0Mjc4MjU1MzYwJihzPDwyNHxzPj4+OCksdC5zaWdCeXRlcz00KihlLmxlbmd0aCsxKSx0aGlzLl9wcm9jZXNzKCk7Zm9yKHZhciBhPXRoaXMuX2hhc2gsYz1hLndvcmRzLGg9MDtoPDQ7aCsrKXt2YXIgbD1jW2hdO2NbaF09MTY3MTE5MzUmKGw8PDh8bD4+PjI0KXw0Mjc4MjU1MzYwJihsPDwyNHxsPj4+OCl9cmV0dXJuIGF9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9aC5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fX0pO3MuTUQ1PWguX2NyZWF0ZUhlbHBlcih1KSxzLkhtYWNNRDU9aC5fY3JlYXRlSG1hY0hlbHBlcih1KX0oTWF0aCksZnVuY3Rpb24oKXt2YXIgcj10LGU9ci5saWIsaT1lLldvcmRBcnJheSxuPWUuSGFzaGVyLG89ci5hbGdvLHM9W10sYT1vLlNIQTE9bi5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgaS5pbml0KFsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzgsMzI4NTM3NzUyMF0pfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dGhpcy5faGFzaC53b3JkcyxpPWVbMF0sbj1lWzFdLG89ZVsyXSxhPWVbM10sYz1lWzRdLGg9MDtoPDgwO2grKyl7aWYoaDwxNilzW2hdPTB8dFtyK2hdO2Vsc2V7dmFyIGw9c1toLTNdXnNbaC04XV5zW2gtMTRdXnNbaC0xNl07c1toXT1sPDwxfGw+Pj4zMX12YXIgZj0oaTw8NXxpPj4+MjcpK2Mrc1toXTtmKz1oPDIwPyhuJm98fm4mYSkrMTUxODUwMDI0OTpoPDQwPyhuXm9eYSkrMTg1OTc3NTM5MzpoPDYwPyhuJm98biZhfG8mYSktMTg5NDAwNzU4ODoobl5vXmEpLTg5OTQ5NzUxNCxjPWEsYT1vLG89bjw8MzB8bj4+PjIsbj1pLGk9Zn1lWzBdPWVbMF0raXwwLGVbMV09ZVsxXStufDAsZVsyXT1lWzJdK298MCxlWzNdPWVbM10rYXwwLGVbNF09ZVs0XStjfDB9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxyPXQud29yZHMsZT04KnRoaXMuX25EYXRhQnl0ZXMsaT04KnQuc2lnQnl0ZXM7cmV0dXJuIHJbaT4+PjVdfD0xMjg8PDI0LWklMzIsclsoaSs2ND4+Pjk8PDQpKzE0XT1NYXRoLmZsb29yKGUvNDI5NDk2NzI5NiksclsoaSs2ND4+Pjk8PDQpKzE1XT1lLHQuc2lnQnl0ZXM9NCpyLmxlbmd0aCx0aGlzLl9wcm9jZXNzKCksdGhpcy5faGFzaH0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1uLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9fSk7ci5TSEExPW4uX2NyZWF0ZUhlbHBlcihhKSxyLkhtYWNTSEExPW4uX2NyZWF0ZUhtYWNIZWxwZXIoYSl9KCksZnVuY3Rpb24ocil7dmFyIGU9dCxpPWUubGliLG49aS5Xb3JkQXJyYXksbz1pLkhhc2hlcixzPWUuYWxnbyxhPVtdLGM9W107IWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXtmb3IodmFyIGU9ci5zcXJ0KHQpLGk9MjtpPD1lO2krKylpZighKHQlaSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gZSh0KXtyZXR1cm4gNDI5NDk2NzI5NioodC0oMHx0KSl8MH1mb3IodmFyIGk9MixuPTA7bjw2NDspdChpKSYmKG48OCYmKGFbbl09ZShyLnBvdyhpLC41KSkpLGNbbl09ZShyLnBvdyhpLDEvMykpLG4rKyksaSsrfSgpO3ZhciBoPVtdLGw9cy5TSEEyNTY9by5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgbi5pbml0KGEuc2xpY2UoMCkpfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dGhpcy5faGFzaC53b3JkcyxpPWVbMF0sbj1lWzFdLG89ZVsyXSxzPWVbM10sYT1lWzRdLGw9ZVs1XSxmPWVbNl0sdT1lWzddLGQ9MDtkPDY0O2QrKyl7aWYoZDwxNiloW2RdPTB8dFtyK2RdO2Vsc2V7dmFyIHY9aFtkLTE1XSxwPSh2PDwyNXx2Pj4+NyleKHY8PDE0fHY+Pj4xOCledj4+PjMsXz1oW2QtMl0seT0oXzw8MTV8Xz4+PjE3KV4oXzw8MTN8Xz4+PjE5KV5fPj4+MTA7aFtkXT1wK2hbZC03XSt5K2hbZC0xNl19dmFyIGc9YSZsXn5hJmYsQj1pJm5eaSZvXm4mbyx3PShpPDwzMHxpPj4+MileKGk8PDE5fGk+Pj4xMyleKGk8PDEwfGk+Pj4yMiksaz0oYTw8MjZ8YT4+PjYpXihhPDwyMXxhPj4+MTEpXihhPDw3fGE+Pj4yNSksUz11K2srZytjW2RdK2hbZF0sbT13K0I7dT1mLGY9bCxsPWEsYT1zK1N8MCxzPW8sbz1uLG49aSxpPVMrbXwwfWVbMF09ZVswXStpfDAsZVsxXT1lWzFdK258MCxlWzJdPWVbMl0rb3wwLGVbM109ZVszXStzfDAsZVs0XT1lWzRdK2F8MCxlWzVdPWVbNV0rbHwwLGVbNl09ZVs2XStmfDAsZVs3XT1lWzddK3V8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLGU9dC53b3JkcyxpPTgqdGhpcy5fbkRhdGFCeXRlcyxuPTgqdC5zaWdCeXRlcztyZXR1cm4gZVtuPj4+NV18PTEyODw8MjQtbiUzMixlWyhuKzY0Pj4+OTw8NCkrMTRdPXIuZmxvb3IoaS80Mjk0OTY3Mjk2KSxlWyhuKzY0Pj4+OTw8NCkrMTVdPWksdC5zaWdCeXRlcz00KmUubGVuZ3RoLHRoaXMuX3Byb2Nlc3MoKSx0aGlzLl9oYXNofSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PW8uY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KTtlLlNIQTI1Nj1vLl9jcmVhdGVIZWxwZXIobCksZS5IbWFjU0hBMjU2PW8uX2NyZWF0ZUhtYWNIZWxwZXIobCl9KE1hdGgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdDw8OCY0Mjc4MjU1MzYwfHQ+Pj44JjE2NzExOTM1fXZhciBlPXQsaT1lLmxpYixuPWkuV29yZEFycmF5LG89ZS5lbmM7by5VdGYxNj1vLlV0ZjE2QkU9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC53b3JkcyxlPXQuc2lnQnl0ZXMsaT1bXSxuPTA7bjxlO24rPTIpe3ZhciBvPXJbbj4+PjJdPj4+MTYtbiU0KjgmNjU1MzU7aS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUobykpfXJldHVybiBpLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aCxlPVtdLGk9MDtpPHI7aSsrKWVbaT4+PjFdfD10LmNoYXJDb2RlQXQoaSk8PDE2LWklMioxNjtyZXR1cm4gbi5jcmVhdGUoZSwyKnIpfX07by5VdGYxNkxFPXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQud29yZHMsaT10LnNpZ0J5dGVzLG49W10sbz0wO288aTtvKz0yKXt2YXIgcz1yKGVbbz4+PjJdPj4+MTYtbyU0KjgmNjU1MzUpO24ucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKHMpKX1yZXR1cm4gbi5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgsaT1bXSxvPTA7bzxlO28rKylpW28+Pj4xXXw9cih0LmNoYXJDb2RlQXQobyk8PDE2LW8lMioxNik7cmV0dXJuIG4uY3JlYXRlKGksMiplKX19fSgpLGZ1bmN0aW9uKCl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgQXJyYXlCdWZmZXIpe3ZhciByPXQsZT1yLmxpYixpPWUuV29yZEFycmF5LG49aS5pbml0LG89aS5pbml0PWZ1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmKHQ9bmV3IFVpbnQ4QXJyYXkodCkpLCh0IGluc3RhbmNlb2YgSW50OEFycmF5fHxcInVuZGVmaW5lZFwiIT10eXBlb2YgVWludDhDbGFtcGVkQXJyYXkmJnQgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheXx8dCBpbnN0YW5jZW9mIEludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8dCBpbnN0YW5jZW9mIEludDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8dCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheXx8dCBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSkmJih0PW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpKSx0IGluc3RhbmNlb2YgVWludDhBcnJheSl7Zm9yKHZhciByPXQuYnl0ZUxlbmd0aCxlPVtdLGk9MDtpPHI7aSsrKWVbaT4+PjJdfD10W2ldPDwyNC1pJTQqODtuLmNhbGwodGhpcyxlLHIpfWVsc2Ugbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O28ucHJvdG90eXBlPWl9fSgpLGZ1bmN0aW9uKHIpe2Z1bmN0aW9uIGUodCxyLGUpe3JldHVybiB0XnJeZX1mdW5jdGlvbiBpKHQscixlKXtyZXR1cm4gdCZyfH50JmV9ZnVuY3Rpb24gbih0LHIsZSl7cmV0dXJuKHR8fnIpXmV9ZnVuY3Rpb24gbyh0LHIsZSl7cmV0dXJuIHQmZXxyJn5lfWZ1bmN0aW9uIHModCxyLGUpe3JldHVybiB0XihyfH5lKX1mdW5jdGlvbiBhKHQscil7cmV0dXJuIHQ8PHJ8dD4+PjMyLXJ9dmFyIGM9dCxoPWMubGliLGw9aC5Xb3JkQXJyYXksZj1oLkhhc2hlcix1PWMuYWxnbyxkPWwuY3JlYXRlKFswLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDcsNCwxMywxLDEwLDYsMTUsMywxMiwwLDksNSwyLDE0LDExLDgsMywxMCwxNCw0LDksMTUsOCwxLDIsNywwLDYsMTMsMTEsNSwxMiwxLDksMTEsMTAsMCw4LDEyLDQsMTMsMyw3LDE1LDE0LDUsNiwyLDQsMCw1LDksNywxMiwyLDEwLDE0LDEsMyw4LDExLDYsMTUsMTNdKSx2PWwuY3JlYXRlKFs1LDE0LDcsMCw5LDIsMTEsNCwxMyw2LDE1LDgsMSwxMCwzLDEyLDYsMTEsMyw3LDAsMTMsNSwxMCwxNCwxNSw4LDEyLDQsOSwxLDIsMTUsNSwxLDMsNywxNCw2LDksMTEsOCwxMiwyLDEwLDAsNCwxMyw4LDYsNCwxLDMsMTEsMTUsMCw1LDEyLDIsMTMsOSw3LDEwLDE0LDEyLDE1LDEwLDQsMSw1LDgsNyw2LDIsMTMsMTQsMCwzLDksMTFdKSxwPWwuY3JlYXRlKFsxMSwxNCwxNSwxMiw1LDgsNyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIsMTUsOSwxMSw3LDEzLDEyLDExLDEzLDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwxNCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDExLDYsOCwxMywxMiw1LDEyLDEzLDE0LDExLDgsNSw2XSksXz1sLmNyZWF0ZShbOCw5LDksMTEsMTMsMTUsMTUsNSw3LDcsOCwxMSwxNCwxNCwxMiw2LDksMTMsMTUsNywxMiw4LDksMTEsNyw3LDEyLDcsNiwxNSwxMywxMSw5LDcsMTUsMTEsOCw2LDYsMTQsMTIsMTMsNSwxNCwxMywxMyw3LDUsMTUsNSw4LDExLDE0LDE0LDYsMTQsNiw5LDEyLDksMTIsNSwxNSw4LDgsNSwxMiw5LDEyLDUsMTQsNiw4LDEzLDYsNSwxNSwxMywxMSwxMV0pLHk9bC5jcmVhdGUoWzAsMTUxODUwMDI0OSwxODU5Nzc1MzkzLDI0MDA5NTk3MDgsMjg0MDg1MzgzOF0pLGc9bC5jcmVhdGUoWzEzNTI4Mjk5MjYsMTU0ODYwMzY4NCwxODM2MDcyNjkxLDIwNTM5OTQyMTcsMF0pLEI9dS5SSVBFTUQxNjA9Zi5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1sLmNyZWF0ZShbMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBjPTA7YzwxNjtjKyspe3ZhciBoPXIrYyxsPXRbaF07dFtoXT0xNjcxMTkzNSYobDw8OHxsPj4+MjQpfDQyNzgyNTUzNjAmKGw8PDI0fGw+Pj44KX12YXIgZix1LEIsdyxrLFMsbSx4LGIsSCx6PXRoaXMuX2hhc2gud29yZHMsQT15LndvcmRzLEM9Zy53b3JkcyxEPWQud29yZHMsUj12LndvcmRzLEU9cC53b3JkcyxNPV8ud29yZHM7Uz1mPXpbMF0sbT11PXpbMV0seD1CPXpbMl0sYj13PXpbM10sSD1rPXpbNF07Zm9yKHZhciBGLGM9MDtjPDgwO2MrPTEpRj1mK3RbcitEW2NdXXwwLEYrPWM8MTY/ZSh1LEIsdykrQVswXTpjPDMyP2kodSxCLHcpK0FbMV06Yzw0OD9uKHUsQix3KStBWzJdOmM8NjQ/byh1LEIsdykrQVszXTpzKHUsQix3KStBWzRdLEZ8PTAsRj1hKEYsRVtjXSksRj1GK2t8MCxmPWssaz13LHc9YShCLDEwKSxCPXUsdT1GLEY9Uyt0W3IrUltjXV18MCxGKz1jPDE2P3MobSx4LGIpK0NbMF06YzwzMj9vKG0seCxiKStDWzFdOmM8NDg/bihtLHgsYikrQ1syXTpjPDY0P2kobSx4LGIpK0NbM106ZShtLHgsYikrQ1s0XSxGfD0wLEY9YShGLE1bY10pLEY9RitIfDAsUz1ILEg9YixiPWEoeCwxMCkseD1tLG09RjtGPXpbMV0rQitifDAselsxXT16WzJdK3crSHwwLHpbMl09elszXStrK1N8MCx6WzNdPXpbNF0rZittfDAsels0XT16WzBdK3UreHwwLHpbMF09Rn0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLHI9dC53b3JkcyxlPTgqdGhpcy5fbkRhdGFCeXRlcyxpPTgqdC5zaWdCeXRlcztyW2k+Pj41XXw9MTI4PDwyNC1pJTMyLHJbKGkrNjQ+Pj45PDw0KSsxNF09MTY3MTE5MzUmKGU8PDh8ZT4+PjI0KXw0Mjc4MjU1MzYwJihlPDwyNHxlPj4+OCksdC5zaWdCeXRlcz00KihyLmxlbmd0aCsxKSx0aGlzLl9wcm9jZXNzKCk7Zm9yKHZhciBuPXRoaXMuX2hhc2gsbz1uLndvcmRzLHM9MDtzPDU7cysrKXt2YXIgYT1vW3NdO29bc109MTY3MTE5MzUmKGE8PDh8YT4+PjI0KXw0Mjc4MjU1MzYwJihhPDwyNHxhPj4+OCl9cmV0dXJuIG59LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9Zi5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fX0pO2MuUklQRU1EMTYwPWYuX2NyZWF0ZUhlbHBlcihCKSxjLkhtYWNSSVBFTUQxNjA9Zi5fY3JlYXRlSG1hY0hlbHBlcihCKX0oTWF0aCksZnVuY3Rpb24oKXt2YXIgcj10LGU9ci5saWIsaT1lLkJhc2Usbj1yLmVuYyxvPW4uVXRmOCxzPXIuYWxnbztzLkhNQUM9aS5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCxyKXt0PXRoaXMuX2hhc2hlcj1uZXcgdC5pbml0LFwic3RyaW5nXCI9PXR5cGVvZiByJiYocj1vLnBhcnNlKHIpKTt2YXIgZT10LmJsb2NrU2l6ZSxpPTQqZTtyLnNpZ0J5dGVzPmkmJihyPXQuZmluYWxpemUocikpLHIuY2xhbXAoKTtmb3IodmFyIG49dGhpcy5fb0tleT1yLmNsb25lKCkscz10aGlzLl9pS2V5PXIuY2xvbmUoKSxhPW4ud29yZHMsYz1zLndvcmRzLGg9MDtoPGU7aCsrKWFbaF1ePTE1NDk1NTY4MjgsY1toXV49OTA5NTIyNDg2O24uc2lnQnl0ZXM9cy5zaWdCeXRlcz1pLHRoaXMucmVzZXQoKX0scmVzZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9oYXNoZXI7dC5yZXNldCgpLHQudXBkYXRlKHRoaXMuX2lLZXkpfSx1cGRhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2hhc2hlci51cGRhdGUodCksdGhpc30sZmluYWxpemU6ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5faGFzaGVyLGU9ci5maW5hbGl6ZSh0KTtyLnJlc2V0KCk7dmFyIGk9ci5maW5hbGl6ZSh0aGlzLl9vS2V5LmNsb25lKCkuY29uY2F0KGUpKTtyZXR1cm4gaX19KX0oKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLmxpYixpPWUuQmFzZSxuPWUuV29yZEFycmF5LG89ci5hbGdvLHM9by5TSEExLGE9by5ITUFDLGM9by5QQktERjI9aS5leHRlbmQoe2NmZzppLmV4dGVuZCh7a2V5U2l6ZTo0LGhhc2hlcjpzLGl0ZXJhdGlvbnM6MX0pLGluaXQ6ZnVuY3Rpb24odCl7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHQpfSxjb21wdXRlOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuY2ZnLGk9YS5jcmVhdGUoZS5oYXNoZXIsdCksbz1uLmNyZWF0ZSgpLHM9bi5jcmVhdGUoWzFdKSxjPW8ud29yZHMsaD1zLndvcmRzLGw9ZS5rZXlTaXplLGY9ZS5pdGVyYXRpb25zO2MubGVuZ3RoPGw7KXt2YXIgdT1pLnVwZGF0ZShyKS5maW5hbGl6ZShzKTtpLnJlc2V0KCk7Zm9yKHZhciBkPXUud29yZHMsdj1kLmxlbmd0aCxwPXUsXz0xO188ZjtfKyspe3A9aS5maW5hbGl6ZShwKSxpLnJlc2V0KCk7Zm9yKHZhciB5PXAud29yZHMsZz0wO2c8djtnKyspZFtnXV49eVtnXX1vLmNvbmNhdCh1KSxoWzBdKyt9cmV0dXJuIG8uc2lnQnl0ZXM9NCpsLG99fSk7ci5QQktERjI9ZnVuY3Rpb24odCxyLGUpe3JldHVybiBjLmNyZWF0ZShlKS5jb21wdXRlKHQscil9fSgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5CYXNlLG49ZS5Xb3JkQXJyYXksbz1yLmFsZ28scz1vLk1ENSxhPW8uRXZwS0RGPWkuZXh0ZW5kKHtjZmc6aS5leHRlbmQoe2tleVNpemU6NCxoYXNoZXI6cyxpdGVyYXRpb25zOjF9KSxpbml0OmZ1bmN0aW9uKHQpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZCh0KX0sY29tcHV0ZTpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10aGlzLmNmZyxpPWUuaGFzaGVyLmNyZWF0ZSgpLG89bi5jcmVhdGUoKSxzPW8ud29yZHMsYT1lLmtleVNpemUsYz1lLml0ZXJhdGlvbnM7cy5sZW5ndGg8YTspe2gmJmkudXBkYXRlKGgpO3ZhciBoPWkudXBkYXRlKHQpLmZpbmFsaXplKHIpO2kucmVzZXQoKTtmb3IodmFyIGw9MTtsPGM7bCsrKWg9aS5maW5hbGl6ZShoKSxpLnJlc2V0KCk7by5jb25jYXQoaCl9cmV0dXJuIG8uc2lnQnl0ZXM9NCphLG99fSk7ci5FdnBLREY9ZnVuY3Rpb24odCxyLGUpe3JldHVybiBhLmNyZWF0ZShlKS5jb21wdXRlKHQscil9fSgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5Xb3JkQXJyYXksbj1yLmFsZ28sbz1uLlNIQTI1NixzPW4uU0hBMjI0PW8uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IGkuaW5pdChbMzIzODM3MTAzMiw5MTQxNTA2NjMsODEyNzAyOTk5LDQxNDQ5MTI2OTcsNDI5MDc3NTg1NywxNzUwNjAzMDI1LDE2OTQwNzY4MzksMzIwNDA3NTQyOF0pfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PW8uX2RvRmluYWxpemUuY2FsbCh0aGlzKTtyZXR1cm4gdC5zaWdCeXRlcy09NCx0fX0pO3IuU0hBMjI0PW8uX2NyZWF0ZUhlbHBlcihzKSxyLkhtYWNTSEEyMjQ9by5fY3JlYXRlSG1hY0hlbHBlcihzKX0oKSxmdW5jdGlvbihyKXt2YXIgZT10LGk9ZS5saWIsbj1pLkJhc2Usbz1pLldvcmRBcnJheSxzPWUueDY0PXt9O3MuV29yZD1uLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LHIpe3RoaXMuaGlnaD10LHRoaXMubG93PXJ9fSkscy5Xb3JkQXJyYXk9bi5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCxlKXt0PXRoaXMud29yZHM9dHx8W10sZSE9cj90aGlzLnNpZ0J5dGVzPWU6dGhpcy5zaWdCeXRlcz04KnQubGVuZ3RofSx0b1gzMjpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLndvcmRzLHI9dC5sZW5ndGgsZT1bXSxpPTA7aTxyO2krKyl7dmFyIG49dFtpXTtlLnB1c2gobi5oaWdoKSxlLnB1c2gobi5sb3cpfXJldHVybiBvLmNyZWF0ZShlLHRoaXMuc2lnQnl0ZXMpfSxjbG9uZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1uLmNsb25lLmNhbGwodGhpcykscj10LndvcmRzPXRoaXMud29yZHMuc2xpY2UoMCksZT1yLmxlbmd0aCxpPTA7aTxlO2krKylyW2ldPXJbaV0uY2xvbmUoKTtyZXR1cm4gdH19KX0oKSxmdW5jdGlvbihyKXt2YXIgZT10LGk9ZS5saWIsbj1pLldvcmRBcnJheSxvPWkuSGFzaGVyLHM9ZS54NjQsYT1zLldvcmQsYz1lLmFsZ28saD1bXSxsPVtdLGY9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTEscj0wLGU9MDtlPDI0O2UrKyl7aFt0KzUqcl09KGUrMSkqKGUrMikvMiU2NDt2YXIgaT1yJTUsbj0oMip0KzMqciklNTt0PWkscj1ufWZvcih2YXIgdD0wO3Q8NTt0KyspZm9yKHZhciByPTA7cjw1O3IrKylsW3QrNSpyXT1yKygyKnQrMypyKSU1KjU7Zm9yKHZhciBvPTEscz0wO3M8MjQ7cysrKXtmb3IodmFyIGM9MCx1PTAsZD0wO2Q8NztkKyspe2lmKDEmbyl7dmFyIHY9KDE8PGQpLTE7djwzMj91Xj0xPDx2OmNePTE8PHYtMzJ9MTI4Jm8/bz1vPDwxXjExMzpvPDw9MX1mW3NdPWEuY3JlYXRlKGMsdSl9fSgpO3ZhciB1PVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8MjU7dCsrKXVbdF09YS5jcmVhdGUoKX0oKTt2YXIgZD1jLlNIQTM9by5leHRlbmQoe2NmZzpvLmNmZy5leHRlbmQoe291dHB1dExlbmd0aDo1MTJ9KSxfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9zdGF0ZT1bXSxyPTA7cjwyNTtyKyspdFtyXT1uZXcgYS5pbml0O3RoaXMuYmxvY2tTaXplPSgxNjAwLTIqdGhpcy5jZmcub3V0cHV0TGVuZ3RoKS8zMn0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuX3N0YXRlLGk9dGhpcy5ibG9ja1NpemUvMixuPTA7bjxpO24rKyl7dmFyIG89dFtyKzIqbl0scz10W3IrMipuKzFdO289MTY3MTE5MzUmKG88PDh8bz4+PjI0KXw0Mjc4MjU1MzYwJihvPDwyNHxvPj4+OCkscz0xNjcxMTkzNSYoczw8OHxzPj4+MjQpfDQyNzgyNTUzNjAmKHM8PDI0fHM+Pj44KTt2YXIgYT1lW25dO2EuaGlnaF49cyxhLmxvd149b31mb3IodmFyIGM9MDtjPDI0O2MrKyl7Zm9yKHZhciBkPTA7ZDw1O2QrKyl7Zm9yKHZhciB2PTAscD0wLF89MDtfPDU7XysrKXt2YXIgYT1lW2QrNSpfXTt2Xj1hLmhpZ2gscF49YS5sb3d9dmFyIHk9dVtkXTt5LmhpZ2g9dix5Lmxvdz1wfWZvcih2YXIgZD0wO2Q8NTtkKyspZm9yKHZhciBnPXVbKGQrNCklNV0sQj11WyhkKzEpJTVdLHc9Qi5oaWdoLGs9Qi5sb3csdj1nLmhpZ2heKHc8PDF8az4+PjMxKSxwPWcubG93XihrPDwxfHc+Pj4zMSksXz0wO188NTtfKyspe3ZhciBhPWVbZCs1Kl9dO2EuaGlnaF49dixhLmxvd149cH1mb3IodmFyIFM9MTtTPDI1O1MrKyl7dmFyIGE9ZVtTXSxtPWEuaGlnaCx4PWEubG93LGI9aFtTXTtpZihiPDMyKXZhciB2PW08PGJ8eD4+PjMyLWIscD14PDxifG0+Pj4zMi1iO2Vsc2UgdmFyIHY9eDw8Yi0zMnxtPj4+NjQtYixwPW08PGItMzJ8eD4+PjY0LWI7dmFyIEg9dVtsW1NdXTtILmhpZ2g9dixILmxvdz1wfXZhciB6PXVbMF0sQT1lWzBdO3ouaGlnaD1BLmhpZ2gsei5sb3c9QS5sb3c7Zm9yKHZhciBkPTA7ZDw1O2QrKylmb3IodmFyIF89MDtfPDU7XysrKXt2YXIgUz1kKzUqXyxhPWVbU10sQz11W1NdLEQ9dVsoZCsxKSU1KzUqX10sUj11WyhkKzIpJTUrNSpfXTthLmhpZ2g9Qy5oaWdoXn5ELmhpZ2gmUi5oaWdoLGEubG93PUMubG93Xn5ELmxvdyZSLmxvd312YXIgYT1lWzBdLEU9ZltjXTthLmhpZ2hePUUuaGlnaCxhLmxvd149RS5sb3d9fSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEsZT10LndvcmRzLGk9KDgqdGhpcy5fbkRhdGFCeXRlcyw4KnQuc2lnQnl0ZXMpLG89MzIqdGhpcy5ibG9ja1NpemU7ZVtpPj4+NV18PTE8PDI0LWklMzIsZVsoci5jZWlsKChpKzEpL28pKm8+Pj41KS0xXXw9MTI4LHQuc2lnQnl0ZXM9NCplLmxlbmd0aCx0aGlzLl9wcm9jZXNzKCk7Zm9yKHZhciBzPXRoaXMuX3N0YXRlLGE9dGhpcy5jZmcub3V0cHV0TGVuZ3RoLzgsYz1hLzgsaD1bXSxsPTA7bDxjO2wrKyl7dmFyIGY9c1tsXSx1PWYuaGlnaCxkPWYubG93O3U9MTY3MTE5MzUmKHU8PDh8dT4+PjI0KXw0Mjc4MjU1MzYwJih1PDwyNHx1Pj4+OCksZD0xNjcxMTkzNSYoZDw8OHxkPj4+MjQpfDQyNzgyNTUzNjAmKGQ8PDI0fGQ+Pj44KSxoLnB1c2goZCksaC5wdXNoKHUpfXJldHVybiBuZXcgbi5pbml0KGgsYSl9LGNsb25lOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PW8uY2xvbmUuY2FsbCh0aGlzKSxyPXQuX3N0YXRlPXRoaXMuX3N0YXRlLnNsaWNlKDApLGU9MDtlPDI1O2UrKylyW2VdPXJbZV0uY2xvbmUoKTtyZXR1cm4gdH19KTtlLlNIQTM9by5fY3JlYXRlSGVscGVyKGQpLGUuSG1hY1NIQTM9by5fY3JlYXRlSG1hY0hlbHBlcihkKX0oTWF0aCksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7cmV0dXJuIHMuY3JlYXRlLmFwcGx5KHMsYXJndW1lbnRzKX12YXIgZT10LGk9ZS5saWIsbj1pLkhhc2hlcixvPWUueDY0LHM9by5Xb3JkLGE9by5Xb3JkQXJyYXksYz1lLmFsZ28saD1bcigxMTE2MzUyNDA4LDM2MDk3Njc0NTgpLHIoMTg5OTQ0NzQ0MSw2MDI4OTE3MjUpLHIoMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5KSxyKDM5MjEwMDk1NzMsMjE3MzI5NTU0OCkscig5NjE5ODcxNjMsNDA4MTYyODQ3MikscigxNTA4OTcwOTkzLDMwNTM4MzQyNjUpLHIoMjQ1MzYzNTc0OCwyOTM3NjcxNTc5KSxyKDI4NzA3NjMyMjEsMzY2NDYwOTU2MCkscigzNjI0MzgxMDgwLDI3MzQ4ODMzOTQpLHIoMzEwNTk4NDAxLDExNjQ5OTY1NDIpLHIoNjA3MjI1Mjc4LDEzMjM2MTA3NjQpLHIoMTQyNjg4MTk4NywzNTkwMzA0OTk0KSxyKDE5MjUwNzgzODgsNDA2ODE4MjM4MykscigyMTYyMDc4MjA2LDk5MTMzNjExMykscigyNjE0ODg4MTAzLDYzMzgwMzMxNykscigzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgpLHIoMzgzNTM5MDQwMSwyNjY2NjEzNDU4KSxyKDQwMjIyMjQ3NzQsOTQ0NzExMTM5KSxyKDI2NDM0NzA3OCwyMzQxMjYyNzczKSxyKDYwNDgwNzYyOCwyMDA3ODAwOTMzKSxyKDc3MDI1NTk4MywxNDk1OTkwOTAxKSxyKDEyNDkxNTAxMjIsMTg1NjQzMTIzNSkscigxNTU1MDgxNjkyLDMxNzUyMTgxMzIpLHIoMTk5NjA2NDk4NiwyMTk4OTUwODM3KSxyKDI1NTQyMjA4ODIsMzk5OTcxOTMzOSkscigyODIxODM0MzQ5LDc2Njc4NDAxNikscigyOTUyOTk2ODA4LDI1NjY1OTQ4NzkpLHIoMzIxMDMxMzY3MSwzMjAzMzM3OTU2KSxyKDMzMzY1NzE4OTEsMTAzNDQ1NzAyNikscigzNTg0NTI4NzExLDI0NjY5NDg5MDEpLHIoMTEzOTI2OTkzLDM3NTgzMjYzODMpLHIoMzM4MjQxODk1LDE2ODcxNzkzNikscig2NjYzMDcyMDUsMTE4ODE3OTk2NCkscig3NzM1Mjk5MTIsMTU0NjA0NTczNCkscigxMjk0NzU3MzcyLDE1MjI4MDU0ODUpLHIoMTM5NjE4MjI5MSwyNjQzODMzODIzKSxyKDE2OTUxODM3MDAsMjM0MzUyNzM5MCkscigxOTg2NjYxMDUxLDEwMTQ0Nzc0ODApLHIoMjE3NzAyNjM1MCwxMjA2NzU5MTQyKSxyKDI0NTY5NTYwMzcsMzQ0MDc3NjI3KSxyKDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCkscigyODIwMzAyNDExLDMxNTg0NTQyNzMpLHIoMzI1OTczMDgwMCwzNTA1OTUyNjU3KSxyKDMzNDU3NjQ3NzEsMTA2MjE3MDA4KSxyKDM1MTYwNjU4MTcsMzYwNjAwODM0NCkscigzNjAwMzUyODA0LDE0MzI3MjU3NzYpLHIoNDA5NDU3MTkwOSwxNDY3MDMxNTk0KSxyKDI3NTQyMzM0NCw4NTExNjk3MjApLHIoNDMwMjI3NzM0LDMxMDA4MjM3NTIpLHIoNTA2OTQ4NjE2LDEzNjMyNTgxOTUpLHIoNjU5MDYwNTU2LDM3NTA2ODU1OTMpLHIoODgzOTk3ODc3LDM3ODUwNTAyODApLHIoOTU4MTM5NTcxLDMzMTgzMDc0MjcpLHIoMTMyMjgyMjIxOCwzODEyNzIzNDAzKSxyKDE1MzcwMDIwNjMsMjAwMzAzNDk5NSkscigxNzQ3ODczNzc5LDM2MDIwMzY4OTkpLHIoMTk1NTU2MjIyMiwxNTc1OTkwMDEyKSxyKDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCkscigyMjI3NzMwNDUyLDI3MTY5MDQzMDYpLHIoMjM2MTg1MjQyNCw0NDI3NzYwNDQpLHIoMjQyODQzNjQ3NCw1OTM2OTgzNDQpLHIoMjc1NjczNDE4NywzNzMzMTEwMjQ5KSxyKDMyMDQwMzE0NzksMjk5OTM1MTU3MykscigzMzI5MzI1Mjk4LDM4MTU5MjA0MjcpLHIoMzM5MTU2OTYxNCwzOTI4MzgzOTAwKSxyKDM1MTUyNjcyNzEsNTY2MjgwNzExKSxyKDM5NDAxODc2MDYsMzQ1NDA2OTUzNCkscig0MTE4NjMwMjcxLDQwMDAyMzk5OTIpLHIoMTE2NDE4NDc0LDE5MTQxMzg1NTQpLHIoMTc0MjkyNDIxLDI3MzEwNTUyNzApLHIoMjg5MzgwMzU2LDMyMDM5OTMwMDYpLHIoNDYwMzkzMjY5LDMyMDYyMDMxNSkscig2ODU0NzE3MzMsNTg3NDk2ODM2KSxyKDg1MjE0Mjk3MSwxMDg2NzkyODUxKSxyKDEwMTcwMzYyOTgsMzY1NTQzMTAwKSxyKDExMjYwMDA1ODAsMjYxODI5NzY3NikscigxMjg4MDMzNDcwLDM0MDk4NTUxNTgpLHIoMTUwMTUwNTk0OCw0MjM0NTA5ODY2KSxyKDE2MDcxNjc5MTUsOTg3MTY3NDY4KSxyKDE4MTY0MDIzMTYsMTI0NjE4OTU5MSldLGw9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDw4MDt0KyspbFt0XT1yKCl9KCk7dmFyIGY9Yy5TSEE1MTI9bi5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgYS5pbml0KFtuZXcgcy5pbml0KDE3NzkwMzM3MDMsNDA4OTIzNTcyMCksbmV3IHMuaW5pdCgzMTQ0MTM0Mjc3LDIyMjc4NzM1OTUpLG5ldyBzLmluaXQoMTAxMzkwNDI0Miw0MjcxMTc1NzIzKSxuZXcgcy5pbml0KDI3NzM0ODA3NjIsMTU5NTc1MDEyOSksbmV3IHMuaW5pdCgxMzU5ODkzMTE5LDI5MTc1NjUxMzcpLG5ldyBzLmluaXQoMjYwMDgyMjkyNCw3MjU1MTExOTkpLG5ldyBzLmluaXQoNTI4NzM0NjM1LDQyMTUzODk1NDcpLG5ldyBzLmluaXQoMTU0MTQ1OTIyNSwzMjcwMzMyMDkpXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10aGlzLl9oYXNoLndvcmRzLGk9ZVswXSxuPWVbMV0sbz1lWzJdLHM9ZVszXSxhPWVbNF0sYz1lWzVdLGY9ZVs2XSx1PWVbN10sZD1pLmhpZ2gsdj1pLmxvdyxwPW4uaGlnaCxfPW4ubG93LHk9by5oaWdoLGc9by5sb3csQj1zLmhpZ2gsdz1zLmxvdyxrPWEuaGlnaCxTPWEubG93LG09Yy5oaWdoLHg9Yy5sb3csYj1mLmhpZ2gsSD1mLmxvdyx6PXUuaGlnaCxBPXUubG93LEM9ZCxEPXYsUj1wLEU9XyxNPXksRj1nLFA9QixXPXcsTz1rLFU9UyxJPW0sSz14LFg9YixMPUgsaj16LE49QSxUPTA7VDw4MDtUKyspe3ZhciBaPWxbVF07aWYoVDwxNil2YXIgcT1aLmhpZ2g9MHx0W3IrMipUXSxHPVoubG93PTB8dFtyKzIqVCsxXTtlbHNle3ZhciBKPWxbVC0xNV0sJD1KLmhpZ2gsUT1KLmxvdyxWPSgkPj4+MXxRPDwzMSleKCQ+Pj44fFE8PDI0KV4kPj4+NyxZPShRPj4+MXwkPDwzMSleKFE+Pj44fCQ8PDI0KV4oUT4+Pjd8JDw8MjUpLHR0PWxbVC0yXSxydD10dC5oaWdoLGV0PXR0LmxvdyxpdD0ocnQ+Pj4xOXxldDw8MTMpXihydDw8M3xldD4+PjI5KV5ydD4+PjYsbnQ9KGV0Pj4+MTl8cnQ8PDEzKV4oZXQ8PDN8cnQ+Pj4yOSleKGV0Pj4+NnxydDw8MjYpLG90PWxbVC03XSxzdD1vdC5oaWdoLGF0PW90LmxvdyxjdD1sW1QtMTZdLGh0PWN0LmhpZ2gsbHQ9Y3QubG93LEc9WSthdCxxPVYrc3QrKEc+Pj4wPFk+Pj4wPzE6MCksRz1HK250LHE9cStpdCsoRz4+PjA8bnQ+Pj4wPzE6MCksRz1HK2x0LHE9cStodCsoRz4+PjA8bHQ+Pj4wPzE6MCk7Wi5oaWdoPXEsWi5sb3c9R312YXIgZnQ9TyZJXn5PJlgsdXQ9VSZLXn5VJkwsZHQ9QyZSXkMmTV5SJk0sdnQ9RCZFXkQmRl5FJkYscHQ9KEM+Pj4yOHxEPDw0KV4oQzw8MzB8RD4+PjIpXihDPDwyNXxEPj4+NyksX3Q9KEQ+Pj4yOHxDPDw0KV4oRDw8MzB8Qz4+PjIpXihEPDwyNXxDPj4+NykseXQ9KE8+Pj4xNHxVPDwxOCleKE8+Pj4xOHxVPDwxNCleKE88PDIzfFU+Pj45KSxndD0oVT4+PjE0fE88PDE4KV4oVT4+PjE4fE88PDE0KV4oVTw8MjN8Tz4+PjkpLEJ0PWhbVF0sd3Q9QnQuaGlnaCxrdD1CdC5sb3csU3Q9TitndCxtdD1qK3l0KyhTdD4+PjA8Tj4+PjA/MTowKSxTdD1TdCt1dCxtdD1tdCtmdCsoU3Q+Pj4wPHV0Pj4+MD8xOjApLFN0PVN0K2t0LG10PW10K3d0KyhTdD4+PjA8a3Q+Pj4wPzE6MCksU3Q9U3QrRyxtdD1tdCtxKyhTdD4+PjA8Rz4+PjA/MTowKSx4dD1fdCt2dCxidD1wdCtkdCsoeHQ+Pj4wPF90Pj4+MD8xOjApO2o9WCxOPUwsWD1JLEw9SyxJPU8sSz1VLFU9VytTdHwwLE89UCttdCsoVT4+PjA8Vz4+PjA/MTowKXwwLFA9TSxXPUYsTT1SLEY9RSxSPUMsRT1ELEQ9U3QreHR8MCxDPW10K2J0KyhEPj4+MDxTdD4+PjA/MTowKXwwfXY9aS5sb3c9ditELGkuaGlnaD1kK0MrKHY+Pj4wPEQ+Pj4wPzE6MCksXz1uLmxvdz1fK0Usbi5oaWdoPXArUisoXz4+PjA8RT4+PjA/MTowKSxnPW8ubG93PWcrRixvLmhpZ2g9eStNKyhnPj4+MDxGPj4+MD8xOjApLHc9cy5sb3c9dytXLHMuaGlnaD1CK1ArKHc+Pj4wPFc+Pj4wPzE6MCksUz1hLmxvdz1TK1UsYS5oaWdoPWsrTysoUz4+PjA8VT4+PjA/MTowKSx4PWMubG93PXgrSyxjLmhpZ2g9bStJKyh4Pj4+MDxLPj4+MD8xOjApLEg9Zi5sb3c9SCtMLGYuaGlnaD1iK1grKEg+Pj4wPEw+Pj4wPzE6MCksQT11Lmxvdz1BK04sdS5oaWdoPXoraisoQT4+PjA8Tj4+PjA/MTowKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLHI9dC53b3JkcyxlPTgqdGhpcy5fbkRhdGFCeXRlcyxpPTgqdC5zaWdCeXRlcztyW2k+Pj41XXw9MTI4PDwyNC1pJTMyLHJbKGkrMTI4Pj4+MTA8PDUpKzMwXT1NYXRoLmZsb29yKGUvNDI5NDk2NzI5NiksclsoaSsxMjg+Pj4xMDw8NSkrMzFdPWUsdC5zaWdCeXRlcz00KnIubGVuZ3RoLHRoaXMuX3Byb2Nlc3MoKTt2YXIgbj10aGlzLl9oYXNoLnRvWDMyKCk7cmV0dXJuIG59LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9bi5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fSxibG9ja1NpemU6MzJ9KTtlLlNIQTUxMj1uLl9jcmVhdGVIZWxwZXIoZiksZS5IbWFjU0hBNTEyPW4uX2NyZWF0ZUhtYWNIZWxwZXIoZil9KCksZnVuY3Rpb24oKXt2YXIgcj10LGU9ci54NjQsaT1lLldvcmQsbj1lLldvcmRBcnJheSxvPXIuYWxnbyxzPW8uU0hBNTEyLGE9by5TSEEzODQ9cy5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgbi5pbml0KFtuZXcgaS5pbml0KDM0MTgwNzAzNjUsMzIzODM3MTAzMiksbmV3IGkuaW5pdCgxNjU0MjcwMjUwLDkxNDE1MDY2MyksbmV3IGkuaW5pdCgyNDM4NTI5MzcwLDgxMjcwMjk5OSksbmV3IGkuaW5pdCgzNTU0NjIzNjAsNDE0NDkxMjY5NyksbmV3IGkuaW5pdCgxNzMxNDA1NDE1LDQyOTA3NzU4NTcpLG5ldyBpLmluaXQoMjM5NDE4MDIzMSwxNzUwNjAzMDI1KSxuZXcgaS5pbml0KDM2NzUwMDg1MjUsMTY5NDA3NjgzOSksbmV3IGkuaW5pdCgxMjAzMDYyODEzLDMyMDQwNzU0MjgpXSl9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9cy5fZG9GaW5hbGl6ZS5jYWxsKHRoaXMpO3JldHVybiB0LnNpZ0J5dGVzLT0xNix0fX0pO3IuU0hBMzg0PXMuX2NyZWF0ZUhlbHBlcihhKSxyLkhtYWNTSEEzODQ9cy5fY3JlYXRlSG1hY0hlbHBlcihhKX0oKSx0LmxpYi5DaXBoZXJ8fGZ1bmN0aW9uKHIpe3ZhciBlPXQsaT1lLmxpYixuPWkuQmFzZSxvPWkuV29yZEFycmF5LHM9aS5CdWZmZXJlZEJsb2NrQWxnb3JpdGhtLGE9ZS5lbmMsYz0oYS5VdGY4LGEuQmFzZTY0KSxoPWUuYWxnbyxsPWguRXZwS0RGLGY9aS5DaXBoZXI9cy5leHRlbmQoe2NmZzpuLmV4dGVuZCgpLGNyZWF0ZUVuY3J5cHRvcjpmdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLmNyZWF0ZSh0aGlzLl9FTkNfWEZPUk1fTU9ERSx0LHIpfSxjcmVhdGVEZWNyeXB0b3I6ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fREVDX1hGT1JNX01PREUsdCxyKX0saW5pdDpmdW5jdGlvbih0LHIsZSl7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKGUpLHRoaXMuX3hmb3JtTW9kZT10LHRoaXMuX2tleT1yLHRoaXMucmVzZXQoKX0scmVzZXQ6ZnVuY3Rpb24oKXtzLnJlc2V0LmNhbGwodGhpcyksdGhpcy5fZG9SZXNldCgpfSxwcm9jZXNzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hcHBlbmQodCksdGhpcy5fcHJvY2VzcygpfSxmaW5hbGl6ZTpmdW5jdGlvbih0KXt0JiZ0aGlzLl9hcHBlbmQodCk7dmFyIHI9dGhpcy5fZG9GaW5hbGl6ZSgpO3JldHVybiByfSxrZXlTaXplOjQsaXZTaXplOjQsX0VOQ19YRk9STV9NT0RFOjEsX0RFQ19YRk9STV9NT0RFOjIsX2NyZWF0ZUhlbHBlcjpmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/bTp3fXJldHVybiBmdW5jdGlvbihyKXtyZXR1cm57ZW5jcnlwdDpmdW5jdGlvbihlLGksbil7cmV0dXJuIHQoaSkuZW5jcnlwdChyLGUsaSxuKX0sZGVjcnlwdDpmdW5jdGlvbihlLGksbil7cmV0dXJuIHQoaSkuZGVjcnlwdChyLGUsaSxuKX19fX0oKX0pLHU9KGkuU3RyZWFtQ2lwaGVyPWYuZXh0ZW5kKHtfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3Byb2Nlc3MoITApO3JldHVybiB0fSxibG9ja1NpemU6MX0pLGUubW9kZT17fSksZD1pLkJsb2NrQ2lwaGVyTW9kZT1uLmV4dGVuZCh7Y3JlYXRlRW5jcnlwdG9yOmZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMuRW5jcnlwdG9yLmNyZWF0ZSh0LHIpfSxjcmVhdGVEZWNyeXB0b3I6ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5EZWNyeXB0b3IuY3JlYXRlKHQscil9LGluaXQ6ZnVuY3Rpb24odCxyKXt0aGlzLl9jaXBoZXI9dCx0aGlzLl9pdj1yfX0pLHY9dS5DQkM9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxpKXt2YXIgbj10aGlzLl9pdjtpZihuKXt2YXIgbz1uO3RoaXMuX2l2PXJ9ZWxzZSB2YXIgbz10aGlzLl9wcmV2QmxvY2s7Zm9yKHZhciBzPTA7czxpO3MrKyl0W2Urc11ePW9bc119dmFyIGU9ZC5leHRlbmQoKTtyZXR1cm4gZS5FbmNyeXB0b3I9ZS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbihyLGUpe3ZhciBpPXRoaXMuX2NpcGhlcixuPWkuYmxvY2tTaXplO3QuY2FsbCh0aGlzLHIsZSxuKSxpLmVuY3J5cHRCbG9jayhyLGUpLHRoaXMuX3ByZXZCbG9jaz1yLnNsaWNlKGUsZStuKX19KSxlLkRlY3J5cHRvcj1lLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHIsZSl7dmFyIGk9dGhpcy5fY2lwaGVyLG49aS5ibG9ja1NpemUsbz1yLnNsaWNlKGUsZStuKTtpLmRlY3J5cHRCbG9jayhyLGUpLHQuY2FsbCh0aGlzLHIsZSxuKSx0aGlzLl9wcmV2QmxvY2s9b319KSxlfSgpLHA9ZS5wYWQ9e30sXz1wLlBrY3M3PXtwYWQ6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9NCpyLGk9ZS10LnNpZ0J5dGVzJWUsbj1pPDwyNHxpPDwxNnxpPDw4fGkscz1bXSxhPTA7YTxpO2ErPTQpcy5wdXNoKG4pO3ZhciBjPW8uY3JlYXRlKHMsaSk7dC5jb25jYXQoYyl9LHVucGFkOmZ1bmN0aW9uKHQpe3ZhciByPTI1NSZ0LndvcmRzW3Quc2lnQnl0ZXMtMT4+PjJdO3Quc2lnQnl0ZXMtPXJ9fSx5PShpLkJsb2NrQ2lwaGVyPWYuZXh0ZW5kKHtjZmc6Zi5jZmcuZXh0ZW5kKHttb2RlOnYscGFkZGluZzpffSkscmVzZXQ6ZnVuY3Rpb24oKXtmLnJlc2V0LmNhbGwodGhpcyk7dmFyIHQ9dGhpcy5jZmcscj10Lml2LGU9dC5tb2RlO2lmKHRoaXMuX3hmb3JtTW9kZT09dGhpcy5fRU5DX1hGT1JNX01PREUpdmFyIGk9ZS5jcmVhdGVFbmNyeXB0b3I7ZWxzZXt2YXIgaT1lLmNyZWF0ZURlY3J5cHRvcjt0aGlzLl9taW5CdWZmZXJTaXplPTF9dGhpcy5fbW9kZSYmdGhpcy5fbW9kZS5fX2NyZWF0b3I9PWk/dGhpcy5fbW9kZS5pbml0KHRoaXMsciYmci53b3Jkcyk6KHRoaXMuX21vZGU9aS5jYWxsKGUsdGhpcyxyJiZyLndvcmRzKSx0aGlzLl9tb2RlLl9fY3JlYXRvcj1pKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fbW9kZS5wcm9jZXNzQmxvY2sodCxyKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNmZy5wYWRkaW5nO2lmKHRoaXMuX3hmb3JtTW9kZT09dGhpcy5fRU5DX1hGT1JNX01PREUpe3QucGFkKHRoaXMuX2RhdGEsdGhpcy5ibG9ja1NpemUpO3ZhciByPXRoaXMuX3Byb2Nlc3MoITApfWVsc2V7dmFyIHI9dGhpcy5fcHJvY2VzcyghMCk7dC51bnBhZChyKX1yZXR1cm4gcn0sYmxvY2tTaXplOjR9KSxpLkNpcGhlclBhcmFtcz1uLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0KXt0aGlzLm1peEluKHQpfSx0b1N0cmluZzpmdW5jdGlvbih0KXtyZXR1cm4odHx8dGhpcy5mb3JtYXR0ZXIpLnN0cmluZ2lmeSh0aGlzKX19KSksZz1lLmZvcm1hdD17fSxCPWcuT3BlblNTTD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe3ZhciByPXQuY2lwaGVydGV4dCxlPXQuc2FsdDtpZihlKXZhciBpPW8uY3JlYXRlKFsxMzk4ODkzNjg0LDE3MDEwNzY4MzFdKS5jb25jYXQoZSkuY29uY2F0KHIpO2Vsc2UgdmFyIGk9cjtyZXR1cm4gaS50b1N0cmluZyhjKX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIHI9Yy5wYXJzZSh0KSxlPXIud29yZHM7aWYoMTM5ODg5MzY4ND09ZVswXSYmMTcwMTA3NjgzMT09ZVsxXSl7dmFyIGk9by5jcmVhdGUoZS5zbGljZSgyLDQpKTtlLnNwbGljZSgwLDQpLHIuc2lnQnl0ZXMtPTE2fXJldHVybiB5LmNyZWF0ZSh7Y2lwaGVydGV4dDpyLHNhbHQ6aX0pfX0sdz1pLlNlcmlhbGl6YWJsZUNpcGhlcj1uLmV4dGVuZCh7Y2ZnOm4uZXh0ZW5kKHtmb3JtYXQ6Qn0pLGVuY3J5cHQ6ZnVuY3Rpb24odCxyLGUsaSl7aT10aGlzLmNmZy5leHRlbmQoaSk7dmFyIG49dC5jcmVhdGVFbmNyeXB0b3IoZSxpKSxvPW4uZmluYWxpemUocikscz1uLmNmZztyZXR1cm4geS5jcmVhdGUoe2NpcGhlcnRleHQ6byxrZXk6ZSxpdjpzLml2LGFsZ29yaXRobTp0LG1vZGU6cy5tb2RlLHBhZGRpbmc6cy5wYWRkaW5nLGJsb2NrU2l6ZTp0LmJsb2NrU2l6ZSxmb3JtYXR0ZXI6aS5mb3JtYXR9KX0sZGVjcnlwdDpmdW5jdGlvbih0LHIsZSxpKXtpPXRoaXMuY2ZnLmV4dGVuZChpKSxyPXRoaXMuX3BhcnNlKHIsaS5mb3JtYXQpO3ZhciBuPXQuY3JlYXRlRGVjcnlwdG9yKGUsaSkuZmluYWxpemUoci5jaXBoZXJ0ZXh0KTtyZXR1cm4gbn0sX3BhcnNlOmZ1bmN0aW9uKHQscil7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/ci5wYXJzZSh0LHRoaXMpOnR9fSksaz1lLmtkZj17fSxTPWsuT3BlblNTTD17ZXhlY3V0ZTpmdW5jdGlvbih0LHIsZSxpKXtpfHwoaT1vLnJhbmRvbSg4KSk7dmFyIG49bC5jcmVhdGUoe2tleVNpemU6citlfSkuY29tcHV0ZSh0LGkpLHM9by5jcmVhdGUobi53b3Jkcy5zbGljZShyKSw0KmUpO3JldHVybiBuLnNpZ0J5dGVzPTQqcix5LmNyZWF0ZSh7a2V5Om4saXY6cyxzYWx0Oml9KX19LG09aS5QYXNzd29yZEJhc2VkQ2lwaGVyPXcuZXh0ZW5kKHtjZmc6dy5jZmcuZXh0ZW5kKHtrZGY6U30pLGVuY3J5cHQ6ZnVuY3Rpb24odCxyLGUsaSl7aT10aGlzLmNmZy5leHRlbmQoaSk7dmFyIG49aS5rZGYuZXhlY3V0ZShlLHQua2V5U2l6ZSx0Lml2U2l6ZSk7aS5pdj1uLml2O3ZhciBvPXcuZW5jcnlwdC5jYWxsKHRoaXMsdCxyLG4ua2V5LGkpO3JldHVybiBvLm1peEluKG4pLG99LGRlY3J5cHQ6ZnVuY3Rpb24odCxyLGUsaSl7aT10aGlzLmNmZy5leHRlbmQoaSkscj10aGlzLl9wYXJzZShyLGkuZm9ybWF0KTt2YXIgbj1pLmtkZi5leGVjdXRlKGUsdC5rZXlTaXplLHQuaXZTaXplLHIuc2FsdCk7aS5pdj1uLml2O3ZhciBvPXcuZGVjcnlwdC5jYWxsKHRoaXMsdCxyLG4ua2V5LGkpO3JldHVybiBvfX0pfSgpLHQubW9kZS5DRkI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQscixlLGkpe3ZhciBuPXRoaXMuX2l2O2lmKG4pe3ZhciBvPW4uc2xpY2UoMCk7dGhpcy5faXY9dm9pZCAwfWVsc2UgdmFyIG89dGhpcy5fcHJldkJsb2NrO2kuZW5jcnlwdEJsb2NrKG8sMCk7Zm9yKHZhciBzPTA7czxlO3MrKyl0W3Irc11ePW9bc119dmFyIGU9dC5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpO3JldHVybiBlLkVuY3J5cHRvcj1lLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5fY2lwaGVyLG49aS5ibG9ja1NpemU7ci5jYWxsKHRoaXMsdCxlLG4saSksdGhpcy5fcHJldkJsb2NrPXQuc2xpY2UoZSxlK24pfX0pLGUuRGVjcnlwdG9yPWUuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl9jaXBoZXIsbj1pLmJsb2NrU2l6ZSxvPXQuc2xpY2UoZSxlK24pO3IuY2FsbCh0aGlzLHQsZSxuLGkpLHRoaXMuX3ByZXZCbG9jaz1vfX0pLGV9KCksdC5tb2RlLkVDQj1mdW5jdGlvbigpe3ZhciByPXQubGliLkJsb2NrQ2lwaGVyTW9kZS5leHRlbmQoKTtyZXR1cm4gci5FbmNyeXB0b3I9ci5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2sodCxyKX19KSxyLkRlY3J5cHRvcj1yLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fY2lwaGVyLmRlY3J5cHRCbG9jayh0LHIpfX0pLHJ9KCksdC5wYWQuQW5zaVg5MjM9e3BhZDpmdW5jdGlvbih0LHIpe3ZhciBlPXQuc2lnQnl0ZXMsaT00KnIsbj1pLWUlaSxvPWUrbi0xO3QuY2xhbXAoKSx0LndvcmRzW28+Pj4yXXw9bjw8MjQtbyU0KjgsdC5zaWdCeXRlcys9bn0sdW5wYWQ6ZnVuY3Rpb24odCl7dmFyIHI9MjU1JnQud29yZHNbdC5zaWdCeXRlcy0xPj4+Ml07dC5zaWdCeXRlcy09cn19LHQucGFkLklzbzEwMTI2PXtwYWQ6ZnVuY3Rpb24ocixlKXt2YXIgaT00KmUsbj1pLXIuc2lnQnl0ZXMlaTtyLmNvbmNhdCh0LmxpYi5Xb3JkQXJyYXkucmFuZG9tKG4tMSkpLmNvbmNhdCh0LmxpYi5Xb3JkQXJyYXkuY3JlYXRlKFtuPDwyNF0sMSkpfSx1bnBhZDpmdW5jdGlvbih0KXt2YXIgcj0yNTUmdC53b3Jkc1t0LnNpZ0J5dGVzLTE+Pj4yXTt0LnNpZ0J5dGVzLT1yfX0sdC5wYWQuSXNvOTc5NzE9e3BhZDpmdW5jdGlvbihyLGUpe3IuY29uY2F0KHQubGliLldvcmRBcnJheS5jcmVhdGUoWzIxNDc0ODM2NDhdLDEpKSx0LnBhZC5aZXJvUGFkZGluZy5wYWQocixlKX0sdW5wYWQ6ZnVuY3Rpb24ocil7dC5wYWQuWmVyb1BhZGRpbmcudW5wYWQociksci5zaWdCeXRlcy0tfX0sdC5tb2RlLk9GQj1mdW5jdGlvbigpe3ZhciByPXQubGliLkJsb2NrQ2lwaGVyTW9kZS5leHRlbmQoKSxlPXIuRW5jcnlwdG9yPXIuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9jaXBoZXIsaT1lLmJsb2NrU2l6ZSxuPXRoaXMuX2l2LG89dGhpcy5fa2V5c3RyZWFtO24mJihvPXRoaXMuX2tleXN0cmVhbT1uLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCksZS5lbmNyeXB0QmxvY2sobywwKTtmb3IodmFyIHM9MDtzPGk7cysrKXRbcitzXV49b1tzXX19KTtyZXR1cm4gci5EZWNyeXB0b3I9ZSxyfSgpLHQucGFkLk5vUGFkZGluZz17cGFkOmZ1bmN0aW9uKCl7fSx1bnBhZDpmdW5jdGlvbigpe319LGZ1bmN0aW9uKHIpe3ZhciBlPXQsaT1lLmxpYixuPWkuQ2lwaGVyUGFyYW1zLG89ZS5lbmMscz1vLkhleCxhPWUuZm9ybWF0O2EuSGV4PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY2lwaGVydGV4dC50b1N0cmluZyhzKX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIHI9cy5wYXJzZSh0KTtyZXR1cm4gbi5jcmVhdGUoe2NpcGhlcnRleHQ6cn0pfX19KCksZnVuY3Rpb24oKXt2YXIgcj10LGU9ci5saWIsaT1lLkJsb2NrQ2lwaGVyLG49ci5hbGdvLG89W10scz1bXSxhPVtdLGM9W10saD1bXSxsPVtdLGY9W10sdT1bXSxkPVtdLHY9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLHI9MDtyPDI1NjtyKyspcjwxMjg/dFtyXT1yPDwxOnRbcl09cjw8MV4yODM7Zm9yKHZhciBlPTAsaT0wLHI9MDtyPDI1NjtyKyspe3ZhciBuPWleaTw8MV5pPDwyXmk8PDNeaTw8NDtuPW4+Pj44XjI1NSZuXjk5LG9bZV09bixzW25dPWU7dmFyIHA9dFtlXSxfPXRbcF0seT10W19dLGc9MjU3KnRbbl1eMTY4NDMwMDgqbjthW2VdPWc8PDI0fGc+Pj44LGNbZV09Zzw8MTZ8Zz4+PjE2LGhbZV09Zzw8OHxnPj4+MjQsbFtlXT1nO3ZhciBnPTE2ODQzMDA5KnleNjU1MzcqX14yNTcqcF4xNjg0MzAwOCplO2Zbbl09Zzw8MjR8Zz4+PjgsdVtuXT1nPDwxNnxnPj4+MTYsZFtuXT1nPDw4fGc+Pj4yNCx2W25dPWcsZT8oZT1wXnRbdFt0W3lecF1dXSxpXj10W3RbaV1dKTplPWk9MX19KCk7dmFyIHA9WzAsMSwyLDQsOCwxNiwzMiw2NCwxMjgsMjcsNTRdLF89bi5BRVM9aS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7aWYoIXRoaXMuX25Sb3VuZHN8fHRoaXMuX2tleVByaW9yUmVzZXQhPT10aGlzLl9rZXkpe2Zvcih2YXIgdD10aGlzLl9rZXlQcmlvclJlc2V0PXRoaXMuX2tleSxyPXQud29yZHMsZT10LnNpZ0J5dGVzLzQsaT10aGlzLl9uUm91bmRzPWUrNixuPTQqKGkrMSkscz10aGlzLl9rZXlTY2hlZHVsZT1bXSxhPTA7YTxuO2ErKylpZihhPGUpc1thXT1yW2FdO2Vsc2V7dmFyIGM9c1thLTFdO2ElZT9lPjYmJmElZT09NCYmKGM9b1tjPj4+MjRdPDwyNHxvW2M+Pj4xNiYyNTVdPDwxNnxvW2M+Pj44JjI1NV08PDh8b1syNTUmY10pOihjPWM8PDh8Yz4+PjI0LGM9b1tjPj4+MjRdPDwyNHxvW2M+Pj4xNiYyNTVdPDwxNnxvW2M+Pj44JjI1NV08PDh8b1syNTUmY10sY149cFthL2V8MF08PDI0KSxzW2FdPXNbYS1lXV5jfWZvcih2YXIgaD10aGlzLl9pbnZLZXlTY2hlZHVsZT1bXSxsPTA7bDxuO2wrKyl7dmFyIGE9bi1sO2lmKGwlNCl2YXIgYz1zW2FdO2Vsc2UgdmFyIGM9c1thLTRdO2w8NHx8YTw9ND9oW2xdPWM6aFtsXT1mW29bYz4+PjI0XV1edVtvW2M+Pj4xNiYyNTVdXV5kW29bYz4+PjgmMjU1XV1edltvWzI1NSZjXV19fX0sZW5jcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9rZXlTY2hlZHVsZSxhLGMsaCxsLG8pfSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxyKXt2YXIgZT10W3IrMV07dFtyKzFdPXRbciszXSx0W3IrM109ZSx0aGlzLl9kb0NyeXB0QmxvY2sodCxyLHRoaXMuX2ludktleVNjaGVkdWxlLGYsdSxkLHYscyk7dmFyIGU9dFtyKzFdO3RbcisxXT10W3IrM10sdFtyKzNdPWV9LF9kb0NyeXB0QmxvY2s6ZnVuY3Rpb24odCxyLGUsaSxuLG8scyxhKXtmb3IodmFyIGM9dGhpcy5fblJvdW5kcyxoPXRbcl1eZVswXSxsPXRbcisxXV5lWzFdLGY9dFtyKzJdXmVbMl0sdT10W3IrM11eZVszXSxkPTQsdj0xO3Y8Yzt2Kyspe3ZhciBwPWlbaD4+PjI0XV5uW2w+Pj4xNiYyNTVdXm9bZj4+PjgmMjU1XV5zWzI1NSZ1XV5lW2QrK10sXz1pW2w+Pj4yNF1ebltmPj4+MTYmMjU1XV5vW3U+Pj44JjI1NV1ec1syNTUmaF1eZVtkKytdLHk9aVtmPj4+MjRdXm5bdT4+PjE2JjI1NV1eb1toPj4+OCYyNTVdXnNbMjU1JmxdXmVbZCsrXSxnPWlbdT4+PjI0XV5uW2g+Pj4xNiYyNTVdXm9bbD4+PjgmMjU1XV5zWzI1NSZmXV5lW2QrK107aD1wLGw9XyxmPXksdT1nfXZhciBwPShhW2g+Pj4yNF08PDI0fGFbbD4+PjE2JjI1NV08PDE2fGFbZj4+PjgmMjU1XTw8OHxhWzI1NSZ1XSleZVtkKytdLF89KGFbbD4+PjI0XTw8MjR8YVtmPj4+MTYmMjU1XTw8MTZ8YVt1Pj4+OCYyNTVdPDw4fGFbMjU1JmhdKV5lW2QrK10seT0oYVtmPj4+MjRdPDwyNHxhW3U+Pj4xNiYyNTVdPDwxNnxhW2g+Pj44JjI1NV08PDh8YVsyNTUmbF0pXmVbZCsrXSxnPShhW3U+Pj4yNF08PDI0fGFbaD4+PjE2JjI1NV08PDE2fGFbbD4+PjgmMjU1XTw8OHxhWzI1NSZmXSleZVtkKytdO3Rbcl09cCx0W3IrMV09Xyx0W3IrMl09eSx0W3IrM109Z30sa2V5U2l6ZTo4fSk7ci5BRVM9aS5fY3JlYXRlSGVscGVyKF8pfSgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0LHIpe3ZhciBlPSh0aGlzLl9sQmxvY2s+Pj50XnRoaXMuX3JCbG9jaykmcjt0aGlzLl9yQmxvY2tePWUsdGhpcy5fbEJsb2NrXj1lPDx0fWZ1bmN0aW9uIGUodCxyKXt2YXIgZT0odGhpcy5fckJsb2NrPj4+dF50aGlzLl9sQmxvY2spJnI7dGhpcy5fbEJsb2NrXj1lLHRoaXMuX3JCbG9ja149ZTw8dDtcclxufXZhciBpPXQsbj1pLmxpYixvPW4uV29yZEFycmF5LHM9bi5CbG9ja0NpcGhlcixhPWkuYWxnbyxjPVs1Nyw0OSw0MSwzMywyNSwxNyw5LDEsNTgsNTAsNDIsMzQsMjYsMTgsMTAsMiw1OSw1MSw0MywzNSwyNywxOSwxMSwzLDYwLDUyLDQ0LDM2LDYzLDU1LDQ3LDM5LDMxLDIzLDE1LDcsNjIsNTQsNDYsMzgsMzAsMjIsMTQsNiw2MSw1Myw0NSwzNywyOSwyMSwxMyw1LDI4LDIwLDEyLDRdLGg9WzE0LDE3LDExLDI0LDEsNSwzLDI4LDE1LDYsMjEsMTAsMjMsMTksMTIsNCwyNiw4LDE2LDcsMjcsMjAsMTMsMiw0MSw1MiwzMSwzNyw0Nyw1NSwzMCw0MCw1MSw0NSwzMyw0OCw0NCw0OSwzOSw1NiwzNCw1Myw0Niw0Miw1MCwzNiwyOSwzMl0sbD1bMSwyLDQsNiw4LDEwLDEyLDE0LDE1LDE3LDE5LDIxLDIzLDI1LDI3LDI4XSxmPVt7MDo4NDIxODg4LDI2ODQzNTQ1NjozMjc2OCw1MzY4NzA5MTI6ODQyMTM3OCw4MDUzMDYzNjg6MiwxMDczNzQxODI0OjUxMiwxMzQyMTc3MjgwOjg0MjE4OTAsMTYxMDYxMjczNjo4Mzg5MTIyLDE4NzkwNDgxOTI6ODM4ODYwOCwyMTQ3NDgzNjQ4OjUxNCwyNDE1OTE5MTA0OjgzODkxMjAsMjY4NDM1NDU2MDozMzI4MCwyOTUyNzkwMDE2Ojg0MjEzNzYsMzIyMTIyNTQ3MjozMjc3MCwzNDg5NjYwOTI4OjgzODg2MTAsMzc1ODA5NjM4NDowLDQwMjY1MzE4NDA6MzMyODIsMTM0MjE3NzI4OjAsNDAyNjUzMTg0Ojg0MjE4OTAsNjcxMDg4NjQwOjMzMjgyLDkzOTUyNDA5NjozMjc2OCwxMjA3OTU5NTUyOjg0MjE4ODgsMTQ3NjM5NTAwODo1MTIsMTc0NDgzMDQ2NDo4NDIxMzc4LDIwMTMyNjU5MjA6MiwyMjgxNzAxMzc2OjgzODkxMjAsMjU1MDEzNjgzMjozMzI4MCwyODE4NTcyMjg4Ojg0MjEzNzYsMzA4NzAwNzc0NDo4Mzg5MTIyLDMzNTU0NDMyMDA6ODM4ODYxMCwzNjIzODc4NjU2OjMyNzcwLDM4OTIzMTQxMTI6NTE0LDQxNjA3NDk1Njg6ODM4ODYwOCwxOjMyNzY4LDI2ODQzNTQ1NzoyLDUzNjg3MDkxMzo4NDIxODg4LDgwNTMwNjM2OTo4Mzg4NjA4LDEwNzM3NDE4MjU6ODQyMTM3OCwxMzQyMTc3MjgxOjMzMjgwLDE2MTA2MTI3Mzc6NTEyLDE4NzkwNDgxOTM6ODM4OTEyMiwyMTQ3NDgzNjQ5Ojg0MjE4OTAsMjQxNTkxOTEwNTo4NDIxMzc2LDI2ODQzNTQ1NjE6ODM4ODYxMCwyOTUyNzkwMDE3OjMzMjgyLDMyMjEyMjU0NzM6NTE0LDM0ODk2NjA5Mjk6ODM4OTEyMCwzNzU4MDk2Mzg1OjMyNzcwLDQwMjY1MzE4NDE6MCwxMzQyMTc3Mjk6ODQyMTg5MCw0MDI2NTMxODU6ODQyMTM3Niw2NzEwODg2NDE6ODM4ODYwOCw5Mzk1MjQwOTc6NTEyLDEyMDc5NTk1NTM6MzI3NjgsMTQ3NjM5NTAwOTo4Mzg4NjEwLDE3NDQ4MzA0NjU6MiwyMDEzMjY1OTIxOjMzMjgyLDIyODE3MDEzNzc6MzI3NzAsMjU1MDEzNjgzMzo4Mzg5MTIyLDI4MTg1NzIyODk6NTE0LDMwODcwMDc3NDU6ODQyMTg4OCwzMzU1NDQzMjAxOjgzODkxMjAsMzYyMzg3ODY1NzowLDM4OTIzMTQxMTM6MzMyODAsNDE2MDc0OTU2OTo4NDIxMzc4fSx7MDoxMDc0MjgyNTEyLDE2Nzc3MjE2OjE2Mzg0LDMzNTU0NDMyOjUyNDI4OCw1MDMzMTY0ODoxMDc0MjY2MTI4LDY3MTA4ODY0OjEwNzM3NDE4NDAsODM4ODYwODA6MTA3NDI4MjQ5NiwxMDA2NjMyOTY6MTA3Mzc1ODIwOCwxMTc0NDA1MTI6MTYsMTM0MjE3NzI4OjU0MDY3MiwxNTA5OTQ5NDQ6MTA3Mzc1ODIyNCwxNjc3NzIxNjA6MTA3Mzc0MTgyNCwxODQ1NDkzNzY6NTQwNjg4LDIwMTMyNjU5Mjo1MjQzMDQsMjE4MTAzODA4OjAsMjM0ODgxMDI0OjE2NDAwLDI1MTY1ODI0MDoxMDc0MjY2MTEyLDgzODg2MDg6MTA3Mzc1ODIwOCwyNTE2NTgyNDo1NDA2ODgsNDE5NDMwNDA6MTYsNTg3MjAyNTY6MTA3Mzc1ODIyNCw3NTQ5NzQ3MjoxMDc0MjgyNTEyLDkyMjc0Njg4OjEwNzM3NDE4MjQsMTA5MDUxOTA0OjUyNDI4OCwxMjU4MjkxMjA6MTA3NDI2NjEyOCwxNDI2MDYzMzY6NTI0MzA0LDE1OTM4MzU1MjowLDE3NjE2MDc2ODoxNjM4NCwxOTI5Mzc5ODQ6MTA3NDI2NjExMiwyMDk3MTUyMDA6MTA3Mzc0MTg0MCwyMjY0OTI0MTY6NTQwNjcyLDI0MzI2OTYzMjoxMDc0MjgyNDk2LDI2MDA0Njg0ODoxNjQwMCwyNjg0MzU0NTY6MCwyODUyMTI2NzI6MTA3NDI2NjEyOCwzMDE5ODk4ODg6MTA3Mzc1ODIyNCwzMTg3NjcxMDQ6MTA3NDI4MjQ5NiwzMzU1NDQzMjA6MTA3NDI2NjExMiwzNTIzMjE1MzY6MTYsMzY5MDk4NzUyOjU0MDY4OCwzODU4NzU5Njg6MTYzODQsNDAyNjUzMTg0OjE2NDAwLDQxOTQzMDQwMDo1MjQyODgsNDM2MjA3NjE2OjUyNDMwNCw0NTI5ODQ4MzI6MTA3Mzc0MTg0MCw0Njk3NjIwNDg6NTQwNjcyLDQ4NjUzOTI2NDoxMDczNzU4MjA4LDUwMzMxNjQ4MDoxMDczNzQxODI0LDUyMDA5MzY5NjoxMDc0MjgyNTEyLDI3NjgyNDA2NDo1NDA2ODgsMjkzNjAxMjgwOjUyNDI4OCwzMTAzNzg0OTY6MTA3NDI2NjExMiwzMjcxNTU3MTI6MTYzODQsMzQzOTMyOTI4OjEwNzM3NTgyMDgsMzYwNzEwMTQ0OjEwNzQyODI1MTIsMzc3NDg3MzYwOjE2LDM5NDI2NDU3NjoxMDczNzQxODI0LDQxMTA0MTc5MjoxMDc0MjgyNDk2LDQyNzgxOTAwODoxMDczNzQxODQwLDQ0NDU5NjIyNDoxMDczNzU4MjI0LDQ2MTM3MzQ0MDo1MjQzMDQsNDc4MTUwNjU2OjAsNDk0OTI3ODcyOjE2NDAwLDUxMTcwNTA4ODoxMDc0MjY2MTI4LDUyODQ4MjMwNDo1NDA2NzJ9LHswOjI2MCwxMDQ4NTc2OjAsMjA5NzE1Mjo2NzEwOTEyMCwzMTQ1NzI4OjY1Nzk2LDQxOTQzMDQ6NjU1NDAsNTI0Mjg4MDo2NzEwODg2OCw2MjkxNDU2OjY3MTc0NjYwLDczNDAwMzI6NjcxNzQ0MDAsODM4ODYwODo2NzEwODg2NCw5NDM3MTg0OjY3MTc0NjU2LDEwNDg1NzYwOjY1NzkyLDExNTM0MzM2OjY3MTc0NDA0LDEyNTgyOTEyOjY3MTA5MTI0LDEzNjMxNDg4OjY1NTM2LDE0NjgwMDY0OjQsMTU3Mjg2NDA6MjU2LDUyNDI4ODo2NzE3NDY1NiwxNTcyODY0OjY3MTc0NDA0LDI2MjE0NDA6MCwzNjcwMDE2OjY3MTA5MTIwLDQ3MTg1OTI6NjcxMDg4NjgsNTc2NzE2ODo2NTUzNiw2ODE1NzQ0OjY1NTQwLDc4NjQzMjA6MjYwLDg5MTI4OTY6NCw5OTYxNDcyOjI1NiwxMTAxMDA0ODo2NzE3NDQwMCwxMjA1ODYyNDo2NTc5NiwxMzEwNzIwMDo2NTc5MiwxNDE1NTc3Njo2NzEwOTEyNCwxNTIwNDM1Mjo2NzE3NDY2MCwxNjI1MjkyODo2NzEwODg2NCwxNjc3NzIxNjo2NzE3NDY1NiwxNzgyNTc5Mjo2NTU0MCwxODg3NDM2ODo2NTUzNiwxOTkyMjk0NDo2NzEwOTEyMCwyMDk3MTUyMDoyNTYsMjIwMjAwOTY6NjcxNzQ2NjAsMjMwNjg2NzI6NjcxMDg4NjgsMjQxMTcyNDg6MCwyNTE2NTgyNDo2NzEwOTEyNCwyNjIxNDQwMDo2NzEwODg2NCwyNzI2Mjk3Njo0LDI4MzExNTUyOjY1NzkyLDI5MzYwMTI4OjY3MTc0NDAwLDMwNDA4NzA0OjI2MCwzMTQ1NzI4MDo2NTc5NiwzMjUwNTg1Njo2NzE3NDQwNCwxNzMwMTUwNDo2NzEwODg2NCwxODM1MDA4MDoyNjAsMTkzOTg2NTY6NjcxNzQ2NTYsMjA0NDcyMzI6MCwyMTQ5NTgwODo2NTU0MCwyMjU0NDM4NDo2NzEwOTEyMCwyMzU5Mjk2MDoyNTYsMjQ2NDE1MzY6NjcxNzQ0MDQsMjU2OTAxMTI6NjU1MzYsMjY3Mzg2ODg6NjcxNzQ2NjAsMjc3ODcyNjQ6NjU3OTYsMjg4MzU4NDA6NjcxMDg4NjgsMjk4ODQ0MTY6NjcxMDkxMjQsMzA5MzI5OTI6NjcxNzQ0MDAsMzE5ODE1Njg6NCwzMzAzMDE0NDo2NTc5Mn0sezA6MjE1MTY4MjA0OCw2NTUzNjoyMTQ3NDg3ODA4LDEzMTA3Mjo0MTk4NDY0LDE5NjYwODoyMTUxNjc3OTUyLDI2MjE0NDowLDMyNzY4MDo0MTk4NDAwLDM5MzIxNjoyMTQ3NDgzNzEyLDQ1ODc1Mjo0MTk0MzY4LDUyNDI4ODoyMTQ3NDgzNjQ4LDU4OTgyNDo0MTk0MzA0LDY1NTM2MDo2NCw3MjA4OTY6MjE0NzQ4Nzc0NCw3ODY0MzI6MjE1MTY3ODAxNiw4NTE5Njg6NDE2MCw5MTc1MDQ6NDA5Niw5ODMwNDA6MjE1MTY4MjExMiwzMjc2ODoyMTQ3NDg3ODA4LDk4MzA0OjY0LDE2Mzg0MDoyMTUxNjc4MDE2LDIyOTM3NjoyMTQ3NDg3NzQ0LDI5NDkxMjo0MTk4NDAwLDM2MDQ0ODoyMTUxNjgyMTEyLDQyNTk4NDowLDQ5MTUyMDoyMTUxNjc3OTUyLDU1NzA1Njo0MDk2LDYyMjU5MjoyMTUxNjgyMDQ4LDY4ODEyODo0MTk0MzA0LDc1MzY2NDo0MTYwLDgxOTIwMDoyMTQ3NDgzNjQ4LDg4NDczNjo0MTk0MzY4LDk1MDI3Mjo0MTk4NDY0LDEwMTU4MDg6MjE0NzQ4MzcxMiwxMDQ4NTc2OjQxOTQzNjgsMTExNDExMjo0MTk4NDAwLDExNzk2NDg6MjE0NzQ4MzcxMiwxMjQ1MTg0OjAsMTMxMDcyMDo0MTYwLDEzNzYyNTY6MjE1MTY3ODAxNiwxNDQxNzkyOjIxNTE2ODIwNDgsMTUwNzMyODoyMTQ3NDg3ODA4LDE1NzI4NjQ6MjE1MTY4MjExMiwxNjM4NDAwOjIxNDc0ODM2NDgsMTcwMzkzNjoyMTUxNjc3OTUyLDE3Njk0NzI6NDE5ODQ2NCwxODM1MDA4OjIxNDc0ODc3NDQsMTkwMDU0NDo0MTk0MzA0LDE5NjYwODA6NjQsMjAzMTYxNjo0MDk2LDEwODEzNDQ6MjE1MTY3Nzk1MiwxMTQ2ODgwOjIxNTE2ODIxMTIsMTIxMjQxNjowLDEyNzc5NTI6NDE5ODQwMCwxMzQzNDg4OjQxOTQzNjgsMTQwOTAyNDoyMTQ3NDgzNjQ4LDE0NzQ1NjA6MjE0NzQ4NzgwOCwxNTQwMDk2OjY0LDE2MDU2MzI6MjE0NzQ4MzcxMiwxNjcxMTY4OjQwOTYsMTczNjcwNDoyMTQ3NDg3NzQ0LDE4MDIyNDA6MjE1MTY3ODAxNiwxODY3Nzc2OjQxNjAsMTkzMzMxMjoyMTUxNjgyMDQ4LDE5OTg4NDg6NDE5NDMwNCwyMDY0Mzg0OjQxOTg0NjR9LHswOjEyOCw0MDk2OjE3MDM5MzYwLDgxOTI6MjYyMTQ0LDEyMjg4OjUzNjg3MDkxMiwxNjM4NDo1MzcxMzMxODQsMjA0ODA6MTY3NzczNDQsMjQ1NzY6NTUzNjQ4MjU2LDI4NjcyOjI2MjI3MiwzMjc2ODoxNjc3NzIxNiwzNjg2NDo1MzcxMzMwNTYsNDA5NjA6NTM2ODcxMDQwLDQ1MDU2OjU1MzkxMDQwMCw0OTE1Mjo1NTM5MTAyNzIsNTMyNDg6MCw1NzM0NDoxNzAzOTQ4OCw2MTQ0MDo1NTM2NDgxMjgsMjA0ODoxNzAzOTQ4OCw2MTQ0OjU1MzY0ODI1NiwxMDI0MDoxMjgsMTQzMzY6MTcwMzkzNjAsMTg0MzI6MjYyMTQ0LDIyNTI4OjUzNzEzMzE4NCwyNjYyNDo1NTM5MTAyNzIsMzA3MjA6NTM2ODcwOTEyLDM0ODE2OjUzNzEzMzA1NiwzODkxMjowLDQzMDA4OjU1MzkxMDQwMCw0NzEwNDoxNjc3NzM0NCw1MTIwMDo1MzY4NzEwNDAsNTUyOTY6NTUzNjQ4MTI4LDU5MzkyOjE2Nzc3MjE2LDYzNDg4OjI2MjI3Miw2NTUzNjoyNjIxNDQsNjk2MzI6MTI4LDczNzI4OjUzNjg3MDkxMiw3NzgyNDo1NTM2NDgyNTYsODE5MjA6MTY3NzczNDQsODYwMTY6NTUzOTEwMjcyLDkwMTEyOjUzNzEzMzE4NCw5NDIwODoxNjc3NzIxNiw5ODMwNDo1NTM5MTA0MDAsMTAyNDAwOjU1MzY0ODEyOCwxMDY0OTY6MTcwMzkzNjAsMTEwNTkyOjUzNzEzMzA1NiwxMTQ2ODg6MjYyMjcyLDExODc4NDo1MzY4NzEwNDAsMTIyODgwOjAsMTI2OTc2OjE3MDM5NDg4LDY3NTg0OjU1MzY0ODI1Niw3MTY4MDoxNjc3NzIxNiw3NTc3NjoxNzAzOTM2MCw3OTg3Mjo1MzcxMzMxODQsODM5Njg6NTM2ODcwOTEyLDg4MDY0OjE3MDM5NDg4LDkyMTYwOjEyOCw5NjI1Njo1NTM5MTAyNzIsMTAwMzUyOjI2MjI3MiwxMDQ0NDg6NTUzOTEwNDAwLDEwODU0NDowLDExMjY0MDo1NTM2NDgxMjgsMTE2NzM2OjE2Nzc3MzQ0LDEyMDgzMjoyNjIxNDQsMTI0OTI4OjUzNzEzMzA1NiwxMjkwMjQ6NTM2ODcxMDQwfSx7MDoyNjg0MzU0NjQsMjU2OjgxOTIsNTEyOjI3MDUzMjYwOCw3Njg6MjcwNTQwODA4LDEwMjQ6MjY4NDQzNjQ4LDEyODA6MjA5NzE1MiwxNTM2OjIwOTcxNjAsMTc5MjoyNjg0MzU0NTYsMjA0ODowLDIzMDQ6MjY4NDQzNjU2LDI1NjA6MjEwNTM0NCwyODE2OjgsMzA3MjoyNzA1MzI2MTYsMzMyODoyMTA1MzUyLDM1ODQ6ODIwMCwzODQwOjI3MDU0MDgwMCwxMjg6MjcwNTMyNjA4LDM4NDoyNzA1NDA4MDgsNjQwOjgsODk2OjIwOTcxNTIsMTE1MjoyMTA1MzUyLDE0MDg6MjY4NDM1NDY0LDE2NjQ6MjY4NDQzNjQ4LDE5MjA6ODIwMCwyMTc2OjIwOTcxNjAsMjQzMjo4MTkyLDI2ODg6MjY4NDQzNjU2LDI5NDQ6MjcwNTMyNjE2LDMyMDA6MCwzNDU2OjI3MDU0MDgwMCwzNzEyOjIxMDUzNDQsMzk2ODoyNjg0MzU0NTYsNDA5NjoyNjg0NDM2NDgsNDM1MjoyNzA1MzI2MTYsNDYwODoyNzA1NDA4MDgsNDg2NDo4MjAwLDUxMjA6MjA5NzE1Miw1Mzc2OjI2ODQzNTQ1Niw1NjMyOjI2ODQzNTQ2NCw1ODg4OjIxMDUzNDQsNjE0NDoyMTA1MzUyLDY0MDA6MCw2NjU2OjgsNjkxMjoyNzA1MzI2MDgsNzE2ODo4MTkyLDc0MjQ6MjY4NDQzNjU2LDc2ODA6MjcwNTQwODAwLDc5MzY6MjA5NzE2MCw0MjI0OjgsNDQ4MDoyMTA1MzQ0LDQ3MzY6MjA5NzE1Miw0OTkyOjI2ODQzNTQ2NCw1MjQ4OjI2ODQ0MzY0OCw1NTA0OjgyMDAsNTc2MDoyNzA1NDA4MDgsNjAxNjoyNzA1MzI2MDgsNjI3MjoyNzA1NDA4MDAsNjUyODoyNzA1MzI2MTYsNjc4NDo4MTkyLDcwNDA6MjEwNTM1Miw3Mjk2OjIwOTcxNjAsNzU1MjowLDc4MDg6MjY4NDM1NDU2LDgwNjQ6MjY4NDQzNjU2fSx7MDoxMDQ4NTc2LDE2OjMzNTU1NDU3LDMyOjEwMjQsNDg6MTA0OTYwMSw2NDozNDYwNDAzMyw4MDowLDk2OjEsMTEyOjM0NjAzMDA5LDEyODozMzU1NTQ1NiwxNDQ6MTA0ODU3NywxNjA6MzM1NTQ0MzMsMTc2OjM0NjA0MDMyLDE5MjozNDYwMzAwOCwyMDg6MTAyNSwyMjQ6MTA0OTYwMCwyNDA6MzM1NTQ0MzIsODozNDYwMzAwOSwyNDowLDQwOjMzNTU1NDU3LDU2OjM0NjA0MDMyLDcyOjEwNDg1NzYsODg6MzM1NTQ0MzMsMTA0OjMzNTU0NDMyLDEyMDoxMDI1LDEzNjoxMDQ5NjAxLDE1MjozMzU1NTQ1NiwxNjg6MzQ2MDMwMDgsMTg0OjEwNDg1NzcsMjAwOjEwMjQsMjE2OjM0NjA0MDMzLDIzMjoxLDI0ODoxMDQ5NjAwLDI1NjozMzU1NDQzMiwyNzI6MTA0ODU3NiwyODg6MzM1NTU0NTcsMzA0OjM0NjAzMDA5LDMyMDoxMDQ4NTc3LDMzNjozMzU1NTQ1NiwzNTI6MzQ2MDQwMzIsMzY4OjEwNDk2MDEsMzg0OjEwMjUsNDAwOjM0NjA0MDMzLDQxNjoxMDQ5NjAwLDQzMjoxLDQ0ODowLDQ2NDozNDYwMzAwOCw0ODA6MzM1NTQ0MzMsNDk2OjEwMjQsMjY0OjEwNDk2MDAsMjgwOjMzNTU1NDU3LDI5NjozNDYwMzAwOSwzMTI6MSwzMjg6MzM1NTQ0MzIsMzQ0OjEwNDg1NzYsMzYwOjEwMjUsMzc2OjM0NjA0MDMyLDM5MjozMzU1NDQzMyw0MDg6MzQ2MDMwMDgsNDI0OjAsNDQwOjM0NjA0MDMzLDQ1NjoxMDQ5NjAxLDQ3MjoxMDI0LDQ4ODozMzU1NTQ1Niw1MDQ6MTA0ODU3N30sezA6MTM0MjE5ODA4LDE6MTMxMDcyLDI6MTM0MjE3NzI4LDM6MzIsNDoxMzExMDQsNToxMzQzNTA4ODAsNjoxMzQzNTA4NDgsNzoyMDQ4LDg6MTM0MzQ4ODAwLDk6MTM0MjE5Nzc2LDEwOjEzMzEyMCwxMToxMzQzNDg4MzIsMTI6MjA4MCwxMzowLDE0OjEzNDIxNzc2MCwxNToxMzMxNTIsMjE0NzQ4MzY0ODoyMDQ4LDIxNDc0ODM2NDk6MTM0MzUwODgwLDIxNDc0ODM2NTA6MTM0MjE5ODA4LDIxNDc0ODM2NTE6MTM0MjE3NzI4LDIxNDc0ODM2NTI6MTM0MzQ4ODAwLDIxNDc0ODM2NTM6MTMzMTIwLDIxNDc0ODM2NTQ6MTMzMTUyLDIxNDc0ODM2NTU6MzIsMjE0NzQ4MzY1NjoxMzQyMTc3NjAsMjE0NzQ4MzY1NzoyMDgwLDIxNDc0ODM2NTg6MTMxMTA0LDIxNDc0ODM2NTk6MTM0MzUwODQ4LDIxNDc0ODM2NjA6MCwyMTQ3NDgzNjYxOjEzNDM0ODgzMiwyMTQ3NDgzNjYyOjEzNDIxOTc3NiwyMTQ3NDgzNjYzOjEzMTA3MiwxNjoxMzMxNTIsMTc6MTM0MzUwODQ4LDE4OjMyLDE5OjIwNDgsMjA6MTM0MjE5Nzc2LDIxOjEzNDIxNzc2MCwyMjoxMzQzNDg4MzIsMjM6MTMxMDcyLDI0OjAsMjU6MTMxMTA0LDI2OjEzNDM0ODgwMCwyNzoxMzQyMTk4MDgsMjg6MTM0MzUwODgwLDI5OjEzMzEyMCwzMDoyMDgwLDMxOjEzNDIxNzcyOCwyMTQ3NDgzNjY0OjEzMTA3MiwyMTQ3NDgzNjY1OjIwNDgsMjE0NzQ4MzY2NjoxMzQzNDg4MzIsMjE0NzQ4MzY2NzoxMzMxNTIsMjE0NzQ4MzY2ODozMiwyMTQ3NDgzNjY5OjEzNDM0ODgwMCwyMTQ3NDgzNjcwOjEzNDIxNzcyOCwyMTQ3NDgzNjcxOjEzNDIxOTgwOCwyMTQ3NDgzNjcyOjEzNDM1MDg4MCwyMTQ3NDgzNjczOjEzNDIxNzc2MCwyMTQ3NDgzNjc0OjEzNDIxOTc3NiwyMTQ3NDgzNjc1OjAsMjE0NzQ4MzY3NjoxMzMxMjAsMjE0NzQ4MzY3NzoyMDgwLDIxNDc0ODM2Nzg6MTMxMTA0LDIxNDc0ODM2Nzk6MTM0MzUwODQ4fV0sdT1bNDE2MDc0OTU2OSw1Mjg0ODIzMDQsMzMwMzAxNDQsMjA2NDM4NCwxMjkwMjQsODA2NCw1MDQsMjE0NzQ4MzY3OV0sZD1hLkRFUz1zLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LHI9dC53b3JkcyxlPVtdLGk9MDtpPDU2O2krKyl7dmFyIG49Y1tpXS0xO2VbaV09cltuPj4+NV0+Pj4zMS1uJTMyJjF9Zm9yKHZhciBvPXRoaXMuX3N1YktleXM9W10scz0wO3M8MTY7cysrKXtmb3IodmFyIGE9b1tzXT1bXSxmPWxbc10saT0wO2k8MjQ7aSsrKWFbaS82fDBdfD1lWyhoW2ldLTErZiklMjhdPDwzMS1pJTYsYVs0KyhpLzZ8MCldfD1lWzI4KyhoW2krMjRdLTErZiklMjhdPDwzMS1pJTY7YVswXT1hWzBdPDwxfGFbMF0+Pj4zMTtmb3IodmFyIGk9MTtpPDc7aSsrKWFbaV09YVtpXT4+PjQqKGktMSkrMzthWzddPWFbN108PDV8YVs3XT4+PjI3fWZvcih2YXIgdT10aGlzLl9pbnZTdWJLZXlzPVtdLGk9MDtpPDE2O2krKyl1W2ldPW9bMTUtaV19LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2RvQ3J5cHRCbG9jayh0LHIsdGhpcy5fc3ViS2V5cyl9LGRlY3J5cHRCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2RvQ3J5cHRCbG9jayh0LHIsdGhpcy5faW52U3ViS2V5cyl9LF9kb0NyeXB0QmxvY2s6ZnVuY3Rpb24odCxpLG4pe3RoaXMuX2xCbG9jaz10W2ldLHRoaXMuX3JCbG9jaz10W2krMV0sci5jYWxsKHRoaXMsNCwyNTI2NDUxMzUpLHIuY2FsbCh0aGlzLDE2LDY1NTM1KSxlLmNhbGwodGhpcywyLDg1ODk5MzQ1OSksZS5jYWxsKHRoaXMsOCwxNjcxMTkzNSksci5jYWxsKHRoaXMsMSwxNDMxNjU1NzY1KTtmb3IodmFyIG89MDtvPDE2O28rKyl7Zm9yKHZhciBzPW5bb10sYT10aGlzLl9sQmxvY2ssYz10aGlzLl9yQmxvY2ssaD0wLGw9MDtsPDg7bCsrKWh8PWZbbF1bKChjXnNbbF0pJnVbbF0pPj4+MF07dGhpcy5fbEJsb2NrPWMsdGhpcy5fckJsb2NrPWFeaH12YXIgZD10aGlzLl9sQmxvY2s7dGhpcy5fbEJsb2NrPXRoaXMuX3JCbG9jayx0aGlzLl9yQmxvY2s9ZCxyLmNhbGwodGhpcywxLDE0MzE2NTU3NjUpLGUuY2FsbCh0aGlzLDgsMTY3MTE5MzUpLGUuY2FsbCh0aGlzLDIsODU4OTkzNDU5KSxyLmNhbGwodGhpcywxNiw2NTUzNSksci5jYWxsKHRoaXMsNCwyNTI2NDUxMzUpLHRbaV09dGhpcy5fbEJsb2NrLHRbaSsxXT10aGlzLl9yQmxvY2t9LGtleVNpemU6MixpdlNpemU6MixibG9ja1NpemU6Mn0pO2kuREVTPXMuX2NyZWF0ZUhlbHBlcihkKTt2YXIgdj1hLlRyaXBsZURFUz1zLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9rZXkscj10LndvcmRzO3RoaXMuX2RlczE9ZC5jcmVhdGVFbmNyeXB0b3Ioby5jcmVhdGUoci5zbGljZSgwLDIpKSksdGhpcy5fZGVzMj1kLmNyZWF0ZUVuY3J5cHRvcihvLmNyZWF0ZShyLnNsaWNlKDIsNCkpKSx0aGlzLl9kZXMzPWQuY3JlYXRlRW5jcnlwdG9yKG8uY3JlYXRlKHIuc2xpY2UoNCw2KSkpfSxlbmNyeXB0QmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9kZXMxLmVuY3J5cHRCbG9jayh0LHIpLHRoaXMuX2RlczIuZGVjcnlwdEJsb2NrKHQsciksdGhpcy5fZGVzMy5lbmNyeXB0QmxvY2sodCxyKX0sZGVjcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fZGVzMy5kZWNyeXB0QmxvY2sodCxyKSx0aGlzLl9kZXMyLmVuY3J5cHRCbG9jayh0LHIpLHRoaXMuX2RlczEuZGVjcnlwdEJsb2NrKHQscil9LGtleVNpemU6NixpdlNpemU6MixibG9ja1NpemU6Mn0pO2kuVHJpcGxlREVTPXMuX2NyZWF0ZUhlbHBlcih2KX0oKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIoKXtmb3IodmFyIHQ9dGhpcy5fUyxyPXRoaXMuX2ksZT10aGlzLl9qLGk9MCxuPTA7bjw0O24rKyl7cj0ocisxKSUyNTYsZT0oZSt0W3JdKSUyNTY7dmFyIG89dFtyXTt0W3JdPXRbZV0sdFtlXT1vLGl8PXRbKHRbcl0rdFtlXSklMjU2XTw8MjQtOCpufXJldHVybiB0aGlzLl9pPXIsdGhpcy5faj1lLGl9dmFyIGU9dCxpPWUubGliLG49aS5TdHJlYW1DaXBoZXIsbz1lLmFsZ28scz1vLlJDND1uLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LHI9dC53b3JkcyxlPXQuc2lnQnl0ZXMsaT10aGlzLl9TPVtdLG49MDtuPDI1NjtuKyspaVtuXT1uO2Zvcih2YXIgbj0wLG89MDtuPDI1NjtuKyspe3ZhciBzPW4lZSxhPXJbcz4+PjJdPj4+MjQtcyU0KjgmMjU1O289KG8raVtuXSthKSUyNTY7dmFyIGM9aVtuXTtpW25dPWlbb10saVtvXT1jfXRoaXMuX2k9dGhpcy5faj0wfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt0W2VdXj1yLmNhbGwodGhpcyl9LGtleVNpemU6OCxpdlNpemU6MH0pO2UuUkM0PW4uX2NyZWF0ZUhlbHBlcihzKTt2YXIgYT1vLlJDNERyb3A9cy5leHRlbmQoe2NmZzpzLmNmZy5leHRlbmQoe2Ryb3A6MTkyfSksX2RvUmVzZXQ6ZnVuY3Rpb24oKXtzLl9kb1Jlc2V0LmNhbGwodGhpcyk7Zm9yKHZhciB0PXRoaXMuY2ZnLmRyb3A7dD4wO3QtLSlyLmNhbGwodGhpcyl9fSk7ZS5SQzREcm9wPW4uX2NyZWF0ZUhlbHBlcihhKX0oKSx0Lm1vZGUuQ1RSR2xhZG1hbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIodCl7aWYoMjU1PT09KHQ+PjI0JjI1NSkpe3ZhciByPXQ+PjE2JjI1NSxlPXQ+PjgmMjU1LGk9MjU1JnQ7MjU1PT09cj8ocj0wLDI1NT09PWU/KGU9MCwyNTU9PT1pP2k9MDorK2kpOisrZSk6KytyLHQ9MCx0Kz1yPDwxNix0Kz1lPDw4LHQrPWl9ZWxzZSB0Kz0xPDwyNDtyZXR1cm4gdH1mdW5jdGlvbiBlKHQpe3JldHVybiAwPT09KHRbMF09cih0WzBdKSkmJih0WzFdPXIodFsxXSkpLHR9dmFyIGk9dC5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpLG49aS5FbmNyeXB0b3I9aS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3ZhciBpPXRoaXMuX2NpcGhlcixuPWkuYmxvY2tTaXplLG89dGhpcy5faXYscz10aGlzLl9jb3VudGVyO28mJihzPXRoaXMuX2NvdW50ZXI9by5zbGljZSgwKSx0aGlzLl9pdj12b2lkIDApLGUocyk7dmFyIGE9cy5zbGljZSgwKTtpLmVuY3J5cHRCbG9jayhhLDApO2Zvcih2YXIgYz0wO2M8bjtjKyspdFtyK2NdXj1hW2NdfX0pO3JldHVybiBpLkRlY3J5cHRvcj1uLGl9KCksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7Zm9yKHZhciB0PXRoaXMuX1gscj10aGlzLl9DLGU9MDtlPDg7ZSsrKWFbZV09cltlXTtyWzBdPXJbMF0rMTI5NTMwNzU5Nyt0aGlzLl9ifDAsclsxXT1yWzFdKzM1NDUwNTIzNzErKHJbMF0+Pj4wPGFbMF0+Pj4wPzE6MCl8MCxyWzJdPXJbMl0rODg2MjYzMDkyKyhyWzFdPj4+MDxhWzFdPj4+MD8xOjApfDAsclszXT1yWzNdKzEyOTUzMDc1OTcrKHJbMl0+Pj4wPGFbMl0+Pj4wPzE6MCl8MCxyWzRdPXJbNF0rMzU0NTA1MjM3MSsoclszXT4+PjA8YVszXT4+PjA/MTowKXwwLHJbNV09cls1XSs4ODYyNjMwOTIrKHJbNF0+Pj4wPGFbNF0+Pj4wPzE6MCl8MCxyWzZdPXJbNl0rMTI5NTMwNzU5Nysocls1XT4+PjA8YVs1XT4+PjA/MTowKXwwLHJbN109cls3XSszNTQ1MDUyMzcxKyhyWzZdPj4+MDxhWzZdPj4+MD8xOjApfDAsdGhpcy5fYj1yWzddPj4+MDxhWzddPj4+MD8xOjA7Zm9yKHZhciBlPTA7ZTw4O2UrKyl7dmFyIGk9dFtlXStyW2VdLG49NjU1MzUmaSxvPWk+Pj4xNixzPSgobipuPj4+MTcpK24qbz4+PjE1KStvKm8saD0oKDQyOTQ5MDE3NjAmaSkqaXwwKSsoKDY1NTM1JmkpKml8MCk7Y1tlXT1zXmh9dFswXT1jWzBdKyhjWzddPDwxNnxjWzddPj4+MTYpKyhjWzZdPDwxNnxjWzZdPj4+MTYpfDAsdFsxXT1jWzFdKyhjWzBdPDw4fGNbMF0+Pj4yNCkrY1s3XXwwLHRbMl09Y1syXSsoY1sxXTw8MTZ8Y1sxXT4+PjE2KSsoY1swXTw8MTZ8Y1swXT4+PjE2KXwwLHRbM109Y1szXSsoY1syXTw8OHxjWzJdPj4+MjQpK2NbMV18MCx0WzRdPWNbNF0rKGNbM108PDE2fGNbM10+Pj4xNikrKGNbMl08PDE2fGNbMl0+Pj4xNil8MCx0WzVdPWNbNV0rKGNbNF08PDh8Y1s0XT4+PjI0KStjWzNdfDAsdFs2XT1jWzZdKyhjWzVdPDwxNnxjWzVdPj4+MTYpKyhjWzRdPDwxNnxjWzRdPj4+MTYpfDAsdFs3XT1jWzddKyhjWzZdPDw4fGNbNl0+Pj4yNCkrY1s1XXwwfXZhciBlPXQsaT1lLmxpYixuPWkuU3RyZWFtQ2lwaGVyLG89ZS5hbGdvLHM9W10sYT1bXSxjPVtdLGg9by5SYWJiaXQ9bi5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2tleS53b3JkcyxlPXRoaXMuY2ZnLml2LGk9MDtpPDQ7aSsrKXRbaV09MTY3MTE5MzUmKHRbaV08PDh8dFtpXT4+PjI0KXw0Mjc4MjU1MzYwJih0W2ldPDwyNHx0W2ldPj4+OCk7dmFyIG49dGhpcy5fWD1bdFswXSx0WzNdPDwxNnx0WzJdPj4+MTYsdFsxXSx0WzBdPDwxNnx0WzNdPj4+MTYsdFsyXSx0WzFdPDwxNnx0WzBdPj4+MTYsdFszXSx0WzJdPDwxNnx0WzFdPj4+MTZdLG89dGhpcy5fQz1bdFsyXTw8MTZ8dFsyXT4+PjE2LDQyOTQ5MDE3NjAmdFswXXw2NTUzNSZ0WzFdLHRbM108PDE2fHRbM10+Pj4xNiw0Mjk0OTAxNzYwJnRbMV18NjU1MzUmdFsyXSx0WzBdPDwxNnx0WzBdPj4+MTYsNDI5NDkwMTc2MCZ0WzJdfDY1NTM1JnRbM10sdFsxXTw8MTZ8dFsxXT4+PjE2LDQyOTQ5MDE3NjAmdFszXXw2NTUzNSZ0WzBdXTt0aGlzLl9iPTA7Zm9yKHZhciBpPTA7aTw0O2krKylyLmNhbGwodGhpcyk7Zm9yKHZhciBpPTA7aTw4O2krKylvW2ldXj1uW2krNCY3XTtpZihlKXt2YXIgcz1lLndvcmRzLGE9c1swXSxjPXNbMV0saD0xNjcxMTkzNSYoYTw8OHxhPj4+MjQpfDQyNzgyNTUzNjAmKGE8PDI0fGE+Pj44KSxsPTE2NzExOTM1JihjPDw4fGM+Pj4yNCl8NDI3ODI1NTM2MCYoYzw8MjR8Yz4+PjgpLGY9aD4+PjE2fDQyOTQ5MDE3NjAmbCx1PWw8PDE2fDY1NTM1Jmg7b1swXV49aCxvWzFdXj1mLG9bMl1ePWwsb1szXV49dSxvWzRdXj1oLG9bNV1ePWYsb1s2XV49bCxvWzddXj11O2Zvcih2YXIgaT0wO2k8NDtpKyspci5jYWxsKHRoaXMpfX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5fWDtyLmNhbGwodGhpcyksc1swXT1pWzBdXmlbNV0+Pj4xNl5pWzNdPDwxNixzWzFdPWlbMl1eaVs3XT4+PjE2XmlbNV08PDE2LHNbMl09aVs0XV5pWzFdPj4+MTZeaVs3XTw8MTYsc1szXT1pWzZdXmlbM10+Pj4xNl5pWzFdPDwxNjtmb3IodmFyIG49MDtuPDQ7bisrKXNbbl09MTY3MTE5MzUmKHNbbl08PDh8c1tuXT4+PjI0KXw0Mjc4MjU1MzYwJihzW25dPDwyNHxzW25dPj4+OCksdFtlK25dXj1zW25dfSxibG9ja1NpemU6NCxpdlNpemU6Mn0pO2UuUmFiYml0PW4uX2NyZWF0ZUhlbHBlcihoKX0oKSx0Lm1vZGUuQ1RSPWZ1bmN0aW9uKCl7dmFyIHI9dC5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpLGU9ci5FbmNyeXB0b3I9ci5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX2NpcGhlcixpPWUuYmxvY2tTaXplLG49dGhpcy5faXYsbz10aGlzLl9jb3VudGVyO24mJihvPXRoaXMuX2NvdW50ZXI9bi5zbGljZSgwKSx0aGlzLl9pdj12b2lkIDApO3ZhciBzPW8uc2xpY2UoMCk7ZS5lbmNyeXB0QmxvY2socywwKSxvW2ktMV09b1tpLTFdKzF8MDtmb3IodmFyIGE9MDthPGk7YSsrKXRbcithXV49c1thXX19KTtyZXR1cm4gci5EZWNyeXB0b3I9ZSxyfSgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcigpe2Zvcih2YXIgdD10aGlzLl9YLHI9dGhpcy5fQyxlPTA7ZTw4O2UrKylhW2VdPXJbZV07clswXT1yWzBdKzEyOTUzMDc1OTcrdGhpcy5fYnwwLHJbMV09clsxXSszNTQ1MDUyMzcxKyhyWzBdPj4+MDxhWzBdPj4+MD8xOjApfDAsclsyXT1yWzJdKzg4NjI2MzA5MisoclsxXT4+PjA8YVsxXT4+PjA/MTowKXwwLHJbM109clszXSsxMjk1MzA3NTk3KyhyWzJdPj4+MDxhWzJdPj4+MD8xOjApfDAscls0XT1yWzRdKzM1NDUwNTIzNzErKHJbM10+Pj4wPGFbM10+Pj4wPzE6MCl8MCxyWzVdPXJbNV0rODg2MjYzMDkyKyhyWzRdPj4+MDxhWzRdPj4+MD8xOjApfDAscls2XT1yWzZdKzEyOTUzMDc1OTcrKHJbNV0+Pj4wPGFbNV0+Pj4wPzE6MCl8MCxyWzddPXJbN10rMzU0NTA1MjM3MSsocls2XT4+PjA8YVs2XT4+PjA/MTowKXwwLHRoaXMuX2I9cls3XT4+PjA8YVs3XT4+PjA/MTowO2Zvcih2YXIgZT0wO2U8ODtlKyspe3ZhciBpPXRbZV0rcltlXSxuPTY1NTM1Jmksbz1pPj4+MTYscz0oKG4qbj4+PjE3KStuKm8+Pj4xNSkrbypvLGg9KCg0Mjk0OTAxNzYwJmkpKml8MCkrKCg2NTUzNSZpKSppfDApO2NbZV09c15ofXRbMF09Y1swXSsoY1s3XTw8MTZ8Y1s3XT4+PjE2KSsoY1s2XTw8MTZ8Y1s2XT4+PjE2KXwwLHRbMV09Y1sxXSsoY1swXTw8OHxjWzBdPj4+MjQpK2NbN118MCx0WzJdPWNbMl0rKGNbMV08PDE2fGNbMV0+Pj4xNikrKGNbMF08PDE2fGNbMF0+Pj4xNil8MCx0WzNdPWNbM10rKGNbMl08PDh8Y1syXT4+PjI0KStjWzFdfDAsdFs0XT1jWzRdKyhjWzNdPDwxNnxjWzNdPj4+MTYpKyhjWzJdPDwxNnxjWzJdPj4+MTYpfDAsdFs1XT1jWzVdKyhjWzRdPDw4fGNbNF0+Pj4yNCkrY1szXXwwLHRbNl09Y1s2XSsoY1s1XTw8MTZ8Y1s1XT4+PjE2KSsoY1s0XTw8MTZ8Y1s0XT4+PjE2KXwwLHRbN109Y1s3XSsoY1s2XTw8OHxjWzZdPj4+MjQpK2NbNV18MH12YXIgZT10LGk9ZS5saWIsbj1pLlN0cmVhbUNpcGhlcixvPWUuYWxnbyxzPVtdLGE9W10sYz1bXSxoPW8uUmFiYml0TGVnYWN5PW4uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2tleS53b3JkcyxlPXRoaXMuY2ZnLml2LGk9dGhpcy5fWD1bdFswXSx0WzNdPDwxNnx0WzJdPj4+MTYsdFsxXSx0WzBdPDwxNnx0WzNdPj4+MTYsdFsyXSx0WzFdPDwxNnx0WzBdPj4+MTYsdFszXSx0WzJdPDwxNnx0WzFdPj4+MTZdLG49dGhpcy5fQz1bdFsyXTw8MTZ8dFsyXT4+PjE2LDQyOTQ5MDE3NjAmdFswXXw2NTUzNSZ0WzFdLHRbM108PDE2fHRbM10+Pj4xNiw0Mjk0OTAxNzYwJnRbMV18NjU1MzUmdFsyXSx0WzBdPDwxNnx0WzBdPj4+MTYsNDI5NDkwMTc2MCZ0WzJdfDY1NTM1JnRbM10sdFsxXTw8MTZ8dFsxXT4+PjE2LDQyOTQ5MDE3NjAmdFszXXw2NTUzNSZ0WzBdXTt0aGlzLl9iPTA7Zm9yKHZhciBvPTA7bzw0O28rKylyLmNhbGwodGhpcyk7Zm9yKHZhciBvPTA7bzw4O28rKyluW29dXj1pW28rNCY3XTtpZihlKXt2YXIgcz1lLndvcmRzLGE9c1swXSxjPXNbMV0saD0xNjcxMTkzNSYoYTw8OHxhPj4+MjQpfDQyNzgyNTUzNjAmKGE8PDI0fGE+Pj44KSxsPTE2NzExOTM1JihjPDw4fGM+Pj4yNCl8NDI3ODI1NTM2MCYoYzw8MjR8Yz4+PjgpLGY9aD4+PjE2fDQyOTQ5MDE3NjAmbCx1PWw8PDE2fDY1NTM1Jmg7blswXV49aCxuWzFdXj1mLG5bMl1ePWwsblszXV49dSxuWzRdXj1oLG5bNV1ePWYsbls2XV49bCxuWzddXj11O2Zvcih2YXIgbz0wO288NDtvKyspci5jYWxsKHRoaXMpfX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5fWDtyLmNhbGwodGhpcyksc1swXT1pWzBdXmlbNV0+Pj4xNl5pWzNdPDwxNixzWzFdPWlbMl1eaVs3XT4+PjE2XmlbNV08PDE2LHNbMl09aVs0XV5pWzFdPj4+MTZeaVs3XTw8MTYsc1szXT1pWzZdXmlbM10+Pj4xNl5pWzFdPDwxNjtmb3IodmFyIG49MDtuPDQ7bisrKXNbbl09MTY3MTE5MzUmKHNbbl08PDh8c1tuXT4+PjI0KXw0Mjc4MjU1MzYwJihzW25dPDwyNHxzW25dPj4+OCksdFtlK25dXj1zW25dfSxibG9ja1NpemU6NCxpdlNpemU6Mn0pO2UuUmFiYml0TGVnYWN5PW4uX2NyZWF0ZUhlbHBlcihoKX0oKSx0LnBhZC5aZXJvUGFkZGluZz17cGFkOmZ1bmN0aW9uKHQscil7dmFyIGU9NCpyO3QuY2xhbXAoKSx0LnNpZ0J5dGVzKz1lLSh0LnNpZ0J5dGVzJWV8fGUpfSx1bnBhZDpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC53b3JkcyxlPXQuc2lnQnl0ZXMtMTshKHJbZT4+PjJdPj4+MjQtZSU0KjgmMjU1KTspZS0tO3Quc2lnQnl0ZXM9ZSsxfX0sdH0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcnlwdG8tanMubWluLmpzLm1hcCJdfQ== + } + 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENyeXB0b1xcY3J5cHRvLWpzLm1pbi5qcyJdLCJuYW1lcyI6WyJ0IiwiciIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJDcnlwdG9KUyIsImUiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm90b3R5cGUiLCJpIiwibiIsImxpYiIsIm8iLCJCYXNlIiwiZXh0ZW5kIiwibWl4SW4iLCJoYXNPd25Qcm9wZXJ0eSIsImluaXQiLCIkc3VwZXIiLCJhcHBseSIsImFyZ3VtZW50cyIsInRvU3RyaW5nIiwiY2xvbmUiLCJzIiwiV29yZEFycmF5Iiwid29yZHMiLCJzaWdCeXRlcyIsImxlbmd0aCIsImMiLCJzdHJpbmdpZnkiLCJjb25jYXQiLCJjbGFtcCIsImNlaWwiLCJjYWxsIiwic2xpY2UiLCJyYW5kb20iLCJhIiwicHVzaCIsImVuYyIsIkhleCIsImpvaW4iLCJwYXJzZSIsInBhcnNlSW50Iiwic3Vic3RyIiwiaCIsIkxhdGluMSIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsImNoYXJDb2RlQXQiLCJsIiwiVXRmOCIsImRlY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsIkVycm9yIiwidW5lc2NhcGUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJmIiwiQnVmZmVyZWRCbG9ja0FsZ29yaXRobSIsInJlc2V0IiwiX2RhdGEiLCJfbkRhdGFCeXRlcyIsIl9hcHBlbmQiLCJfcHJvY2VzcyIsImJsb2NrU2l6ZSIsIm1heCIsIl9taW5CdWZmZXJTaXplIiwibWluIiwiX2RvUHJvY2Vzc0Jsb2NrIiwidSIsInNwbGljZSIsIkhhc2hlciIsImNmZyIsIl9kb1Jlc2V0IiwidXBkYXRlIiwiZmluYWxpemUiLCJfZG9GaW5hbGl6ZSIsIl9jcmVhdGVIZWxwZXIiLCJfY3JlYXRlSG1hY0hlbHBlciIsIkhNQUMiLCJhbGdvIiwiTWF0aCIsIkJhc2U2NCIsIl9tYXAiLCJjaGFyQXQiLCJfcmV2ZXJzZU1hcCIsImluZGV4T2YiLCJhYnMiLCJzaW4iLCJNRDUiLCJfaGFzaCIsImQiLCJ2IiwicCIsIl8iLCJ5IiwiZyIsIkIiLCJ3IiwiayIsIlMiLCJtIiwieCIsImIiLCJIIiwieiIsIkEiLCJDIiwiRCIsImZsb29yIiwiSG1hY01ENSIsIlNIQTEiLCJIbWFjU0hBMSIsInNxcnQiLCJwb3ciLCJTSEEyNTYiLCJIbWFjU0hBMjU2IiwiVXRmMTYiLCJVdGYxNkJFIiwiVXRmMTZMRSIsIkFycmF5QnVmZmVyIiwiVWludDhBcnJheSIsIkludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiSW50MTZBcnJheSIsIlVpbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIlVpbnQzMkFycmF5IiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiYnVmZmVyIiwiYnl0ZU9mZnNldCIsImJ5dGVMZW5ndGgiLCJSSVBFTUQxNjAiLCJSIiwiRSIsIk0iLCJGIiwiSG1hY1JJUEVNRDE2MCIsIl9oYXNoZXIiLCJfb0tleSIsIl9pS2V5IiwiUEJLREYyIiwia2V5U2l6ZSIsImhhc2hlciIsIml0ZXJhdGlvbnMiLCJjb21wdXRlIiwiRXZwS0RGIiwiU0hBMjI0IiwiSG1hY1NIQTIyNCIsIng2NCIsIldvcmQiLCJoaWdoIiwibG93IiwidG9YMzIiLCJTSEEzIiwib3V0cHV0TGVuZ3RoIiwiX3N0YXRlIiwiSG1hY1NIQTMiLCJTSEE1MTIiLCJQIiwiVyIsIk8iLCJVIiwiSSIsIksiLCJYIiwiTCIsImoiLCJOIiwiVCIsIloiLCJxIiwiRyIsIkoiLCIkIiwiUSIsIlYiLCJZIiwidHQiLCJydCIsImV0IiwiaXQiLCJudCIsIm90Iiwic3QiLCJhdCIsImN0IiwiaHQiLCJsdCIsImZ0IiwidXQiLCJkdCIsInZ0IiwicHQiLCJfdCIsInl0IiwiZ3QiLCJCdCIsInd0Iiwia3QiLCJTdCIsIm10IiwieHQiLCJidCIsIkhtYWNTSEE1MTIiLCJTSEEzODQiLCJIbWFjU0hBMzg0IiwiQ2lwaGVyIiwiY3JlYXRlRW5jcnlwdG9yIiwiX0VOQ19YRk9STV9NT0RFIiwiY3JlYXRlRGVjcnlwdG9yIiwiX0RFQ19YRk9STV9NT0RFIiwiX3hmb3JtTW9kZSIsIl9rZXkiLCJwcm9jZXNzIiwiaXZTaXplIiwiZW5jcnlwdCIsImRlY3J5cHQiLCJTdHJlYW1DaXBoZXIiLCJtb2RlIiwiQmxvY2tDaXBoZXJNb2RlIiwiRW5jcnlwdG9yIiwiRGVjcnlwdG9yIiwiX2NpcGhlciIsIl9pdiIsIkNCQyIsIl9wcmV2QmxvY2siLCJwcm9jZXNzQmxvY2siLCJlbmNyeXB0QmxvY2siLCJkZWNyeXB0QmxvY2siLCJwYWQiLCJQa2NzNyIsInVucGFkIiwiQmxvY2tDaXBoZXIiLCJwYWRkaW5nIiwiaXYiLCJfbW9kZSIsIl9fY3JlYXRvciIsIkNpcGhlclBhcmFtcyIsImZvcm1hdHRlciIsImZvcm1hdCIsIk9wZW5TU0wiLCJjaXBoZXJ0ZXh0Iiwic2FsdCIsIlNlcmlhbGl6YWJsZUNpcGhlciIsImtleSIsImFsZ29yaXRobSIsIl9wYXJzZSIsImtkZiIsImV4ZWN1dGUiLCJQYXNzd29yZEJhc2VkQ2lwaGVyIiwiQ0ZCIiwiRUNCIiwiQW5zaVg5MjMiLCJJc28xMDEyNiIsIklzbzk3OTcxIiwiWmVyb1BhZGRpbmciLCJPRkIiLCJfa2V5c3RyZWFtIiwiTm9QYWRkaW5nIiwiQUVTIiwiX25Sb3VuZHMiLCJfa2V5UHJpb3JSZXNldCIsIl9rZXlTY2hlZHVsZSIsIl9pbnZLZXlTY2hlZHVsZSIsIl9kb0NyeXB0QmxvY2siLCJfbEJsb2NrIiwiX3JCbG9jayIsIkRFUyIsIl9zdWJLZXlzIiwiX2ludlN1YktleXMiLCJUcmlwbGVERVMiLCJfZGVzMSIsIl9kZXMyIiwiX2RlczMiLCJfUyIsIl9pIiwiX2oiLCJSQzQiLCJSQzREcm9wIiwiZHJvcCIsIkNUUkdsYWRtYW4iLCJfY291bnRlciIsIl9YIiwiX0MiLCJfYiIsIlJhYmJpdCIsIkNUUiIsIlJhYmJpdExlZ2FjeSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxDQUFDLFVBQVNBLENBQUMsRUFBQ0MsQ0FBQyxFQUFDO0VBQUMs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OEMsQ0FBQyxHQUFDaEIsQ0FBQyxDQUFDakIsR0FBRztNQUFDc0MsQ0FBQyxHQUFDTCxDQUFDLENBQUNwQixTQUFTO01BQUNnQyxDQUFDLEdBQUNaLENBQUMsQ0FBQzBCLE1BQU07TUFBQ0YsQ0FBQyxHQUFDeEMsQ0FBQyxDQUFDbUQsSUFBSTtNQUFDVyxDQUFDLEdBQUN6QyxDQUFDLENBQUMxQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7TUFBQ29GLENBQUMsR0FBQzFDLENBQUMsQ0FBQzFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQztNQUFDcUYsQ0FBQyxHQUFDM0MsQ0FBQyxDQUFDMUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO01BQUNzRixDQUFDLEdBQUM1QyxDQUFDLENBQUMxQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7TUFBQ3VGLENBQUMsR0FBQzdDLENBQUMsQ0FBQzFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxVQUFV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QUFDUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM3RSxDQUFDLEdBQUMsRUFBRSxHQUFDaEIsQ0FBQyxDQUFDd0QsQ0FBQyxFQUFDNEIsQ0FBQyxFQUFDQyxDQUFDLENBQUMsR0FBQ1EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDbEYsQ0FBQyxDQUFDNkMsQ0FBQyxFQUFDNEIsQ0FBQyxFQUFDQyxDQUFDLENBQUMsR0FBQ1EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDK0IsQ0FBQyxJQUFFLENBQUMsRUFBQ0EsQ0FBQyxHQUFDcEcsQ0FBQyxDQUFDb0csQ0FBQyxFQUFDRixDQUFDLENBQUMxRyxDQUFDLENBQUMsQ0FBQyxFQUFDNEcsQ0FBQyxHQUFDQSxDQUFDLEdBQUN0QyxDQUFDLEdBQUMsQ0FBQyxFQUFDMUMsQ0FBQyxHQUFDMEMsQ0FBQyxFQUFDQSxDQUFDLEdBQUNELENBQUMsRUFBQ0EsQ0FBQyxHQUFDN0QsQ0FBQyxDQUFDNEQsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDQSxDQUFDLEdBQUM1QixDQUFDLEVBQUNBLENBQUMsR0FBQ29FLENBQUMsRUFBQ0EsQ0FBQyxHQUFDckMsQ0FBQyxHQUFDckcsQ0FBQyxDQUFDQyxDQUFDLEdBQUNzSSxDQUFDLENBQUN6RyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQzRHLENBQUMsSUFBRTVHLENBQUMsR0FBQyxFQUFFLEdBQUNMLENBQUMsQ0FBQzZFLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLENBQUMsR0FBQ0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOUUsQ0FBQyxHQUFDLEVBQUUsR0FBQ2hCLENBQUMsQ0FBQ3dGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLENBQUMsR0FBQ0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOUUsQ0FBQyxHQUFDLEVBQUUsR0FBQ2xCLENBQUMsQ0FBQzBGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLENBQUMsR0FBQ0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOUUsQ0FBQyxHQUFDLEVBQUUs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QUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLENBQUM7TUFBQ2tELENBQUMsR0FBQyxFQUFFO0lBQUMsQ0FBQyxZQUFVO01BQUMsS0FBSSxJQUFJbkQsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLEVBQUUsRUFBQ0EsQ0FBQyxFQUFFLEVBQUNtRCxDQUFDLENBQUNuRCxDQUFDLENBQUMsR0FBQ0MsQ0FBQyxFQUFFO0lBQUEsQ0FBQyxFQUFFO0lBQUMsSUFBSXlELENBQUMsR0FBQzVCLENBQUMsQ0FBQ2tJLE1BQU0sR0FBQ3BKLENBQUMsQ0FBQ0ksTUFBTSxDQUFDO01BQUMwRCxRQUFRLEVBQUMsU0FBQUEsU0FBQSxFQUFVO1FBQUMsSUFBSSxDQUFDaUIsS0FBSyxHQUFDLElBQUlyRCxDQUFDLENBQUNuQixJQUFJLENBQUMsQ0FBQyxJQUFJTSxDQUFDLENBQUNOLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSU0sQ0FBQyxDQUFDTixJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUlNLENBQUMsQ0FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxJQUFJTSxDQUFDLENBQUNOLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSU0sQ0FBQyxDQUFDTixJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUlNLENBQUMsQ0FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxJQUFJTSxDQUFDLENBQUNOLElBQUksQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSU0sQ0FBQyxDQUFDTixJQUFJLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7TUFBQSxDQUFDO01BQUNrRCxlQUFlLEVBQUMsU0FBQUEsZ0JBQVNyRSxDQUFDLEVBQUNDLENBQUMsRUFBQztRQUFDLEtBQUksSUFBSU0sQ0FBQyxHQUFDLElBQUksQ0FBQ29GLEtBQUssQ0FBQ2hFLEtBQUssRUFBQ2hCLENBQUMsR0FBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDSyxDQUFDLEdBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ08sQ0FBQyxHQUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNrQixDQUFDLEdBQUNsQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMrQixDQUFDLEdBQUMvQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUN1QixDQUFDLEdBQUN2QixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNtRCxDQUFDLEdBQUNuRCxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMrRCxDQUFDLEdBQUMvRCxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNxRixDQUFDLEdBQUNqRixDQUFDLENBQUM4SSxJQUFJLEVBQUM1RCxDQUFDLEdBQUNsRixDQUFDLENBQUMrSSxHQUFHLEVBQUM1RCxDQUFDLEdBQUNsRixDQUFDLENBQUM2SSxJQUFJLEVBQUMxRCxDQUFDLEdBQUNuRixDQUFDLENBQUM4SSxHQUFHLEVBQUMxRCxDQUFDLEdBQUNsRixDQUFDLENBQUMySSxJQUFJLEVBQUN4RCxDQUFDLEdBQUNuRixDQUFDLENBQUM0SSxHQUFHLEVBQUN4RCxDQUFDLEdBQUN6RSxDQUFDLENBQUNnSSxJQUFJLEVBQUN0RCxDQUFDLEdBQUMxRSxDQUFDLENBQUNpSSxHQUFHLEVBQUN0RCxDQUFDLEdBQUM5RCxDQUFDLENBQUNtSCxJQUFJLEVBQUNwRCxDQUFDLEdBQUMvRCxDQUFDLENBQUNvSCxHQUFHLEVBQUNwRCxDQUFDLEdBQUN4RSxDQUFDLENBQUMySCxJQUFJLEVBQUNsRCxDQUFDLEdBQUN6RSxDQUFDLENBQUM0SCxHQUFHLEVBQUNsRCxDQUFDLEdBQUM5QyxDQUFDLENBQUMrRixJQUFJLEVBQUNoRCxDQUFDLEdBQUMvQyxDQUFDLENBQUNnRyxHQUFHLEVBQUNoRCxDQUFDLEdBQUNwQyxDQUFDLENBQUNtRixJQUFJLEVBQUM5QyxDQUFDLEdBQUNyQyxDQUFDLENBQUNvRixHQUFHLEVBQUM5QyxDQUFDLEdBQUNoQixDQUFDLEVBQUNpQixDQUFDLEdBQUNoQixDQUFDLEVBQUMwQyxDQUFDLEdBQUN6QyxDQUFDLEVBQUMwQyxDQUFDLEdBQUN6QyxDQUFDLEVBQUMwQyxDQUFDLEdBQUN6QyxDQUFDLEVBQUMwQyxDQUFDLEdBQUN6QyxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUMsRUFBRSxFQUFDQSxDQUFDLEVBQUUsRUFBQztVQUFDLElBQUlDLENBQUMsR0FBQ3pILENBQUMsQ0FBQ3dILENBQUMsQ0FBQztVQUFDLElBQUdBLENBQUMsR0FBQyxFQUFFLEVBQUMsSUFBSUUsQ0FBQyxHQUFDRCxDQUFDLENBQUNuQixJQUFJLEdBQUMsQ0FBQyxHQUFDekosQ0FBQyxDQUFDQyxDQUFDLEdBQUMsQ0FBQyxHQUFDMEssQ0FBQyxDQUFDO1lBQUNHLENBQUMsR0FBQ0YsQ0FBQyxDQUFDbEIsR0FBRyxHQUFDLENBQUMsR0FBQzFKLENBQUMsQ0FBQ0MsQ0FBQyxHQUFDLENBQUMsR0FBQzBLLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJO1lBQUMsSUFBSUksQ0FBQyxHQUFDNUgsQ0FBQyxDQUFDd0gsQ0FBQyxHQUFDLEVBQUUsQ0FBQztjQUFDSyxDQUFDLEdBQUNELENBQUMsQ0FBQ3RCLElBQUk7Y0FBQ3dCLENBQUMsR0FBQ0YsQ0FBQyxDQUFDckIsR0FBRztjQUFDd0IsQ0FBQyxHQUFDLENBQUNGLENBQUMsS0FBRyxDQUFDLEdBQUNDLENBQUMsSUFBRSxFQUFFLEtBQUdELENBQUMsS0FBRyxDQUFDLEdBQUNDLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQ0QsQ0FBQyxLQUFHLENBQUM7Y0FBQ0csQ0FBQyxHQUFDLENBQUNGLENBQUMsS0FBRyxDQUFDLEdBQUNELENBQUMsSUFBRSxFQUFFLEtBQUdDLENBQUMsS0FBRyxDQUFDLEdBQUNELENBQUMsSUFBRSxFQUFFLENBQUMsSUFBRUMsQ0FBQyxLQUFHLENBQUMsR0FBQ0QsQ0FBQyxJQUFFLEVBQUUsQ0FBQztjQUFDSSxFQUFFLEdBQUNqSSxDQUFDLENBQUN3SCxDQUFDLEdBQUMsQ0FBQyxDQUFDO2NBQUNVLEVBQUUsR0FBQ0QsRUFBRSxDQUFDM0IsSUFBSTtjQUFDNkIsRUFBRSxHQUFDRixFQUFFLENBQUMxQixHQUFHO2NBQUM2QixFQUFFLEdBQUMsQ0FBQ0YsRUFBRSxLQUFHLEVBQUUsR0FBQ0MsRUFBRSxJQUFFLEVBQUUsS0FBR0QsRUFBRSxJQUFFLENBQUMsR0FBQ0MsRUFBRSxLQUFHLEVBQUUsQ0FBQyxHQUFDRCxFQUFFLEtBQUcsQ0FBQztjQUFDRyxFQUFFLEdBQUMsQ0FBQ0YsRUFBRSxLQUFHLEVBQUUsR0FBQ0QsRUFBRSxJQUFFLEVBQUUsS0FBR0MsRUFBRSxJQUFFLENBQUMsR0FBQ0QsRUFBRSxLQUFHLEVBQUUsQ0FBQyxJQUFFQyxFQUFFLEtBQUcsQ0FBQyxHQUFDRCxFQUFFLElBQUUsRUFBRSxDQUFDO2NBQUNJLEVBQUUsR0FBQ3RJLENBQUMsQ0FBQ3dILENBQUMsR0FBQyxDQUFDLENBQUM7Y0FBQ2UsRUFBRSxHQUFDRCxFQUFFLENBQUNoQyxJQUFJO2NBQUNrQyxFQUFFLEdBQUNGLEVBQUUsQ0FBQy9CLEdBQUc7Y0FBQ2tDLEVBQUUsR0FBQ3pJLENBQUMsQ0FBQ3dILENBQUMsR0FBQyxFQUFFLENBQUM7Y0FBQ2tCLEVBQUUsR0FBQ0QsRUFBRSxDQUFDbkMsSUFBSTtjQUFDcUMsRUFBRSxHQUFDRixFQUFFLENBQUNsQyxHQUFHO2NBQUNvQixDQUFDLEdBQUNLLENBQUMsR0FBQ1EsRUFBRTtjQUFDZCxDQUFDLEdBQUNLLENBQUMsR0FBQ1EsRUFBRSxJQUFFWixDQUFDLEtBQUcsQ0FBQyxHQUFDSyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7Y0FBQ0wsQ0FBQyxHQUFDQSxDQUFDLEdBQUNVLEVBQUU7Y0FBQ1gsQ0FBQyxHQUFDQSxDQUFDLEdBQUNVLEVBQUUsSUFBRVQsQ0FBQyxLQUFHLENBQUMsR0FBQ1UsRUFBRSxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO2NBQUNWLENBQUMsR0FBQ0EsQ0FBQyxHQUFDZ0IsRUFBRTtjQUFDakIsQ0FBQyxHQUFDQSxDQUFDLEdBQUNnQixFQUFFLElBQUVmLENBQUMsS0FBRyxDQUFDLEdBQUNnQixFQUFFLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7WUFBQ2xCLENBQUMsQ0FBQ25CLElBQUksR0FBQ29CLENBQUMsRUFBQ0QsQ0FBQyxDQUFDbEIsR0FBRyxHQUFDb0IsQ0FBQztVQUFBO1VBQUMsSUFBSWlCLEVBQUUsR0FBQzVCLENBQUMsR0FBQ0UsQ0FBQyxHQUFDLENBQUNGLENBQUMsR0FBQ0ksQ0FBQztZQUFDeUIsRUFBRSxHQUFDNUIsQ0FBQyxHQUFDRSxDQUFDLEdBQUMsQ0FBQ0YsQ0FBQyxHQUFDSSxDQUFDO1lBQUN5QixFQUFFLEdBQUNyRixDQUFDLEdBQUMyQixDQUFDLEdBQUMzQixDQUFDLEdBQUM2QixDQUFDLEdBQUNGLENBQUMsR0FBQ0UsQ0FBQztZQUFDeUQsRUFBRSxHQUFDckYsQ0FBQyxHQUFDMkIsQ0FBQyxHQUFDM0IsQ0FBQyxHQUFDNkIsQ0FBQyxHQUFDRixDQUFDLEdBQUNFLENBQUM7WUFBQ3lELEVBQUUsR0FBQyxDQUFDdkYsQ0FBQyxLQUFHLEVBQUUsR0FBQ0MsQ0FBQyxJQUFFLENBQUMsS0FBR0QsQ0FBQyxJQUFFLEVBQUUsR0FBQ0MsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFRCxDQUFDLElBQUUsRUFBRSxHQUFDQyxDQUFDLEtBQUcsQ0FBQyxDQUFDO1lBQUN1RixFQUFFLEdBQUMsQ0FBQ3ZGLENBQUMsS0FBRyxFQUFFLEdBQUNELENBQUMsSUFBRSxDQUFDLEtBQUdDLENBQUMsSUFBRSxFQUFFLEdBQUNELENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0QsQ0FBQyxLQUFHLENBQUMsQ0FBQztZQUFDeUYsRUFBRSxHQUFDLENBQUNsQyxDQUFDLEtBQUcsRUFBRSxHQUFDQyxDQUFDLElBQUUsRUFBRSxLQUFHRCxDQUFDLEtBQUcsRUFBRSxHQUFDQyxDQUFDLElBQUUsRUFBRSxDQUFDLElBQUVELENBQUMsSUFBRSxFQUFFLEdBQUNDLENBQUMsS0FBRyxDQUFDLENBQUM7WUFBQ2tDLEVBQUUsR0FBQyxDQUFDbEMsQ0FBQyxLQUFHLEVBQUUsR0FBQ0QsQ0FBQyxJQUFFLEVBQUUsS0FBR0MsQ0FBQyxLQUFHLEVBQUUsR0FBQ0QsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxJQUFFQyxDQUFDLElBQUUsRUFBRSxHQUFDRCxDQUFDLEtBQUcsQ0FBQyxDQUFDO1lBQUNvQyxFQUFFLEdBQUN6SixDQUFDLENBQUM2SCxDQUFDLENBQUM7WUFBQzZCLEVBQUUsR0FBQ0QsRUFBRSxDQUFDOUMsSUFBSTtZQUFDZ0QsRUFBRSxHQUFDRixFQUFFLENBQUM3QyxHQUFHO1lBQUNnRCxFQUFFLEdBQUNoQyxDQUFDLEdBQUM0QixFQUFFO1lBQUNLLEVBQUUsR0FBQ2xDLENBQUMsR0FBQzRCLEVBQUUsSUFBRUssRUFBRSxLQUFHLENBQUMsR0FBQ2hDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztZQUFDZ0MsRUFBRSxHQUFDQSxFQUFFLEdBQUNWLEVBQUU7WUFBQ1csRUFBRSxHQUFDQSxFQUFFLEdBQUNaLEVBQUUsSUFBRVcsRUFBRSxLQUFHLENBQUMsR0FBQ1YsRUFBRSxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO1lBQUNVLEVBQUUsR0FBQ0EsRUFBRSxHQUFDRCxFQUFFO1lBQUNFLEVBQUUsR0FBQ0EsRUFBRSxHQUFDSCxFQUFFLElBQUVFLEVBQUUsS0FBRyxDQUFDLEdBQUNELEVBQUUsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztZQUFDQyxFQUFFLEdBQUNBLEVBQUUsR0FBQzVCLENBQUM7WUFBQzZCLEVBQUUsR0FBQ0EsRUFBRSxHQUFDOUIsQ0FBQyxJQUFFNkIsRUFBRSxLQUFHLENBQUMsR0FBQzVCLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztZQUFDOEIsRUFBRSxHQUFDUixFQUFFLEdBQUNGLEVBQUU7WUFBQ1csRUFBRSxHQUFDVixFQUFFLEdBQUNGLEVBQUUsSUFBRVcsRUFBRSxLQUFHLENBQUMsR0FBQ1IsRUFBRSxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO1VBQUMzQixDQUFDLEdBQUNGLENBQUMsRUFBQ0csQ0FBQyxHQUFDRixDQUFDLEVBQUNELENBQUMsR0FBQ0YsQ0FBQyxFQUFDRyxDQUFDLEdBQUNGLENBQUMsRUFBQ0QsQ0FBQyxHQUFDRixDQUFDLEVBQUNHLENBQUMsR0FBQ0YsQ0FBQyxFQUFDQSxDQUFDLEdBQUNGLENBQUMsR0FBQ3dDLEVBQUUsR0FBQyxDQUFDLEVBQUN2QyxDQUFDLEdBQUNGLENBQUMsR0FBQzBDLEVBQUUsSUFBRXZDLENBQUMsS0FBRyxDQUFDLEdBQUNGLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQ0QsQ0FBQyxHQUFDeEIsQ0FBQyxFQUFDeUIsQ0FBQyxHQUFDeEIsQ0FBQyxFQUFDRCxDQUFDLEdBQUNGLENBQUMsRUFBQ0csQ0FBQyxHQUFDRixDQUFDLEVBQUNELENBQUMsR0FBQzNCLENBQUMsRUFBQzRCLENBQUMsR0FBQzNCLENBQUMsRUFBQ0EsQ0FBQyxHQUFDNkYsRUFBRSxHQUFDRSxFQUFFLEdBQUMsQ0FBQyxFQUFDaEcsQ0FBQyxHQUFDK0YsRUFBRSxHQUFDRSxFQUFFLElBQUVoRyxDQUFDLEtBQUcsQ0FBQyxHQUFDNkYsRUFBRSxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQztRQUFBO1FBQUM3RyxDQUFDLEdBQUNsRixDQUFDLENBQUMrSSxHQUFHLEdBQUM3RCxDQUFDLEdBQUNnQixDQUFDLEVBQUNsRyxDQUFDLENBQUM4SSxJQUFJLEdBQUM3RCxDQUFDLEdBQUNnQixDQUFDLElBQUVmLENBQUMsS0FBRyxDQUFDLEdBQUNnQixDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQ2QsQ0FBQyxHQUFDbkYsQ0FBQyxDQUFDOEksR0FBRyxHQUFDM0QsQ0FBQyxHQUFDeUMsQ0FBQyxFQUFDNUgsQ0FBQyxDQUFDNkksSUFBSSxHQUFDM0QsQ0FBQyxHQUFDeUMsQ0FBQyxJQUFFeEMsQ0FBQyxLQUFHLENBQUMsR0FBQ3lDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDdkMsQ0FBQyxHQUFDbkYsQ0FBQyxDQUFDNEksR0FBRyxHQUFDekQsQ0FBQyxHQUFDeUMsQ0FBQyxFQUFDNUgsQ0FBQyxDQUFDMkksSUFBSSxHQUFDekQsQ0FBQyxHQUFDeUMsQ0FBQyxJQUFFeEMsQ0FBQyxLQUFHLENBQUMsR0FBQ3lDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDdkMsQ0FBQyxHQUFDMUUsQ0FBQyxDQUFDaUksR0FBRyxHQUFDdkQsQ0FBQyxHQUFDK0QsQ0FBQyxFQUFDekksQ0FBQyxDQUFDZ0ksSUFBSSxHQUFDdkQsQ0FBQyxHQUFDK0QsQ0FBQyxJQUFFOUQsQ0FBQyxLQUFHLENBQUMsR0FBQytELENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDN0QsQ0FBQyxHQUFDL0QsQ0FBQyxDQUFDb0gsR0FBRyxHQUFDckQsQ0FBQyxHQUFDK0QsQ0FBQyxFQUFDOUgsQ0FBQyxDQUFDbUgsSUFBSSxHQUFDckQsQ0FBQyxHQUFDK0QsQ0FBQyxJQUFFOUQsQ0FBQyxLQUFHLENBQUMsR0FBQytELENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDN0QsQ0FBQyxHQUFDekUsQ0FBQyxDQUFDNEgsR0FBRyxHQUFDbkQsQ0FBQyxHQUFDK0QsQ0FBQyxFQUFDeEksQ0FBQyxDQUFDMkgsSUFBSSxHQUFDbkQsQ0FBQyxHQUFDK0QsQ0FBQyxJQUFFOUQsQ0FBQyxLQUFHLENBQUMsR0FBQytELENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDN0QsQ0FBQyxHQUFDL0MsQ0FBQyxDQUFDZ0csR0FBRyxHQUFDakQsQ0FBQyxHQUFDK0QsQ0FBQyxFQUFDOUcsQ0FBQyxDQUFDK0YsSUFBSSxHQUFDakQsQ0FBQyxHQUFDK0QsQ0FBQyxJQUFFOUQsQ0FBQyxLQUFHLENBQUMsR0FBQytELENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDN0QsQ0FBQyxHQUFDckMsQ0FBQyxDQUFDb0YsR0FBRyxHQUFDL0MsQ0FBQyxHQUFDK0QsQ0FBQyxFQUFDcEcsQ0FBQyxDQUFDbUYsSUFBSSxHQUFDL0MsQ0FBQyxHQUFDK0QsQ0FBQyxJQUFFOUQsQ0FBQyxLQUFHLENBQUMsR0FBQytE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RUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDO01BQUNnQixDQUFDLEdBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQztNQUFDSyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLENBQUM7TUFBQ08sQ0FBQyxHQUFDLENBQUM7UUFBQyxDQUFDLEVBQUMsT0FBTztRQUFDLFNBQVMsRUFBQyxLQUFLO1FBQUMsU0FBUyxFQUFDLE9BQU87UUFBQyxTQUFTLEVBQUMsQ0FBQztRQUFDLFVBQVUsRUFBQyxHQUFHO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLEdBQUc7UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLENBQUM7UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFNBQVMsRUFBQyxDQUFDO1FBQUMsU0FBUyxFQUFDLE9BQU87UUFBQyxTQUFTLEVBQUMsS0FBSztRQUFDLFNBQVMsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsR0FBRztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLENBQUM7UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLEtBQUs7UUFBQyxVQUFVLEVBQUMsR0FBRztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsQ0FBQyxFQUFDLEtBQUs7UUFBQyxTQUFTLEVBQUMsQ0FBQztRQUFDLFNBQVMsRUFBQyxPQUFPO1FBQUMsU0FBUyxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLEdBQUc7UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLEdBQUc7UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLENBQUM7UUFBQyxTQUFTLEVBQUMsT0FBTztRQUFDLFNBQVMsRUFBQyxPQUFPO1FBQUMsU0FBUyxFQUFDLE9BQU87UUFBQyxTQUFTLEVBQUMsR0FBRztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsQ0FBQztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLEtBQUs7UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxHQUFHO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxDQUFDO1FBQUMsVUFBVSxFQUFDLEtBQUs7UUFBQyxVQUFVLEVBQUM7TUFBTyxDQUFDLEVBQUM7UUFBQyxDQUFDLEVBQUMsVUFBVTtRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLE1BQU07UUFBQyxRQUFRLEVBQUMsVUFBVTtRQUFDLFFBQVEsRUFBQyxVQUFVO1FBQUMsUUFBUSxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxFQUFFO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsTUFBTTtRQUFDLFNBQVMsRUFBQyxDQUFDO1FBQUMsU0FBUyxFQUFDLEtBQUs7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsUUFBUSxFQUFDLE1BQU07UUFBQyxRQUFRLEVBQUMsRUFBRTtRQUFDLFFBQVEsRUFBQyxVQUFVO1FBQUMsUUFBUSxFQUFDLFVBQVU7UUFBQyxRQUFRLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsTUFBTTtRQUFDLFNBQVMsRUFBQyxDQUFDO1FBQUMsU0FBUyxFQUFDLEtBQUs7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxLQUFLO1FBQUMsU0FBUyxFQUFDLENBQUM7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxFQUFFO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsS0FBSztRQUFDLFNBQVMsRUFBQyxLQUFLO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsTUFBTTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsTUFBTTtRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsS0FBSztRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsRUFBRTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsQ0FBQztRQUFDLFNBQVMsRUFBQyxLQUFLO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUM7TUFBTSxDQUFDLEVBQUM7UUFBQyxDQUFDLEVBQUMsR0FBRztRQUFDLE9BQU8sRUFBQyxDQUFDO1FBQUMsT0FBTyxFQUFDLFFBQVE7UUFBQyxPQUFPLEVBQUMsS0FBSztRQUFDLE9BQU8sRUFBQyxLQUFLO1FBQUMsT0FBTyxFQUFDLFFBQVE7UUFBQyxPQUFPLEVBQUMsUUFBUTtRQUFDLE9BQU8sRUFBQyxRQUFRO1FBQUMsT0FBTyxFQUFDLFFBQVE7UUFBQyxPQUFPLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLENBQUM7UUFBQyxRQUFRLEVBQUMsR0FBRztRQUFDLE1BQU0sRUFBQyxRQUFRO1FBQUMsT0FBTyxFQUFDLFFBQVE7UUFBQyxPQUFPLEVBQUMsQ0FBQztRQUFDLE9BQU8sRUFBQyxRQUFRO1FBQUMsT0FBTyxFQUFDLFFBQVE7UUFBQyxPQUFPLEVBQUMsS0FBSztRQUFDLE9BQU8sRUFBQyxLQUFLO1FBQUMsT0FBTyxFQUFDLEdBQUc7UUFBQyxPQUFPLEVBQUMsQ0FBQztRQUFDLE9BQU8sRUFBQyxHQUFHO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsR0FBRztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsQ0FBQztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsQ0FBQztRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsR0FBRztRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxHQUFHO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsQ0FBQztRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsR0FBRztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLEtBQUs7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLENBQUM7UUFBQyxRQUFRLEVBQUM7TUFBSyxDQUFDLEVBQUM7UUFBQyxDQUFDLEVBQUMsVUFBVTtRQUFDLEtBQUssRUFBQyxVQUFVO1FBQUMsTUFBTSxFQUFDLE9BQU87UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxDQUFDO1FBQUMsTUFBTSxFQUFDLE9BQU87UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxPQUFPO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxNQUFNLEVBQUMsT0FBTztRQUFDLE1BQU0sRUFBQyxFQUFFO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxJQUFJO1FBQUMsTUFBTSxFQUFDLElBQUk7UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLEtBQUssRUFBQyxVQUFVO1FBQUMsS0FBSyxFQUFDLEVBQUU7UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxVQUFVO1FBQUMsTUFBTSxFQUFDLE9BQU87UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxDQUFDO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxNQUFNLEVBQUMsSUFBSTtRQUFDLE1BQU0sRUFBQyxVQUFVO1FBQUMsTUFBTSxFQUFDLE9BQU87UUFBQyxNQUFNLEVBQUMsSUFBSTtRQUFDLE1BQU0sRUFBQyxVQUFVO1FBQUMsTUFBTSxFQUFDLE9BQU87UUFBQyxNQUFNLEVBQUMsT0FBTztRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLE9BQU87UUFBQyxPQUFPLEVBQUMsT0FBTztRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLENBQUM7UUFBQyxPQUFPLEVBQUMsSUFBSTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxPQUFPO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsT0FBTztRQUFDLE9BQU8sRUFBQyxFQUFFO1FBQUMsT0FBTyxFQUFDLElBQUk7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLENBQUM7UUFBQyxPQUFPLEVBQUMsT0FBTztRQUFDLE9BQU8sRUFBQyxPQUFPO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxFQUFFO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsSUFBSTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsSUFBSTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLE9BQU87UUFBQyxPQUFPLEVBQUM7TUFBTyxDQUFDLEVBQUM7UUFBQyxDQUFDLEVBQUMsR0FBRztRQUFDLElBQUksRUFBQyxRQUFRO1FBQUMsSUFBSSxFQUFDLE1BQU07UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxNQUFNO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxDQUFDO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxRQUFRO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsR0FBRztRQUFDLEtBQUssRUFBQyxRQUFRO1FBQUMsS0FBSyxFQUFDLE1BQU07UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxDQUFDO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsUUFBUTtRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsUUFBUTtRQUFDLEtBQUssRUFBQyxNQUFNO1FBQUMsS0FBSyxFQUFDLE1BQU07UUFBQyxLQUFLLEVBQUMsR0FBRztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsUUFBUTtRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsUUFBUTtRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsTUFBTSxFQUFDLFNBQVM7UUFBQyxNQUFNLEVBQUMsUUFBUTtRQUFDLE1BQU0sRUFBQyxTQUFTO1FBQUMsTUFBTSxFQUFDLE1BQU07UUFBQyxNQUFNLEVBQUMsU0FBUztRQUFDLE1BQU0sRUFBQyxDQUFDO1FBQUMsTUFBTSxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxRQUFRO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsR0FBRztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsTUFBTSxFQUFDLE1BQU07UUFBQyxNQUFNLEVBQUMsU0FBUztRQUFDLE1BQU0sRUFBQyxDQUFDO1FBQUMsTUFBTSxFQUFDLFNBQVM7UUFBQyxNQUFNLEVBQUMsUUFBUTtRQUFDLE1BQU0sRUFBQyxNQUFNO1FBQUMsTUFBTSxFQUFDLFNBQVM7UUFBQyxNQUFNLEVBQUM7TUFBUyxDQUFDLEVBQUM7UUFBQyxDQUFDLEVBQUMsU0FBUztRQUFDLEdBQUcsRUFBQyxJQUFJO1FBQUMsR0FBRyxFQUFDLFNBQVM7UUFBQyxHQUFHLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLENBQUM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLENBQUM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLElBQUk7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLEdBQUcsRUFBQyxTQUFTO1FBQUMsR0FBRyxFQUFDLFNBQVM7UUFBQyxHQUFHLEVBQUMsQ0FBQztRQUFDLEdBQUcsRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLElBQUk7UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxJQUFJO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxDQUFDO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLElBQUk7UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLENBQUM7UUFBQyxJQUFJLEVBQUMsQ0FBQztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLElBQUk7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsQ0FBQztRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLElBQUk7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxJQUFJO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxDQUFDO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUM7TUFBUyxDQUFDLEVBQUM7UUFBQyxDQUFDLEVBQUMsT0FBTztRQUFDLEVBQUUsRUFBQyxRQUFRO1FBQUMsRUFBRSxFQUFDLElBQUk7UUFBQyxFQUFFLEVBQUMsT0FBTztRQUFDLEVBQUUsRUFBQyxRQUFRO1FBQUMsRUFBRSxFQUFDLENBQUM7UUFBQyxFQUFFLEVBQUMsQ0FBQztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxJQUFJO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLENBQUMsRUFBQyxRQUFRO1FBQUMsRUFBRSxFQUFDLENBQUM7UUFBQyxFQUFFLEVBQUMsUUFBUTtRQUFDLEVBQUUsRUFBQyxRQUFRO1FBQUMsRUFBRSxFQUFDLE9BQU87UUFBQyxFQUFFLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLElBQUk7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxJQUFJO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsQ0FBQztRQUFDLEdBQUcsRUFBQyxPQUFPO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxJQUFJO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxDQUFDO1FBQUMsR0FBRyxFQUFDLENBQUM7UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLElBQUk7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsQ0FBQztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsSUFBSTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxDQUFDO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxJQUFJO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUM7TUFBTyxDQUFDLEVBQUM7UUFBQyxDQUFDLEVBQUMsU0FBUztRQUFDLENBQUMsRUFBQyxNQUFNO1FBQUMsQ0FBQyxFQUFDLFNBQVM7UUFBQyxDQUFDLEVBQUMsRUFBRTtRQUFDLENBQUMsRUFBQyxNQUFNO1FBQUMsQ0FBQyxFQUFDLFNBQVM7UUFBQyxDQUFDLEVBQUMsU0FBUztRQUFDLENBQUMsRUFBQyxJQUFJO1FBQUMsQ0FBQyxFQUFDLFNBQVM7UUFBQyxDQUFDLEVBQUMsU0FBUztRQUFDLEVBQUUsRUFBQyxNQUFNO1FBQUMsRUFBRSxFQUFDLFNBQVM7UUFBQyxFQUFFLEVBQUMsSUFBSTtRQUFDLEVBQUUsRUFBQyxDQUFDO1FBQUMsRUFBRSxFQUFDLFNBQVM7UUFBQyxFQUFFLEVBQUMsTUFBTTtRQUFDLFVBQVUsRUFBQyxJQUFJO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsTUFBTTtRQUFDLFVBQVUsRUFBQyxNQUFNO1FBQUMsVUFBVSxFQUFDLEVBQUU7UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxJQUFJO1FBQUMsVUFBVSxFQUFDLE1BQU07UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxDQUFDO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxNQUFNO1FBQUMsRUFBRSxFQUFDLE1BQU07UUFBQyxFQUFFLEVBQUMsU0FBUztRQUFDLEVBQUUsRUFBQyxFQUFFO1FBQUMsRUFBRSxFQUFDLElBQUk7UUFBQyxFQUFFLEVBQUMsU0FBUztRQUFDLEVBQUUsRUFBQyxTQUFTO1FBQUMsRUFBRSxFQUFDLFNBQVM7UUFBQyxFQUFFLEVBQUMsTUFBTTtRQUFDLEVBQUUsRUFBQyxDQUFDO1FBQUMsRUFBRSxFQUFDLE1BQU07UUFBQyxFQUFFLEVBQUMsU0FBUztRQUFDLEVBQUUsRUFBQyxTQUFTO1FBQUMsRUFBRSxFQUFDLFNBQVM7UUFBQyxFQUFFLEVBQUMsTUFBTTtRQUFDLEVBQUUsRUFBQyxJQUFJO1FBQUMsRUFBRSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsTUFBTTtRQUFDLFVBQVUsRUFBQyxJQUFJO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsTUFBTTtRQUFDLFVBQVUsRUFBQyxFQUFFO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLENBQUM7UUFBQyxVQUFVLEVBQUMsTUFBTTtRQUFDLFVBQVUsRUFBQyxJQUFJO1FBQUMsVUFBVSxFQUFDLE1BQU07UUFBQyxVQUFVLEVBQUM7TUFBUyxDQUFDLENBQUM7TUFBQ1ksQ0FBQyxHQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLFVBQVUsQ0FBQztNQUFDc0IsQ0FBQyxHQUFDdEQsQ0FBQyxDQUFDd08sR0FBRyxHQUFD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QUFVLEdBQUMsSUFBSSxDQUFDOFIsRUFBRSxHQUFDLENBQUMsRUFBQzlSLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFNBQVMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFNBQVMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUN5UCxFQUFFLEdBQUM5UixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQztNQUFDLEtBQUksSUFBSS9CLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsRUFBRSxFQUFDO1FBQUMsSUFBSUksQ0FBQyxHQUFDWCxDQUFDLENBQUNPLENBQUMsQ0FBQyxHQUFDTixDQUFDLENBQUNNLENBQUMsQ0FBQztVQUFDSyxDQUFDLEdBQUMsS0FBSyxHQUFDRCxDQUFDO1VBQUNHLENBQUMsR0FBQ0gsQ0FBQyxLQUFHLEVBQUU7VUFBQ2MsQ0FBQyxHQUFDLENBQUMsQ0FBQ2IsQ0FBQyxHQUFDQSxDQUFDLEtBQUcsRUFBRSxJQUFFQSxDQUFDLEdBQUNFLENBQUMsS0FBRyxFQUFFLElBQUVBLENBQUMsR0FBQ0EsQ0FBQztVQUFDZ0MsQ0FBQyxHQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUNuQyxDQUFDLElBQUVBLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxLQUFLLEdBQUNBLENBQUMsSUFBRUEsQ0FBQyxHQUFDLENBQUMsQ0FBQztRQUFDbUIsQ0FBQyxDQUFDdkIsQ0FBQyxDQUFDLEdBQUNrQixDQUFDLEdBQUNxQixDQUFDO01BQUE7TUFBQzlDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxH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QUksQ0FBQ2dSLEVBQUUsR0FBQyxDQUFDOVIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztVQUFDLElBQUksQ0FBQytSLEVBQUUsR0FBQyxDQUFDO1VBQUMsS0FBSSxJQUFJcFIsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxFQUFFLEVBQUNWLENBQUMsQ0FBQ2tDLElBQUksQ0FBQyxJQUFJLENBQUM7VUFBQyxLQUFJLElBQUl4QixDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEVBQUUsRUFBQ0csQ0FBQyxDQUFDSCxDQUFDLENBQUMsSUFBRUMsQ0FBQyxDQUFDRCxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztVQUFDLElBQUdKLENBQUMs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LENBQUMsR0FBQyxDQUFDO1VBQUMsS0FBSSxJQUFJMkIsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDM0IsQ0FBQyxFQUFDMkIsQ0FBQyxFQUFFLEVBQUN0QyxDQUFDLENBQUNDLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxJQUFFYixDQUFDLENBQUNhLENBQUMsQ0FBQztRQUFBO01BQUMsQ0FBQyxDQUFDO0lBQUMsT0FBT3JDLENBQUMsQ0FBQytOLFNBQVMsR0FBQ3pOLENBQUMsRUFBQ04sQ0FBQztFQUFBLENBQUMsRUFBRSxFQUFDLFlBQVU7SUFBQyxTQUFTQSxDQUFDQSxDQUFBLEVBQUU7TUFBQyxLQUFJLElBQUlELENBQUMsR0FBQyxJQUFJLENBQUM2UixFQUFFLEVBQUM1UixDQUFDLEdBQUMsSUFBSSxDQUFDNlIsRUFBRSxFQUFDdlIsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxFQUFFLEVBQUMrQixDQUFDLENBQUMvQixDQUFDLENBQUMsR0FBQ04sQ0FBQyxDQUFDTSxDQUFDLENBQUM7TUFBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDLElBQUksQ0FBQzhSLEVBQUUsR0FBQyxDQUFDLEVBQUM5UixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxTQUFTLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxTQUFTLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDeVAsRUFBRSxHQUFDOVIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUM7TUFBQyxLQUFJLElBQUkvQixDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEVBQUUsRUFBQztRQUFDLElBQUlJLENBQUMsR0FBQ1gsQ0FBQyxDQUFDTyxDQUFDLENBQUMsR0FBQ04sQ0FBQyxDQUFDTSxDQUFDLENBQUM7VUFBQ0ssQ0FBQyxHQUFDLEtBQUssR0FBQ0QsQ0FBQztVQUFDRyxDQUFDLEdBQUNILENBQUMsS0FBRyxFQUFFO1VBQUNjLENBQUMsR0FBQyxDQUFDLENBQUNiLENBQUMsR0FBQ0EsQ0FBQyxLQUFHLEVBQUUsSUFBRUEsQ0FBQyxHQUFDRSxDQUFDLEtBQUcsRUFBRSxJQUFFQSxDQUFDLEdBQUNBLENBQUM7VUFBQ2dDLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxHQUFDbkMsQ0FBQyxJQUFFQSxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsS0FBSyxHQUFDQSxDQUFDLElBQUVBLENBQUMsR0FBQyxDQUFDLENBQUM7UUFBQ21CLENBQUMsQ0FBQ3ZCLENBQUMsQ0FBQyxHQUFDa0IsQ0FBQyxHQUFDcUIsQ0FBQztNQUFBO01BQUM5QyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQztJQUFBO0lBQUMsSUFBSXZCLENBQUMsR0FBQ1AsQ0FBQztNQUFDVyxDQUFDLEdBQUNKLENBQUMsQ0FBQ00sR0FBRztNQUFDRCxDQUFDLEdBQUNELENBQUMsQ0FBQ2lOLFlBQVk7TUFBQzlNLENBQUMsR0FBQ1AsQ0FBQyxDQUFDMEUsSUFBSTtNQUFDeEQsQ0FBQyxHQUFDLEVBQUU7TUFBQ2EsQ0FBQyxHQUFDLEVBQUU7TUFBQ1IsQ0FBQyxHQUFDLEVBQUU7TUFBQ2dCLENBQUMsR0FBQ2hDLENBQUMsQ0FBQ29SLFlBQVksR0FBQ3RSLENBQUMsQ0FBQ0ksTUFBTSxDQUFDO1FBQUMwRCxRQUFRLEVBQUMsU0FBQUEsU0FBQSxFQUFVO1VBQUMsSUFBSTFFLENBQUMsR0FBQyxJQUFJLENBQUN1TixJQUFJLENBQUM1TCxLQUFLO1lBQUNwQixDQUFDLEdBQUMsSUFBSSxDQUFDa0UsR0FBRyxDQUFDb0ssRUFBRTtZQUFDbE8sQ0FBQyxHQUFDLElBQUksQ0FBQ2tSLEVBQUUsR0FBQyxDQUFDN1IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDO1lBQUNZLENBQUMsR0FBQyxJQUFJLENBQUNrUixFQUFFLEdBQUMsQ0FBQzlSLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7VUFBQyxJQUFJLENBQUMrUixFQUFFLEdBQUMsQ0FBQztVQUFDLEtBQUks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QUFDLEtBQUcsRUFBRSxHQUFDQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUMsR0FBRUEsQ0FBQyxFQUFFO01BQUNQLENBQUMsQ0FBQzRCLFFBQVEsR0FBQ3JCLENBQUMsR0FBQyxDQUFDO0lBQUE7RUFBQyxDQUFDLEVBQUNQLENBQUM7QUFBQSxDQUFDLENBQUM7QUFDbmhmIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIhZnVuY3Rpb24odCxyKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1leHBvcnRzPXIoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtdLHIpOnQuQ3J5cHRvSlM9cigpfSh0aGlzLGZ1bmN0aW9uKCl7dmFyIHQ9dHx8ZnVuY3Rpb24odCxyKXt2YXIgZT1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBlO3JldHVybiB0LnByb3RvdHlwZT1yLGU9bmV3IHQsdC5wcm90b3R5cGU9bnVsbCxlfX0oKSxpPXt9LG49aS5saWI9e30sbz1uLkJhc2U9ZnVuY3Rpb24oKXtyZXR1cm57ZXh0ZW5kOmZ1bmN0aW9uKHQpe3ZhciByPWUodGhpcyk7cmV0dXJuIHQmJnIubWl4SW4odCksci5oYXNPd25Qcm9wZXJ0eShcImluaXRcIikmJnRoaXMuaW5pdCE9PXIuaW5pdHx8KHIuaW5pdD1mdW5jdGlvbigpe3IuJHN1cGVyLmluaXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksci5pbml0LnByb3RvdHlwZT1yLHIuJHN1cGVyPXRoaXMscn0sY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5leHRlbmQoKTtyZXR1cm4gdC5pbml0LmFwcGx5KHQsYXJndW1lbnRzKSx0fSxpbml0OmZ1bmN0aW9uKCl7fSxtaXhJbjpmdW5jdGlvbih0KXtmb3IodmFyIHIgaW4gdCl0Lmhhc093blByb3BlcnR5KHIpJiYodGhpc1tyXT10W3JdKTt0Lmhhc093blByb3BlcnR5KFwidG9TdHJpbmdcIikmJih0aGlzLnRvU3RyaW5nPXQudG9TdHJpbmcpfSxjbG9uZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluaXQucHJvdG90eXBlLmV4dGVuZCh0aGlzKX19fSgpLHM9bi5Xb3JkQXJyYXk9by5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCxlKXt0PXRoaXMud29yZHM9dHx8W10sZSE9cj90aGlzLnNpZ0J5dGVzPWU6dGhpcy5zaWdCeXRlcz00KnQubGVuZ3RofSx0b1N0cmluZzpmdW5jdGlvbih0KXtyZXR1cm4odHx8Yykuc3RyaW5naWZ5KHRoaXMpfSxjb25jYXQ6ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy53b3JkcyxlPXQud29yZHMsaT10aGlzLnNpZ0J5dGVzLG49dC5zaWdCeXRlcztpZih0aGlzLmNsYW1wKCksaSU0KWZvcih2YXIgbz0wO288bjtvKyspe3ZhciBzPWVbbz4+PjJdPj4+MjQtbyU0KjgmMjU1O3JbaStvPj4+Ml18PXM8PDI0LShpK28pJTQqOH1lbHNlIGZvcih2YXIgbz0wO288bjtvKz00KXJbaStvPj4+Ml09ZVtvPj4+Ml07cmV0dXJuIHRoaXMuc2lnQnl0ZXMrPW4sdGhpc30sY2xhbXA6ZnVuY3Rpb24oKXt2YXIgcj10aGlzLndvcmRzLGU9dGhpcy5zaWdCeXRlcztyW2U+Pj4yXSY9NDI5NDk2NzI5NTw8MzItZSU0Kjgsci5sZW5ndGg9dC5jZWlsKGUvNCl9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9by5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0LndvcmRzPXRoaXMud29yZHMuc2xpY2UoMCksdH0scmFuZG9tOmZ1bmN0aW9uKHIpe2Zvcih2YXIgZSxpPVtdLG49ZnVuY3Rpb24ocil7dmFyIHI9cixlPTk4NzY1NDMyMSxpPTQyOTQ5NjcyOTU7cmV0dXJuIGZ1bmN0aW9uKCl7ZT0zNjk2OSooNjU1MzUmZSkrKGU+PjE2KSZpLHI9MThlMyooNjU1MzUmcikrKHI+PjE2KSZpO3ZhciBuPShlPDwxNikrciZpO3JldHVybiBuLz00Mjk0OTY3Mjk2LG4rPS41LG4qKHQucmFuZG9tKCk+LjU/MTotMSl9fSxvPTA7bzxyO28rPTQpe3ZhciBhPW4oNDI5NDk2NzI5NiooZXx8dC5yYW5kb20oKSkpO2U9OTg3NjU0MDcxKmEoKSxpLnB1c2goNDI5NDk2NzI5NiphKCl8MCl9cmV0dXJuIG5ldyBzLmluaXQoaSxyKX19KSxhPWkuZW5jPXt9LGM9YS5IZXg9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC53b3JkcyxlPXQuc2lnQnl0ZXMsaT1bXSxuPTA7bjxlO24rKyl7dmFyIG89cltuPj4+Ml0+Pj4yNC1uJTQqOCYyNTU7aS5wdXNoKChvPj4+NCkudG9TdHJpbmcoMTYpKSxpLnB1c2goKDE1Jm8pLnRvU3RyaW5nKDE2KSl9cmV0dXJuIGkuam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQubGVuZ3RoLGU9W10saT0wO2k8cjtpKz0yKWVbaT4+PjNdfD1wYXJzZUludCh0LnN1YnN0cihpLDIpLDE2KTw8MjQtaSU4KjQ7cmV0dXJuIG5ldyBzLmluaXQoZSxyLzIpfX0saD1hLkxhdGluMT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10LndvcmRzLGU9dC5zaWdCeXRlcyxpPVtdLG49MDtuPGU7bisrKXt2YXIgbz1yW24+Pj4yXT4+PjI0LW4lNCo4JjI1NTtpLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShvKSl9cmV0dXJuIGkuam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQubGVuZ3RoLGU9W10saT0wO2k8cjtpKyspZVtpPj4+Ml18PSgyNTUmdC5jaGFyQ29kZUF0KGkpKTw8MjQtaSU0Kjg7cmV0dXJuIG5ldyBzLmluaXQoZSxyKX19LGw9YS5VdGY4PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKGguc3RyaW5naWZ5KHQpKSl9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiTWFsZm9ybWVkIFVURi04IGRhdGFcIil9fSxwYXJzZTpmdW5jdGlvbih0KXtyZXR1cm4gaC5wYXJzZSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQodCkpKX19LGY9bi5CdWZmZXJlZEJsb2NrQWxnb3JpdGhtPW8uZXh0ZW5kKHtyZXNldDpmdW5jdGlvbigpe3RoaXMuX2RhdGE9bmV3IHMuaW5pdCx0aGlzLl9uRGF0YUJ5dGVzPTB9LF9hcHBlbmQ6ZnVuY3Rpb24odCl7XCJzdHJpbmdcIj09dHlwZW9mIHQmJih0PWwucGFyc2UodCkpLHRoaXMuX2RhdGEuY29uY2F0KHQpLHRoaXMuX25EYXRhQnl0ZXMrPXQuc2lnQnl0ZXN9LF9wcm9jZXNzOmZ1bmN0aW9uKHIpe3ZhciBlPXRoaXMuX2RhdGEsaT1lLndvcmRzLG49ZS5zaWdCeXRlcyxvPXRoaXMuYmxvY2tTaXplLGE9NCpvLGM9bi9hO2M9cj90LmNlaWwoYyk6dC5tYXgoKDB8YyktdGhpcy5fbWluQnVmZmVyU2l6ZSwwKTt2YXIgaD1jKm8sbD10Lm1pbig0Kmgsbik7aWYoaCl7Zm9yKHZhciBmPTA7ZjxoO2YrPW8pdGhpcy5fZG9Qcm9jZXNzQmxvY2soaSxmKTt2YXIgdT1pLnNwbGljZSgwLGgpO2Uuc2lnQnl0ZXMtPWx9cmV0dXJuIG5ldyBzLmluaXQodSxsKX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1vLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2RhdGE9dGhpcy5fZGF0YS5jbG9uZSgpLHR9LF9taW5CdWZmZXJTaXplOjB9KSx1PShuLkhhc2hlcj1mLmV4dGVuZCh7Y2ZnOm8uZXh0ZW5kKCksaW5pdDpmdW5jdGlvbih0KXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQodCksdGhpcy5yZXNldCgpfSxyZXNldDpmdW5jdGlvbigpe2YucmVzZXQuY2FsbCh0aGlzKSx0aGlzLl9kb1Jlc2V0KCl9LHVwZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYXBwZW5kKHQpLHRoaXMuX3Byb2Nlc3MoKSx0aGlzfSxmaW5hbGl6ZTpmdW5jdGlvbih0KXt0JiZ0aGlzLl9hcHBlbmQodCk7dmFyIHI9dGhpcy5fZG9GaW5hbGl6ZSgpO3JldHVybiByfSxibG9ja1NpemU6MTYsX2NyZWF0ZUhlbHBlcjpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24ocixlKXtyZXR1cm4gbmV3IHQuaW5pdChlKS5maW5hbGl6ZShyKX19LF9jcmVhdGVIbWFjSGVscGVyOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihyLGUpe3JldHVybiBuZXcgdS5ITUFDLmluaXQodCxlKS5maW5hbGl6ZShyKX19fSksaS5hbGdvPXt9KTtyZXR1cm4gaX0oTWF0aCk7cmV0dXJuIGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0LHIsZSl7Zm9yKHZhciBpPVtdLG89MCxzPTA7czxyO3MrKylpZihzJTQpe3ZhciBhPWVbdC5jaGFyQ29kZUF0KHMtMSldPDxzJTQqMixjPWVbdC5jaGFyQ29kZUF0KHMpXT4+PjYtcyU0KjI7aVtvPj4+Ml18PShhfGMpPDwyNC1vJTQqOCxvKyt9cmV0dXJuIG4uY3JlYXRlKGksbyl9dmFyIGU9dCxpPWUubGliLG49aS5Xb3JkQXJyYXksbz1lLmVuYztvLkJhc2U2ND17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe3ZhciByPXQud29yZHMsZT10LnNpZ0J5dGVzLGk9dGhpcy5fbWFwO3QuY2xhbXAoKTtmb3IodmFyIG49W10sbz0wO288ZTtvKz0zKWZvcih2YXIgcz1yW28+Pj4yXT4+PjI0LW8lNCo4JjI1NSxhPXJbbysxPj4+Ml0+Pj4yNC0obysxKSU0KjgmMjU1LGM9cltvKzI+Pj4yXT4+PjI0LShvKzIpJTQqOCYyNTUsaD1zPDwxNnxhPDw4fGMsbD0wO2w8NCYmbysuNzUqbDxlO2wrKyluLnB1c2goaS5jaGFyQXQoaD4+PjYqKDMtbCkmNjMpKTt2YXIgZj1pLmNoYXJBdCg2NCk7aWYoZilmb3IoO24ubGVuZ3RoJTQ7KW4ucHVzaChmKTtyZXR1cm4gbi5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgZT10Lmxlbmd0aCxpPXRoaXMuX21hcCxuPXRoaXMuX3JldmVyc2VNYXA7aWYoIW4pe249dGhpcy5fcmV2ZXJzZU1hcD1bXTtmb3IodmFyIG89MDtvPGkubGVuZ3RoO28rKyluW2kuY2hhckNvZGVBdChvKV09b312YXIgcz1pLmNoYXJBdCg2NCk7aWYocyl7dmFyIGE9dC5pbmRleE9mKHMpO2EhPT0tMSYmKGU9YSl9cmV0dXJuIHIodCxlLG4pfSxfbWFwOlwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz1cIn19KCksZnVuY3Rpb24ocil7ZnVuY3Rpb24gZSh0LHIsZSxpLG4sbyxzKXt2YXIgYT10KyhyJmV8fnImaSkrbitzO3JldHVybihhPDxvfGE+Pj4zMi1vKStyfWZ1bmN0aW9uIGkodCxyLGUsaSxuLG8scyl7dmFyIGE9dCsociZpfGUmfmkpK24rcztyZXR1cm4oYTw8b3xhPj4+MzItbykrcn1mdW5jdGlvbiBuKHQscixlLGksbixvLHMpe3ZhciBhPXQrKHJeZV5pKStuK3M7cmV0dXJuKGE8PG98YT4+PjMyLW8pK3J9ZnVuY3Rpb24gbyh0LHIsZSxpLG4sbyxzKXt2YXIgYT10KyhlXihyfH5pKSkrbitzO3JldHVybihhPDxvfGE+Pj4zMi1vKStyfXZhciBzPXQsYT1zLmxpYixjPWEuV29yZEFycmF5LGg9YS5IYXNoZXIsbD1zLmFsZ28sZj1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PDY0O3QrKylmW3RdPTQyOTQ5NjcyOTYqci5hYnMoci5zaW4odCsxKSl8MH0oKTt2YXIgdT1sLk1ENT1oLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBjLmluaXQoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OF0pfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXtmb3IodmFyIHM9MDtzPDE2O3MrKyl7dmFyIGE9citzLGM9dFthXTt0W2FdPTE2NzExOTM1JihjPDw4fGM+Pj4yNCl8NDI3ODI1NTM2MCYoYzw8MjR8Yz4+PjgpfXZhciBoPXRoaXMuX2hhc2gud29yZHMsbD10W3IrMF0sdT10W3IrMV0sZD10W3IrMl0sdj10W3IrM10scD10W3IrNF0sXz10W3IrNV0seT10W3IrNl0sZz10W3IrN10sQj10W3IrOF0sdz10W3IrOV0saz10W3IrMTBdLFM9dFtyKzExXSxtPXRbcisxMl0seD10W3IrMTNdLGI9dFtyKzE0XSxIPXRbcisxNV0sej1oWzBdLEE9aFsxXSxDPWhbMl0sRD1oWzNdO3o9ZSh6LEEsQyxELGwsNyxmWzBdKSxEPWUoRCx6LEEsQyx1LDEyLGZbMV0pLEM9ZShDLEQseixBLGQsMTcsZlsyXSksQT1lKEEsQyxELHosdiwyMixmWzNdKSx6PWUoeixBLEMsRCxwLDcsZls0XSksRD1lKEQseixBLEMsXywxMixmWzVdKSxDPWUoQyxELHosQSx5LDE3LGZbNl0pLEE9ZShBLEMsRCx6LGcsMjIsZls3XSksej1lKHosQSxDLEQsQiw3LGZbOF0pLEQ9ZShELHosQSxDLHcsMTIsZls5XSksQz1lKEMsRCx6LEEsaywxNyxmWzEwXSksQT1lKEEsQyxELHosUywyMixmWzExXSksej1lKHosQSxDLEQsbSw3LGZbMTJdKSxEPWUoRCx6LEEsQyx4LDEyLGZbMTNdKSxDPWUoQyxELHosQSxiLDE3LGZbMTRdKSxBPWUoQSxDLEQseixILDIyLGZbMTVdKSx6PWkoeixBLEMsRCx1LDUsZlsxNl0pLEQ9aShELHosQSxDLHksOSxmWzE3XSksQz1pKEMsRCx6LEEsUywxNCxmWzE4XSksQT1pKEEsQyxELHosbCwyMCxmWzE5XSksej1pKHosQSxDLEQsXyw1LGZbMjBdKSxEPWkoRCx6LEEsQyxrLDksZlsyMV0pLEM9aShDLEQseixBLEgsMTQsZlsyMl0pLEE9aShBLEMsRCx6LHAsMjAsZlsyM10pLHo9aSh6LEEsQyxELHcsNSxmWzI0XSksRD1pKEQseixBLEMsYiw5LGZbMjVdKSxDPWkoQyxELHosQSx2LDE0LGZbMjZdKSxBPWkoQSxDLEQseixCLDIwLGZbMjddKSx6PWkoeixBLEMsRCx4LDUsZlsyOF0pLEQ9aShELHosQSxDLGQsOSxmWzI5XSksQz1pKEMsRCx6LEEsZywxNCxmWzMwXSksQT1pKEEsQyxELHosbSwyMCxmWzMxXSksej1uKHosQSxDLEQsXyw0LGZbMzJdKSxEPW4oRCx6LEEsQyxCLDExLGZbMzNdKSxDPW4oQyxELHosQSxTLDE2LGZbMzRdKSxBPW4oQSxDLEQseixiLDIzLGZbMzVdKSx6PW4oeixBLEMsRCx1LDQsZlszNl0pLEQ9bihELHosQSxDLHAsMTEsZlszN10pLEM9bihDLEQseixBLGcsMTYsZlszOF0pLEE9bihBLEMsRCx6LGssMjMsZlszOV0pLHo9bih6LEEsQyxELHgsNCxmWzQwXSksRD1uKEQseixBLEMsbCwxMSxmWzQxXSksQz1uKEMsRCx6LEEsdiwxNixmWzQyXSksQT1uKEEsQyxELHoseSwyMyxmWzQzXSksej1uKHosQSxDLEQsdyw0LGZbNDRdKSxEPW4oRCx6LEEsQyxtLDExLGZbNDVdKSxDPW4oQyxELHosQSxILDE2LGZbNDZdKSxBPW4oQSxDLEQseixkLDIzLGZbNDddKSx6PW8oeixBLEMsRCxsLDYsZls0OF0pLEQ9byhELHosQSxDLGcsMTAsZls0OV0pLEM9byhDLEQseixBLGIsMTUsZls1MF0pLEE9byhBLEMsRCx6LF8sMjEsZls1MV0pLHo9byh6LEEsQyxELG0sNixmWzUyXSksRD1vKEQseixBLEMsdiwxMCxmWzUzXSksQz1vKEMsRCx6LEEsaywxNSxmWzU0XSksQT1vKEEsQyxELHosdSwyMSxmWzU1XSksej1vKHosQSxDLEQsQiw2LGZbNTZdKSxEPW8oRCx6LEEsQyxILDEwLGZbNTddKSxDPW8oQyxELHosQSx5LDE1LGZbNThdKSxBPW8oQSxDLEQseix4LDIxLGZbNTldKSx6PW8oeixBLEMsRCxwLDYsZls2MF0pLEQ9byhELHosQSxDLFMsMTAsZls2MV0pLEM9byhDLEQseixBLGQsMTUsZls2Ml0pLEE9byhBLEMsRCx6LHcsMjEsZls2M10pLGhbMF09aFswXSt6fDAsaFsxXT1oWzFdK0F8MCxoWzJdPWhbMl0rQ3wwLGhbM109aFszXStEfDB9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxlPXQud29yZHMsaT04KnRoaXMuX25EYXRhQnl0ZXMsbj04KnQuc2lnQnl0ZXM7ZVtuPj4+NV18PTEyODw8MjQtbiUzMjt2YXIgbz1yLmZsb29yKGkvNDI5NDk2NzI5Nikscz1pO2VbKG4rNjQ+Pj45PDw0KSsxNV09MTY3MTE5MzUmKG88PDh8bz4+PjI0KXw0Mjc4MjU1MzYwJihvPDwyNHxvPj4+OCksZVsobis2ND4+Pjk8PDQpKzE0XT0xNjcxMTkzNSYoczw8OHxzPj4+MjQpfDQyNzgyNTUzNjAmKHM8PDI0fHM+Pj44KSx0LnNpZ0J5dGVzPTQqKGUubGVuZ3RoKzEpLHRoaXMuX3Byb2Nlc3MoKTtmb3IodmFyIGE9dGhpcy5faGFzaCxjPWEud29yZHMsaD0wO2g8NDtoKyspe3ZhciBsPWNbaF07Y1toXT0xNjcxMTkzNSYobDw8OHxsPj4+MjQpfDQyNzgyNTUzNjAmKGw8PDI0fGw+Pj44KX1yZXR1cm4gYX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1oLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9fSk7cy5NRDU9aC5fY3JlYXRlSGVscGVyKHUpLHMuSG1hY01ENT1oLl9jcmVhdGVIbWFjSGVscGVyKHUpfShNYXRoKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLmxpYixpPWUuV29yZEFycmF5LG49ZS5IYXNoZXIsbz1yLmFsZ28scz1bXSxhPW8uU0hBMT1uLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBpLmluaXQoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10aGlzLl9oYXNoLndvcmRzLGk9ZVswXSxuPWVbMV0sbz1lWzJdLGE9ZVszXSxjPWVbNF0saD0wO2g8ODA7aCsrKXtpZihoPDE2KXNbaF09MHx0W3IraF07ZWxzZXt2YXIgbD1zW2gtM11ec1toLThdXnNbaC0xNF1ec1toLTE2XTtzW2hdPWw8PDF8bD4+PjMxfXZhciBmPShpPDw1fGk+Pj4yNykrYytzW2hdO2YrPWg8MjA/KG4mb3x+biZhKSsxNTE4NTAwMjQ5Omg8NDA/KG5eb15hKSsxODU5Nzc1MzkzOmg8NjA/KG4mb3xuJmF8byZhKS0xODk0MDA3NTg4OihuXm9eYSktODk5NDk3NTE0LGM9YSxhPW8sbz1uPDwzMHxuPj4+MixuPWksaT1mfWVbMF09ZVswXStpfDAsZVsxXT1lWzFdK258MCxlWzJdPWVbMl0rb3wwLGVbM109ZVszXSthfDAsZVs0XT1lWzRdK2N8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLHI9dC53b3JkcyxlPTgqdGhpcy5fbkRhdGFCeXRlcyxpPTgqdC5zaWdCeXRlcztyZXR1cm4gcltpPj4+NV18PTEyODw8MjQtaSUzMixyWyhpKzY0Pj4+OTw8NCkrMTRdPU1hdGguZmxvb3IoZS80Mjk0OTY3Mjk2KSxyWyhpKzY0Pj4+OTw8NCkrMTVdPWUsdC5zaWdCeXRlcz00KnIubGVuZ3RoLHRoaXMuX3Byb2Nlc3MoKSx0aGlzLl9oYXNofSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PW4uY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KTtyLlNIQTE9bi5fY3JlYXRlSGVscGVyKGEpLHIuSG1hY1NIQTE9bi5fY3JlYXRlSG1hY0hlbHBlcihhKX0oKSxmdW5jdGlvbihyKXt2YXIgZT10LGk9ZS5saWIsbj1pLldvcmRBcnJheSxvPWkuSGFzaGVyLHM9ZS5hbGdvLGE9W10sYz1bXTshZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe2Zvcih2YXIgZT1yLnNxcnQodCksaT0yO2k8PWU7aSsrKWlmKCEodCVpKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBlKHQpe3JldHVybiA0Mjk0OTY3Mjk2Kih0LSgwfHQpKXwwfWZvcih2YXIgaT0yLG49MDtuPDY0Oyl0KGkpJiYobjw4JiYoYVtuXT1lKHIucG93KGksLjUpKSksY1tuXT1lKHIucG93KGksMS8zKSksbisrKSxpKyt9KCk7dmFyIGg9W10sbD1zLlNIQTI1Nj1vLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBuLmluaXQoYS5zbGljZSgwKSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10aGlzLl9oYXNoLndvcmRzLGk9ZVswXSxuPWVbMV0sbz1lWzJdLHM9ZVszXSxhPWVbNF0sbD1lWzVdLGY9ZVs2XSx1PWVbN10sZD0wO2Q8NjQ7ZCsrKXtpZihkPDE2KWhbZF09MHx0W3IrZF07ZWxzZXt2YXIgdj1oW2QtMTVdLHA9KHY8PDI1fHY+Pj43KV4odjw8MTR8dj4+PjE4KV52Pj4+MyxfPWhbZC0yXSx5PShfPDwxNXxfPj4+MTcpXihfPDwxM3xfPj4+MTkpXl8+Pj4xMDtoW2RdPXAraFtkLTddK3kraFtkLTE2XX12YXIgZz1hJmxefmEmZixCPWkmbl5pJm9ebiZvLHc9KGk8PDMwfGk+Pj4yKV4oaTw8MTl8aT4+PjEzKV4oaTw8MTB8aT4+PjIyKSxrPShhPDwyNnxhPj4+NileKGE8PDIxfGE+Pj4xMSleKGE8PDd8YT4+PjI1KSxTPXUraytnK2NbZF0raFtkXSxtPXcrQjt1PWYsZj1sLGw9YSxhPXMrU3wwLHM9byxvPW4sbj1pLGk9UyttfDB9ZVswXT1lWzBdK2l8MCxlWzFdPWVbMV0rbnwwLGVbMl09ZVsyXStvfDAsZVszXT1lWzNdK3N8MCxlWzRdPWVbNF0rYXwwLGVbNV09ZVs1XStsfDAsZVs2XT1lWzZdK2Z8MCxlWzddPWVbN10rdXwwfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEsZT10LndvcmRzLGk9OCp0aGlzLl9uRGF0YUJ5dGVzLG49OCp0LnNpZ0J5dGVzO3JldHVybiBlW24+Pj41XXw9MTI4PDwyNC1uJTMyLGVbKG4rNjQ+Pj45PDw0KSsxNF09ci5mbG9vcihpLzQyOTQ5NjcyOTYpLGVbKG4rNjQ+Pj45PDw0KSsxNV09aSx0LnNpZ0J5dGVzPTQqZS5sZW5ndGgsdGhpcy5fcHJvY2VzcygpLHRoaXMuX2hhc2h9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9by5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fX0pO2UuU0hBMjU2PW8uX2NyZWF0ZUhlbHBlcihsKSxlLkhtYWNTSEEyNTY9by5fY3JlYXRlSG1hY0hlbHBlcihsKX0oTWF0aCksZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQpe3JldHVybiB0PDw4JjQyNzgyNTUzNjB8dD4+PjgmMTY3MTE5MzV9dmFyIGU9dCxpPWUubGliLG49aS5Xb3JkQXJyYXksbz1lLmVuYztvLlV0ZjE2PW8uVXRmMTZCRT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10LndvcmRzLGU9dC5zaWdCeXRlcyxpPVtdLG49MDtuPGU7bis9Mil7dmFyIG89cltuPj4+Ml0+Pj4xNi1uJTQqOCY2NTUzNTtpLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShvKSl9cmV0dXJuIGkuam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQubGVuZ3RoLGU9W10saT0wO2k8cjtpKyspZVtpPj4+MV18PXQuY2hhckNvZGVBdChpKTw8MTYtaSUyKjE2O3JldHVybiBuLmNyZWF0ZShlLDIqcil9fTtvLlV0ZjE2TEU9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC53b3JkcyxpPXQuc2lnQnl0ZXMsbj1bXSxvPTA7bzxpO28rPTIpe3ZhciBzPXIoZVtvPj4+Ml0+Pj4xNi1vJTQqOCY2NTUzNSk7bi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUocykpfXJldHVybiBuLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxpPVtdLG89MDtvPGU7bysrKWlbbz4+PjFdfD1yKHQuY2hhckNvZGVBdChvKTw8MTYtbyUyKjE2KTtyZXR1cm4gbi5jcmVhdGUoaSwyKmUpfX19KCksZnVuY3Rpb24oKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBBcnJheUJ1ZmZlcil7dmFyIHI9dCxlPXIubGliLGk9ZS5Xb3JkQXJyYXksbj1pLmluaXQsbz1pLmluaXQ9ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiYodD1uZXcgVWludDhBcnJheSh0KSksKHQgaW5zdGFuY2VvZiBJbnQ4QXJyYXl8fFwidW5kZWZpbmVkXCIhPXR5cGVvZiBVaW50OENsYW1wZWRBcnJheSYmdCBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5fHx0IGluc3RhbmNlb2YgSW50MTZBcnJheXx8dCBpbnN0YW5jZW9mIFVpbnQxNkFycmF5fHx0IGluc3RhbmNlb2YgSW50MzJBcnJheXx8dCBpbnN0YW5jZW9mIFVpbnQzMkFycmF5fHx0IGluc3RhbmNlb2YgRmxvYXQzMkFycmF5fHx0IGluc3RhbmNlb2YgRmxvYXQ2NEFycmF5KSYmKHQ9bmV3IFVpbnQ4QXJyYXkodC5idWZmZXIsdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCkpLHQgaW5zdGFuY2VvZiBVaW50OEFycmF5KXtmb3IodmFyIHI9dC5ieXRlTGVuZ3RoLGU9W10saT0wO2k8cjtpKyspZVtpPj4+Ml18PXRbaV08PDI0LWklNCo4O24uY2FsbCh0aGlzLGUscil9ZWxzZSBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07by5wcm90b3R5cGU9aX19KCksZnVuY3Rpb24ocil7ZnVuY3Rpb24gZSh0LHIsZSl7cmV0dXJuIHRecl5lfWZ1bmN0aW9uIGkodCxyLGUpe3JldHVybiB0JnJ8fnQmZX1mdW5jdGlvbiBuKHQscixlKXtyZXR1cm4odHx+cileZX1mdW5jdGlvbiBvKHQscixlKXtyZXR1cm4gdCZlfHImfmV9ZnVuY3Rpb24gcyh0LHIsZSl7cmV0dXJuIHReKHJ8fmUpfWZ1bmN0aW9uIGEodCxyKXtyZXR1cm4gdDw8cnx0Pj4+MzItcn12YXIgYz10LGg9Yy5saWIsbD1oLldvcmRBcnJheSxmPWguSGFzaGVyLHU9Yy5hbGdvLGQ9bC5jcmVhdGUoWzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIsMTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwxMCwwLDgsMTIsNCwxMywzLDcsMTUsMTQsNSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10pLHY9bC5jcmVhdGUoWzUsMTQsNywwLDksMiwxMSw0LDEzLDYsMTUsOCwxLDEwLDMsMTIsNiwxMSwzLDcsMCwxMyw1LDEwLDE0LDE1LDgsMTIsNCw5LDEsMiwxNSw1LDEsMyw3LDE0LDYsOSwxMSw4LDEyLDIsMTAsMCw0LDEzLDgsNiw0LDEsMywxMSwxNSwwLDUsMTIsMiwxMyw5LDcsMTAsMTQsMTIsMTUsMTAsNCwxLDUsOCw3LDYsMiwxMywxNCwwLDMsOSwxMV0pLHA9bC5jcmVhdGUoWzExLDE0LDE1LDEyLDUsOCw3LDksMTEsMTMsMTQsMTUsNiw3LDksOCw3LDYsOCwxMywxMSw5LDcsMTUsNywxMiwxNSw5LDExLDcsMTMsMTIsMTEsMTMsNiw3LDE0LDksMTMsMTUsMTQsOCwxMyw2LDUsMTIsNyw1LDExLDEyLDE0LDE1LDE0LDE1LDksOCw5LDE0LDUsNiw4LDYsNSwxMiw5LDE1LDUsMTEsNiw4LDEzLDEyLDUsMTIsMTMsMTQsMTEsOCw1LDZdKSxfPWwuY3JlYXRlKFs4LDksOSwxMSwxMywxNSwxNSw1LDcsNyw4LDExLDE0LDE0LDEyLDYsOSwxMywxNSw3LDEyLDgsOSwxMSw3LDcsMTIsNyw2LDE1LDEzLDExLDksNywxNSwxMSw4LDYsNiwxNCwxMiwxMyw1LDE0LDEzLDEzLDcsNSwxNSw1LDgsMTEsMTQsMTQsNiwxNCw2LDksMTIsOSwxMiw1LDE1LDgsOCw1LDEyLDksMTIsNSwxNCw2LDgsMTMsNiw1LDE1LDEzLDExLDExXSkseT1sLmNyZWF0ZShbMCwxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsMjQwMDk1OTcwOCwyODQwODUzODM4XSksZz1sLmNyZWF0ZShbMTM1MjgyOTkyNiwxNTQ4NjAzNjg0LDE4MzYwNzI2OTEsMjA1Mzk5NDIxNywwXSksQj11LlJJUEVNRDE2MD1mLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPWwuY3JlYXRlKFsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzgsMzI4NTM3NzUyMF0pfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGM9MDtjPDE2O2MrKyl7dmFyIGg9citjLGw9dFtoXTt0W2hdPTE2NzExOTM1JihsPDw4fGw+Pj4yNCl8NDI3ODI1NTM2MCYobDw8MjR8bD4+PjgpfXZhciBmLHUsQix3LGssUyxtLHgsYixILHo9dGhpcy5faGFzaC53b3JkcyxBPXkud29yZHMsQz1nLndvcmRzLEQ9ZC53b3JkcyxSPXYud29yZHMsRT1wLndvcmRzLE09Xy53b3JkcztTPWY9elswXSxtPXU9elsxXSx4PUI9elsyXSxiPXc9elszXSxIPWs9els0XTtmb3IodmFyIEYsYz0wO2M8ODA7Yys9MSlGPWYrdFtyK0RbY11dfDAsRis9YzwxNj9lKHUsQix3KStBWzBdOmM8MzI/aSh1LEIsdykrQVsxXTpjPDQ4P24odSxCLHcpK0FbMl06Yzw2ND9vKHUsQix3KStBWzNdOnModSxCLHcpK0FbNF0sRnw9MCxGPWEoRixFW2NdKSxGPUYra3wwLGY9ayxrPXcsdz1hKEIsMTApLEI9dSx1PUYsRj1TK3RbcitSW2NdXXwwLEYrPWM8MTY/cyhtLHgsYikrQ1swXTpjPDMyP28obSx4LGIpK0NbMV06Yzw0OD9uKG0seCxiKStDWzJdOmM8NjQ/aShtLHgsYikrQ1szXTplKG0seCxiKStDWzRdLEZ8PTAsRj1hKEYsTVtjXSksRj1GK0h8MCxTPUgsSD1iLGI9YSh4LDEwKSx4PW0sbT1GO0Y9elsxXStCK2J8MCx6WzFdPXpbMl0rdytIfDAselsyXT16WzNdK2srU3wwLHpbM109els0XStmK218MCx6WzRdPXpbMF0rdSt4fDAselswXT1GfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEscj10LndvcmRzLGU9OCp0aGlzLl9uRGF0YUJ5dGVzLGk9OCp0LnNpZ0J5dGVzO3JbaT4+PjVdfD0xMjg8PDI0LWklMzIsclsoaSs2ND4+Pjk8PDQpKzE0XT0xNjcxMTkzNSYoZTw8OHxlPj4+MjQpfDQyNzgyNTUzNjAmKGU8PDI0fGU+Pj44KSx0LnNpZ0J5dGVzPTQqKHIubGVuZ3RoKzEpLHRoaXMuX3Byb2Nlc3MoKTtmb3IodmFyIG49dGhpcy5faGFzaCxvPW4ud29yZHMscz0wO3M8NTtzKyspe3ZhciBhPW9bc107b1tzXT0xNjcxMTkzNSYoYTw8OHxhPj4+MjQpfDQyNzgyNTUzNjAmKGE8PDI0fGE+Pj44KX1yZXR1cm4gbn0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1mLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9fSk7Yy5SSVBFTUQxNjA9Zi5fY3JlYXRlSGVscGVyKEIpLGMuSG1hY1JJUEVNRDE2MD1mLl9jcmVhdGVIbWFjSGVscGVyKEIpfShNYXRoKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLmxpYixpPWUuQmFzZSxuPXIuZW5jLG89bi5VdGY4LHM9ci5hbGdvO3MuSE1BQz1pLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LHIpe3Q9dGhpcy5faGFzaGVyPW5ldyB0LmluaXQsXCJzdHJpbmdcIj09dHlwZW9mIHImJihyPW8ucGFyc2UocikpO3ZhciBlPXQuYmxvY2tTaXplLGk9NCplO3Iuc2lnQnl0ZXM+aSYmKHI9dC5maW5hbGl6ZShyKSksci5jbGFtcCgpO2Zvcih2YXIgbj10aGlzLl9vS2V5PXIuY2xvbmUoKSxzPXRoaXMuX2lLZXk9ci5jbG9uZSgpLGE9bi53b3JkcyxjPXMud29yZHMsaD0wO2g8ZTtoKyspYVtoXV49MTU0OTU1NjgyOCxjW2hdXj05MDk1MjI0ODY7bi5zaWdCeXRlcz1zLnNpZ0J5dGVzPWksdGhpcy5yZXNldCgpfSxyZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2hhc2hlcjt0LnJlc2V0KCksdC51cGRhdGUodGhpcy5faUtleSl9LHVwZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faGFzaGVyLnVwZGF0ZSh0KSx0aGlzfSxmaW5hbGl6ZTpmdW5jdGlvbih0KXt2YXIgcj10aGlzLl9oYXNoZXIsZT1yLmZpbmFsaXplKHQpO3IucmVzZXQoKTt2YXIgaT1yLmZpbmFsaXplKHRoaXMuX29LZXkuY2xvbmUoKS5jb25jYXQoZSkpO3JldHVybiBpfX0pfSgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5CYXNlLG49ZS5Xb3JkQXJyYXksbz1yLmFsZ28scz1vLlNIQTEsYT1vLkhNQUMsYz1vLlBCS0RGMj1pLmV4dGVuZCh7Y2ZnOmkuZXh0ZW5kKHtrZXlTaXplOjQsaGFzaGVyOnMsaXRlcmF0aW9uczoxfSksaW5pdDpmdW5jdGlvbih0KXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQodCl9LGNvbXB1dGU6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dGhpcy5jZmcsaT1hLmNyZWF0ZShlLmhhc2hlcix0KSxvPW4uY3JlYXRlKCkscz1uLmNyZWF0ZShbMV0pLGM9by53b3JkcyxoPXMud29yZHMsbD1lLmtleVNpemUsZj1lLml0ZXJhdGlvbnM7Yy5sZW5ndGg8bDspe3ZhciB1PWkudXBkYXRlKHIpLmZpbmFsaXplKHMpO2kucmVzZXQoKTtmb3IodmFyIGQ9dS53b3Jkcyx2PWQubGVuZ3RoLHA9dSxfPTE7XzxmO18rKyl7cD1pLmZpbmFsaXplKHApLGkucmVzZXQoKTtmb3IodmFyIHk9cC53b3JkcyxnPTA7Zzx2O2crKylkW2ddXj15W2ddfW8uY29uY2F0KHUpLGhbMF0rK31yZXR1cm4gby5zaWdCeXRlcz00Kmwsb319KTtyLlBCS0RGMj1mdW5jdGlvbih0LHIsZSl7cmV0dXJuIGMuY3JlYXRlKGUpLmNvbXB1dGUodCxyKX19KCksZnVuY3Rpb24oKXt2YXIgcj10LGU9ci5saWIsaT1lLkJhc2Usbj1lLldvcmRBcnJheSxvPXIuYWxnbyxzPW8uTUQ1LGE9by5FdnBLREY9aS5leHRlbmQoe2NmZzppLmV4dGVuZCh7a2V5U2l6ZTo0LGhhc2hlcjpzLGl0ZXJhdGlvbnM6MX0pLGluaXQ6ZnVuY3Rpb24odCl7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHQpfSxjb21wdXRlOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuY2ZnLGk9ZS5oYXNoZXIuY3JlYXRlKCksbz1uLmNyZWF0ZSgpLHM9by53b3JkcyxhPWUua2V5U2l6ZSxjPWUuaXRlcmF0aW9ucztzLmxlbmd0aDxhOyl7aCYmaS51cGRhdGUoaCk7dmFyIGg9aS51cGRhdGUodCkuZmluYWxpemUocik7aS5yZXNldCgpO2Zvcih2YXIgbD0xO2w8YztsKyspaD1pLmZpbmFsaXplKGgpLGkucmVzZXQoKTtvLmNvbmNhdChoKX1yZXR1cm4gby5zaWdCeXRlcz00KmEsb319KTtyLkV2cEtERj1mdW5jdGlvbih0LHIsZSl7cmV0dXJuIGEuY3JlYXRlKGUpLmNvbXB1dGUodCxyKX19KCksZnVuY3Rpb24oKXt2YXIgcj10LGU9ci5saWIsaT1lLldvcmRBcnJheSxuPXIuYWxnbyxvPW4uU0hBMjU2LHM9bi5TSEEyMjQ9by5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgaS5pbml0KFszMjM4MzcxMDMyLDkxNDE1MDY2Myw4MTI3MDI5OTksNDE0NDkxMjY5Nyw0MjkwNzc1ODU3LDE3NTA2MDMwMjUsMTY5NDA3NjgzOSwzMjA0MDc1NDI4XSl9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9by5fZG9GaW5hbGl6ZS5jYWxsKHRoaXMpO3JldHVybiB0LnNpZ0J5dGVzLT00LHR9fSk7ci5TSEEyMjQ9by5fY3JlYXRlSGVscGVyKHMpLHIuSG1hY1NIQTIyND1vLl9jcmVhdGVIbWFjSGVscGVyKHMpfSgpLGZ1bmN0aW9uKHIpe3ZhciBlPXQsaT1lLmxpYixuPWkuQmFzZSxvPWkuV29yZEFycmF5LHM9ZS54NjQ9e307cy5Xb3JkPW4uZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQscil7dGhpcy5oaWdoPXQsdGhpcy5sb3c9cn19KSxzLldvcmRBcnJheT1uLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LGUpe3Q9dGhpcy53b3Jkcz10fHxbXSxlIT1yP3RoaXMuc2lnQnl0ZXM9ZTp0aGlzLnNpZ0J5dGVzPTgqdC5sZW5ndGh9LHRvWDMyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMud29yZHMscj10Lmxlbmd0aCxlPVtdLGk9MDtpPHI7aSsrKXt2YXIgbj10W2ldO2UucHVzaChuLmhpZ2gpLGUucHVzaChuLmxvdyl9cmV0dXJuIG8uY3JlYXRlKGUsdGhpcy5zaWdCeXRlcyl9LGNsb25lOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PW4uY2xvbmUuY2FsbCh0aGlzKSxyPXQud29yZHM9dGhpcy53b3Jkcy5zbGljZSgwKSxlPXIubGVuZ3RoLGk9MDtpPGU7aSsrKXJbaV09cltpXS5jbG9uZSgpO3JldHVybiB0fX0pfSgpLGZ1bmN0aW9uKHIpe3ZhciBlPXQsaT1lLmxpYixuPWkuV29yZEFycmF5LG89aS5IYXNoZXIscz1lLng2NCxhPXMuV29yZCxjPWUuYWxnbyxoPVtdLGw9W10sZj1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9MSxyPTAsZT0wO2U8MjQ7ZSsrKXtoW3QrNSpyXT0oZSsxKSooZSsyKS8yJTY0O3ZhciBpPXIlNSxuPSgyKnQrMypyKSU1O3Q9aSxyPW59Zm9yKHZhciB0PTA7dDw1O3QrKylmb3IodmFyIHI9MDtyPDU7cisrKWxbdCs1KnJdPXIrKDIqdCszKnIpJTUqNTtmb3IodmFyIG89MSxzPTA7czwyNDtzKyspe2Zvcih2YXIgYz0wLHU9MCxkPTA7ZDw3O2QrKyl7aWYoMSZvKXt2YXIgdj0oMTw8ZCktMTt2PDMyP3VePTE8PHY6Y149MTw8di0zMn0xMjgmbz9vPW88PDFeMTEzOm88PD0xfWZbc109YS5jcmVhdGUoYyx1KX19KCk7dmFyIHU9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDwyNTt0KyspdVt0XT1hLmNyZWF0ZSgpfSgpO3ZhciBkPWMuU0hBMz1vLmV4dGVuZCh7Y2ZnOm8uY2ZnLmV4dGVuZCh7b3V0cHV0TGVuZ3RoOjUxMn0pLF9kb1Jlc2V0OmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX3N0YXRlPVtdLHI9MDtyPDI1O3IrKyl0W3JdPW5ldyBhLmluaXQ7dGhpcy5ibG9ja1NpemU9KDE2MDAtMip0aGlzLmNmZy5vdXRwdXRMZW5ndGgpLzMyfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dGhpcy5fc3RhdGUsaT10aGlzLmJsb2NrU2l6ZS8yLG49MDtuPGk7bisrKXt2YXIgbz10W3IrMipuXSxzPXRbcisyKm4rMV07bz0xNjcxMTkzNSYobzw8OHxvPj4+MjQpfDQyNzgyNTUzNjAmKG88PDI0fG8+Pj44KSxzPTE2NzExOTM1JihzPDw4fHM+Pj4yNCl8NDI3ODI1NTM2MCYoczw8MjR8cz4+PjgpO3ZhciBhPWVbbl07YS5oaWdoXj1zLGEubG93Xj1vfWZvcih2YXIgYz0wO2M8MjQ7YysrKXtmb3IodmFyIGQ9MDtkPDU7ZCsrKXtmb3IodmFyIHY9MCxwPTAsXz0wO188NTtfKyspe3ZhciBhPWVbZCs1Kl9dO3ZePWEuaGlnaCxwXj1hLmxvd312YXIgeT11W2RdO3kuaGlnaD12LHkubG93PXB9Zm9yKHZhciBkPTA7ZDw1O2QrKylmb3IodmFyIGc9dVsoZCs0KSU1XSxCPXVbKGQrMSklNV0sdz1CLmhpZ2gsaz1CLmxvdyx2PWcuaGlnaF4odzw8MXxrPj4+MzEpLHA9Zy5sb3deKGs8PDF8dz4+PjMxKSxfPTA7Xzw1O18rKyl7dmFyIGE9ZVtkKzUqX107YS5oaWdoXj12LGEubG93Xj1wfWZvcih2YXIgUz0xO1M8MjU7UysrKXt2YXIgYT1lW1NdLG09YS5oaWdoLHg9YS5sb3csYj1oW1NdO2lmKGI8MzIpdmFyIHY9bTw8Ynx4Pj4+MzItYixwPXg8PGJ8bT4+PjMyLWI7ZWxzZSB2YXIgdj14PDxiLTMyfG0+Pj42NC1iLHA9bTw8Yi0zMnx4Pj4+NjQtYjt2YXIgSD11W2xbU11dO0guaGlnaD12LEgubG93PXB9dmFyIHo9dVswXSxBPWVbMF07ei5oaWdoPUEuaGlnaCx6Lmxvdz1BLmxvdztmb3IodmFyIGQ9MDtkPDU7ZCsrKWZvcih2YXIgXz0wO188NTtfKyspe3ZhciBTPWQrNSpfLGE9ZVtTXSxDPXVbU10sRD11WyhkKzEpJTUrNSpfXSxSPXVbKGQrMiklNSs1Kl9dO2EuaGlnaD1DLmhpZ2hefkQuaGlnaCZSLmhpZ2gsYS5sb3c9Qy5sb3defkQubG93JlIubG93fXZhciBhPWVbMF0sRT1mW2NdO2EuaGlnaF49RS5oaWdoLGEubG93Xj1FLmxvd319LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxlPXQud29yZHMsaT0oOCp0aGlzLl9uRGF0YUJ5dGVzLDgqdC5zaWdCeXRlcyksbz0zMip0aGlzLmJsb2NrU2l6ZTtlW2k+Pj41XXw9MTw8MjQtaSUzMixlWyhyLmNlaWwoKGkrMSkvbykqbz4+PjUpLTFdfD0xMjgsdC5zaWdCeXRlcz00KmUubGVuZ3RoLHRoaXMuX3Byb2Nlc3MoKTtmb3IodmFyIHM9dGhpcy5fc3RhdGUsYT10aGlzLmNmZy5vdXRwdXRMZW5ndGgvOCxjPWEvOCxoPVtdLGw9MDtsPGM7bCsrKXt2YXIgZj1zW2xdLHU9Zi5oaWdoLGQ9Zi5sb3c7dT0xNjcxMTkzNSYodTw8OHx1Pj4+MjQpfDQyNzgyNTUzNjAmKHU8PDI0fHU+Pj44KSxkPTE2NzExOTM1JihkPDw4fGQ+Pj4yNCl8NDI3ODI1NTM2MCYoZDw8MjR8ZD4+PjgpLGgucHVzaChkKSxoLnB1c2godSl9cmV0dXJuIG5ldyBuLmluaXQoaCxhKX0sY2xvbmU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9by5jbG9uZS5jYWxsKHRoaXMpLHI9dC5fc3RhdGU9dGhpcy5fc3RhdGUuc2xpY2UoMCksZT0wO2U8MjU7ZSsrKXJbZV09cltlXS5jbG9uZSgpO3JldHVybiB0fX0pO2UuU0hBMz1vLl9jcmVhdGVIZWxwZXIoZCksZS5IbWFjU0hBMz1vLl9jcmVhdGVIbWFjSGVscGVyKGQpfShNYXRoKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIoKXtyZXR1cm4gcy5jcmVhdGUuYXBwbHkocyxhcmd1bWVudHMpfXZhciBlPXQsaT1lLmxpYixuPWkuSGFzaGVyLG89ZS54NjQscz1vLldvcmQsYT1vLldvcmRBcnJheSxjPWUuYWxnbyxoPVtyKDExMTYzNTI0MDgsMzYwOTc2NzQ1OCkscigxODk5NDQ3NDQxLDYwMjg5MTcyNSkscigzMDQ5MzIzNDcxLDM5NjQ0ODQzOTkpLHIoMzkyMTAwOTU3MywyMTczMjk1NTQ4KSxyKDk2MTk4NzE2Myw0MDgxNjI4NDcyKSxyKDE1MDg5NzA5OTMsMzA1MzgzNDI2NSkscigyNDUzNjM1NzQ4LDI5Mzc2NzE1NzkpLHIoMjg3MDc2MzIyMSwzNjY0NjA5NTYwKSxyKDM2MjQzODEwODAsMjczNDg4MzM5NCkscigzMTA1OTg0MDEsMTE2NDk5NjU0Mikscig2MDcyMjUyNzgsMTMyMzYxMDc2NCkscigxNDI2ODgxOTg3LDM1OTAzMDQ5OTQpLHIoMTkyNTA3ODM4OCw0MDY4MTgyMzgzKSxyKDIxNjIwNzgyMDYsOTkxMzM2MTEzKSxyKDI2MTQ4ODgxMDMsNjMzODAzMzE3KSxyKDMyNDgyMjI1ODAsMzQ3OTc3NDg2OCkscigzODM1MzkwNDAxLDI2NjY2MTM0NTgpLHIoNDAyMjIyNDc3NCw5NDQ3MTExMzkpLHIoMjY0MzQ3MDc4LDIzNDEyNjI3NzMpLHIoNjA0ODA3NjI4LDIwMDc4MDA5MzMpLHIoNzcwMjU1OTgzLDE0OTU5OTA5MDEpLHIoMTI0OTE1MDEyMiwxODU2NDMxMjM1KSxyKDE1NTUwODE2OTIsMzE3NTIxODEzMikscigxOTk2MDY0OTg2LDIxOTg5NTA4MzcpLHIoMjU1NDIyMDg4MiwzOTk5NzE5MzM5KSxyKDI4MjE4MzQzNDksNzY2Nzg0MDE2KSxyKDI5NTI5OTY4MDgsMjU2NjU5NDg3OSkscigzMjEwMzEzNjcxLDMyMDMzMzc5NTYpLHIoMzMzNjU3MTg5MSwxMDM0NDU3MDI2KSxyKDM1ODQ1Mjg3MTEsMjQ2Njk0ODkwMSkscigxMTM5MjY5OTMsMzc1ODMyNjM4MykscigzMzgyNDE4OTUsMTY4NzE3OTM2KSxyKDY2NjMwNzIwNSwxMTg4MTc5OTY0KSxyKDc3MzUyOTkxMiwxNTQ2MDQ1NzM0KSxyKDEyOTQ3NTczNzIsMTUyMjgwNTQ4NSkscigxMzk2MTgyMjkxLDI2NDM4MzM4MjMpLHIoMTY5NTE4MzcwMCwyMzQzNTI3MzkwKSxyKDE5ODY2NjEwNTEsMTAxNDQ3NzQ4MCkscigyMTc3MDI2MzUwLDEyMDY3NTkxNDIpLHIoMjQ1Njk1NjAzNywzNDQwNzc2MjcpLHIoMjczMDQ4NTkyMSwxMjkwODYzNDYwKSxyKDI4MjAzMDI0MTEsMzE1ODQ1NDI3MykscigzMjU5NzMwODAwLDM1MDU5NTI2NTcpLHIoMzM0NTc2NDc3MSwxMDYyMTcwMDgpLHIoMzUxNjA2NTgxNywzNjA2MDA4MzQ0KSxyKDM2MDAzNTI4MDQsMTQzMjcyNTc3Nikscig0MDk0NTcxOTA5LDE0NjcwMzE1OTQpLHIoMjc1NDIzMzQ0LDg1MTE2OTcyMCkscig0MzAyMjc3MzQsMzEwMDgyMzc1Mikscig1MDY5NDg2MTYsMTM2MzI1ODE5NSkscig2NTkwNjA1NTYsMzc1MDY4NTU5Mykscig4ODM5OTc4NzcsMzc4NTA1MDI4MCkscig5NTgxMzk1NzEsMzMxODMwNzQyNykscigxMzIyODIyMjE4LDM4MTI3MjM0MDMpLHIoMTUzNzAwMjA2MywyMDAzMDM0OTk1KSxyKDE3NDc4NzM3NzksMzYwMjAzNjg5OSkscigxOTU1NTYyMjIyLDE1NzU5OTAwMTIpLHIoMjAyNDEwNDgxNSwxMTI1NTkyOTI4KSxyKDIyMjc3MzA0NTIsMjcxNjkwNDMwNikscigyMzYxODUyNDI0LDQ0Mjc3NjA0NCkscigyNDI4NDM2NDc0LDU5MzY5ODM0NCkscigyNzU2NzM0MTg3LDM3MzMxMTAyNDkpLHIoMzIwNDAzMTQ3OSwyOTk5MzUxNTczKSxyKDMzMjkzMjUyOTgsMzgxNTkyMDQyNykscigzMzkxNTY5NjE0LDM5MjgzODM5MDApLHIoMzUxNTI2NzI3MSw1NjYyODA3MTEpLHIoMzk0MDE4NzYwNiwzNDU0MDY5NTM0KSxyKDQxMTg2MzAyNzEsNDAwMDIzOTk5MikscigxMTY0MTg0NzQsMTkxNDEzODU1NCkscigxNzQyOTI0MjEsMjczMTA1NTI3MCkscigyODkzODAzNTYsMzIwMzk5MzAwNikscig0NjAzOTMyNjksMzIwNjIwMzE1KSxyKDY4NTQ3MTczMyw1ODc0OTY4MzYpLHIoODUyMTQyOTcxLDEwODY3OTI4NTEpLHIoMTAxNzAzNjI5OCwzNjU1NDMxMDApLHIoMTEyNjAwMDU4MCwyNjE4Mjk3Njc2KSxyKDEyODgwMzM0NzAsMzQwOTg1NTE1OCkscigxNTAxNTA1OTQ4LDQyMzQ1MDk4NjYpLHIoMTYwNzE2NzkxNSw5ODcxNjc0NjgpLHIoMTgxNjQwMjMxNiwxMjQ2MTg5NTkxKV0sbD1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PDgwO3QrKylsW3RdPXIoKX0oKTt2YXIgZj1jLlNIQTUxMj1uLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBhLmluaXQoW25ldyBzLmluaXQoMTc3OTAzMzcwMyw0MDg5MjM1NzIwKSxuZXcgcy5pbml0KDMxNDQxMzQyNzcsMjIyNzg3MzU5NSksbmV3IHMuaW5pdCgxMDEzOTA0MjQyLDQyNzExNzU3MjMpLG5ldyBzLmluaXQoMjc3MzQ4MDc2MiwxNTk1NzUwMTI5KSxuZXcgcy5pbml0KDEzNTk4OTMxMTksMjkxNzU2NTEzNyksbmV3IHMuaW5pdCgyNjAwODIyOTI0LDcyNTUxMTE5OSksbmV3IHMuaW5pdCg1Mjg3MzQ2MzUsNDIxNTM4OTU0NyksbmV3IHMuaW5pdCgxNTQxNDU5MjI1LDMyNzAzMzIwOSldKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuX2hhc2gud29yZHMsaT1lWzBdLG49ZVsxXSxvPWVbMl0scz1lWzNdLGE9ZVs0XSxjPWVbNV0sZj1lWzZdLHU9ZVs3XSxkPWkuaGlnaCx2PWkubG93LHA9bi5oaWdoLF89bi5sb3cseT1vLmhpZ2gsZz1vLmxvdyxCPXMuaGlnaCx3PXMubG93LGs9YS5oaWdoLFM9YS5sb3csbT1jLmhpZ2gseD1jLmxvdyxiPWYuaGlnaCxIPWYubG93LHo9dS5oaWdoLEE9dS5sb3csQz1kLEQ9dixSPXAsRT1fLE09eSxGPWcsUD1CLFc9dyxPPWssVT1TLEk9bSxLPXgsWD1iLEw9SCxqPXosTj1BLFQ9MDtUPDgwO1QrKyl7dmFyIFo9bFtUXTtpZihUPDE2KXZhciBxPVouaGlnaD0wfHRbcisyKlRdLEc9Wi5sb3c9MHx0W3IrMipUKzFdO2Vsc2V7dmFyIEo9bFtULTE1XSwkPUouaGlnaCxRPUoubG93LFY9KCQ+Pj4xfFE8PDMxKV4oJD4+Pjh8UTw8MjQpXiQ+Pj43LFk9KFE+Pj4xfCQ8PDMxKV4oUT4+Pjh8JDw8MjQpXihRPj4+N3wkPDwyNSksdHQ9bFtULTJdLHJ0PXR0LmhpZ2gsZXQ9dHQubG93LGl0PShydD4+PjE5fGV0PDwxMyleKHJ0PDwzfGV0Pj4+MjkpXnJ0Pj4+NixudD0oZXQ+Pj4xOXxydDw8MTMpXihldDw8M3xydD4+PjI5KV4oZXQ+Pj42fHJ0PDwyNiksb3Q9bFtULTddLHN0PW90LmhpZ2gsYXQ9b3QubG93LGN0PWxbVC0xNl0saHQ9Y3QuaGlnaCxsdD1jdC5sb3csRz1ZK2F0LHE9VitzdCsoRz4+PjA8WT4+PjA/MTowKSxHPUcrbnQscT1xK2l0KyhHPj4+MDxudD4+PjA/MTowKSxHPUcrbHQscT1xK2h0KyhHPj4+MDxsdD4+PjA/MTowKTtaLmhpZ2g9cSxaLmxvdz1HfXZhciBmdD1PJklefk8mWCx1dD1VJkteflUmTCxkdD1DJlJeQyZNXlImTSx2dD1EJkVeRCZGXkUmRixwdD0oQz4+PjI4fEQ8PDQpXihDPDwzMHxEPj4+MileKEM8PDI1fEQ+Pj43KSxfdD0oRD4+PjI4fEM8PDQpXihEPDwzMHxDPj4+MileKEQ8PDI1fEM+Pj43KSx5dD0oTz4+PjE0fFU8PDE4KV4oTz4+PjE4fFU8PDE0KV4oTzw8MjN8VT4+PjkpLGd0PShVPj4+MTR8Tzw8MTgpXihVPj4+MTh8Tzw8MTQpXihVPDwyM3xPPj4+OSksQnQ9aFtUXSx3dD1CdC5oaWdoLGt0PUJ0LmxvdyxTdD1OK2d0LG10PWoreXQrKFN0Pj4+MDxOPj4+MD8xOjApLFN0PVN0K3V0LG10PW10K2Z0KyhTdD4+PjA8dXQ+Pj4wPzE6MCksU3Q9U3Qra3QsbXQ9bXQrd3QrKFN0Pj4+MDxrdD4+PjA/MTowKSxTdD1TdCtHLG10PW10K3ErKFN0Pj4+MDxHPj4+MD8xOjApLHh0PV90K3Z0LGJ0PXB0K2R0Kyh4dD4+PjA8X3Q+Pj4wPzE6MCk7aj1YLE49TCxYPUksTD1LLEk9TyxLPVUsVT1XK1N0fDAsTz1QK210KyhVPj4+MDxXPj4+MD8xOjApfDAsUD1NLFc9RixNPVIsRj1FLFI9QyxFPUQsRD1TdCt4dHwwLEM9bXQrYnQrKEQ+Pj4wPFN0Pj4+MD8xOjApfDB9dj1pLmxvdz12K0QsaS5oaWdoPWQrQysodj4+PjA8RD4+PjA/MTowKSxfPW4ubG93PV8rRSxuLmhpZ2g9cCtSKyhfPj4+MDxFPj4+MD8xOjApLGc9by5sb3c9ZytGLG8uaGlnaD15K00rKGc+Pj4wPEY+Pj4wPzE6MCksdz1zLmxvdz13K1cscy5oaWdoPUIrUCsodz4+PjA8Vz4+PjA/MTowKSxTPWEubG93PVMrVSxhLmhpZ2g9aytPKyhTPj4+MDxVPj4+MD8xOjApLHg9Yy5sb3c9eCtLLGMuaGlnaD1tK0krKHg+Pj4wPEs+Pj4wPzE6MCksSD1mLmxvdz1IK0wsZi5oaWdoPWIrWCsoSD4+PjA8TD4+PjA/MTowKSxBPXUubG93PUErTix1LmhpZ2g9eitqKyhBPj4+MDxOPj4+MD8xOjApfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEscj10LndvcmRzLGU9OCp0aGlzLl9uRGF0YUJ5dGVzLGk9OCp0LnNpZ0J5dGVzO3JbaT4+PjVdfD0xMjg8PDI0LWklMzIsclsoaSsxMjg+Pj4xMDw8NSkrMzBdPU1hdGguZmxvb3IoZS80Mjk0OTY3Mjk2KSxyWyhpKzEyOD4+PjEwPDw1KSszMV09ZSx0LnNpZ0J5dGVzPTQqci5sZW5ndGgsdGhpcy5fcHJvY2VzcygpO3ZhciBuPXRoaXMuX2hhc2gudG9YMzIoKTtyZXR1cm4gbn0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1uLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9LGJsb2NrU2l6ZTozMn0pO2UuU0hBNTEyPW4uX2NyZWF0ZUhlbHBlcihmKSxlLkhtYWNTSEE1MTI9bi5fY3JlYXRlSG1hY0hlbHBlcihmKX0oKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLng2NCxpPWUuV29yZCxuPWUuV29yZEFycmF5LG89ci5hbGdvLHM9by5TSEE1MTIsYT1vLlNIQTM4ND1zLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBuLmluaXQoW25ldyBpLmluaXQoMzQxODA3MDM2NSwzMjM4MzcxMDMyKSxuZXcgaS5pbml0KDE2NTQyNzAyNTAsOTE0MTUwNjYzKSxuZXcgaS5pbml0KDI0Mzg1MjkzNzAsODEyNzAyOTk5KSxuZXcgaS5pbml0KDM1NTQ2MjM2MCw0MTQ0OTEyNjk3KSxuZXcgaS5pbml0KDE3MzE0MDU0MTUsNDI5MDc3NTg1NyksbmV3IGkuaW5pdCgyMzk0MTgwMjMxLDE3NTA2MDMwMjUpLG5ldyBpLmluaXQoMzY3NTAwODUyNSwxNjk0MDc2ODM5KSxuZXcgaS5pbml0KDEyMDMwNjI4MTMsMzIwNDA3NTQyOCldKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD1zLl9kb0ZpbmFsaXplLmNhbGwodGhpcyk7cmV0dXJuIHQuc2lnQnl0ZXMtPTE2LHR9fSk7ci5TSEEzODQ9cy5fY3JlYXRlSGVscGVyKGEpLHIuSG1hY1NIQTM4ND1zLl9jcmVhdGVIbWFjSGVscGVyKGEpfSgpLHQubGliLkNpcGhlcnx8ZnVuY3Rpb24ocil7dmFyIGU9dCxpPWUubGliLG49aS5CYXNlLG89aS5Xb3JkQXJyYXkscz1pLkJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0sYT1lLmVuYyxjPShhLlV0ZjgsYS5CYXNlNjQpLGg9ZS5hbGdvLGw9aC5FdnBLREYsZj1pLkNpcGhlcj1zLmV4dGVuZCh7Y2ZnOm4uZXh0ZW5kKCksY3JlYXRlRW5jcnlwdG9yOmZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuX0VOQ19YRk9STV9NT0RFLHQscil9LGNyZWF0ZURlY3J5cHRvcjpmdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLmNyZWF0ZSh0aGlzLl9ERUNfWEZPUk1fTU9ERSx0LHIpfSxpbml0OmZ1bmN0aW9uKHQscixlKXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQoZSksdGhpcy5feGZvcm1Nb2RlPXQsdGhpcy5fa2V5PXIsdGhpcy5yZXNldCgpfSxyZXNldDpmdW5jdGlvbigpe3MucmVzZXQuY2FsbCh0aGlzKSx0aGlzLl9kb1Jlc2V0KCl9LHByb2Nlc3M6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FwcGVuZCh0KSx0aGlzLl9wcm9jZXNzKCl9LGZpbmFsaXplOmZ1bmN0aW9uKHQpe3QmJnRoaXMuX2FwcGVuZCh0KTt2YXIgcj10aGlzLl9kb0ZpbmFsaXplKCk7cmV0dXJuIHJ9LGtleVNpemU6NCxpdlNpemU6NCxfRU5DX1hGT1JNX01PREU6MSxfREVDX1hGT1JNX01PREU6MixfY3JlYXRlSGVscGVyOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD9tOnd9cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybntlbmNyeXB0OmZ1bmN0aW9uKGUsaSxuKXtyZXR1cm4gdChpKS5lbmNyeXB0KHIsZSxpLG4pfSxkZWNyeXB0OmZ1bmN0aW9uKGUsaSxuKXtyZXR1cm4gdChpKS5kZWNyeXB0KHIsZSxpLG4pfX19fSgpfSksdT0oaS5TdHJlYW1DaXBoZXI9Zi5leHRlbmQoe19kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fcHJvY2VzcyghMCk7cmV0dXJuIHR9LGJsb2NrU2l6ZToxfSksZS5tb2RlPXt9KSxkPWkuQmxvY2tDaXBoZXJNb2RlPW4uZXh0ZW5kKHtjcmVhdGVFbmNyeXB0b3I6ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5FbmNyeXB0b3IuY3JlYXRlKHQscil9LGNyZWF0ZURlY3J5cHRvcjpmdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLkRlY3J5cHRvci5jcmVhdGUodCxyKX0saW5pdDpmdW5jdGlvbih0LHIpe3RoaXMuX2NpcGhlcj10LHRoaXMuX2l2PXJ9fSksdj11LkNCQz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLGkpe3ZhciBuPXRoaXMuX2l2O2lmKG4pe3ZhciBvPW47dGhpcy5faXY9cn1lbHNlIHZhciBvPXRoaXMuX3ByZXZCbG9jaztmb3IodmFyIHM9MDtzPGk7cysrKXRbZStzXV49b1tzXX12YXIgZT1kLmV4dGVuZCgpO3JldHVybiBlLkVuY3J5cHRvcj1lLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHIsZSl7dmFyIGk9dGhpcy5fY2lwaGVyLG49aS5ibG9ja1NpemU7dC5jYWxsKHRoaXMscixlLG4pLGkuZW5jcnlwdEJsb2NrKHIsZSksdGhpcy5fcHJldkJsb2NrPXIuc2xpY2UoZSxlK24pfX0pLGUuRGVjcnlwdG9yPWUuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24ocixlKXt2YXIgaT10aGlzLl9jaXBoZXIsbj1pLmJsb2NrU2l6ZSxvPXIuc2xpY2UoZSxlK24pO2kuZGVjcnlwdEJsb2NrKHIsZSksdC5jYWxsKHRoaXMscixlLG4pLHRoaXMuX3ByZXZCbG9jaz1vfX0pLGV9KCkscD1lLnBhZD17fSxfPXAuUGtjczc9e3BhZDpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT00KnIsaT1lLXQuc2lnQnl0ZXMlZSxuPWk8PDI0fGk8PDE2fGk8PDh8aSxzPVtdLGE9MDthPGk7YSs9NClzLnB1c2gobik7dmFyIGM9by5jcmVhdGUocyxpKTt0LmNvbmNhdChjKX0sdW5wYWQ6ZnVuY3Rpb24odCl7dmFyIHI9MjU1JnQud29yZHNbdC5zaWdCeXRlcy0xPj4+Ml07dC5zaWdCeXRlcy09cn19LHk9KGkuQmxvY2tDaXBoZXI9Zi5leHRlbmQoe2NmZzpmLmNmZy5leHRlbmQoe21vZGU6dixwYWRkaW5nOl99KSxyZXNldDpmdW5jdGlvbigpe2YucmVzZXQuY2FsbCh0aGlzKTt2YXIgdD10aGlzLmNmZyxyPXQuaXYsZT10Lm1vZGU7aWYodGhpcy5feGZvcm1Nb2RlPT10aGlzLl9FTkNfWEZPUk1fTU9ERSl2YXIgaT1lLmNyZWF0ZUVuY3J5cHRvcjtlbHNle3ZhciBpPWUuY3JlYXRlRGVjcnlwdG9yO3RoaXMuX21pbkJ1ZmZlclNpemU9MX10aGlzLl9tb2RlJiZ0aGlzLl9tb2RlLl9fY3JlYXRvcj09aT90aGlzLl9tb2RlLmluaXQodGhpcyxyJiZyLndvcmRzKToodGhpcy5fbW9kZT1pLmNhbGwoZSx0aGlzLHImJnIud29yZHMpLHRoaXMuX21vZGUuX19jcmVhdG9yPWkpfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9tb2RlLnByb2Nlc3NCbG9jayh0LHIpfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY2ZnLnBhZGRpbmc7aWYodGhpcy5feGZvcm1Nb2RlPT10aGlzLl9FTkNfWEZPUk1fTU9ERSl7dC5wYWQodGhpcy5fZGF0YSx0aGlzLmJsb2NrU2l6ZSk7dmFyIHI9dGhpcy5fcHJvY2VzcyghMCl9ZWxzZXt2YXIgcj10aGlzLl9wcm9jZXNzKCEwKTt0LnVucGFkKHIpfXJldHVybiByfSxibG9ja1NpemU6NH0pLGkuQ2lwaGVyUGFyYW1zPW4uZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQpe3RoaXMubWl4SW4odCl9LHRvU3RyaW5nOmZ1bmN0aW9uKHQpe3JldHVybih0fHx0aGlzLmZvcm1hdHRlcikuc3RyaW5naWZ5KHRoaXMpfX0pKSxnPWUuZm9ybWF0PXt9LEI9Zy5PcGVuU1NMPXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7dmFyIHI9dC5jaXBoZXJ0ZXh0LGU9dC5zYWx0O2lmKGUpdmFyIGk9by5jcmVhdGUoWzEzOTg4OTM2ODQsMTcwMTA3NjgzMV0pLmNvbmNhdChlKS5jb25jYXQocik7ZWxzZSB2YXIgaT1yO3JldHVybiBpLnRvU3RyaW5nKGMpfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgcj1jLnBhcnNlKHQpLGU9ci53b3JkcztpZigxMzk4ODkzNjg0PT1lWzBdJiYxNzAxMDc2ODMxPT1lWzFdKXt2YXIgaT1vLmNyZWF0ZShlLnNsaWNlKDIsNCkpO2Uuc3BsaWNlKDAsNCksci5zaWdCeXRlcy09MTZ9cmV0dXJuIHkuY3JlYXRlKHtjaXBoZXJ0ZXh0OnIsc2FsdDppfSl9fSx3PWkuU2VyaWFsaXphYmxlQ2lwaGVyPW4uZXh0ZW5kKHtjZmc6bi5leHRlbmQoe2Zvcm1hdDpCfSksZW5jcnlwdDpmdW5jdGlvbih0LHIsZSxpKXtpPXRoaXMuY2ZnLmV4dGVuZChpKTt2YXIgbj10LmNyZWF0ZUVuY3J5cHRvcihlLGkpLG89bi5maW5hbGl6ZShyKSxzPW4uY2ZnO3JldHVybiB5LmNyZWF0ZSh7Y2lwaGVydGV4dDpvLGtleTplLGl2OnMuaXYsYWxnb3JpdGhtOnQsbW9kZTpzLm1vZGUscGFkZGluZzpzLnBhZGRpbmcsYmxvY2tTaXplOnQuYmxvY2tTaXplLGZvcm1hdHRlcjppLmZvcm1hdH0pfSxkZWNyeXB0OmZ1bmN0aW9uKHQscixlLGkpe2k9dGhpcy5jZmcuZXh0ZW5kKGkpLHI9dGhpcy5fcGFyc2UocixpLmZvcm1hdCk7dmFyIG49dC5jcmVhdGVEZWNyeXB0b3IoZSxpKS5maW5hbGl6ZShyLmNpcGhlcnRleHQpO3JldHVybiBufSxfcGFyc2U6ZnVuY3Rpb24odCxyKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD9yLnBhcnNlKHQsdGhpcyk6dH19KSxrPWUua2RmPXt9LFM9ay5PcGVuU1NMPXtleGVjdXRlOmZ1bmN0aW9uKHQscixlLGkpe2l8fChpPW8ucmFuZG9tKDgpKTt2YXIgbj1sLmNyZWF0ZSh7a2V5U2l6ZTpyK2V9KS5jb21wdXRlKHQsaSkscz1vLmNyZWF0ZShuLndvcmRzLnNsaWNlKHIpLDQqZSk7cmV0dXJuIG4uc2lnQnl0ZXM9NCpyLHkuY3JlYXRlKHtrZXk6bixpdjpzLHNhbHQ6aX0pfX0sbT1pLlBhc3N3b3JkQmFzZWRDaXBoZXI9dy5leHRlbmQoe2NmZzp3LmNmZy5leHRlbmQoe2tkZjpTfSksZW5jcnlwdDpmdW5jdGlvbih0LHIsZSxpKXtpPXRoaXMuY2ZnLmV4dGVuZChpKTt2YXIgbj1pLmtkZi5leGVjdXRlKGUsdC5rZXlTaXplLHQuaXZTaXplKTtpLml2PW4uaXY7dmFyIG89dy5lbmNyeXB0LmNhbGwodGhpcyx0LHIsbi5rZXksaSk7cmV0dXJuIG8ubWl4SW4obiksb30sZGVjcnlwdDpmdW5jdGlvbih0LHIsZSxpKXtpPXRoaXMuY2ZnLmV4dGVuZChpKSxyPXRoaXMuX3BhcnNlKHIsaS5mb3JtYXQpO3ZhciBuPWkua2RmLmV4ZWN1dGUoZSx0LmtleVNpemUsdC5pdlNpemUsci5zYWx0KTtpLml2PW4uaXY7dmFyIG89dy5kZWNyeXB0LmNhbGwodGhpcyx0LHIsbi5rZXksaSk7cmV0dXJuIG99fSl9KCksdC5tb2RlLkNGQj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIodCxyLGUsaSl7dmFyIG49dGhpcy5faXY7aWYobil7dmFyIG89bi5zbGljZSgwKTt0aGlzLl9pdj12b2lkIDB9ZWxzZSB2YXIgbz10aGlzLl9wcmV2QmxvY2s7aS5lbmNyeXB0QmxvY2sobywwKTtmb3IodmFyIHM9MDtzPGU7cysrKXRbcitzXV49b1tzXX12YXIgZT10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCk7cmV0dXJuIGUuRW5jcnlwdG9yPWUuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl9jaXBoZXIsbj1pLmJsb2NrU2l6ZTtyLmNhbGwodGhpcyx0LGUsbixpKSx0aGlzLl9wcmV2QmxvY2s9dC5zbGljZShlLGUrbil9fSksZS5EZWNyeXB0b3I9ZS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuX2NpcGhlcixuPWkuYmxvY2tTaXplLG89dC5zbGljZShlLGUrbik7ci5jYWxsKHRoaXMsdCxlLG4saSksdGhpcy5fcHJldkJsb2NrPW99fSksZX0oKSx0Lm1vZGUuRUNCPWZ1bmN0aW9uKCl7dmFyIHI9dC5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpO3JldHVybiByLkVuY3J5cHRvcj1yLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fY2lwaGVyLmVuY3J5cHRCbG9jayh0LHIpfX0pLHIuRGVjcnlwdG9yPXIuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9jaXBoZXIuZGVjcnlwdEJsb2NrKHQscil9fSkscn0oKSx0LnBhZC5BbnNpWDkyMz17cGFkOmZ1bmN0aW9uKHQscil7dmFyIGU9dC5zaWdCeXRlcyxpPTQqcixuPWktZSVpLG89ZStuLTE7dC5jbGFtcCgpLHQud29yZHNbbz4+PjJdfD1uPDwyNC1vJTQqOCx0LnNpZ0J5dGVzKz1ufSx1bnBhZDpmdW5jdGlvbih0KXt2YXIgcj0yNTUmdC53b3Jkc1t0LnNpZ0J5dGVzLTE+Pj4yXTt0LnNpZ0J5dGVzLT1yfX0sdC5wYWQuSXNvMTAxMjY9e3BhZDpmdW5jdGlvbihyLGUpe3ZhciBpPTQqZSxuPWktci5zaWdCeXRlcyVpO3IuY29uY2F0KHQubGliLldvcmRBcnJheS5yYW5kb20obi0xKSkuY29uY2F0KHQubGliLldvcmRBcnJheS5jcmVhdGUoW248PDI0XSwxKSl9LHVucGFkOmZ1bmN0aW9uKHQpe3ZhciByPTI1NSZ0LndvcmRzW3Quc2lnQnl0ZXMtMT4+PjJdO3Quc2lnQnl0ZXMtPXJ9fSx0LnBhZC5Jc285Nzk3MT17cGFkOmZ1bmN0aW9uKHIsZSl7ci5jb25jYXQodC5saWIuV29yZEFycmF5LmNyZWF0ZShbMjE0NzQ4MzY0OF0sMSkpLHQucGFkLlplcm9QYWRkaW5nLnBhZChyLGUpfSx1bnBhZDpmdW5jdGlvbihyKXt0LnBhZC5aZXJvUGFkZGluZy51bnBhZChyKSxyLnNpZ0J5dGVzLS19fSx0Lm1vZGUuT0ZCPWZ1bmN0aW9uKCl7dmFyIHI9dC5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpLGU9ci5FbmNyeXB0b3I9ci5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX2NpcGhlcixpPWUuYmxvY2tTaXplLG49dGhpcy5faXYsbz10aGlzLl9rZXlzdHJlYW07biYmKG89dGhpcy5fa2V5c3RyZWFtPW4uc2xpY2UoMCksdGhpcy5faXY9dm9pZCAwKSxlLmVuY3J5cHRCbG9jayhvLDApO2Zvcih2YXIgcz0wO3M8aTtzKyspdFtyK3NdXj1vW3NdfX0pO3JldHVybiByLkRlY3J5cHRvcj1lLHJ9KCksdC5wYWQuTm9QYWRkaW5nPXtwYWQ6ZnVuY3Rpb24oKXt9LHVucGFkOmZ1bmN0aW9uKCl7fX0sZnVuY3Rpb24ocil7dmFyIGU9dCxpPWUubGliLG49aS5DaXBoZXJQYXJhbXMsbz1lLmVuYyxzPW8uSGV4LGE9ZS5mb3JtYXQ7YS5IZXg9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtyZXR1cm4gdC5jaXBoZXJ0ZXh0LnRvU3RyaW5nKHMpfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgcj1zLnBhcnNlKHQpO3JldHVybiBuLmNyZWF0ZSh7Y2lwaGVydGV4dDpyfSl9fX0oKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLmxpYixpPWUuQmxvY2tDaXBoZXIsbj1yLmFsZ28sbz1bXSxzPVtdLGE9W10sYz1bXSxoPVtdLGw9W10sZj1bXSx1PVtdLGQ9W10sdj1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10scj0wO3I8MjU2O3IrKylyPDEyOD90W3JdPXI8PDE6dFtyXT1yPDwxXjI4Mztmb3IodmFyIGU9MCxpPTAscj0wO3I8MjU2O3IrKyl7dmFyIG49aV5pPDwxXmk8PDJeaTw8M15pPDw0O249bj4+PjheMjU1Jm5eOTksb1tlXT1uLHNbbl09ZTt2YXIgcD10W2VdLF89dFtwXSx5PXRbX10sZz0yNTcqdFtuXV4xNjg0MzAwOCpuO2FbZV09Zzw8MjR8Zz4+PjgsY1tlXT1nPDwxNnxnPj4+MTYsaFtlXT1nPDw4fGc+Pj4yNCxsW2VdPWc7dmFyIGc9MTY4NDMwMDkqeV42NTUzNypfXjI1NypwXjE2ODQzMDA4KmU7ZltuXT1nPDwyNHxnPj4+OCx1W25dPWc8PDE2fGc+Pj4xNixkW25dPWc8PDh8Zz4+PjI0LHZbbl09ZyxlPyhlPXBedFt0W3RbeV5wXV1dLGlePXRbdFtpXV0pOmU9aT0xfX0oKTt2YXIgcD1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sXz1uLkFFUz1pLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtpZighdGhpcy5fblJvdW5kc3x8dGhpcy5fa2V5UHJpb3JSZXNldCE9PXRoaXMuX2tleSl7Zm9yKHZhciB0PXRoaXMuX2tleVByaW9yUmVzZXQ9dGhpcy5fa2V5LHI9dC53b3JkcyxlPXQuc2lnQnl0ZXMvNCxpPXRoaXMuX25Sb3VuZHM9ZSs2LG49NCooaSsxKSxzPXRoaXMuX2tleVNjaGVkdWxlPVtdLGE9MDthPG47YSsrKWlmKGE8ZSlzW2FdPXJbYV07ZWxzZXt2YXIgYz1zW2EtMV07YSVlP2U+NiYmYSVlPT00JiYoYz1vW2M+Pj4yNF08PDI0fG9bYz4+PjE2JjI1NV08PDE2fG9bYz4+PjgmMjU1XTw8OHxvWzI1NSZjXSk6KGM9Yzw8OHxjPj4+MjQsYz1vW2M+Pj4yNF08PDI0fG9bYz4+PjE2JjI1NV08PDE2fG9bYz4+PjgmMjU1XTw8OHxvWzI1NSZjXSxjXj1wW2EvZXwwXTw8MjQpLHNbYV09c1thLWVdXmN9Zm9yKHZhciBoPXRoaXMuX2ludktleVNjaGVkdWxlPVtdLGw9MDtsPG47bCsrKXt2YXIgYT1uLWw7aWYobCU0KXZhciBjPXNbYV07ZWxzZSB2YXIgYz1zW2EtNF07bDw0fHxhPD00P2hbbF09YzpoW2xdPWZbb1tjPj4+MjRdXV51W29bYz4+PjE2JjI1NV1dXmRbb1tjPj4+OCYyNTVdXV52W29bMjU1JmNdXX19fSxlbmNyeXB0QmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9kb0NyeXB0QmxvY2sodCxyLHRoaXMuX2tleVNjaGVkdWxlLGEsYyxoLGwsbyl9LGRlY3J5cHRCbG9jazpmdW5jdGlvbih0LHIpe3ZhciBlPXRbcisxXTt0W3IrMV09dFtyKzNdLHRbciszXT1lLHRoaXMuX2RvQ3J5cHRCbG9jayh0LHIsdGhpcy5faW52S2V5U2NoZWR1bGUsZix1LGQsdixzKTt2YXIgZT10W3IrMV07dFtyKzFdPXRbciszXSx0W3IrM109ZX0sX2RvQ3J5cHRCbG9jazpmdW5jdGlvbih0LHIsZSxpLG4sbyxzLGEpe2Zvcih2YXIgYz10aGlzLl9uUm91bmRzLGg9dFtyXV5lWzBdLGw9dFtyKzFdXmVbMV0sZj10W3IrMl1eZVsyXSx1PXRbciszXV5lWzNdLGQ9NCx2PTE7djxjO3YrKyl7dmFyIHA9aVtoPj4+MjRdXm5bbD4+PjE2JjI1NV1eb1tmPj4+OCYyNTVdXnNbMjU1JnVdXmVbZCsrXSxfPWlbbD4+PjI0XV5uW2Y+Pj4xNiYyNTVdXm9bdT4+PjgmMjU1XV5zWzI1NSZoXV5lW2QrK10seT1pW2Y+Pj4yNF1eblt1Pj4+MTYmMjU1XV5vW2g+Pj44JjI1NV1ec1syNTUmbF1eZVtkKytdLGc9aVt1Pj4+MjRdXm5baD4+PjE2JjI1NV1eb1tsPj4+OCYyNTVdXnNbMjU1JmZdXmVbZCsrXTtoPXAsbD1fLGY9eSx1PWd9dmFyIHA9KGFbaD4+PjI0XTw8MjR8YVtsPj4+MTYmMjU1XTw8MTZ8YVtmPj4+OCYyNTVdPDw4fGFbMjU1JnVdKV5lW2QrK10sXz0oYVtsPj4+MjRdPDwyNHxhW2Y+Pj4xNiYyNTVdPDwxNnxhW3U+Pj44JjI1NV08PDh8YVsyNTUmaF0pXmVbZCsrXSx5PShhW2Y+Pj4yNF08PDI0fGFbdT4+PjE2JjI1NV08PDE2fGFbaD4+PjgmMjU1XTw8OHxhWzI1NSZsXSleZVtkKytdLGc9KGFbdT4+PjI0XTw8MjR8YVtoPj4+MTYmMjU1XTw8MTZ8YVtsPj4+OCYyNTVdPDw4fGFbMjU1JmZdKV5lW2QrK107dFtyXT1wLHRbcisxXT1fLHRbcisyXT15LHRbciszXT1nfSxrZXlTaXplOjh9KTtyLkFFUz1pLl9jcmVhdGVIZWxwZXIoXyl9KCksZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQscil7dmFyIGU9KHRoaXMuX2xCbG9jaz4+PnRedGhpcy5fckJsb2NrKSZyO3RoaXMuX3JCbG9ja149ZSx0aGlzLl9sQmxvY2tePWU8PHR9ZnVuY3Rpb24gZSh0LHIpe3ZhciBlPSh0aGlzLl9yQmxvY2s+Pj50XnRoaXMuX2xCbG9jaykmcjt0aGlzLl9sQmxvY2tePWUsdGhpcy5fckJsb2NrXj1lPDx0O1xyXG59dmFyIGk9dCxuPWkubGliLG89bi5Xb3JkQXJyYXkscz1uLkJsb2NrQ2lwaGVyLGE9aS5hbGdvLGM9WzU3LDQ5LDQxLDMzLDI1LDE3LDksMSw1OCw1MCw0MiwzNCwyNiwxOCwxMCwyLDU5LDUxLDQzLDM1LDI3LDE5LDExLDMsNjAsNTIsNDQsMzYsNjMsNTUsNDcsMzksMzEsMjMsMTUsNyw2Miw1NCw0NiwzOCwzMCwyMiwxNCw2LDYxLDUzLDQ1LDM3LDI5LDIxLDEzLDUsMjgsMjAsMTIsNF0saD1bMTQsMTcsMTEsMjQsMSw1LDMsMjgsMTUsNiwyMSwxMCwyMywxOSwxMiw0LDI2LDgsMTYsNywyNywyMCwxMywyLDQxLDUyLDMxLDM3LDQ3LDU1LDMwLDQwLDUxLDQ1LDMzLDQ4LDQ0LDQ5LDM5LDU2LDM0LDUzLDQ2LDQyLDUwLDM2LDI5LDMyXSxsPVsxLDIsNCw2LDgsMTAsMTIsMTQsMTUsMTcsMTksMjEsMjMsMjUsMjcsMjhdLGY9W3swOjg0MjE4ODgsMjY4NDM1NDU2OjMyNzY4LDUzNjg3MDkxMjo4NDIxMzc4LDgwNTMwNjM2ODoyLDEwNzM3NDE4MjQ6NTEyLDEzNDIxNzcyODA6ODQyMTg5MCwxNjEwNjEyNzM2OjgzODkxMjIsMTg3OTA0ODE5Mjo4Mzg4NjA4LDIxNDc0ODM2NDg6NTE0LDI0MTU5MTkxMDQ6ODM4OTEyMCwyNjg0MzU0NTYwOjMzMjgwLDI5NTI3OTAwMTY6ODQyMTM3NiwzMjIxMjI1NDcyOjMyNzcwLDM0ODk2NjA5Mjg6ODM4ODYxMCwzNzU4MDk2Mzg0OjAsNDAyNjUzMTg0MDozMzI4MiwxMzQyMTc3Mjg6MCw0MDI2NTMxODQ6ODQyMTg5MCw2NzEwODg2NDA6MzMyODIsOTM5NTI0MDk2OjMyNzY4LDEyMDc5NTk1NTI6ODQyMTg4OCwxNDc2Mzk1MDA4OjUxMiwxNzQ0ODMwNDY0Ojg0MjEzNzgsMjAxMzI2NTkyMDoyLDIyODE3MDEzNzY6ODM4OTEyMCwyNTUwMTM2ODMyOjMzMjgwLDI4MTg1NzIyODg6ODQyMTM3NiwzMDg3MDA3NzQ0OjgzODkxMjIsMzM1NTQ0MzIwMDo4Mzg4NjEwLDM2MjM4Nzg2NTY6MzI3NzAsMzg5MjMxNDExMjo1MTQsNDE2MDc0OTU2ODo4Mzg4NjA4LDE6MzI3NjgsMjY4NDM1NDU3OjIsNTM2ODcwOTEzOjg0MjE4ODgsODA1MzA2MzY5OjgzODg2MDgsMTA3Mzc0MTgyNTo4NDIxMzc4LDEzNDIxNzcyODE6MzMyODAsMTYxMDYxMjczNzo1MTIsMTg3OTA0ODE5Mzo4Mzg5MTIyLDIxNDc0ODM2NDk6ODQyMTg5MCwyNDE1OTE5MTA1Ojg0MjEzNzYsMjY4NDM1NDU2MTo4Mzg4NjEwLDI5NTI3OTAwMTc6MzMyODIsMzIyMTIyNTQ3Mzo1MTQsMzQ4OTY2MDkyOTo4Mzg5MTIwLDM3NTgwOTYzODU6MzI3NzAsNDAyNjUzMTg0MTowLDEzNDIxNzcyOTo4NDIxODkwLDQwMjY1MzE4NTo4NDIxMzc2LDY3MTA4ODY0MTo4Mzg4NjA4LDkzOTUyNDA5Nzo1MTIsMTIwNzk1OTU1MzozMjc2OCwxNDc2Mzk1MDA5OjgzODg2MTAsMTc0NDgzMDQ2NToyLDIwMTMyNjU5MjE6MzMyODIsMjI4MTcwMTM3NzozMjc3MCwyNTUwMTM2ODMzOjgzODkxMjIsMjgxODU3MjI4OTo1MTQsMzA4NzAwNzc0NTo4NDIxODg4LDMzNTU0NDMyMDE6ODM4OTEyMCwzNjIzODc4NjU3OjAsMzg5MjMxNDExMzozMzI4MCw0MTYwNzQ5NTY5Ojg0MjEzNzh9LHswOjEwNzQyODI1MTIsMTY3NzcyMTY6MTYzODQsMzM1NTQ0MzI6NTI0Mjg4LDUwMzMxNjQ4OjEwNzQyNjYxMjgsNjcxMDg4NjQ6MTA3Mzc0MTg0MCw4Mzg4NjA4MDoxMDc0MjgyNDk2LDEwMDY2MzI5NjoxMDczNzU4MjA4LDExNzQ0MDUxMjoxNiwxMzQyMTc3Mjg6NTQwNjcyLDE1MDk5NDk0NDoxMDczNzU4MjI0LDE2Nzc3MjE2MDoxMDczNzQxODI0LDE4NDU0OTM3Njo1NDA2ODgsMjAxMzI2NTkyOjUyNDMwNCwyMTgxMDM4MDg6MCwyMzQ4ODEwMjQ6MTY0MDAsMjUxNjU4MjQwOjEwNzQyNjYxMTIsODM4ODYwODoxMDczNzU4MjA4LDI1MTY1ODI0OjU0MDY4OCw0MTk0MzA0MDoxNiw1ODcyMDI1NjoxMDczNzU4MjI0LDc1NDk3NDcyOjEwNzQyODI1MTIsOTIyNzQ2ODg6MTA3Mzc0MTgyNCwxMDkwNTE5MDQ6NTI0Mjg4LDEyNTgyOTEyMDoxMDc0MjY2MTI4LDE0MjYwNjMzNjo1MjQzMDQsMTU5MzgzNTUyOjAsMTc2MTYwNzY4OjE2Mzg0LDE5MjkzNzk4NDoxMDc0MjY2MTEyLDIwOTcxNTIwMDoxMDczNzQxODQwLDIyNjQ5MjQxNjo1NDA2NzIsMjQzMjY5NjMyOjEwNzQyODI0OTYsMjYwMDQ2ODQ4OjE2NDAwLDI2ODQzNTQ1NjowLDI4NTIxMjY3MjoxMDc0MjY2MTI4LDMwMTk4OTg4ODoxMDczNzU4MjI0LDMxODc2NzEwNDoxMDc0MjgyNDk2LDMzNTU0NDMyMDoxMDc0MjY2MTEyLDM1MjMyMTUzNjoxNiwzNjkwOTg3NTI6NTQwNjg4LDM4NTg3NTk2ODoxNjM4NCw0MDI2NTMxODQ6MTY0MDAsNDE5NDMwNDAwOjUyNDI4OCw0MzYyMDc2MTY6NTI0MzA0LDQ1Mjk4NDgzMjoxMDczNzQxODQwLDQ2OTc2MjA0ODo1NDA2NzIsNDg2NTM5MjY0OjEwNzM3NTgyMDgsNTAzMzE2NDgwOjEwNzM3NDE4MjQsNTIwMDkzNjk2OjEwNzQyODI1MTIsMjc2ODI0MDY0OjU0MDY4OCwyOTM2MDEyODA6NTI0Mjg4LDMxMDM3ODQ5NjoxMDc0MjY2MTEyLDMyNzE1NTcxMjoxNjM4NCwzNDM5MzI5Mjg6MTA3Mzc1ODIwOCwzNjA3MTAxNDQ6MTA3NDI4MjUxMiwzNzc0ODczNjA6MTYsMzk0MjY0NTc2OjEwNzM3NDE4MjQsNDExMDQxNzkyOjEwNzQyODI0OTYsNDI3ODE5MDA4OjEwNzM3NDE4NDAsNDQ0NTk2MjI0OjEwNzM3NTgyMjQsNDYxMzczNDQwOjUyNDMwNCw0NzgxNTA2NTY6MCw0OTQ5Mjc4NzI6MTY0MDAsNTExNzA1MDg4OjEwNzQyNjYxMjgsNTI4NDgyMzA0OjU0MDY3Mn0sezA6MjYwLDEwNDg1NzY6MCwyMDk3MTUyOjY3MTA5MTIwLDMxNDU3Mjg6NjU3OTYsNDE5NDMwNDo2NTU0MCw1MjQyODgwOjY3MTA4ODY4LDYyOTE0NTY6NjcxNzQ2NjAsNzM0MDAzMjo2NzE3NDQwMCw4Mzg4NjA4OjY3MTA4ODY0LDk0MzcxODQ6NjcxNzQ2NTYsMTA0ODU3NjA6NjU3OTIsMTE1MzQzMzY6NjcxNzQ0MDQsMTI1ODI5MTI6NjcxMDkxMjQsMTM2MzE0ODg6NjU1MzYsMTQ2ODAwNjQ6NCwxNTcyODY0MDoyNTYsNTI0Mjg4OjY3MTc0NjU2LDE1NzI4NjQ6NjcxNzQ0MDQsMjYyMTQ0MDowLDM2NzAwMTY6NjcxMDkxMjAsNDcxODU5Mjo2NzEwODg2OCw1NzY3MTY4OjY1NTM2LDY4MTU3NDQ6NjU1NDAsNzg2NDMyMDoyNjAsODkxMjg5Njo0LDk5NjE0NzI6MjU2LDExMDEwMDQ4OjY3MTc0NDAwLDEyMDU4NjI0OjY1Nzk2LDEzMTA3MjAwOjY1NzkyLDE0MTU1Nzc2OjY3MTA5MTI0LDE1MjA0MzUyOjY3MTc0NjYwLDE2MjUyOTI4OjY3MTA4ODY0LDE2Nzc3MjE2OjY3MTc0NjU2LDE3ODI1NzkyOjY1NTQwLDE4ODc0MzY4OjY1NTM2LDE5OTIyOTQ0OjY3MTA5MTIwLDIwOTcxNTIwOjI1NiwyMjAyMDA5Njo2NzE3NDY2MCwyMzA2ODY3Mjo2NzEwODg2OCwyNDExNzI0ODowLDI1MTY1ODI0OjY3MTA5MTI0LDI2MjE0NDAwOjY3MTA4ODY0LDI3MjYyOTc2OjQsMjgzMTE1NTI6NjU3OTIsMjkzNjAxMjg6NjcxNzQ0MDAsMzA0MDg3MDQ6MjYwLDMxNDU3MjgwOjY1Nzk2LDMyNTA1ODU2OjY3MTc0NDA0LDE3MzAxNTA0OjY3MTA4ODY0LDE4MzUwMDgwOjI2MCwxOTM5ODY1Njo2NzE3NDY1NiwyMDQ0NzIzMjowLDIxNDk1ODA4OjY1NTQwLDIyNTQ0Mzg0OjY3MTA5MTIwLDIzNTkyOTYwOjI1NiwyNDY0MTUzNjo2NzE3NDQwNCwyNTY5MDExMjo2NTUzNiwyNjczODY4ODo2NzE3NDY2MCwyNzc4NzI2NDo2NTc5NiwyODgzNTg0MDo2NzEwODg2OCwyOTg4NDQxNjo2NzEwOTEyNCwzMDkzMjk5Mjo2NzE3NDQwMCwzMTk4MTU2ODo0LDMzMDMwMTQ0OjY1NzkyfSx7MDoyMTUxNjgyMDQ4LDY1NTM2OjIxNDc0ODc4MDgsMTMxMDcyOjQxOTg0NjQsMTk2NjA4OjIxNTE2Nzc5NTIsMjYyMTQ0OjAsMzI3NjgwOjQxOTg0MDAsMzkzMjE2OjIxNDc0ODM3MTIsNDU4NzUyOjQxOTQzNjgsNTI0Mjg4OjIxNDc0ODM2NDgsNTg5ODI0OjQxOTQzMDQsNjU1MzYwOjY0LDcyMDg5NjoyMTQ3NDg3NzQ0LDc4NjQzMjoyMTUxNjc4MDE2LDg1MTk2ODo0MTYwLDkxNzUwNDo0MDk2LDk4MzA0MDoyMTUxNjgyMTEyLDMyNzY4OjIxNDc0ODc4MDgsOTgzMDQ6NjQsMTYzODQwOjIxNTE2NzgwMTYsMjI5Mzc2OjIxNDc0ODc3NDQsMjk0OTEyOjQxOTg0MDAsMzYwNDQ4OjIxNTE2ODIxMTIsNDI1OTg0OjAsNDkxNTIwOjIxNTE2Nzc5NTIsNTU3MDU2OjQwOTYsNjIyNTkyOjIxNTE2ODIwNDgsNjg4MTI4OjQxOTQzMDQsNzUzNjY0OjQxNjAsODE5MjAwOjIxNDc0ODM2NDgsODg0NzM2OjQxOTQzNjgsOTUwMjcyOjQxOTg0NjQsMTAxNTgwODoyMTQ3NDgzNzEyLDEwNDg1NzY6NDE5NDM2OCwxMTE0MTEyOjQxOTg0MDAsMTE3OTY0ODoyMTQ3NDgzNzEyLDEyNDUxODQ6MCwxMzEwNzIwOjQxNjAsMTM3NjI1NjoyMTUxNjc4MDE2LDE0NDE3OTI6MjE1MTY4MjA0OCwxNTA3MzI4OjIxNDc0ODc4MDgsMTU3Mjg2NDoyMTUxNjgyMTEyLDE2Mzg0MDA6MjE0NzQ4MzY0OCwxNzAzOTM2OjIxNTE2Nzc5NTIsMTc2OTQ3Mjo0MTk4NDY0LDE4MzUwMDg6MjE0NzQ4Nzc0NCwxOTAwNTQ0OjQxOTQzMDQsMTk2NjA4MDo2NCwyMDMxNjE2OjQwOTYsMTA4MTM0NDoyMTUxNjc3OTUyLDExNDY4ODA6MjE1MTY4MjExMiwxMjEyNDE2OjAsMTI3Nzk1Mjo0MTk4NDAwLDEzNDM0ODg6NDE5NDM2OCwxNDA5MDI0OjIxNDc0ODM2NDgsMTQ3NDU2MDoyMTQ3NDg3ODA4LDE1NDAwOTY6NjQsMTYwNTYzMjoyMTQ3NDgzNzEyLDE2NzExNjg6NDA5NiwxNzM2NzA0OjIxNDc0ODc3NDQsMTgwMjI0MDoyMTUxNjc4MDE2LDE4Njc3NzY6NDE2MCwxOTMzMzEyOjIxNTE2ODIwNDgsMTk5ODg0ODo0MTk0MzA0LDIwNjQzODQ6NDE5ODQ2NH0sezA6MTI4LDQwOTY6MTcwMzkzNjAsODE5MjoyNjIxNDQsMTIyODg6NTM2ODcwOTEyLDE2Mzg0OjUzNzEzMzE4NCwyMDQ4MDoxNjc3NzM0NCwyNDU3Njo1NTM2NDgyNTYsMjg2NzI6MjYyMjcyLDMyNzY4OjE2Nzc3MjE2LDM2ODY0OjUzNzEzMzA1Niw0MDk2MDo1MzY4NzEwNDAsNDUwNTY6NTUzOTEwNDAwLDQ5MTUyOjU1MzkxMDI3Miw1MzI0ODowLDU3MzQ0OjE3MDM5NDg4LDYxNDQwOjU1MzY0ODEyOCwyMDQ4OjE3MDM5NDg4LDYxNDQ6NTUzNjQ4MjU2LDEwMjQwOjEyOCwxNDMzNjoxNzAzOTM2MCwxODQzMjoyNjIxNDQsMjI1Mjg6NTM3MTMzMTg0LDI2NjI0OjU1MzkxMDI3MiwzMDcyMDo1MzY4NzA5MTIsMzQ4MTY6NTM3MTMzMDU2LDM4OTEyOjAsNDMwMDg6NTUzOTEwNDAwLDQ3MTA0OjE2Nzc3MzQ0LDUxMjAwOjUzNjg3MTA0MCw1NTI5Njo1NTM2NDgxMjgsNTkzOTI6MTY3NzcyMTYsNjM0ODg6MjYyMjcyLDY1NTM2OjI2MjE0NCw2OTYzMjoxMjgsNzM3Mjg6NTM2ODcwOTEyLDc3ODI0OjU1MzY0ODI1Niw4MTkyMDoxNjc3NzM0NCw4NjAxNjo1NTM5MTAyNzIsOTAxMTI6NTM3MTMzMTg0LDk0MjA4OjE2Nzc3MjE2LDk4MzA0OjU1MzkxMDQwMCwxMDI0MDA6NTUzNjQ4MTI4LDEwNjQ5NjoxNzAzOTM2MCwxMTA1OTI6NTM3MTMzMDU2LDExNDY4ODoyNjIyNzIsMTE4Nzg0OjUzNjg3MTA0MCwxMjI4ODA6MCwxMjY5NzY6MTcwMzk0ODgsNjc1ODQ6NTUzNjQ4MjU2LDcxNjgwOjE2Nzc3MjE2LDc1Nzc2OjE3MDM5MzYwLDc5ODcyOjUzNzEzMzE4NCw4Mzk2ODo1MzY4NzA5MTIsODgwNjQ6MTcwMzk0ODgsOTIxNjA6MTI4LDk2MjU2OjU1MzkxMDI3MiwxMDAzNTI6MjYyMjcyLDEwNDQ0ODo1NTM5MTA0MDAsMTA4NTQ0OjAsMTEyNjQwOjU1MzY0ODEyOCwxMTY3MzY6MTY3NzczNDQsMTIwODMyOjI2MjE0NCwxMjQ5Mjg6NTM3MTMzMDU2LDEyOTAyNDo1MzY4NzEwNDB9LHswOjI2ODQzNTQ2NCwyNTY6ODE5Miw1MTI6MjcwNTMyNjA4LDc2ODoyNzA1NDA4MDgsMTAyNDoyNjg0NDM2NDgsMTI4MDoyMDk3MTUyLDE1MzY6MjA5NzE2MCwxNzkyOjI2ODQzNTQ1NiwyMDQ4OjAsMjMwNDoyNjg0NDM2NTYsMjU2MDoyMTA1MzQ0LDI4MTY6OCwzMDcyOjI3MDUzMjYxNiwzMzI4OjIxMDUzNTIsMzU4NDo4MjAwLDM4NDA6MjcwNTQwODAwLDEyODoyNzA1MzI2MDgsMzg0OjI3MDU0MDgwOCw2NDA6OCw4OTY6MjA5NzE1MiwxMTUyOjIxMDUzNTIsMTQwODoyNjg0MzU0NjQsMTY2NDoyNjg0NDM2NDgsMTkyMDo4MjAwLDIxNzY6MjA5NzE2MCwyNDMyOjgxOTIsMjY4ODoyNjg0NDM2NTYsMjk0NDoyNzA1MzI2MTYsMzIwMDowLDM0NTY6MjcwNTQwODAwLDM3MTI6MjEwNTM0NCwzOTY4OjI2ODQzNTQ1Niw0MDk2OjI2ODQ0MzY0OCw0MzUyOjI3MDUzMjYxNiw0NjA4OjI3MDU0MDgwOCw0ODY0OjgyMDAsNTEyMDoyMDk3MTUyLDUzNzY6MjY4NDM1NDU2LDU2MzI6MjY4NDM1NDY0LDU4ODg6MjEwNTM0NCw2MTQ0OjIxMDUzNTIsNjQwMDowLDY2NTY6OCw2OTEyOjI3MDUzMjYwOCw3MTY4OjgxOTIsNzQyNDoyNjg0NDM2NTYsNzY4MDoyNzA1NDA4MDAsNzkzNjoyMDk3MTYwLDQyMjQ6OCw0NDgwOjIxMDUzNDQsNDczNjoyMDk3MTUyLDQ5OTI6MjY4NDM1NDY0LDUyNDg6MjY4NDQzNjQ4LDU1MDQ6ODIwMCw1NzYwOjI3MDU0MDgwOCw2MDE2OjI3MDUzMjYwOCw2MjcyOjI3MDU0MDgwMCw2NTI4OjI3MDUzMjYxNiw2Nzg0OjgxOTIsNzA0MDoyMTA1MzUyLDcyOTY6MjA5NzE2MCw3NTUyOjAsNzgwODoyNjg0MzU0NTYsODA2NDoyNjg0NDM2NTZ9LHswOjEwNDg1NzYsMTY6MzM1NTU0NTcsMzI6MTAyNCw0ODoxMDQ5NjAxLDY0OjM0NjA0MDMzLDgwOjAsOTY6MSwxMTI6MzQ2MDMwMDksMTI4OjMzNTU1NDU2LDE0NDoxMDQ4NTc3LDE2MDozMzU1NDQzMywxNzY6MzQ2MDQwMzIsMTkyOjM0NjAzMDA4LDIwODoxMDI1LDIyNDoxMDQ5NjAwLDI0MDozMzU1NDQzMiw4OjM0NjAzMDA5LDI0OjAsNDA6MzM1NTU0NTcsNTY6MzQ2MDQwMzIsNzI6MTA0ODU3Niw4ODozMzU1NDQzMywxMDQ6MzM1NTQ0MzIsMTIwOjEwMjUsMTM2OjEwNDk2MDEsMTUyOjMzNTU1NDU2LDE2ODozNDYwMzAwOCwxODQ6MTA0ODU3NywyMDA6MTAyNCwyMTY6MzQ2MDQwMzMsMjMyOjEsMjQ4OjEwNDk2MDAsMjU2OjMzNTU0NDMyLDI3MjoxMDQ4NTc2LDI4ODozMzU1NTQ1NywzMDQ6MzQ2MDMwMDksMzIwOjEwNDg1NzcsMzM2OjMzNTU1NDU2LDM1MjozNDYwNDAzMiwzNjg6MTA0OTYwMSwzODQ6MTAyNSw0MDA6MzQ2MDQwMzMsNDE2OjEwNDk2MDAsNDMyOjEsNDQ4OjAsNDY0OjM0NjAzMDA4LDQ4MDozMzU1NDQzMyw0OTY6MTAyNCwyNjQ6MTA0OTYwMCwyODA6MzM1NTU0NTcsMjk2OjM0NjAzMDA5LDMxMjoxLDMyODozMzU1NDQzMiwzNDQ6MTA0ODU3NiwzNjA6MTAyNSwzNzY6MzQ2MDQwMzIsMzkyOjMzNTU0NDMzLDQwODozNDYwMzAwOCw0MjQ6MCw0NDA6MzQ2MDQwMzMsNDU2OjEwNDk2MDEsNDcyOjEwMjQsNDg4OjMzNTU1NDU2LDUwNDoxMDQ4NTc3fSx7MDoxMzQyMTk4MDgsMToxMzEwNzIsMjoxMzQyMTc3MjgsMzozMiw0OjEzMTEwNCw1OjEzNDM1MDg4MCw2OjEzNDM1MDg0OCw3OjIwNDgsODoxMzQzNDg4MDAsOToxMzQyMTk3NzYsMTA6MTMzMTIwLDExOjEzNDM0ODgzMiwxMjoyMDgwLDEzOjAsMTQ6MTM0MjE3NzYwLDE1OjEzMzE1MiwyMTQ3NDgzNjQ4OjIwNDgsMjE0NzQ4MzY0OToxMzQzNTA4ODAsMjE0NzQ4MzY1MDoxMzQyMTk4MDgsMjE0NzQ4MzY1MToxMzQyMTc3MjgsMjE0NzQ4MzY1MjoxMzQzNDg4MDAsMjE0NzQ4MzY1MzoxMzMxMjAsMjE0NzQ4MzY1NDoxMzMxNTIsMjE0NzQ4MzY1NTozMiwyMTQ3NDgzNjU2OjEzNDIxNzc2MCwyMTQ3NDgzNjU3OjIwODAsMjE0NzQ4MzY1ODoxMzExMDQsMjE0NzQ4MzY1OToxMzQzNTA4NDgsMjE0NzQ4MzY2MDowLDIxNDc0ODM2NjE6MTM0MzQ4ODMyLDIxNDc0ODM2NjI6MTM0MjE5Nzc2LDIxNDc0ODM2NjM6MTMxMDcyLDE2OjEzMzE1MiwxNzoxMzQzNTA4NDgsMTg6MzIsMTk6MjA0OCwyMDoxMzQyMTk3NzYsMjE6MTM0MjE3NzYwLDIyOjEzNDM0ODgzMiwyMzoxMzEwNzIsMjQ6MCwyNToxMzExMDQsMjY6MTM0MzQ4ODAwLDI3OjEzNDIxOTgwOCwyODoxMzQzNTA4ODAsMjk6MTMzMTIwLDMwOjIwODAsMzE6MTM0MjE3NzI4LDIxNDc0ODM2NjQ6MTMxMDcyLDIxNDc0ODM2NjU6MjA0OCwyMTQ3NDgzNjY2OjEzNDM0ODgzMiwyMTQ3NDgzNjY3OjEzMzE1MiwyMTQ3NDgzNjY4OjMyLDIxNDc0ODM2Njk6MTM0MzQ4ODAwLDIxNDc0ODM2NzA6MTM0MjE3NzI4LDIxNDc0ODM2NzE6MTM0MjE5ODA4LDIxNDc0ODM2NzI6MTM0MzUwODgwLDIxNDc0ODM2NzM6MTM0MjE3NzYwLDIxNDc0ODM2NzQ6MTM0MjE5Nzc2LDIxNDc0ODM2NzU6MCwyMTQ3NDgzNjc2OjEzMzEyMCwyMTQ3NDgzNjc3OjIwODAsMjE0NzQ4MzY3ODoxMzExMDQsMjE0NzQ4MzY3OToxMzQzNTA4NDh9XSx1PVs0MTYwNzQ5NTY5LDUyODQ4MjMwNCwzMzAzMDE0NCwyMDY0Mzg0LDEyOTAyNCw4MDY0LDUwNCwyMTQ3NDgzNjc5XSxkPWEuREVTPXMuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkscj10LndvcmRzLGU9W10saT0wO2k8NTY7aSsrKXt2YXIgbj1jW2ldLTE7ZVtpXT1yW24+Pj41XT4+PjMxLW4lMzImMX1mb3IodmFyIG89dGhpcy5fc3ViS2V5cz1bXSxzPTA7czwxNjtzKyspe2Zvcih2YXIgYT1vW3NdPVtdLGY9bFtzXSxpPTA7aTwyNDtpKyspYVtpLzZ8MF18PWVbKGhbaV0tMStmKSUyOF08PDMxLWklNixhWzQrKGkvNnwwKV18PWVbMjgrKGhbaSsyNF0tMStmKSUyOF08PDMxLWklNjthWzBdPWFbMF08PDF8YVswXT4+PjMxO2Zvcih2YXIgaT0xO2k8NztpKyspYVtpXT1hW2ldPj4+NCooaS0xKSszO2FbN109YVs3XTw8NXxhWzddPj4+Mjd9Zm9yKHZhciB1PXRoaXMuX2ludlN1YktleXM9W10saT0wO2k8MTY7aSsrKXVbaV09b1sxNS1pXX0sZW5jcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9zdWJLZXlzKX0sZGVjcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9pbnZTdWJLZXlzKX0sX2RvQ3J5cHRCbG9jazpmdW5jdGlvbih0LGksbil7dGhpcy5fbEJsb2NrPXRbaV0sdGhpcy5fckJsb2NrPXRbaSsxXSxyLmNhbGwodGhpcyw0LDI1MjY0NTEzNSksci5jYWxsKHRoaXMsMTYsNjU1MzUpLGUuY2FsbCh0aGlzLDIsODU4OTkzNDU5KSxlLmNhbGwodGhpcyw4LDE2NzExOTM1KSxyLmNhbGwodGhpcywxLDE0MzE2NTU3NjUpO2Zvcih2YXIgbz0wO288MTY7bysrKXtmb3IodmFyIHM9bltvXSxhPXRoaXMuX2xCbG9jayxjPXRoaXMuX3JCbG9jayxoPTAsbD0wO2w8ODtsKyspaHw9ZltsXVsoKGNec1tsXSkmdVtsXSk+Pj4wXTt0aGlzLl9sQmxvY2s9Yyx0aGlzLl9yQmxvY2s9YV5ofXZhciBkPXRoaXMuX2xCbG9jazt0aGlzLl9sQmxvY2s9dGhpcy5fckJsb2NrLHRoaXMuX3JCbG9jaz1kLHIuY2FsbCh0aGlzLDEsMTQzMTY1NTc2NSksZS5jYWxsKHRoaXMsOCwxNjcxMTkzNSksZS5jYWxsKHRoaXMsMiw4NTg5OTM0NTkpLHIuY2FsbCh0aGlzLDE2LDY1NTM1KSxyLmNhbGwodGhpcyw0LDI1MjY0NTEzNSksdFtpXT10aGlzLl9sQmxvY2ssdFtpKzFdPXRoaXMuX3JCbG9ja30sa2V5U2l6ZToyLGl2U2l6ZToyLGJsb2NrU2l6ZToyfSk7aS5ERVM9cy5fY3JlYXRlSGVscGVyKGQpO3ZhciB2PWEuVHJpcGxlREVTPXMuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2tleSxyPXQud29yZHM7dGhpcy5fZGVzMT1kLmNyZWF0ZUVuY3J5cHRvcihvLmNyZWF0ZShyLnNsaWNlKDAsMikpKSx0aGlzLl9kZXMyPWQuY3JlYXRlRW5jcnlwdG9yKG8uY3JlYXRlKHIuc2xpY2UoMiw0KSkpLHRoaXMuX2RlczM9ZC5jcmVhdGVFbmNyeXB0b3Ioby5jcmVhdGUoci5zbGljZSg0LDYpKSl9LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2RlczEuZW5jcnlwdEJsb2NrKHQsciksdGhpcy5fZGVzMi5kZWNyeXB0QmxvY2sodCxyKSx0aGlzLl9kZXMzLmVuY3J5cHRCbG9jayh0LHIpfSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9kZXMzLmRlY3J5cHRCbG9jayh0LHIpLHRoaXMuX2RlczIuZW5jcnlwdEJsb2NrKHQsciksdGhpcy5fZGVzMS5kZWNyeXB0QmxvY2sodCxyKX0sa2V5U2l6ZTo2LGl2U2l6ZToyLGJsb2NrU2l6ZToyfSk7aS5UcmlwbGVERVM9cy5fY3JlYXRlSGVscGVyKHYpfSgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcigpe2Zvcih2YXIgdD10aGlzLl9TLHI9dGhpcy5faSxlPXRoaXMuX2osaT0wLG49MDtuPDQ7bisrKXtyPShyKzEpJTI1NixlPShlK3Rbcl0pJTI1Njt2YXIgbz10W3JdO3Rbcl09dFtlXSx0W2VdPW8saXw9dFsodFtyXSt0W2VdKSUyNTZdPDwyNC04Km59cmV0dXJuIHRoaXMuX2k9cix0aGlzLl9qPWUsaX12YXIgZT10LGk9ZS5saWIsbj1pLlN0cmVhbUNpcGhlcixvPWUuYWxnbyxzPW8uUkM0PW4uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkscj10LndvcmRzLGU9dC5zaWdCeXRlcyxpPXRoaXMuX1M9W10sbj0wO248MjU2O24rKylpW25dPW47Zm9yKHZhciBuPTAsbz0wO248MjU2O24rKyl7dmFyIHM9biVlLGE9cltzPj4+Ml0+Pj4yNC1zJTQqOCYyNTU7bz0obytpW25dK2EpJTI1Njt2YXIgYz1pW25dO2lbbl09aVtvXSxpW29dPWN9dGhpcy5faT10aGlzLl9qPTB9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3RbZV1ePXIuY2FsbCh0aGlzKX0sa2V5U2l6ZTo4LGl2U2l6ZTowfSk7ZS5SQzQ9bi5fY3JlYXRlSGVscGVyKHMpO3ZhciBhPW8uUkM0RHJvcD1zLmV4dGVuZCh7Y2ZnOnMuY2ZnLmV4dGVuZCh7ZHJvcDoxOTJ9KSxfZG9SZXNldDpmdW5jdGlvbigpe3MuX2RvUmVzZXQuY2FsbCh0aGlzKTtmb3IodmFyIHQ9dGhpcy5jZmcuZHJvcDt0PjA7dC0tKXIuY2FsbCh0aGlzKX19KTtlLlJDNERyb3A9bi5fY3JlYXRlSGVscGVyKGEpfSgpLHQubW9kZS5DVFJHbGFkbWFuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0KXtpZigyNTU9PT0odD4+MjQmMjU1KSl7dmFyIHI9dD4+MTYmMjU1LGU9dD4+OCYyNTUsaT0yNTUmdDsyNTU9PT1yPyhyPTAsMjU1PT09ZT8oZT0wLDI1NT09PWk/aT0wOisraSk6KytlKTorK3IsdD0wLHQrPXI8PDE2LHQrPWU8PDgsdCs9aX1lbHNlIHQrPTE8PDI0O3JldHVybiB0fWZ1bmN0aW9uIGUodCl7cmV0dXJuIDA9PT0odFswXT1yKHRbMF0pKSYmKHRbMV09cih0WzFdKSksdH12YXIgaT10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksbj1pLkVuY3J5cHRvcj1pLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGk9dGhpcy5fY2lwaGVyLG49aS5ibG9ja1NpemUsbz10aGlzLl9pdixzPXRoaXMuX2NvdW50ZXI7byYmKHM9dGhpcy5fY291bnRlcj1vLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCksZShzKTt2YXIgYT1zLnNsaWNlKDApO2kuZW5jcnlwdEJsb2NrKGEsMCk7Zm9yKHZhciBjPTA7YzxuO2MrKyl0W3IrY11ePWFbY119fSk7cmV0dXJuIGkuRGVjcnlwdG9yPW4saX0oKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIoKXtmb3IodmFyIHQ9dGhpcy5fWCxyPXRoaXMuX0MsZT0wO2U8ODtlKyspYVtlXT1yW2VdO3JbMF09clswXSsxMjk1MzA3NTk3K3RoaXMuX2J8MCxyWzFdPXJbMV0rMzU0NTA1MjM3MSsoclswXT4+PjA8YVswXT4+PjA/MTowKXwwLHJbMl09clsyXSs4ODYyNjMwOTIrKHJbMV0+Pj4wPGFbMV0+Pj4wPzE6MCl8MCxyWzNdPXJbM10rMTI5NTMwNzU5NysoclsyXT4+PjA8YVsyXT4+PjA/MTowKXwwLHJbNF09cls0XSszNTQ1MDUyMzcxKyhyWzNdPj4+MDxhWzNdPj4+MD8xOjApfDAscls1XT1yWzVdKzg4NjI2MzA5Misocls0XT4+PjA8YVs0XT4+PjA/MTowKXwwLHJbNl09cls2XSsxMjk1MzA3NTk3KyhyWzVdPj4+MDxhWzVdPj4+MD8xOjApfDAscls3XT1yWzddKzM1NDUwNTIzNzErKHJbNl0+Pj4wPGFbNl0+Pj4wPzE6MCl8MCx0aGlzLl9iPXJbN10+Pj4wPGFbN10+Pj4wPzE6MDtmb3IodmFyIGU9MDtlPDg7ZSsrKXt2YXIgaT10W2VdK3JbZV0sbj02NTUzNSZpLG89aT4+PjE2LHM9KChuKm4+Pj4xNykrbipvPj4+MTUpK28qbyxoPSgoNDI5NDkwMTc2MCZpKSppfDApKygoNjU1MzUmaSkqaXwwKTtjW2VdPXNeaH10WzBdPWNbMF0rKGNbN108PDE2fGNbN10+Pj4xNikrKGNbNl08PDE2fGNbNl0+Pj4xNil8MCx0WzFdPWNbMV0rKGNbMF08PDh8Y1swXT4+PjI0KStjWzddfDAsdFsyXT1jWzJdKyhjWzFdPDwxNnxjWzFdPj4+MTYpKyhjWzBdPDwxNnxjWzBdPj4+MTYpfDAsdFszXT1jWzNdKyhjWzJdPDw4fGNbMl0+Pj4yNCkrY1sxXXwwLHRbNF09Y1s0XSsoY1szXTw8MTZ8Y1szXT4+PjE2KSsoY1syXTw8MTZ8Y1syXT4+PjE2KXwwLHRbNV09Y1s1XSsoY1s0XTw8OHxjWzRdPj4+MjQpK2NbM118MCx0WzZdPWNbNl0rKGNbNV08PDE2fGNbNV0+Pj4xNikrKGNbNF08PDE2fGNbNF0+Pj4xNil8MCx0WzddPWNbN10rKGNbNl08PDh8Y1s2XT4+PjI0KStjWzVdfDB9dmFyIGU9dCxpPWUubGliLG49aS5TdHJlYW1DaXBoZXIsbz1lLmFsZ28scz1bXSxhPVtdLGM9W10saD1vLlJhYmJpdD1uLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9dGhpcy5jZmcuaXYsaT0wO2k8NDtpKyspdFtpXT0xNjcxMTkzNSYodFtpXTw8OHx0W2ldPj4+MjQpfDQyNzgyNTUzNjAmKHRbaV08PDI0fHRbaV0+Pj44KTt2YXIgbj10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbz10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dO3RoaXMuX2I9MDtmb3IodmFyIGk9MDtpPDQ7aSsrKXIuY2FsbCh0aGlzKTtmb3IodmFyIGk9MDtpPDg7aSsrKW9baV1ePW5baSs0JjddO2lmKGUpe3ZhciBzPWUud29yZHMsYT1zWzBdLGM9c1sxXSxoPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpLGw9MTY3MTE5MzUmKGM8PDh8Yz4+PjI0KXw0Mjc4MjU1MzYwJihjPDwyNHxjPj4+OCksZj1oPj4+MTZ8NDI5NDkwMTc2MCZsLHU9bDw8MTZ8NjU1MzUmaDtvWzBdXj1oLG9bMV1ePWYsb1syXV49bCxvWzNdXj11LG9bNF1ePWgsb1s1XV49ZixvWzZdXj1sLG9bN11ePXU7Zm9yKHZhciBpPTA7aTw0O2krKylyLmNhbGwodGhpcyl9fSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl9YO3IuY2FsbCh0aGlzKSxzWzBdPWlbMF1eaVs1XT4+PjE2XmlbM108PDE2LHNbMV09aVsyXV5pWzddPj4+MTZeaVs1XTw8MTYsc1syXT1pWzRdXmlbMV0+Pj4xNl5pWzddPDwxNixzWzNdPWlbNl1eaVszXT4+PjE2XmlbMV08PDE2O2Zvcih2YXIgbj0wO248NDtuKyspc1tuXT0xNjcxMTkzNSYoc1tuXTw8OHxzW25dPj4+MjQpfDQyNzgyNTUzNjAmKHNbbl08PDI0fHNbbl0+Pj44KSx0W2Urbl1ePXNbbl19LGJsb2NrU2l6ZTo0LGl2U2l6ZToyfSk7ZS5SYWJiaXQ9bi5fY3JlYXRlSGVscGVyKGgpfSgpLHQubW9kZS5DVFI9ZnVuY3Rpb24oKXt2YXIgcj10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksZT1yLkVuY3J5cHRvcj1yLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fY2lwaGVyLGk9ZS5ibG9ja1NpemUsbj10aGlzLl9pdixvPXRoaXMuX2NvdW50ZXI7biYmKG89dGhpcy5fY291bnRlcj1uLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCk7dmFyIHM9by5zbGljZSgwKTtlLmVuY3J5cHRCbG9jayhzLDApLG9baS0xXT1vW2ktMV0rMXwwO2Zvcih2YXIgYT0wO2E8aTthKyspdFtyK2FdXj1zW2FdfX0pO3JldHVybiByLkRlY3J5cHRvcj1lLHJ9KCksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7Zm9yKHZhciB0PXRoaXMuX1gscj10aGlzLl9DLGU9MDtlPDg7ZSsrKWFbZV09cltlXTtyWzBdPXJbMF0rMTI5NTMwNzU5Nyt0aGlzLl9ifDAsclsxXT1yWzFdKzM1NDUwNTIzNzErKHJbMF0+Pj4wPGFbMF0+Pj4wPzE6MCl8MCxyWzJdPXJbMl0rODg2MjYzMDkyKyhyWzFdPj4+MDxhWzFdPj4+MD8xOjApfDAsclszXT1yWzNdKzEyOTUzMDc1OTcrKHJbMl0+Pj4wPGFbMl0+Pj4wPzE6MCl8MCxyWzRdPXJbNF0rMzU0NTA1MjM3MSsoclszXT4+PjA8YVszXT4+PjA/MTowKXwwLHJbNV09cls1XSs4ODYyNjMwOTIrKHJbNF0+Pj4wPGFbNF0+Pj4wPzE6MCl8MCxyWzZdPXJbNl0rMTI5NTMwNzU5Nysocls1XT4+PjA8YVs1XT4+PjA/MTowKXwwLHJbN109cls3XSszNTQ1MDUyMzcxKyhyWzZdPj4+MDxhWzZdPj4+MD8xOjApfDAsdGhpcy5fYj1yWzddPj4+MDxhWzddPj4+MD8xOjA7Zm9yKHZhciBlPTA7ZTw4O2UrKyl7dmFyIGk9dFtlXStyW2VdLG49NjU1MzUmaSxvPWk+Pj4xNixzPSgobipuPj4+MTcpK24qbz4+PjE1KStvKm8saD0oKDQyOTQ5MDE3NjAmaSkqaXwwKSsoKDY1NTM1JmkpKml8MCk7Y1tlXT1zXmh9dFswXT1jWzBdKyhjWzddPDwxNnxjWzddPj4+MTYpKyhjWzZdPDwxNnxjWzZdPj4+MTYpfDAsdFsxXT1jWzFdKyhjWzBdPDw4fGNbMF0+Pj4yNCkrY1s3XXwwLHRbMl09Y1syXSsoY1sxXTw8MTZ8Y1sxXT4+PjE2KSsoY1swXTw8MTZ8Y1swXT4+PjE2KXwwLHRbM109Y1szXSsoY1syXTw8OHxjWzJdPj4+MjQpK2NbMV18MCx0WzRdPWNbNF0rKGNbM108PDE2fGNbM10+Pj4xNikrKGNbMl08PDE2fGNbMl0+Pj4xNil8MCx0WzVdPWNbNV0rKGNbNF08PDh8Y1s0XT4+PjI0KStjWzNdfDAsdFs2XT1jWzZdKyhjWzVdPDwxNnxjWzVdPj4+MTYpKyhjWzRdPDwxNnxjWzRdPj4+MTYpfDAsdFs3XT1jWzddKyhjWzZdPDw4fGNbNl0+Pj4yNCkrY1s1XXwwfXZhciBlPXQsaT1lLmxpYixuPWkuU3RyZWFtQ2lwaGVyLG89ZS5hbGdvLHM9W10sYT1bXSxjPVtdLGg9by5SYWJiaXRMZWdhY3k9bi5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9dGhpcy5jZmcuaXYsaT10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbj10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dO3RoaXMuX2I9MDtmb3IodmFyIG89MDtvPDQ7bysrKXIuY2FsbCh0aGlzKTtmb3IodmFyIG89MDtvPDg7bysrKW5bb11ePWlbbys0JjddO2lmKGUpe3ZhciBzPWUud29yZHMsYT1zWzBdLGM9c1sxXSxoPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpLGw9MTY3MTE5MzUmKGM8PDh8Yz4+PjI0KXw0Mjc4MjU1MzYwJihjPDwyNHxjPj4+OCksZj1oPj4+MTZ8NDI5NDkwMTc2MCZsLHU9bDw8MTZ8NjU1MzUmaDtuWzBdXj1oLG5bMV1ePWYsblsyXV49bCxuWzNdXj11LG5bNF1ePWgsbls1XV49ZixuWzZdXj1sLG5bN11ePXU7Zm9yKHZhciBvPTA7bzw0O28rKylyLmNhbGwodGhpcyl9fSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl9YO3IuY2FsbCh0aGlzKSxzWzBdPWlbMF1eaVs1XT4+PjE2XmlbM108PDE2LHNbMV09aVsyXV5pWzddPj4+MTZeaVs1XTw8MTYsc1syXT1pWzRdXmlbMV0+Pj4xNl5pWzddPDwxNixzWzNdPWlbNl1eaVszXT4+PjE2XmlbMV08PDE2O2Zvcih2YXIgbj0wO248NDtuKyspc1tuXT0xNjcxMTkzNSYoc1tuXTw8OHxzW25dPj4+MjQpfDQyNzgyNTUzNjAmKHNbbl08PDI0fHNbbl0+Pj44KSx0W2Urbl1ePXNbbl19LGJsb2NrU2l6ZTo0LGl2U2l6ZToyfSk7ZS5SYWJiaXRMZWdhY3k9bi5fY3JlYXRlSGVscGVyKGgpfSgpLHQucGFkLlplcm9QYWRkaW5nPXtwYWQ6ZnVuY3Rpb24odCxyKXt2YXIgZT00KnI7dC5jbGFtcCgpLHQuc2lnQnl0ZXMrPWUtKHQuc2lnQnl0ZXMlZXx8ZSl9LHVucGFkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10LndvcmRzLGU9dC5zaWdCeXRlcy0xOyEocltlPj4+Ml0+Pj4yNC1lJTQqOCYyNTUpOyllLS07dC5zaWdCeXRlcz1lKzF9fSx0fSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNyeXB0by1qcy5taW4uanMubWFwIl19 +//------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_const.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, '98309gPXUxEF6zBe9e75Knb', 'lq_const'); +// Script/lq_base/data/lq_const.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LQConst = exports.LQOperateType = exports.LQLevelStatus = exports.LQAdErrStr = exports.LQCallAd = exports.LQCallBase = exports.LQAnalysisTag = exports.LQByteDanceType = exports.LQPlatformType = exports.LQHttpDataType = exports.LQHttpRequestType = exports.LQEasing = exports.LQCollideStatus = exports.LQFollowTargetMode = exports.LQCollideShape = exports.LQBulletEmitterStatus = exports.LQRecordStatus = void 0; +var Vec2 = cc.Vec2; +var LQRecordStatus; +(function (LQRecordStatus) { + LQRecordStatus[LQRecordStatus["Idle"] = 0] = "Idle"; + LQRecordStatus[LQRecordStatus["Start"] = 1] = "Start"; + LQRecordStatus[LQRecordStatus["Pause"] = 2] = "Pause"; +})(LQRecordStatus = exports.LQRecordStatus || (exports.LQRecordStatus = {})); +var LQBulletEmitterStatus; +(function (LQBulletEmitterStatus) { + LQBulletEmitterStatus[LQBulletEmitterStatus["Idle"] = 0] = "Idle"; + LQBulletEmitterStatus[LQBulletEmitterStatus["Start"] = 1] = "Start"; + LQBulletEmitterStatus[LQBulletEmitterStatus["End"] = 2] = "End"; +})(LQBulletEmitterStatus = exports.LQBulletEmitterStatus || (exports.LQBulletEmitterStatus = {})); +var LQCollideShape; +(function (LQCollideShape) { + LQCollideShape[LQCollideShape["Rect"] = 1] = "Rect"; + LQCollideShape[LQCollideShape["Circle"] = 2] = "Circle"; + LQCollideShape[LQCollideShape["Polygon"] = 3] = "Polygon"; +})(LQCollideShape = exports.LQCollideShape || (exports.LQCollideShape = {})); +var LQFollowTargetMode; +(function (LQFollowTargetMode) { + LQFollowTargetMode[LQFollowTargetMode["Always"] = 0] = "Always"; + LQFollowTargetMode[LQFollowTargetMode["Once"] = 1] = "Once"; + LQFollowTargetMode[LQFollowTargetMode["Pass"] = 2] = "Pass"; +})(LQFollowTargetMode = exports.LQFollowTargetMode || (exports.LQFollowTargetMode = {})); +var LQCollideStatus; +(function (LQCollideStatus) { + LQCollideStatus[LQCollideStatus["Idle"] = 0] = "Idle"; + LQCollideStatus[LQCollideStatus["Live"] = 1] = "Live"; +})(LQCollideStatus = exports.LQCollideStatus || (exports.LQCollideStatus = {})); +var LQEasing; +(function (LQEasing) { + LQEasing["BackIn"] = "backIn"; + LQEasing["BackOut"] = "backOut"; + LQEasing["quadIn"] = "quadIn"; + LQEasing["quadOut"] = "quadOut"; + LQEasing["quadInOut"] = "quadInOut"; + LQEasing["cubicIn"] = "cubicIn"; + LQEasing["expoOut"] = "expoOut"; +})(LQEasing = exports.LQEasing || (exports.LQEasing = {})); +var LQHttpRequestType; +(function (LQHttpRequestType) { + LQHttpRequestType["Get"] = "get"; + LQHttpRequestType["Post"] = "post"; +})(LQHttpRequestType = exports.LQHttpRequestType || (exports.LQHttpRequestType = {})); +var LQHttpDataType; +(function (LQHttpDataType) { + LQHttpDataType[LQHttpDataType["Text"] = 0] = "Text"; + LQHttpDataType[LQHttpDataType["Binary"] = 1] = "Binary"; +})(LQHttpDataType = exports.LQHttpDataType || (exports.LQHttpDataType = {})); +var LQPlatformType; +(function (LQPlatformType) { + LQPlatformType["unknown"] = "\u672A\u77E5\u5E73\u53F0"; + LQPlatformType["all"] = "\u5168\u5E73\u53F0"; + LQPlatformType["wx"] = "\u5FAE\u4FE1"; + LQPlatformType["tt"] = "\u5B57\u8282\u8DF3\u52A8"; + LQPlatformType["oppo"] = "oppo"; + LQPlatformType["vivo"] = "vivo"; + LQPlatformType["qq"] = "qq"; + LQPlatformType["baidu"] = "\u767E\u5EA6"; + LQPlatformType["kwaigame"] = "\u5FEB\u624B"; + LQPlatformType["android"] = "\u5B89\u5353"; + LQPlatformType["ios"] = "\u82F9\u679C"; + LQPlatformType["browser"] = "\u6D4F\u89C8\u5668"; +})(LQPlatformType = exports.LQPlatformType || (exports.LQPlatformType = {})); +var LQByteDanceType; +(function (LQByteDanceType) { + LQByteDanceType["tt"] = "\u5934\u6761"; + LQByteDanceType["tt_lite"] = "\u5934\u6761\u6781\u901F\u7248"; + LQByteDanceType["douyin"] = "\u6296\u97F3"; + LQByteDanceType["douyin_lite"] = "\u6296\u97F3\u6781\u901F\u7248"; + LQByteDanceType["ppx"] = "\u76AE\u76AE\u867E"; + LQByteDanceType["devtools"] = "\u5B57\u8282\u5F00\u53D1\u5DE5\u5177"; +})(LQByteDanceType = exports.LQByteDanceType || (exports.LQByteDanceType = {})); +var LQAnalysisTag; +(function (LQAnalysisTag) { + LQAnalysisTag["VideoComplete"] = "video_complete"; + LQAnalysisTag["VideoBegin"] = "video_begin"; + LQAnalysisTag["VideoInterrupt"] = "video_interrupt"; + LQAnalysisTag["InterstitialShow"] = "interstitial_show"; + LQAnalysisTag["BannerShow"] = "banner_show"; + LQAnalysisTag["ExportShow"] = "export_show"; + LQAnalysisTag["NativeShow"] = "native_show"; + LQAnalysisTag["NativeClick"] = "native_show"; +})(LQAnalysisTag = exports.LQAnalysisTag || (exports.LQAnalysisTag = {})); +var LQCallBase; +(function (LQCallBase) { + LQCallBase[LQCallBase["InitSdk"] = 0] = "InitSdk"; + LQCallBase[LQCallBase["KeepScreenOn"] = 1] = "KeepScreenOn"; + LQCallBase[LQCallBase["Vibrate"] = 2] = "Vibrate"; + LQCallBase[LQCallBase["GetVersionCode"] = 3] = "GetVersionCode"; + LQCallBase[LQCallBase["GetVersionName"] = 4] = "GetVersionName"; + LQCallBase[LQCallBase["OpenUrl"] = 5] = "OpenUrl"; + LQCallBase[LQCallBase["DeleteDir"] = 6] = "DeleteDir"; + LQCallBase[LQCallBase["DeleteFile"] = 7] = "DeleteFile"; +})(LQCallBase = exports.LQCallBase || (exports.LQCallBase = {})); +var LQCallAd; +(function (LQCallAd) { + LQCallAd[LQCallAd["ShowBanner"] = 0] = "ShowBanner"; + LQCallAd[LQCallAd["HideBanner"] = 1] = "HideBanner"; + LQCallAd[LQCallAd["ShowVideo"] = 2] = "ShowVideo"; + LQCallAd[LQCallAd["ShowInterstitial"] = 3] = "ShowInterstitial"; + LQCallAd[LQCallAd["ShowNative"] = 4] = "ShowNative"; + LQCallAd[LQCallAd["CacheAd"] = 5] = "CacheAd"; +})(LQCallAd = exports.LQCallAd || (exports.LQCallAd = {})); +var LQAdErrStr; +(function (LQAdErrStr) { + LQAdErrStr["Unsupported"] = "\u4E0D\u652F\u6301"; + LQAdErrStr["NoParameters"] = "\u6CA1\u6709\u914D\u7F6E\u53C2\u6570"; + LQAdErrStr["NoAD"] = "\u6682\u65E0\u5E7F\u544A"; + LQAdErrStr["VersionOld"] = "\u7248\u672C\u8FC7\u4F4E"; + LQAdErrStr["VideoInterrupt"] = "\u4E2D\u65AD\u64AD\u653E"; + LQAdErrStr["InstanceErr"] = "\u5B9E\u4F8B\u4E3A\u7A7A"; + LQAdErrStr["AlreadyExist"] = "\u5DF2\u7ECF\u5B58\u5728"; + LQAdErrStr["IntervalTooShort"] = "\u95F4\u9694\u592A\u77ED"; +})(LQAdErrStr = exports.LQAdErrStr || (exports.LQAdErrStr = {})); +var LQLevelStatus; +(function (LQLevelStatus) { + LQLevelStatus[LQLevelStatus["Begin"] = 0] = "Begin"; + LQLevelStatus[LQLevelStatus["Failed"] = 1] = "Failed"; + LQLevelStatus[LQLevelStatus["Complete"] = 2] = "Complete"; +})(LQLevelStatus = exports.LQLevelStatus || (exports.LQLevelStatus = {})); +var LQOperateType; +(function (LQOperateType) { + LQOperateType[LQOperateType["ClickNode"] = 0] = "ClickNode"; + LQOperateType[LQOperateType["ClickScreen"] = 1] = "ClickScreen"; + LQOperateType[LQOperateType["Move"] = 2] = "Move"; + LQOperateType[LQOperateType["Null"] = 3] = "Null"; +})(LQOperateType = exports.LQOperateType || (exports.LQOperateType = {})); +var LQConst = /** @class */ (function () { + function LQConst() { + } + LQConst.VEC_ZERO = Vec2.ZERO; + return LQConst; +}()); +exports.LQConst = LQConst; cc._RF.pop(); } @@ -17970,7 +17770,358 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vVGlsZWRMYXllci5qcyJdLCJuYW1lcyI6WyJfbWF0NF90ZW1wIiwiY2MiLCJtYXQ0IiwiX3ZlYzJfdGVtcCIsInYyIiwiX3ZlYzJfdGVtcDIiLCJDbGFzcyIsIlRpbGVkTGF5ZXIiLCJfaW5pdCIsImxheWVySW5mbyIsIm1hcEluZm8iLCJ0aWxlc2V0cyIsInRleHR1cmVzIiwidGV4R3JpZHMiLCJ0aWxlZE1hcCIsImZpcnN0VG14TGF5ZXIiLCJfY3VsbGluZ0RpcnR5IiwiX2xheWVySW5mbyIsIl9tYXBJbmZvIiwiX2ZpcnN0VG14TGF5ZXIiLCJfdGlsZWRNYXAiLCJzaXplIiwiX2xheWVyU2l6ZSIsIl9sYXllck5hbWUiLCJuYW1lIiwiX3RpbGVzIiwiX3Byb3BlcnRpZXMiLCJwcm9wZXJ0aWVzIiwiX21pbkdJRCIsIl9tYXhHSUQiLCJfb3BhY2l0eSIsIl9yZW5kZXJPcmRlciIsInJlbmRlck9yZGVyIiwiX3N0YWdnZXJBeGlzIiwiZ2V0U3RhZ2dlckF4aXMiLCJfc3RhZ2dlckluZGV4IiwiZ2V0U3RhZ2dlckluZGV4IiwiX2hleFNpZGVMZW5ndGgiLCJnZXRIZXhTaWRlTGVuZ3RoIiwiX2FuaW1hdGlvbnMiLCJnZXRUaWxlQW5pbWF0aW9ucyIsIl90aWxlc2V0cyIsIl90ZXh0dXJlcyIsIl90ZXhHcmlkcyIsIl9sYXllck9yaWVudGF0aW9uIiwib3JpZW50YXRpb24iLCJfbWFwVGlsZVNpemUiLCJnZXRUaWxlU2l6ZSIsIm1hcHR3Iiwid2lkdGgiLCJtYXB0aCIsImhlaWdodCIsImxheWVyVyIsImxheWVySCIsIlRpbGVkTWFwIiwiT3JpZW50YXRpb24iLCJIRVgiLCJTdGFnZ2VyQXhpcyIsIlN0YWdnZXJJbmRleCIsIl9vZGRfZXZlbiIsIlNUQUdHRVJJTkRFWF9PREQiLCJTVEFHR0VSQVhJU19YIiwiX2RpZmZYMSIsIl9kaWZmWTEiLCJNYXRoIiwiZmxvb3IiLCJub2RlIiwic2V0Q29udGVudFNpemUiLCJJU08iLCJ3aCIsIl9vZmZzZXQiLCJvZmZzZXQiLCJ4IiwieSIsIl91c2VBdXRvbWF0aWNWZXJ0ZXhaIiwiX3ZlcnRleFp2YWx1ZSIsIl9zeW5jQW5jaG9yUG9pbnQiLCJfcHJlcGFyZVRvUmVuZGVyIiwiX3VwZGF0ZUN1bGxpbmciLCJDQ19FRElUT1IiLCJlbmFibGVDdWxsaW5nIiwiX2VuYWJsZUN1bGxpbmciLCJfY3VsbGluZ1JlY3QiLCJfY2FjaGVDdWxsaW5nRGlydHkiLCJfdXBkYXRlV29ybGRNYXRyaXgiLCJNYXQ0IiwiaW52ZXJ0IiwiX3dvcmxkTWF0cml4IiwicmVjdCIsInZpc2libGVSZWN0IiwiY2FtZXJhIiwiQ2FtZXJhIiwiZmluZENhbWVyYSIsImdldFNjcmVlblRvV29ybGRQb2ludCIsIlZlYzIiLCJ0cmFuc2Zvcm1NYXQ0IiwiX3VwZGF0ZVZpZXdQb3J0IiwiX3RyYXZlcnNlQWxsR3JpZCIsInRpbGVzIiwidGlsZXNldEluZGV4QXJyIiwiX3RpbGVzZXRJbmRleEFyciIsInRpbGVzZXRJbmRleFRvQXJySW5kZXgiLCJfdGlsZXNldEluZGV4VG9BcnJJbmRleCIsIlRpbGVGbGFnIiwiRkxJUFBFRF9NQVNLIiwic2luZ2xlVGV4dHVyZSIsImlzU2luZ2xlVGV4dHVyZSIsImxlbmd0aCIsImkiLCJnaWQiLCJncmlkIiwiZXJyb3IiLCJ0aWxlc2V0SWR4IiwidGV4SWQiLCJ1bmRlZmluZWQiLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQUlBLFVBQVUsR0FBR0MsRUFBRSxDQUFDQyxJQUFILEVBQWpCOztBQUNBLElBQUlDLFVBQVUsR0FBR0YsRUFBRSxDQUFDRyxFQUFILEVBQWpCOztBQUNBLElBQUlDLFdBQVcsR0FBR0osRUFBRSxDQUFDRyxFQUFILEVBQWxCOztlQUVlSCxFQUFFLENBQUNLLEtBQUgsQ0FBUztBQUNwQixhQUFTTCxFQUFFLENB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akQsUUFBUSxDQUFDaUQsUUFBMUI7QUFDQSxRQUFNQyxZQUFZLEdBQUdELFFBQVEsQ0FBQ0MsWUFBOUI7O0FBRUEsUUFBSUMsYUFBYSxHQUFHLEtBQUtyRixTQUFMLENBQWVzRixlQUFmLEVBQXBCOztBQUVBUCxJQUFBQSxlQUFlLENBQUNRLE1BQWhCLEdBQXlCLENBQXpCOztBQUNBLFNBQUssSUFBSUMsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR1YsS0FBSyxDQUFDUyxNQUExQixFQUFrQ0MsQ0FBQyxFQUFuQyxFQUF1QztBQUNuQyxVQUFJQyxHQUFHLEdBQUdYLEtBQUssQ0FBQ1UsQ0FBRCxDQUFmO0FBQ0EsVUFBSUMsR0FBRyxLQUFLLENBQVosRUFBZTtBQUNmQSxNQUFBQSxHQUFHLEdBQUksQ0FBQ0EsR0FBRyxHQUFHTCxZQUFQLE1BQXlCLENBQWhDO0FBQ0EsVUFBSU0sSUFBSSxHQUFHakcsUUFBUSxDQUFDZ0csR0FBRCxDQUFuQjs7QUFDQSxVQUFJLENBQUNDLElBQUwsRUFBVztBQUNQN0csUUFBQUEsRUFBRSxDQUFDOEcsS0FBSCxDQUFTLHFEQUFULEVBQWdFRixHQUFoRTtBQUNBO0FBQ0g7O0FBQ0QsVUFBSUcsVUFBVSxHQUFHRixJQUFJLENBQUNHLEtBQXRCO0FBQ0EsVUFBSVosc0JBQXNCLENBQUNXLFVBQUQsQ0FBdEIsS0FBdUNFLFNBQTNDLEVBQXNEO0FBQ3REYixNQUFBQSxzQkFBc0IsQ0FBQ1csVUFBRCxDQUF0QixHQUFxQ2IsZUFBZSxDQUFDUSxNQUFyRDtBQUNBUixNQUFBQSxlQUFlLENBQUNnQixJQUFoQixDQUFxQkgsVUFBckIsRUFabUMsQ0FjbkM7O0FBQ0EsVUFBSVAsYUFBSixFQUFtQjtBQUNmO0FBQ0gsT0FqQmtDLENBa0JuQzs7QUFDSDtBQUNKO0FBdkptQixDQUFUIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBjYy5DbGFzczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvY2xhc3MuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmxldCBfbWF0NF90ZW1wID0gY2MubWF0NCgpO1xyXG5sZXQgX3ZlYzJfdGVtcCA9IGNjLnYyKCk7XHJcbmxldCBfdmVjMl90ZW1wMiA9IGNjLnYyKCk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjYy5DbGFzcyh7XHJcbiAgICBleHRlbmRzOiBjYy5UaWxlZExheWVyLFxyXG5cclxuICAgIC8vIOatpOWkhOS/ruaUuSDlop7liqBmaXJzdFRteExheWVy5Y+C5pWwXHJcbiAgICBfaW5pdChsYXllckluZm8sIG1hcEluZm8sIHRpbGVzZXRzLCB0ZXh0dXJlcywgdGV4R3JpZHMsIHRpbGVkTWFwLCBmaXJzdFRteExheWVyKSB7XHJcbiAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcbiAgICAgICAgdGhpcy5fY3VsbGluZ0RpcnR5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9sYXllckluZm8gPSBsYXllckluZm87XHJcbiAgICAgICAgdGhpcy5fbWFwSW5mbyA9IG1hcEluZm87XHJcbiAgICAgICAgLy8g5q2k5aSE5L+u5pS5IOS/neWtmGZpcnN0VG14TGF5ZXLlj4LmlbBcclxuICAgICAgICB0aGlzLl9maXJzdFRteExheWVyID0gZmlyc3RUbXhMYXllcjtcclxuICAgICAgICB0aGlzLl90aWxlZE1hcCA9IHRpbGVkTWFwO1xyXG4gICAgICAgIC8vIOS/ruaUuee7k+adn1xyXG5cclxuICAgICAgICBsZXQgc2l6ZSA9IGxheWVySW5mby5fbGF5ZXJTaXplO1xyXG5cclxuICAgICAgICAvLyBsYXllckluZm9cclxuICAgICAgICB0aGlzLl9sYXllck5hbWUgPSBsYXllckluZm8ubmFtZTtcclxuICAgICAgICB0aGlzLl90aWxlcyA9IGxheWVySW5mby5fdGlsZXM7XHJcbiAgICAgICAgdGhpcy5fcHJvcGVydGllcyA9IGxheWVySW5mby5wcm9wZXJ0aWVzO1xyXG4gICAgICAgIHRoaXMuX2xheWVyU2l6ZSA9IHNpemU7XHJcbiAgICAgICAgdGhpcy5fbWluR0lEID0gbGF5ZXJJbmZvLl9taW5HSUQ7XHJcbiAgICAgICAgdGhpcy5fbWF4R0lEID0gbGF5ZXJJbmZvLl9tYXhHSUQ7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IGxheWVySW5mby5fb3BhY2l0eTtcclxuICAgICAgICB0aGlzLl9yZW5kZXJPcmRlciA9IG1hcEluZm8ucmVuZGVyT3JkZXI7XHJcbiAgICAgICAgdGhpcy5fc3RhZ2dlckF4aXMgPSBtYXBJbmZvLmdldFN0YWdnZXJBeGlzKCk7XHJcbiAgICAgICAgdGhpcy5fc3RhZ2dlckluZGV4ID0gbWFwSW5mby5nZXRTdGFnZ2VySW5kZXgoKTtcclxuICAgICAgICB0aGlzLl9oZXhTaWRlTGVuZ3RoID0gbWFwSW5mby5nZXRIZXhTaWRlTGVuZ3RoKCk7XHJcbiAgICAgICAgdGhpcy5fYW5pbWF0aW9ucyA9IG1hcEluZm8uZ2V0VGlsZUFuaW1hdGlvbnMoKTtcclxuXHJcbiAgICAgICAgLy8gdGlsZXNldHNcclxuICAgICAgICB0aGlzLl90aWxlc2V0cyA9IHRpbGVzZXRzO1xyXG4gICAgICAgIC8vIHRleHR1cmVzXHJcbiAgICAgICAgdGhpcy5fdGV4dHVyZXMgPSB0ZXh0dXJlcztcclxuICAgICAgICAvLyBncmlkIHRleHR1cmVcclxuICAgICAgICB0aGlzLl90ZXhHcmlkcyA9IHRleEdyaWRzO1xyXG5cclxuICAgICAgICAvLyBtYXBJbmZvXHJcbiAgICAgICAgdGhpcy5fbGF5ZXJPcmllbnRhdGlvbiA9IG1hcEluZm8ub3JpZW50YXRpb247XHJcbiAgICAgICAgdGhpcy5fbWFwVGlsZVNpemUgPSBtYXBJbmZvLmdldFRpbGVTaXplKCk7XHJcblxyXG4gICAgICAgIGxldCBtYXB0dyA9IHRoaXMuX21hcFRpbGVTaXplLndpZHRoO1xyXG4gICAgICAgIGxldCBtYXB0aCA9IHRoaXMuX21hcFRpbGVTaXplLmhlaWdodDtcclxuICAgICAgICBsZXQgbGF5ZXJXID0gdGhpcy5fbGF5ZXJTaXplLndpZHRoO1xyXG4gICAgICAgIGxldCBsYXllckggPSB0aGlzLl9sYXllclNpemUuaGVpZ2h0O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fbGF5ZXJPcmllbnRhdGlvbiA9PT0gY2MuVGlsZWRNYXAuT3JpZW50YXRpb24uSEVYKSB7XHJcbiAgICAgICAgICAgIC8vIGhhbmRsZSBoZXggbWFwXHJcbiAgICAgICAgICAgIGNvbnN0IFRpbGVkTWFwID0gY2MuVGlsZWRNYXA7XHJcbiAgICAgICAgICAgIGNvbnN0IFN0YWdnZXJBeGlzID0gVGlsZWRNYXAuU3RhZ2dlckF4aXM7XHJcbiAgICAgICAgICAgIGNvbnN0IFN0YWdnZXJJbmRleCA9IFRpbGVkTWFwLlN0YWdnZXJJbmRleDtcclxuICAgICAgICAgICAgbGV0IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX29kZF9ldmVuID0gKHRoaXMuX3N0YWdnZXJJbmRleCA9PT0gU3RhZ2dlckluZGV4LlNUQUdHRVJJTkRFWF9PREQpID8gMSA6IC0xO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fc3RhZ2dlckF4aXMgPT09IFN0YWdnZXJBeGlzLlNUQUdHRVJBWElTX1gpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZmZYMSA9IChtYXB0dyAtIHRoaXMuX2hleFNpZGVMZW5ndGgpIC8gMjtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZmZZMSA9IDA7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSBtYXB0aCAqIChsYXllckggKyAwLjUpO1xyXG4gICAgICAgICAgICAgICAgd2lkdGggPSAobWFwdHcgKyB0aGlzLl9oZXhTaWRlTGVuZ3RoKSAqIE1hdGguZmxvb3IobGF5ZXJXIC8gMikgKyBtYXB0dyAqIChsYXllclcgJSAyKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZmZYMSA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kaWZmWTEgPSAobWFwdGggLSB0aGlzLl9oZXhTaWRlTGVuZ3RoKSAvIDI7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG1hcHR3ICogKGxheWVyVyArIDAuNSk7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSAobWFwdGggKyB0aGlzLl9oZXhTaWRlTGVuZ3RoKSAqIE1hdGguZmxvb3IobGF5ZXJIIC8gMikgKyBtYXB0aCAqIChsYXllckggJSAyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuc2V0Q29udGVudFNpemUod2lkdGgsIGhlaWdodCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9sYXllck9yaWVudGF0aW9uID09PSBjYy5UaWxlZE1hcC5PcmllbnRhdGlvbi5JU08pIHtcclxuICAgICAgICAgICAgbGV0IHdoID0gbGF5ZXJXICsgbGF5ZXJIO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuc2V0Q29udGVudFNpemUobWFwdHcgKiAwLjUgKiB3aCwgbWFwdGggKiAwLjUgKiB3aCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnNldENvbnRlbnRTaXplKGxheWVyVyAqIG1hcHR3LCBsYXllckggKiBtYXB0aCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBvZmZzZXQgKGFmdGVyIGxheWVyIG9yaWVudGF0aW9uIGlzIHNldCk7XHJcbiAgICAgICAgdGhpcy5fb2Zmc2V0ID0gY2MudjIobGF5ZXJJbmZvLm9mZnNldC54LCAtbGF5ZXJJbmZvLm9mZnNldC55KTtcclxuICAgICAgICB0aGlzLl91c2VBdXRvbWF0aWNWZXJ0ZXhaID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fdmVydGV4WnZhbHVlID0gMDtcclxuICAgICAgICB0aGlzLl9zeW5jQW5jaG9yUG9pbnQoKTtcclxuICAgICAgICB0aGlzLl9wcmVwYXJlVG9SZW5kZXIoKTtcclxuICAgIH0sXHJcbiAgICBfdXBkYXRlQ3VsbGluZygpIHtcclxuICAgICAgICBpZiAoQ0NfRURJVE9SKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlQ3VsbGluZyhmYWxzZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9lbmFibGVDdWxsaW5nKSB7XHJcbiAgICAgICAgICAgIC8vIOatpOWkhOS/ruaUuSDoi6XkuI3kuLrpppbkuKpsYXllciDnm7TmjqXlpI3nlKhmaXJzdExheWVy55qE57uT5p6cXHJcbiAgICAgICAgICAgIC8vIHRoaXMuX2ZpcnN0VG14TGF5ZXLkuI3kuLrnqbrml7Yg6KGo56S65b2T5YmNbGF5ZXLkuI3mmK/pppbkuKpsYXllclxyXG4gICAgICAgICAgICBsZXQgZmlyc3RUbXhMYXllciA9IHRoaXMuX2ZpcnN0VG14TGF5ZXI7XHJcbiAgICAgICAgICAgIGlmICghIWZpcnN0VG14TGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2N1bGxpbmdSZWN0ID0gZmlyc3RUbXhMYXllci5fY3VsbGluZ1JlY3Q7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jdWxsaW5nRGlydHkgPSBmaXJzdFRteExheWVyLl9jYWNoZUN1bGxpbmdEaXJ0eTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDkv67mlLnnu5PmnZ9cclxuXHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5fdXBkYXRlV29ybGRNYXRyaXgoKTtcclxuICAgICAgICAgICAgY2MuTWF0NC5pbnZlcnQoX21hdDRfdGVtcCwgdGhpcy5ub2RlLl93b3JsZE1hdHJpeCk7XHJcbiAgICAgICAgICAgIGxldCByZWN0ID0gY2MudmlzaWJsZVJlY3Q7XHJcbiAgICAgICAgICAgIGxldCBjYW1lcmEgPSBjYy5DYW1lcmEuZmluZENhbWVyYSh0aGlzLm5vZGUpO1xyXG4gICAgICAgICAgICBpZiAoY2FtZXJhKSB7XHJcbiAgICAgICAgICAgICAgICBfdmVjMl90ZW1wLnggPSAwO1xyXG4gICAgICAgICAgICAgICAgX3ZlYzJfdGVtcC55ID0gMDtcclxuICAgICAgICAgICAgICAgIF92ZWMyX3RlbXAyLnggPSBfdmVjMl90ZW1wLnggKyByZWN0LndpZHRoO1xyXG4gICAgICAgICAgICAgICAgX3ZlYzJfdGVtcDIueSA9IF92ZWMyX3RlbXAueSArIHJlY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgY2FtZXJhLmdldFNjcmVlblRvV29ybGRQb2ludChfdmVjMl90ZW1wLCBfdmVjMl90ZW1wKTtcclxuICAgICAgICAgICAgICAgIGNhbWVyYS5nZXRTY3JlZW5Ub1dvcmxkUG9pbnQoX3ZlYzJfdGVtcDIsIF92ZWMyX3RlbXAyKTtcclxuICAgICAgICAgICAgICAgIGNjLlZlYzIudHJhbnNmb3JtTWF0NChfdmVjMl90ZW1wLCBfdmVjMl90ZW1wLCBfbWF0NF90ZW1wKTtcclxuICAgICAgICAgICAgICAgIGNjLlZlYzIudHJhbnNmb3JtTWF0NChfdmVjMl90ZW1wMiwgX3ZlYzJfdGVtcDIsIF9tYXQ0X3RlbXApO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZpZXdQb3J0KF92ZWMyX3RlbXAueCwgX3ZlYzJfdGVtcC55LCBfdmVjMl90ZW1wMi54IC0gX3ZlYzJfdGVtcC54LCBfdmVjMl90ZW1wMi55IC0gX3ZlYzJfdGVtcC55KTtcclxuICAgICAgICAgICAgICAgIC8vIOatpOWkhOS/ruaUuSDoi6XkuLrpppbkuKpsYXllciDnvJPlrZhfY3VsbGluZ0RpcnR544CCXHJcbiAgICAgICAgICAgICAgICAvLyBfY3VsbGluZ0RpcnR55Lya5Zyo5aGr5YWF5riy5p+T5pWw5o2u5ZCO6KKr5pS55Li6ZmFsc2Ug5omA5Lul6ZyA6KaB57yT5a2Y6L+Z6YeM55qE57uT5p6cXHJcbiAgICAgICAgICAgICAgICBpZiAoIWZpcnN0VG14TGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZUN1bGxpbmdEaXJ0eSA9IHRoaXMuX2N1bGxpbmdEaXJ0eTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIOS/ruaUuee7k+adn1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIF90cmF2ZXJzZUFsbEdyaWQgKCkge1xyXG4gICAgICAgIGxldCB0aWxlcyA9IHRoaXMuX3RpbGVzO1xyXG4gICAgICAgIGxldCB0ZXhHcmlkcyA9IHRoaXMuX3RleEdyaWRzO1xyXG4gICAgICAgIGxldCB0aWxlc2V0SW5kZXhBcnIgPSB0aGlzLl90aWxlc2V0SW5kZXhBcnI7XHJcbiAgICAgICAgbGV0IHRpbGVzZXRJbmRleFRvQXJySW5kZXggPSB0aGlzLl90aWxlc2V0SW5kZXhUb0FyckluZGV4ID0ge307XHJcblxyXG4gICAgICAgIGNvbnN0IFRpbGVkTWFwID0gY2MuVGlsZWRNYXA7XHJcbiAgICAgICAgY29uc3QgVGlsZUZsYWcgPSBUaWxlZE1hcC5UaWxlRmxhZztcclxuICAgICAgICBjb25zdCBGTElQUEVEX01BU0sgPSBUaWxlRmxhZy5GTElQUEVEX01BU0s7XHJcblxyXG4gICAgICAgIGxldCBzaW5nbGVUZXh0dXJlID0gdGhpcy5fdGlsZWRNYXAuaXNTaW5nbGVUZXh0dXJlKCk7XHJcblxyXG4gICAgICAgIHRpbGVzZXRJbmRleEFyci5sZW5ndGggPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGdpZCA9IHRpbGVzW2ldO1xyXG4gICAgICAgICAgICBpZiAoZ2lkID09PSAwKSBjb250aW51ZTtcclxuICAgICAgICAgICAgZ2lkID0gKChnaWQgJiBGTElQUEVEX01BU0spID4+PiAwKTtcclxuICAgICAgICAgICAgbGV0IGdyaWQgPSB0ZXhHcmlkc1tnaWRdO1xyXG4gICAgICAgICAgICBpZiAoIWdyaWQpIHtcclxuICAgICAgICAgICAgICAgIGNjLmVycm9yKFwiQ0NUaWxlZExheWVyOl90cmF2ZXJzZUFsbEdyaWQgZ3JpZCBpcyBudWxsLCBnaWQgaXM6XCIsIGdpZCk7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgdGlsZXNldElkeCA9IGdyaWQudGV4SWQ7XHJcbiAgICAgICAgICAgIGlmICh0aWxlc2V0SW5kZXhUb0FyckluZGV4W3RpbGVzZXRJZHhdICE9PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB0aWxlc2V0SW5kZXhUb0FyckluZGV4W3RpbGVzZXRJZHhdID0gdGlsZXNldEluZGV4QXJyLmxlbmd0aDtcclxuICAgICAgICAgICAgdGlsZXNldEluZGV4QXJyLnB1c2godGlsZXNldElkeCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvLyDmraTlpITkv67mlLkg5b2T5Y+q5pyJ5LiA5Liq5Zu+6ZuG5pe2IOWPr+S7peebtOaOpeWBnOatoumBjeWOhlxyXG4gICAgICAgICAgICBpZiAoc2luZ2xlVGV4dHVyZSkge1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufSk7XHJcbiJdfQ== +//# 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/tiledmap-optimize-resource/Script/TmoAssembler.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, '18d1c5ObBtCeaysyO5bMIgb', 'TmoAssembler'); +// Script/TmoAssembler.js + +"use strict"; + +exports.__esModule = true; +exports.TmoAssembler = void 0; +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var gfx = cc.gfx; +// 颜色去除 + 物件图集合批 +var vfmtPosUvIndex = new gfx.VertexFormat([{ + name: gfx.ATTR_POSITION, + type: gfx.ATTR_TYPE_FLOAT32, + num: 2 +}, { + name: gfx.ATTR_UV0, + type: gfx.ATTR_TYPE_FLOAT32, + num: 2 +}, { + name: "a_texture_idx", + type: gfx.ATTR_TYPE_FLOAT32, + num: 1 +}]); + +// 仅物件图集合批 +var vfmtPosUvColorIndex = new gfx.VertexFormat([{ + name: gfx.ATTR_POSITION, + type: gfx.ATTR_TYPE_FLOAT32, + num: 2 +}, { + name: gfx.ATTR_UV0, + type: gfx.ATTR_TYPE_FLOAT32, + num: 2 +}, { + name: "a_texture_idx", + type: gfx.ATTR_TYPE_FLOAT32, + num: 1 +}, { + name: gfx.ATTR_COLOR, + type: gfx.ATTR_TYPE_UINT8, + num: 4, + normalize: true +}]); +var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { + _inheritsLoose(TmoAssembler, _cc$Assembler); + function TmoAssembler() { + return _cc$Assembler.apply(this, arguments) || this; + } + var _proto = TmoAssembler.prototype; + _proto.init = function init(comp) { + _cc$Assembler.prototype.init.call(this, comp); + this._noColor = comp.isNoColor(); + this.updateColor = this._noColor ? undefined : this.updateColorFunc; + this.uvOffset = 2; + this.colorOffset = 5; + this.textureIndexOffset = 4; + this.floatsPerVert = this._noColor ? 5 : 6; + this.indicesCount = 6; + this.verticesCount = 4; + this._renderData = new cc.RenderData(); + this._renderData.init(this); + this.initLocal(); + this.initData(); + }; + _proto.initLocal = function initLocal() { + this._local = []; + this._local.length = 4; + }; + _proto.initData = function initData() { + var data = this._renderData; + data.createFlexData(0, this.verticesCount, this.indicesCount, this.getVfmt()); + + // 填充顶点索引信息 + var indices = data.iDatas[0]; + var count = indices.length / 6; + for (var i = 0, idx = 0; i < count; i++) { + var vertextID = i * 4; + indices[idx++] = vertextID; + indices[idx++] = vertextID + 1; + indices[idx++] = vertextID + 2; + indices[idx++] = vertextID + 1; + indices[idx++] = vertextID + 3; + indices[idx++] = vertextID + 2; + } + }; + _proto.getBuffer = function getBuffer() { + return cc.renderer._handle.getBuffer("mesh", this.getVfmt()); + }; + _proto.getVfmt = function getVfmt() { + return this._noColor ? vfmtPosUvIndex : vfmtPosUvColorIndex; + }; + _proto.updateRenderData = function updateRenderData(sprite) { + this.packToDynamicAtlas(sprite, sprite._spriteFrame); + if (sprite._vertsDirty) { + this.updateUVs(sprite); + this.updateVerts(sprite); + this.updateTextureIdx(sprite); + sprite._vertsDirty = false; + } + } + + /** + * 填充textureIndex数据 + * @param {cc.Sprite} sprite + */; + _proto.updateTextureIdx = function updateTextureIdx(sprite) { + var textureIdx = sprite._textureIdx; + var verts = this._renderData.vDatas[0]; + var verticesCount = this.verticesCount; + var floatsPerVert = this.floatsPerVert; + var textureIndexOffset = this.textureIndexOffset; + for (var i = 0; i < verticesCount; i++) { + var index = i * floatsPerVert + textureIndexOffset; + verts[index] = textureIdx; + } + }; + _proto.updateUVs = function updateUVs(sprite) { + var uv = sprite._spriteFrame.uv; + var uvOffset = this.uvOffset; + var floatsPerVert = this.floatsPerVert; + var verts = this._renderData.vDatas[0]; + for (var i = 0; i < 4; i++) { + var srcOffset = i * 2; + var dstOffset = floatsPerVert * i + uvOffset; + verts[dstOffset] = uv[srcOffset]; + verts[dstOffset + 1] = uv[srcOffset + 1]; + } + }; + _proto.updateVerts = function updateVerts(sprite) { + var node = sprite.node, + cw = node.width, + ch = node.height, + appx = node.anchorX * cw, + appy = node.anchorY * ch, + l, + b, + r, + t; + if (sprite.trim) { + l = -appx; + b = -appy; + r = cw - appx; + t = ch - appy; + } else { + var frame = sprite.spriteFrame, + ow = frame._originalSize.width, + oh = frame._originalSize.height, + rw = frame._rect.width, + rh = frame._rect.height, + offset = frame._offset, + scaleX = cw / ow, + scaleY = ch / oh; + var trimLeft = offset.x + (ow - rw) / 2; + var trimRight = offset.x - (ow - rw) / 2; + var trimBottom = offset.y + (oh - rh) / 2; + var trimTop = offset.y - (oh - rh) / 2; + l = trimLeft * scaleX - appx; + b = trimBottom * scaleY - appy; + r = cw + trimRight * scaleX - appx; + t = ch + trimTop * scaleY - appy; + } + var local = this._local; + local[0] = l; + local[1] = b; + local[2] = r; + local[3] = t; + this.updateWorldVerts(sprite); + }; + _proto.updateColorFunc = function updateColorFunc(comp, color) { + var uintVerts = this._renderData.uintVDatas[0]; + if (!uintVerts) return; + color = color != null ? color : comp.node.color._val; + var floatsPerVert = this.floatsPerVert; + var colorOffset = this.colorOffset; + for (var i = colorOffset, l = uintVerts.length; i < l; i += floatsPerVert) { + uintVerts[i] = color; + } + }; + _proto.updateWorldVerts = function updateWorldVerts(comp) { + if (CC_NATIVERENDERER) { + // 原生平台兼容代码 复制于jsb-engine.js中的cc.Assembler2D.prototype.updateWorldVerts + var local = this._local; + var verts = this._renderData.vDatas[0]; + var vl = local[0], + vr = local[2], + vb = local[1], + vt = local[3]; + var floatsPerVert = this.floatsPerVert; + var vertexOffset = 0; // left bottom + + verts[vertexOffset] = vl; + verts[vertexOffset + 1] = vb; + vertexOffset += floatsPerVert; // right bottom + + verts[vertexOffset] = vr; + verts[vertexOffset + 1] = vb; + vertexOffset += floatsPerVert; // left top + + verts[vertexOffset] = vl; + verts[vertexOffset + 1] = vt; + vertexOffset += floatsPerVert; // right top + + verts[vertexOffset] = vr; + verts[vertexOffset + 1] = vt; + } else { + var _local = this._local; + var _verts = this._renderData.vDatas[0]; + var matrix = comp.node._worldMatrix; + var matrixm = matrix.m, + a = matrixm[0], + b = matrixm[1], + c = matrixm[4], + d = matrixm[5], + tx = matrixm[12], + ty = matrixm[13]; + var _vl = _local[0], + _vr = _local[2], + _vb = _local[1], + _vt = _local[3]; + var _floatsPerVert = this.floatsPerVert; + var _vertexOffset = 0; + var justTranslate = a === 1 && b === 0 && c === 0 && d === 1; + if (justTranslate) { + // left bottom + _verts[_vertexOffset] = _vl + tx; + _verts[_vertexOffset + 1] = _vb + ty; + _vertexOffset += _floatsPerVert; + // right bottom + _verts[_vertexOffset] = _vr + tx; + _verts[_vertexOffset + 1] = _vb + ty; + _vertexOffset += _floatsPerVert; + // left top + _verts[_vertexOffset] = _vl + tx; + _verts[_vertexOffset + 1] = _vt + ty; + _vertexOffset += _floatsPerVert; + // right top + _verts[_vertexOffset] = _vr + tx; + _verts[_vertexOffset + 1] = _vt + ty; + } else { + var al = a * _vl, + ar = a * _vr, + bl = b * _vl, + br = b * _vr, + cb = c * _vb, + ct = c * _vt, + db = d * _vb, + dt = d * _vt; + + // left bottom + _verts[_vertexOffset] = al + cb + tx; + _verts[_vertexOffset + 1] = bl + db + ty; + _vertexOffset += _floatsPerVert; + // right bottom + _verts[_vertexOffset] = ar + cb + tx; + _verts[_vertexOffset + 1] = br + db + ty; + _vertexOffset += _floatsPerVert; + // left top + _verts[_vertexOffset] = al + ct + tx; + _verts[_vertexOffset + 1] = bl + dt + ty; + _vertexOffset += _floatsPerVert; + // right top + _verts[_vertexOffset] = ar + ct + tx; + _verts[_vertexOffset + 1] = br + dt + ty; + } + } + }; + _proto.fillBuffers = function fillBuffers(comp, renderer) { + if (renderer.worldMatDirty) { + this.updateWorldVerts(comp); + } + var renderData = this._renderData; + var vData = renderData.vDatas[0]; + var iData = renderData.iDatas[0]; + var buffer = this.getBuffer(renderer); + var offsetInfo = buffer.request(this.verticesCount, this.indicesCount); + + // buffer data may be realloc, need get reference after request. + + // fill vertices + var vertexOffset = offsetInfo.byteOffset >> 2, + vbuf = buffer._vData; + if (vData.length + vertexOffset > vbuf.length) { + vbuf.set(vData.subarray(0, vbuf.length - vertexOffset), vertexOffset); + } else { + vbuf.set(vData, vertexOffset); + } + + // fill indices + var ibuf = buffer._iData, + indiceOffset = offsetInfo.indiceOffset, + vertexId = offsetInfo.vertexOffset; + for (var i = 0, l = iData.length; i < l; i++) { + ibuf[indiceOffset++] = vertexId + iData[i]; + } + }; + _proto.packToDynamicAtlas = function packToDynamicAtlas(comp, frame) { + if (CC_TEST) return; + if (!frame._original && cc.dynamicAtlasManager && frame._texture.packable) { + var packedFrame = cc.dynamicAtlasManager.insertSpriteFrame(frame); + if (packedFrame) { + frame._setDynamicAtlasFrame(packedFrame); + } + } + var material = comp._materials[0]; + if (!material) return; + if (material.getProperty('texture') !== frame._texture) { + // texture was packed to dynamic atlas, should update uvs + comp._vertsDirty = true; + comp._updateMaterial(); + } + }; + _createClass(TmoAssembler, [{ + key: "verticesFloats", + get: function get() { + return this.verticesCount * this.floatsPerVert; + } + }]); + return TmoAssembler; +}(cc.Assembler); +exports.TmoAssembler = TmoAssembler; + +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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vQXNzZW1ibGVyLmpzIl0sIm5hbWVzIjpbImdmeCIsImNjIiwidmZtdFBvc1V2SW5kZXgiLCJWZXJ0ZXhGb3JtYXQiLCJuYW1lIiwiQVRUUl9QT1NJVElPTiIsInR5cGUiLCJBVFRSX1RZUEVfRkxPQVQzMiIsIm51bSIsIkFUVFJfVVYwIiwidmZtdFBvc1V2Q29sb3JJbmRleCIsIkFUVFJfQ09MT1IiLCJBVFRSX1RZUEVfVUlOVDgiLCJub3JtYWxpemUiLCJUbW9Bc3NlbWJsZXIiLCJfY2MkQXNzZW1ibGVyIiwiX2luaGVyaXRzTG9vc2UiLCJhcHBseSIsImFyZ3VtZW50cyIsIl9wcm90byIsInByb3RvdHlwZSIsImluaXQiLCJjb21wIiwiY2FsbCIsIl9ub0NvbG9yIiwiaXNOb0NvbG9yIiwidXBkYXRlQ29sb3IiLCJ1bmRlZmluZWQiLCJ1cGRhdGVDb2xvckZ1bmMiLCJ1dk9mZnNldCIsImNvbG9yT2Zmc2V0IiwidGV4dHVyZUluZGV4T2Zmc2V0IiwiZmxvYXRzUGVyVmVydCIsImluZGljZXNDb3VudCIsInZlcnRpY2VzQ291bnQiLCJfcmVuZGVyRGF0YSIsIlJlbmRlckRhdGEiLCJpbml0TG9jYWwiLCJpbml0RGF0YSIsIl9sb2NhbCIsImxlbmd0aCIsImRhdGEiLCJjcmVhdGVGbGV4RGF0YSIsImdldFZmbXQiLCJpbmRpY2VzIiwiaURhdGFzIiwiY291bnQiLCJpIiwiaWR4IiwidmVydGV4dElEIiwiZ2V0QnVmZmVyIiwicmVuZGVyZXIiLCJfaGFuZGxlIiwidXBkYXRlUmVuZGVyRGF0YSIsInNwcml0ZSIsInBhY2tUb0R5bmFtaWNBdGxhcyIsIl9zcHJpdGVGcmFtZSIsIl92ZXJ0c0RpcnR5IiwidXBkYXRlVVZzIiwidXBkYXRlVmVydHMiLCJ1cGRhdGVUZXh0dXJlSWR4IiwidGV4dHVyZUlkeCIsIl90ZXh0dXJlSWR4IiwidmVydHMiLCJ2RGF0YXMiLCJpbmRleCIsInV2Iiwic3JjT2Zmc2V0IiwiZHN0T2Zmc2V0Iiwibm9kZSIsImN3Iiwid2lkdGgiLCJjaCIsImhlaWdodCIsImFwcHgiLCJhbmNob3JYIiwiYXBweSIsImFuY2hvclkiLCJsIiwiYiIsInIiLCJ0IiwidHJpbSIsImZyYW1lIiwic3ByaXRlRnJhbWUiLCJvdyIsIl9vcmlnaW5hbFNpemUiLCJvaCIsInJ3IiwiX3JlY3QiLCJyaCIsIm9mZnNldCIsIl9vZmZzZXQiLCJzY2FsZVgiLCJzY2FsZVkiLCJ0cmltTGVmdCIsIngiLCJ0cmltUmlnaHQiLCJ0cmltQm90dG9tIiwieSIsInRyaW1Ub3AiLCJsb2NhbCIsInVwZGF0ZVdvcmxkVmVydHMiLCJjb2xvciIsInVpbnRWZXJ0cyIsInVpbnRWRGF0YXMiLCJfdmFsIiwiQ0NfTkFUSVZFUkVOREVSRVIiLCJ2bCIsInZyIiwidmIiLCJ2dCIsInZlcnRleE9mZnNldCIsIm1hdHJpeCIsIl93b3JsZE1hdHJpeCIsIm1hdHJpeG0iLCJtIiwiYSIsImMiLCJkIiwidHgiLCJ0eSIsImp1c3RUcmFuc2xhdGUiLCJhbCIsImFyIiwiYmwiLCJiciIsImNiIiwiY3QiLCJkYiIsImR0IiwiZmlsbEJ1ZmZlcnMiLCJ3b3JsZE1hdERpcnR5IiwicmVuZGVyRGF0YSIsInZEYXRhIiwiaURhdGEiLCJidWZmZXIiLCJvZmZzZXRJbmZvIiwicmVxdWVzdCIsImJ5dGVPZmZzZXQiLCJ2YnVmIiwiX3ZEYXRhIiwic2V0Iiwic3ViYXJyYXkiLCJpYnVmIiwiX2lEYXRhIiwiaW5kaWNlT2Zmc2V0IiwidmVydGV4SWQiLCJDQ19URVNUIiwiX29yaWdpbmFsIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsIl90ZXh0dXJlIiwicGFja2FibGUiLCJwYWNrZWRGcmFtZSIsImluc2VydFNwcml0ZUZyYW1lIiwiX3NldER5bmFtaWNBdGxhc0ZyYW1lIiwibWF0ZXJpYWwiLCJfbWF0ZXJpYWxzIiwiZ2V0UHJvcGVydHkiLCJfdXBkYXRlTWF0ZXJpYWwiLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJn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QUFDcUosbUJBQW1CLENBQUNJLGlCQUFpQixDQUFDdkUsS0FBSyxDQUFDO01BQ2pFLElBQUlzRSxXQUFXLEVBQUU7UUFDYnRFLEtBQUssQ0FBQ3dFLHFCQUFxQixDQUFDRixXQUFXLENBQUM7TUFDNUM7SUFDSjtJQUNBLElBQUlHLFFBQVEsR0FBR3RJLElBQUksQ0FBQ3VJLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDakMsSUFBSSxDQUFDRCxRQUFRLEVBQUU7SUFFZixJQUFJQSxRQUFRLENBQUNFLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSzNFLEtBQUssQ0FBQ29FLFFBQVEsRUFBRTtNQUNwRDtNQUNBakksSUFBSSxDQUFDbUMsV0FBVyxHQUFHLElBQUk7TUFDdkJuQyxJQUFJLENBQUN5SSxlQUFlLEVBQUU7SUFDMUI7RUFDSixDQUFDO0VBQUFDLFlBQUEsQ0FBQWxKLFlBQUE7SUFBQW1KLEdBQUE7SUFBQUMsR0FBQSxFQXBKRCxTQUFBQSxJQUFBLEVBQXFCO01BQ2pCLE9BQU8sSUFBSSxDQUFDaEksYUFBYSxHQUFHLElBQUksQ0FBQ0YsYUFBYTtJQUNsRDtFQUFDO0VBQUEsT0FBQWxCLFlBQUE7QUFBQSxFQXBJNkJiLEVBQUUsQ0FBQ2tLLFNBQVM7QUFBQUMsT0FBQSxDQUFBdEosWUFBQSxHQUFBQSxZQUFBIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgZ2Z4ID0gY2MuZ2Z4O1xyXG4vLyDpopzoibLljrvpmaQgKyDnianku7blm77pm4blkIjmiblcclxudmFyIHZmbXRQb3NVdkluZGV4ID0gbmV3IGdmeC5WZXJ0ZXhGb3JtYXQoW1xyXG4gICAgeyBuYW1lOiBnZnguQVRUUl9QT1NJVElPTiwgdHlwZTogZ2Z4LkFUVFJfVFlQRV9GTE9BVDMyLCBudW06IDIgfSxcclxuICAgIHsgbmFtZTogZ2Z4LkFUVFJfVVYwLCB0eXBlOiBnZnguQVRUUl9UWVBFX0ZMT0FUMzIsIG51bTogMiB9LFxyXG4gICAgeyBuYW1lOiBcImFfdGV4dHVyZV9pZHhcIiwgdHlwZTogZ2Z4LkFUVFJfVFlQRV9GTE9BVDMyLCBudW06IDEgfSxcclxuXSk7XHJcblxyXG4vLyDku4Xnianku7blm77pm4blkIjmiblcclxudmFyIHZmbXRQb3NVdkNvbG9ySW5kZXggPSBuZXcgZ2Z4LlZlcnRleEZvcm1hdChbXHJcbiAgICB7IG5hbWU6IGdmeC5BVFRSX1BPU0lUSU9OLCB0eXBlOiBnZnguQVRUUl9UWVBFX0ZMT0FUMzIsIG51bTogMiB9LFxyXG4gICAgeyBuYW1lOiBnZnguQVRUUl9VVjAsIHR5cGU6IGdmeC5BVFRSX1RZUEVfRkxPQVQzMiwgbnVtOiAyIH0sXHJcbiAgICB7IG5hbWU6IFwiYV90ZXh0dXJlX2lkeFwiLCB0eXBlOiBnZnguQVRUUl9UWVBFX0ZMT0FUMzIsIG51bTogMSB9LFxyXG4gICAgeyBuYW1lOiBnZnguQVRUUl9DT0xPUiwgdHlwZTogZ2Z4LkFUVFJfVFlQRV9VSU5UOCwgbnVtOiA0LCBub3JtYWxpemU6IHRydWUgfSxcclxuXSk7XHJcblxyXG5leHBvcnQgY2xhc3MgVG1vQXNzZW1ibGVyIGV4dGVuZHMgY2MuQXNzZW1ibGVyIHtcclxuICAgIGluaXQoY29tcCkge1xyXG4gICAgICAgIHN1cGVyLmluaXQoY29tcCk7XHJcblxyXG4gICAgICAgIHRoaXMuX25vQ29sb3IgPSBjb21wLmlzTm9Db2xvcigpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlQ29sb3IgPSB0aGlzLl9ub0NvbG9yID8gdW5kZWZpbmVkIDogdGhpcy51cGRhdGVDb2xvckZ1bmM7XHJcblxyXG4gICAgICAgIHRoaXMudXZPZmZzZXQgPSAyO1xyXG4gICAgICAgIHRoaXMuY29sb3JPZmZzZXQgPSA1O1xyXG4gICAgICAgIHRoaXMudGV4dHVyZUluZGV4T2Zmc2V0ID0gNDtcclxuICAgICAgICB0aGlzLmZsb2F0c1BlclZlcnQgPSB0aGlzLl9ub0NvbG9yID8gNSA6IDY7XHJcblxyXG4gICAgICAgIHRoaXMuaW5kaWNlc0NvdW50ID0gNjtcclxuICAgICAgICB0aGlzLnZlcnRpY2VzQ291bnQgPSA0O1xyXG5cclxuICAgICAgICB0aGlzLl9yZW5kZXJEYXRhID0gbmV3IGNjLlJlbmRlckRhdGEoKTtcclxuICAgICAgICB0aGlzLl9yZW5kZXJEYXRhLmluaXQodGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdExvY2FsKCk7XHJcbiAgICAgICAgdGhpcy5pbml0RGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRMb2NhbCgpIHtcclxuICAgICAgICB0aGlzLl9sb2NhbCA9IFtdO1xyXG4gICAgICAgIHRoaXMuX2xvY2FsLmxlbmd0aCA9IDQ7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdERhdGEoKSB7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB0aGlzLl9yZW5kZXJEYXRhO1xyXG4gICAgICAgIGRhdGEuY3JlYXRlRmxleERhdGEoMCwgdGhpcy52ZXJ0aWNlc0NvdW50LCB0aGlzLmluZGljZXNDb3VudCwgdGhpcy5nZXRWZm10KCkpO1xyXG5cclxuICAgICAgICAvLyDloavlhYXpobbngrnntKLlvJXkv6Hmga9cclxuICAgICAgICBsZXQgaW5kaWNlcyA9IGRhdGEuaURhdGFzWzBdO1xyXG4gICAgICAgIGxldCBjb3VudCA9IGluZGljZXMubGVuZ3RoIC8gNjtcclxuICAgICAgICBmb3IgKGxldCBpID0gMCwgaWR4ID0gMDsgaSA8IGNvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IHZlcnRleHRJRCA9IGkgKiA0O1xyXG4gICAgICAgICAgICBpbmRpY2VzW2lkeCsrXSA9IHZlcnRleHRJRDtcclxuICAgICAgICAgICAgaW5kaWNlc1tpZHgrK10gPSB2ZXJ0ZXh0SUQgKyAxO1xyXG4gICAgICAgICAgICBpbmRpY2VzW2lkeCsrXSA9IHZlcnRleHRJRCArIDI7XHJcbiAgICAgICAgICAgIGluZGljZXNbaWR4KytdID0gdmVydGV4dElEICsgMTtcclxuICAgICAgICAgICAgaW5kaWNlc1tpZHgrK10gPSB2ZXJ0ZXh0SUQgKyAzO1xyXG4gICAgICAgICAgICBpbmRpY2VzW2lkeCsrXSA9IHZlcnRleHRJRCArIDI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldEJ1ZmZlcigpIHtcclxuICAgICAgICByZXR1cm4gY2MucmVuZGVyZXIuX2hhbmRsZS5nZXRCdWZmZXIoXCJtZXNoXCIsIHRoaXMuZ2V0VmZtdCgpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRWZm10KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9ub0NvbG9yID8gdmZtdFBvc1V2SW5kZXggOiB2Zm10UG9zVXZDb2xvckluZGV4O1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVJlbmRlckRhdGEoc3ByaXRlKSB7XHJcbiAgICAgICAgdGhpcy5wYWNrVG9EeW5hbWljQXRsYXMoc3ByaXRlLCBzcHJpdGUuX3Nwcml0ZUZyYW1lKTtcclxuXHJcbiAgICAgICAgaWYgKHNwcml0ZS5fdmVydHNEaXJ0eSkge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVVWcyhzcHJpdGUpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZlcnRzKHNwcml0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVGV4dHVyZUlkeChzcHJpdGUpO1xyXG4gICAgICAgICAgICBzcHJpdGUuX3ZlcnRzRGlydHkgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDloavlhYV0ZXh0dXJlSW5kZXjmlbDmja5cclxuICAgICAqIEBwYXJhbSB7Y2MuU3ByaXRlfSBzcHJpdGUgXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZVRleHR1cmVJZHgoc3ByaXRlKSB7XHJcbiAgICAgICAgbGV0IHRleHR1cmVJZHggPSBzcHJpdGUuX3RleHR1cmVJZHg7XHJcbiAgICAgICAgbGV0IHZlcnRzID0gdGhpcy5fcmVuZGVyRGF0YS52RGF0YXNbMF07XHJcblxyXG4gICAgICAgIGxldCB2ZXJ0aWNlc0NvdW50ID0gdGhpcy52ZXJ0aWNlc0NvdW50O1xyXG4gICAgICAgIGxldCBmbG9hdHNQZXJWZXJ0ID0gdGhpcy5mbG9hdHNQZXJWZXJ0O1xyXG4gICAgICAgIGxldCB0ZXh0dXJlSW5kZXhPZmZzZXQgPSB0aGlzLnRleHR1cmVJbmRleE9mZnNldDtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2ZXJ0aWNlc0NvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGluZGV4ID0gaSAqIGZsb2F0c1BlclZlcnQgKyB0ZXh0dXJlSW5kZXhPZmZzZXQ7XHJcbiAgICAgICAgICAgIHZlcnRzW2luZGV4XSA9IHRleHR1cmVJZHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVVWcyhzcHJpdGUpIHtcclxuICAgICAgICBsZXQgdXYgPSBzcHJpdGUuX3Nwcml0ZUZyYW1lLnV2O1xyXG4gICAgICAgIGxldCB1dk9mZnNldCA9IHRoaXMudXZPZmZzZXQ7XHJcbiAgICAgICAgbGV0IGZsb2F0c1BlclZlcnQgPSB0aGlzLmZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgbGV0IHZlcnRzID0gdGhpcy5fcmVuZGVyRGF0YS52RGF0YXNbMF07XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0OyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IHNyY09mZnNldCA9IGkgKiAyO1xyXG4gICAgICAgICAgICBsZXQgZHN0T2Zmc2V0ID0gZmxvYXRzUGVyVmVydCAqIGkgKyB1dk9mZnNldDtcclxuICAgICAgICAgICAgdmVydHNbZHN0T2Zmc2V0XSA9IHV2W3NyY09mZnNldF07XHJcbiAgICAgICAgICAgIHZlcnRzW2RzdE9mZnNldCArIDFdID0gdXZbc3JjT2Zmc2V0ICsgMV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVZlcnRzKHNwcml0ZSkge1xyXG4gICAgICAgIGxldCBub2RlID0gc3ByaXRlLm5vZGUsXHJcbiAgICAgICAgICAgIGN3ID0gbm9kZS53aWR0aCwgY2ggPSBub2RlLmhlaWdodCxcclxuICAgICAgICAgICAgYXBweCA9IG5vZGUuYW5jaG9yWCAqIGN3LCBhcHB5ID0gbm9kZS5hbmNob3JZICogY2gsXHJcbiAgICAgICAgICAgIGwsIGIsIHIsIHQ7XHJcbiAgICAgICAgaWYgKHNwcml0ZS50cmltKSB7XHJcbiAgICAgICAgICAgIGwgPSAtYXBweDtcclxuICAgICAgICAgICAgYiA9IC1hcHB5O1xyXG4gICAgICAgICAgICByID0gY3cgLSBhcHB4O1xyXG4gICAgICAgICAgICB0ID0gY2ggLSBhcHB5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IGZyYW1lID0gc3ByaXRlLnNwcml0ZUZyYW1lLFxyXG4gICAgICAgICAgICAgICAgb3cgPSBmcmFtZS5fb3JpZ2luYWxTaXplLndpZHRoLCBvaCA9IGZyYW1lLl9vcmlnaW5hbFNpemUuaGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgcncgPSBmcmFtZS5fcmVjdC53aWR0aCwgcmggPSBmcmFtZS5fcmVjdC5oZWlnaHQsXHJcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBmcmFtZS5fb2Zmc2V0LFxyXG4gICAgICAgICAgICAgICAgc2NhbGVYID0gY3cgLyBvdywgc2NhbGVZID0gY2ggLyBvaDtcclxuICAgICAgICAgICAgbGV0IHRyaW1MZWZ0ID0gb2Zmc2V0LnggKyAob3cgLSBydykgLyAyO1xyXG4gICAgICAgICAgICBsZXQgdHJpbVJpZ2h0ID0gb2Zmc2V0LnggLSAob3cgLSBydykgLyAyO1xyXG4gICAgICAgICAgICBsZXQgdHJpbUJvdHRvbSA9IG9mZnNldC55ICsgKG9oIC0gcmgpIC8gMjtcclxuICAgICAgICAgICAgbGV0IHRyaW1Ub3AgPSBvZmZzZXQueSAtIChvaCAtIHJoKSAvIDI7XHJcbiAgICAgICAgICAgIGwgPSB0cmltTGVmdCAqIHNjYWxlWCAtIGFwcHg7XHJcbiAgICAgICAgICAgIGIgPSB0cmltQm90dG9tICogc2NhbGVZIC0gYXBweTtcclxuICAgICAgICAgICAgciA9IGN3ICsgdHJpbVJpZ2h0ICogc2NhbGVYIC0gYXBweDtcclxuICAgICAgICAgICAgdCA9IGNoICsgdHJpbVRvcCAqIHNjYWxlWSAtIGFwcHk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgbG9jYWwgPSB0aGlzLl9sb2NhbDtcclxuICAgICAgICBsb2NhbFswXSA9IGw7XHJcbiAgICAgICAgbG9jYWxbMV0gPSBiO1xyXG4gICAgICAgIGxvY2FsWzJdID0gcjtcclxuICAgICAgICBsb2NhbFszXSA9IHQ7XHJcbiAgICAgICAgdGhpcy51cGRhdGVXb3JsZFZlcnRzKHNwcml0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHZlcnRpY2VzRmxvYXRzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZlcnRpY2VzQ291bnQgKiB0aGlzLmZsb2F0c1BlclZlcnQ7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlQ29sb3JGdW5jKGNvbXAsIGNvbG9yKSB7XHJcbiAgICAgICAgbGV0IHVpbnRWZXJ0cyA9IHRoaXMuX3JlbmRlckRhdGEudWludFZEYXRhc1swXTtcclxuICAgICAgICBpZiAoIXVpbnRWZXJ0cykgcmV0dXJuO1xyXG4gICAgICAgIGNvbG9yID0gY29sb3IgIT0gbnVsbCA/IGNvbG9yIDogY29tcC5ub2RlLmNvbG9yLl92YWw7XHJcbiAgICAgICAgbGV0IGZsb2F0c1BlclZlcnQgPSB0aGlzLmZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgbGV0IGNvbG9yT2Zmc2V0ID0gdGhpcy5jb2xvck9mZnNldDtcclxuICAgICAgICBmb3IgKGxldCBpID0gY29sb3JPZmZzZXQsIGwgPSB1aW50VmVydHMubGVuZ3RoOyBpIDwgbDsgaSArPSBmbG9hdHNQZXJWZXJ0KSB7XHJcbiAgICAgICAgICAgIHVpbnRWZXJ0c1tpXSA9IGNvbG9yO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVXb3JsZFZlcnRzKGNvbXApIHtcclxuICAgICAgICBpZiAoQ0NfTkFUSVZFUkVOREVSRVIpIHtcclxuICAgICAgICAgICAgLy8g5Y6f55Sf5bmz5Y+w5YW85a655Luj56CBIOWkjeWItuS6jmpzYi1lbmdpbmUuanPkuK3nmoRjYy5Bc3NlbWJsZXIyRC5wcm90b3R5cGUudXBkYXRlV29ybGRWZXJ0c1xyXG4gICAgICAgICAgICB2YXIgbG9jYWwgPSB0aGlzLl9sb2NhbDtcclxuICAgICAgICAgICAgdmFyIHZlcnRzID0gdGhpcy5fcmVuZGVyRGF0YS52RGF0YXNbMF07XHJcbiAgICAgICAgICAgIHZhciB2bCA9IGxvY2FsWzBdLFxyXG4gICAgICAgICAgICAgICAgdnIgPSBsb2NhbFsyXSxcclxuICAgICAgICAgICAgICAgIHZiID0gbG9jYWxbMV0sXHJcbiAgICAgICAgICAgICAgICB2dCA9IGxvY2FsWzNdO1xyXG4gICAgICAgICAgICB2YXIgZmxvYXRzUGVyVmVydCA9IHRoaXMuZmxvYXRzUGVyVmVydDtcclxuICAgICAgICAgICAgdmFyIHZlcnRleE9mZnNldCA9IDA7IC8vIGxlZnQgYm90dG9tXHJcblxyXG4gICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXRdID0gdmw7XHJcbiAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gdmI7XHJcbiAgICAgICAgICAgIHZlcnRleE9mZnNldCArPSBmbG9hdHNQZXJWZXJ0OyAvLyByaWdodCBib3R0b21cclxuXHJcbiAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2cjtcclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2YjtcclxuICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7IC8vIGxlZnQgdG9wXHJcblxyXG4gICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXRdID0gdmw7XHJcbiAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gdnQ7XHJcbiAgICAgICAgICAgIHZlcnRleE9mZnNldCArPSBmbG9hdHNQZXJWZXJ0OyAvLyByaWdodCB0b3BcclxuXHJcbiAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2cjtcclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2dDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgbG9jYWwgPSB0aGlzLl9sb2NhbDtcclxuICAgICAgICAgICAgbGV0IHZlcnRzID0gdGhpcy5fcmVuZGVyRGF0YS52RGF0YXNbMF07XHJcblxyXG4gICAgICAgICAgICBsZXQgbWF0cml4ID0gY29tcC5ub2RlLl93b3JsZE1hdHJpeDtcclxuICAgICAgICAgICAgbGV0IG1hdHJpeG0gPSBtYXRyaXgubSxcclxuICAgICAgICAgICAgICAgIGEgPSBtYXRyaXhtWzBdLCBiID0gbWF0cml4bVsxXSwgYyA9IG1hdHJpeG1bNF0sIGQgPSBtYXRyaXhtWzVdLFxyXG4gICAgICAgICAgICAgICAgdHggPSBtYXRyaXhtWzEyXSwgdHkgPSBtYXRyaXhtWzEzXTtcclxuXHJcbiAgICAgICAgICAgIGxldCB2bCA9IGxvY2FsWzBdLCB2ciA9IGxvY2FsWzJdLFxyXG4gICAgICAgICAgICAgICAgdmIgPSBsb2NhbFsxXSwgdnQgPSBsb2NhbFszXTtcclxuXHJcbiAgICAgICAgICAgIGxldCBmbG9hdHNQZXJWZXJ0ID0gdGhpcy5mbG9hdHNQZXJWZXJ0O1xyXG4gICAgICAgICAgICBsZXQgdmVydGV4T2Zmc2V0ID0gMDtcclxuICAgICAgICAgICAgbGV0IGp1c3RUcmFuc2xhdGUgPSBhID09PSAxICYmIGIgPT09IDAgJiYgYyA9PT0gMCAmJiBkID09PSAxO1xyXG5cclxuICAgICAgICAgICAgaWYgKGp1c3RUcmFuc2xhdGUpIHtcclxuICAgICAgICAgICAgICAgIC8vIGxlZnQgYm90dG9tXHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXRdID0gdmwgKyB0eDtcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gdmIgKyB0eTtcclxuICAgICAgICAgICAgICAgIHZlcnRleE9mZnNldCArPSBmbG9hdHNQZXJWZXJ0O1xyXG4gICAgICAgICAgICAgICAgLy8gcmlnaHQgYm90dG9tXHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXRdID0gdnIgKyB0eDtcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gdmIgKyB0eTtcclxuICAgICAgICAgICAgICAgIHZlcnRleE9mZnNldCArPSBmbG9hdHNQZXJWZXJ0O1xyXG4gICAgICAgICAgICAgICAgLy8gbGVmdCB0b3BcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2bCArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2dCArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyByaWdodCB0b3BcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2ciArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2dCArIHR5O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IGFsID0gYSAqIHZsLCBhciA9IGEgKiB2cixcclxuICAgICAgICAgICAgICAgICAgICBibCA9IGIgKiB2bCwgYnIgPSBiICogdnIsXHJcbiAgICAgICAgICAgICAgICAgICAgY2IgPSBjICogdmIsIGN0ID0gYyAqIHZ0LFxyXG4gICAgICAgICAgICAgICAgICAgIGRiID0gZCAqIHZiLCBkdCA9IGQgKiB2dDtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBsZWZ0IGJvdHRvbVxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IGFsICsgY2IgKyB0eDtcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gYmwgKyBkYiArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyByaWdodCBib3R0b21cclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSBhciArIGNiICsgdHg7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IGJyICsgZGIgKyB0eTtcclxuICAgICAgICAgICAgICAgIHZlcnRleE9mZnNldCArPSBmbG9hdHNQZXJWZXJ0O1xyXG4gICAgICAgICAgICAgICAgLy8gbGVmdCB0b3BcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSBhbCArIGN0ICsgdHg7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IGJsICsgZHQgKyB0eTtcclxuICAgICAgICAgICAgICAgIHZlcnRleE9mZnNldCArPSBmbG9hdHNQZXJWZXJ0O1xyXG4gICAgICAgICAgICAgICAgLy8gcmlnaHQgdG9wXHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXRdID0gYXIgKyBjdCArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSBiciArIGR0ICsgdHk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZmlsbEJ1ZmZlcnMoY29tcCwgcmVuZGVyZXIpIHtcclxuICAgICAgICBpZiAocmVuZGVyZXIud29ybGRNYXREaXJ0eSkge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVdvcmxkVmVydHMoY29tcCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgcmVuZGVyRGF0YSA9IHRoaXMuX3JlbmRlckRhdGE7XHJcbiAgICAgICAgbGV0IHZEYXRhID0gcmVuZGVyRGF0YS52RGF0YXNbMF07XHJcbiAgICAgICAgbGV0IGlEYXRhID0gcmVuZGVyRGF0YS5pRGF0YXNbMF07XHJcblxyXG4gICAgICAgIGxldCBidWZmZXIgPSB0aGlzLmdldEJ1ZmZlcihyZW5kZXJlcik7XHJcbiAgICAgICAgbGV0IG9mZnNldEluZm8gPSBidWZmZXIucmVxdWVzdCh0aGlzLnZlcnRpY2VzQ291bnQsIHRoaXMuaW5kaWNlc0NvdW50KTtcclxuXHJcbiAgICAgICAgLy8gYnVmZmVyIGRhdGEgbWF5IGJlIHJlYWxsb2MsIG5lZWQgZ2V0IHJlZmVyZW5jZSBhZnRlciByZXF1ZXN0LlxyXG5cclxuICAgICAgICAvLyBmaWxsIHZlcnRpY2VzXHJcbiAgICAgICAgbGV0IHZlcnRleE9mZnNldCA9IG9mZnNldEluZm8uYnl0ZU9mZnNldCA+PiAyLFxyXG4gICAgICAgICAgICB2YnVmID0gYnVmZmVyLl92RGF0YTtcclxuXHJcbiAgICAgICAgaWYgKHZEYXRhLmxlbmd0aCArIHZlcnRleE9mZnNldCA+IHZidWYubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHZidWYuc2V0KHZEYXRhLnN1YmFycmF5KDAsIHZidWYubGVuZ3RoIC0gdmVydGV4T2Zmc2V0KSwgdmVydGV4T2Zmc2V0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB2YnVmLnNldCh2RGF0YSwgdmVydGV4T2Zmc2V0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGZpbGwgaW5kaWNlc1xyXG4gICAgICAgIGxldCBpYnVmID0gYnVmZmVyLl9pRGF0YSxcclxuICAgICAgICAgICAgaW5kaWNlT2Zmc2V0ID0gb2Zmc2V0SW5mby5pbmRpY2VPZmZzZXQsXHJcbiAgICAgICAgICAgIHZlcnRleElkID0gb2Zmc2V0SW5mby52ZXJ0ZXhPZmZzZXQ7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBpRGF0YS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcclxuICAgICAgICAgICAgaWJ1ZltpbmRpY2VPZmZzZXQrK10gPSB2ZXJ0ZXhJZCArIGlEYXRhW2ldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwYWNrVG9EeW5hbWljQXRsYXMoY29tcCwgZnJhbWUpIHtcclxuICAgICAgICBpZiAoQ0NfVEVTVCkgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAoIWZyYW1lLl9vcmlnaW5hbCAmJiBjYy5keW5hbWljQXRsYXNNYW5hZ2VyICYmIGZyYW1lLl90ZXh0dXJlLnBhY2thYmxlKSB7XHJcbiAgICAgICAgICAgIGxldCBwYWNrZWRGcmFtZSA9IGNjLmR5bmFtaWNBdGxhc01hbmFnZXIuaW5zZXJ0U3ByaXRlRnJhbWUoZnJhbWUpO1xyXG4gICAgICAgICAgICBpZiAocGFja2VkRnJhbWUpIHtcclxuICAgICAgICAgICAgICAgIGZyYW1lLl9zZXREeW5hbWljQXRsYXNGcmFtZShwYWNrZWRGcmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG1hdGVyaWFsID0gY29tcC5fbWF0ZXJpYWxzWzBdO1xyXG4gICAgICAgIGlmICghbWF0ZXJpYWwpIHJldHVybjtcclxuXHJcbiAgICAgICAgaWYgKG1hdGVyaWFsLmdldFByb3BlcnR5KCd0ZXh0dXJlJykgIT09IGZyYW1lLl90ZXh0dXJlKSB7XHJcbiAgICAgICAgICAgIC8vIHRleHR1cmUgd2FzIHBhY2tlZCB0byBkeW5hbWljIGF0bGFzLCBzaG91bGQgdXBkYXRlIHV2c1xyXG4gICAgICAgICAgICBjb21wLl92ZXJ0c0RpcnR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgY29tcC5fdXBkYXRlTWF0ZXJpYWwoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0= //------QC-SOURCE-SPLIT------ (function() { @@ -17996,9 +18147,7 @@ cc._RF.push(module, '0b9eetmSUdJRZCQS91TYCw/', 'TmoTiledMap'); // 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: { @@ -18012,7 +18161,6 @@ cc.Class({ cc.error("TiledmapOptimize: 未设置objectMaterial!"); return; } - this._super(); }, _buildLayerAndGroup: function _buildLayerAndGroup() { @@ -18020,32 +18168,25 @@ cc.Class({ 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 = []; @@ -18057,49 +18198,40 @@ cc.Class({ 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; + // 修改结束 - 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; @@ -18107,11 +18239,9 @@ cc.Class({ 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; @@ -18119,33 +18249,26 @@ cc.Class({ child.height = texture.height; images.push(child); } - maxWidth = Math.max(maxWidth, child.width); maxHeight = Math.max(maxHeight, child.height); } - } // 设置材质的texture属性 - + } + // 设置材质的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() { @@ -18173,255 +18296,5 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vVGlsZWRNYXAuanMiXSwibmFtZXMiOlsiVG1vVGlsZWRMYXllciIsInJlcXVpcmUiLCJUbW9PYmplY3RHcm91cCIsImNjIiwiQ2xhc3MiLCJUaWxlZE1hcCIsInByb3BlcnRpZXMiLCJvYmplY3RNYXRlcmlhbCIsIk1hdGVyaWFsIiwibm9Db2xvciIsInNpbmdsZVRleHR1cmUiLCJfb2JqZWN0VGV4dHVyZXMiLCJfYXBwbHlGaWxlIiwiZXJyb3IiLCJfc3VwZXIiLCJfYnVpbGRMYXllckFuZEdyb3VwIiwidGlsZXNldHMiLCJfdGlsZXNldHMiLCJ0ZXhHcmlkcyIsIl90ZXhHcmlkcyIsImFuaW1hdGlvbnMiLCJfYW5pbWF0aW9ucyIsImxlbmd0aCIsImkiLCJsIiwidGlsZXNldEluZm8iLCJmaWxsVGV4dHVyZUdyaWRzIiwiX2ZpbGxBbmlHcmlkcyIsImxheWVycyIsIl9sYXllcnMiLCJncm91cHMiLCJfZ3JvdXBzIiwiaW1hZ2VzIiwiX2ltYWdlcyIsIm9sZE5vZGVOYW1lcyIsIm4iLCJub2RlIiwiX25hbWUiLCJtYXBJbmZvIiwiX21hcEluZm8iLCJsYXllckluZm9zIiwiZ2V0QWxsQ2hpbGRyZW4iLCJ0ZXh0dXJlcyIsIl90ZXh0dXJlcyIsIm1heFdpZHRoIiwibWF4SGVpZ2h0IiwiZmlyc3RUbXhMYXllciIsImxlbiIsImxheWVySW5mbyIsIm5hbWUiLCJjaGlsZCIsImdldENoaWxkQnlOYW1lIiwiTm9kZSIsImFkZENoaWxkIiwic2V0U2libGluZ0luZGV4IiwiYWN0aXZlIiwidmlzaWJsZSIsIlRNWExheWVySW5mbyIsImxheWVyIiwiZ2V0Q29tcG9uZW50IiwiYWRkQ29tcG9uZW50IiwiX2luaXQiLCJvd25UaWxlcyIsInB1c2giLCJUTVhPYmplY3RHcm91cEluZm8iLCJncm91cCIsIlRNWEltYWdlTGF5ZXJJbmZvIiwidGV4dHVyZSIsInNvdXJjZUltYWdlIiwib3BhY2l0eSIsIl9vZmZzZXQiLCJ2MiIsIm9mZnNldCIsIngiLCJ5IiwiaW1hZ2UiLCJTcHJpdGUiLCJzcGYiLCJzcHJpdGVGcmFtZSIsIlNwcml0ZUZyYW1lIiwic2V0VGV4dHVyZSIsIndpZHRoIiwiaGVpZ2h0IiwiTWF0aCIsIm1heCIsIm9iamVjdFRleHR1cmVzIiwiaWR4Iiwic2V0UHJvcGVydHkiLCJjaGlsZHJlbiIsImMiLCJkZXN0cm95IiwiX3N5bmNBbmNob3JQb2ludCIsImdldE9iamVjdE1hdGVyaWFsIiwiaXNOb0NvbG9yIiwiaXNTaW5nbGVUZXh0dXJlIiwiZ2V0T2JqZWN0VGV4dHVyZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUEsYUFBYSxHQUFHQyxPQUFPLENBQUMsaUJBQUQsQ0FBN0I7O0FBQ0EsSUFBTUMsY0FBYyxHQUFHRCxPQUFPLENBQUMsa0JBQUQsQ0FBOUI7O0FBQ0FFLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ0wsYUFBU0QsRUFBRSxDQUFDRSxRQURQO0FBRUxDLEVBQUFBLFVBQVUsRUFBRTtBQUNSQyxJQUFBQSxjQUFjLEVBQUVKLEVBQUUsQ0FBQ0ssUUFEWDtBQUVSQyxJQUFBQSxPQUFPLEVBQUUsSUFGRDtBQUdSQyxJQUFBQSxhQUFhLEVBQUUsSUFIUDtBQUtSQyxJQUFBQSxlQUFlLEVBQUU7QUFMVCxHQUZQO0FBV0xDLEVBQUFBLFVBQVUsRUFBRSxzQkFBWTtBQUNwQixRQUFJLENBQUMsS0FBS0wsY0FBVixFQUEwQjtBQUN0QkosTUFBQUEsRUFBRSxDQUFDVSxLQUFILENBQVMsc0NBQVQ7QUFDQTtBQUNIOztBQUVELFNBQUtDLE1BQUw7QUFDSCxHQWxCSTtBQW9CTEMsRUFBQUEsbUJBQW1CLEVBQUUsK0JBQVk7QUFDN0IsUUFBSUMsUUFBUSxHQUFHLEtBQUtDLFNBQXBCO0FBQ0EsUUFBSUMsUUFBUSxHQUFHLEtBQUtDLFNBQXBCO0FBQ0EsUUFBSUMsVUFBVSxHQUFHLEtB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SDtBQUNKOztBQUVELFNBQUt0RCxJQUFMLENBQVU2QyxLQUFWLEdBQWtCckMsUUFBbEI7QUFDQSxTQUFLUixJQUFMLENBQVU4QyxNQUFWLEdBQW1CckMsU0FBbkI7O0FBQ0EsU0FBSzhDLGdCQUFMO0FBQ0gsR0FqSkk7QUFtSkxDLEVBQUFBLGlCQUFpQixFQUFFLDZCQUFZO0FBQzNCLFdBQU8sS0FBS3JGLGNBQVo7QUFDSCxHQXJKSTtBQXVKTHNGLEVBQUFBLFNBQVMsRUFBRSxxQkFBWTtBQUNuQixXQUFPLEtBQUtwRixPQUFaO0FBQ0gsR0F6Skk7QUEySkxxRixFQUFBQSxlQUFlLEVBQUUsMkJBQVk7QUFDekIsV0FBTyxLQUFLcEYsYUFBWjtBQUNILEdBN0pJO0FBK0pMcUYsRUFBQUEsaUJBQWlCLEVBQUUsNkJBQVk7QUFDM0IsV0FBTyxLQUFLcEYsZUFBWjtBQUNIO0FBaktJLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5jb25zdCBUbW9UaWxlZExheWVyID0gcmVxdWlyZShcIi4vVG1vVGlsZWRMYXllclwiKTtcclxuY29uc3QgVG1vT2JqZWN0R3JvdXAgPSByZXF1aXJlKFwiLi9UbW9PYmplY3RHcm91cFwiKTtcclxuY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuVGlsZWRNYXAsXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgICAgb2JqZWN0TWF0ZXJpYWw6IGNjLk1hdGVyaWFsLFxyXG4gICAgICAgIG5vQ29sb3I6IHRydWUsXHJcbiAgICAgICAgc2luZ2xlVGV4dHVyZTogdHJ1ZSxcclxuXHJcbiAgICAgICAgX29iamVjdFRleHR1cmVzOiBbXSxcclxuICAgIH0sXHJcbiAgICBcclxuXHJcbiAgICBfYXBwbHlGaWxlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm9iamVjdE1hdGVyaWFsKSB7XHJcbiAgICAgICAgICAgIGNjLmVycm9yKFwiVGlsZWRtYXBPcHRpbWl6ZTog5pyq6K6+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/tiledmap-optimize-resource/Script/TmoObjectGroup.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, '30e2eSQWDNKI69FbaYfN62j', 'TmoObjectGroup'); -// Script/TmoObjectGroup.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 -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; - } - - 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; - } - } - - 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(); - } - 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vT2JqZWN0R3JvdXAuanMiXSwibmFtZXMiOlsiVG1vU3ByaXRlIiwicmVxdWlyZSIsImNjIiwiQ2xhc3MiLCJUaWxlZE9iamVjdEdyb3VwIiwiX2luaXQiLCJncm91cEluZm8iLCJtYXBJbmZvIiwidGV4R3JpZHMiLCJ0aWxlZE1hcCIsIlRpbGVkTWFwIiwiVE1YT2JqZWN0VHlwZSIsIk9yaWVudGF0aW9uIiwiU3RhZ2dlckF4aXMiLCJUaWxlRmxhZyIsIkZMSVBQRURfTUFTSyIsIkZMQUdfSE9SSVpPTlRBTCIsIkhPUklaT05UQUwiLCJGTEFHX1ZFUlRJQ0FMIiwiVkVSVElDQUwiLCJfZ3JvdXBOYW1lIiwibmFtZSIsIl9wb3NpdGlvbk9mZnNldCIsIm9mZnNldCIsIl9tYXBJbmZvIiwiX3Byb3BlcnRpZXMiLCJnZXRQcm9wZXJ0aWVzIiwiX29mZnNldCIsInYyIiwieCIsInkiLCJfb3BhY2l0eSIsIm1hcFNpemUiLCJfbWFwU2l6ZSIsInRpbGVTaXplIiwiX3RpbGVTaXplIiwid2lkdGgiLCJoZWlnaHQiLCJvcmllbnRhdGlvbiIsIkhFWCIsImdldFN0YWdnZXJBeGlzIiwiU1RBR0dFUkFYSVNfWCIsImdldEhleFNpZGVMZW5ndGgiLCJNYXRoIiwiZmxvb3IiLCJJU08iLCJ3aCIsIm5vZGUiLCJzZXRDb250ZW50U2l6ZSIsImxlZnRUb3BYIiwiYW5jaG9yWCIsImxlZnRUb3BZIiwiYW5jaG9yWSIsIm9iamVjdHMiLCJfb2JqZWN0cyIsImFsaXZlTm9kZXMiLCJ0ZXh0dXJlSW5kZXhNYXAiLCJNYXAiLCJvYmplY3RUZXh0dXJlcyIsImdldE9iamVjdFRleHR1cmVzIiwiZm9yRWFjaCIsInRleHR1cmUiLCJpZHgiLCJzZXQiLCJpIiwibCIsImxlbmd0aCIsIm9iamVjdCIsIm9ialR5cGUiLCJ0eXBlIiwicG9pbnRzIiwicG9seWxpbmVQb2ludHMiLCJwaSIsInBvc0lkeFgiLCJwb3NJZHhZIiwiVEVYVCIsInRleHROYW1lIiwiaWQiLCJ0ZXh0Tm9kZSIsImdldENoaWxkQnlOYW1lIiwiTm9kZSIsImFjdGl2ZSIsInZpc2libGUiLCJhbmdsZSIsInJvdGF0aW9uIiwicGFyZW50IiwiY29sb3IiLCJvcGFjaXR5Iiwic2V0U2libGluZ0luZGV4IiwibGFiZWwiLCJnZXRDb21wb25lbnQiLCJMYWJlbCIsImFkZENvbXBvbmVudCIsIm92ZXJmbG93IiwiT3ZlcmZsb3ciLCJTSFJJTksiLCJsaW5lSGVpZ2h0Iiwic3RyaW5nIiwidGV4dCIsImhvcml6b250YWxBbGlnbiIsImhhbGlnbiIsInZlcnRpY2FsQWxpZ24iLCJ2YWxpZ24iLCJmb250U2l6ZSIsInBpeGVsc2l6ZSIsIklNQUdFIiwiZ2lkIiwiZ3JpZCIsInRpbGVzZXQiLCJpbWdOYW1lIiwiaW1nTm9kZSIsImltZ1dpZHRoIiwiaW1nSGVpZ2h0IiwidGlsZU9mZnNldFgiLCJ0aWxlT2Zmc2V0IiwidGlsZU9mZnNldFkiLCJQcml2YXRlTm9kZSIsInJlbW92ZUZyb21QYXJlbnQiLCJkZXN0cm95IiwiX3RpbGVkTWFwIiwic3AiLCJzcGYiLCJzcHJpdGVGcmFtZSIsIlNwcml0ZUZyYW1lIiwic2V0RmxpcFgiLCJzZXRGbGlwWSIsInNvdXJjZUltYWdlIiwic2V0VGV4dHVyZSIsInJlY3QiLCJzZXRWZXJ0c0RpcnR5IiwiaGFzIiwicHVzaCIsInRleHR1cmVJbmRleCIsImdldCIsInNldFRleHR1cmVJZHgiLCJjaGlsZHJlbiIsInVzZWxlc3NFeHAiLCJuIiwiYyIsImNOYW1lIiwiX25hbWUiLCJpc1VzZWxlc3MiLCJ0ZXN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQU1BLFNBQVMsR0FBR0MsT0FBTyxDQUFDLGFBQUQsQ0FBekI7O2VBRWVDLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ3BCLGFBQVNELEVBQUUsQ0FBQ0UsZ0JBRFE7QUFH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QyxFQUFpRDtBQUM3QyxVQUFJMEUsQ0FBQyxHQUFHSCxRQUFRLENBQUN2RSxFQUFELENBQWhCO0FBQ0EsVUFBSTJFLEtBQUssR0FBR0QsQ0FBQyxDQUFDRSxLQUFkO0FBQ0EsVUFBSUMsU0FBUyxHQUFHTCxVQUFVLENBQUNNLElBQVgsQ0FBZ0JILEtBQWhCLENBQWhCO0FBQ0EsVUFBSUUsU0FBUyxJQUFJLENBQUN0RixVQUFVLENBQUNvRixLQUFELENBQTVCLEVBQXFDRCxDQUFDLENBQUNwQixPQUFGO0FBQ3hDO0FBRUo7QUEvTW1CLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuY29uc3QgVG1vU3ByaXRlID0gcmVxdWlyZShcIi4vVG1vU3ByaXRlXCIpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuVGlsZWRPYmplY3RHcm91cCxcclxuXHJcbiAgICBfaW5pdChncm91cEluZm8sIG1hcEluZm8sIHRleEdyaWRzLCB0aWxlZE1hcCkge1xyXG4gICAgICAgIGNvbnN0IFRpbGVkTWFwID0gY2MuVGlsZWRNYXA7XHJcbiAgICAgICAgY29uc3QgVE1YT2JqZWN0VHlwZSA9IFRpbGVkTWFwLlRNWE9iamVjdFR5cGU7XHJcbiAgICAgICAgY29uc3QgT3JpZW50YXRpb24gPSBUaWxlZE1hcC5PcmllbnRhdGlvbjtcclxuICAgICAgICBjb25zdCBTdGFnZ2VyQXhpcyA9IFRpbGVkTWFwLlN0YWdnZXJBeGlzO1xyXG4gICAgICAgIGNvbnN0IFRpbGVGbGFnID0gVGlsZWRNYXAuVGlsZUZsYWc7XHJcbiAgICAgICAgY29uc3QgRkxJUFBFRF9NQVNLID0gVGlsZUZsYWcuRkxJUFBFRF9NQVNLO1xyXG4gICAgICAgIGNvbnN0IEZMQUdfSE9SSVpPTlRBTCA9IFRpbGVGbGFnLkhPUklaT05UQUw7XHJcbiAgICAgICAgY29uc3QgRkxBR19WRVJUSUNBTCA9IFRpbGVGbGFnLlZFUlRJQ0FMO1xyXG5cclxuICAgICAgICB0aGlzLl9ncm91cE5hbWUgPSBncm91cEluZm8ubmFtZTtcclxuICAgICAgICB0aGlzLl9wb3NpdGlvbk9mZnNldCA9IGdyb3VwSW5mby5vZmZzZXQ7XHJcbiAgICAgICAgdGhpcy5fbWFwSW5mbyA9IG1hcEluZm87XHJcbiAgICAgICAgdGhpcy5fcHJvcGVydGllcyA9IGdyb3VwSW5mby5nZXRQcm9wZXJ0aWVzKCk7XHJcbiAgICAgICAgdGhpcy5fb2Zmc2V0ID0gY2MudjIoZ3JvdXBJbmZvLm9mZnNldC54LCAtZ3JvdXBJbmZvLm9mZnNldC55KTtcclxuICAgICAgICB0aGlzLl9vcGFjaXR5ID0gZ3JvdXBJbmZvLl9vcGFjaXR5O1xyXG5cclxuICAgICAgICBsZXQgbWFwU2l6ZSA9IG1hcEluZm8uX21hcFNpemU7XHJcbiAgICAgICAgbGV0IHRpbGVTaXplID0gbWFwSW5mby5fdGlsZVNpemU7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDtcclxuICAgICAgICBpZiAobWFwSW5mby5vcmllbnRhdGlvbiA9PT0gT3JpZW50YXRpb24uSEVYKSB7XHJcbiAgICAgICAgICAgIGlmIChtYXBJbmZvLmdldFN0YWdnZXJBeGlzKCkgPT09IFN0YWdnZXJBeGlzLlNUQUdHRVJBWElTX1gpIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IHRpbGVTaXplLmhlaWdodCAqIChtYXBTaXplLmhlaWdodCArIDAuNSk7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA9ICh0aWxlU2l6ZS53aWR0aCArIG1hcEluZm8uZ2V0SGV4U2lkZUxlbmd0aCgpKSAqIE1hdGguZmxvb3IobWFwU2l6ZS53aWR0aCAvIDIpICsgdGlsZVNpemUud2lkdGggKiAobWFwU2l6ZS53aWR0aCAlIDIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgd2lkdGggPSB0aWxlU2l6ZS53aWR0aCAqIChtYXBTaXplLndpZHRoICsgMC41KTtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9ICh0aWxlU2l6ZS5oZWlnaHQgKyBtYXBJbmZvLmdldEhleFNpZGVMZW5ndGgoKSkgKiBNYXRoLmZsb29yKG1hcFNpemUuaGVpZ2h0IC8gMikgKyB0aWxlU2l6ZS5oZWlnaHQgKiAobWFwU2l6ZS5oZWlnaHQgJSAyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAobWFwSW5mby5vcmllbnRhdGlvbiA9PT0gT3JpZW50YXRpb24uSVNPKSB7XHJcbiAgICAgICAgICAgIGxldCB3aCA9IG1hcFNpemUud2lkdGggKyBtYXBTaXplLmhlaWdodDtcclxuICAgICAgICAgICAgd2lkdGggPSB0aWxlU2l6ZS53aWR0aCAqIDAuNSAqIHdoO1xyXG4gICAgICAgICAgICBoZWlnaHQgPSB0aWxlU2l6ZS5oZWlnaHQgKiAwLjUgKiB3aDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB3aWR0aCA9IG1hcFNpemUud2lkdGggKiB0aWxlU2l6ZS53aWR0aDtcclxuICAgICAgICAgICAgaGVpZ2h0ID0gbWFwU2l6ZS5oZWlnaHQgKiB0aWxlU2l6ZS5oZWlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5zZXRDb250ZW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgbGV0IGxlZnRUb3BYID0gd2lkdGggKiB0aGlzLm5vZGUuYW5jaG9yWDtcclxuICAgICAgICBsZXQgbGVmdFRvcFkgPSBoZWlnaHQgKiAoMSAtIHRoaXMubm9kZS5hbmNob3JZKTtcclxuXHJcbiAgICAgICAgbGV0IG9iamVjdHMgPSBncm91cEluZm8uX29iamVjdHM7XHJcbiAgICAgICAgbGV0IGFsaXZlTm9kZXMgPSB7fTtcclxuXHJcbiAgICAgICAgLy8g55Sf5oiQ5pig5bCETWFwICAgeyBUZXh0dXJlMkQ6IHRleHR1cmVJbmRleCB9XHJcbiAgICAgICAgbGV0IHRleHR1cmVJbmRleE1hcCA9IG5ldyBNYXAoKTtcclxuICAgICAgICBsZXQgb2JqZWN0VGV4dHVyZXMgPSB0aWxlZE1hcC5nZXRPYmplY3RUZXh0dXJlcygpO1xyXG4gICAgICAgIG9iamVjdFRleHR1cmVzLmZvckVhY2goKHRleHR1cmUsIGlkeCkgPT4gdGV4dHVyZUluZGV4TWFwLnNldCh0ZXh0dXJlLCBpZHgpKTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBvYmplY3RzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgb2JqZWN0ID0gb2JqZWN0c1tpXTtcclxuICAgICAgICAgICAgbGV0IG9ialR5cGUgPSBvYmplY3QudHlwZTtcclxuICAgICAgICAgICAgb2JqZWN0Lm9mZnNldCA9IGNjLnYyKG9iamVjdC54LCBvYmplY3QueSk7XHJcblxyXG4gICAgICAgICAgICBsZXQgcG9pbnRzID0gb2JqZWN0LnBvaW50cyB8fCBvYmplY3QucG9seWxpbmVQb2ludHM7XHJcbiAgICAgICAgICAgIGlmIChwb2ludHMpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IHBpID0gMDsgcGkgPCBwb2ludHMubGVuZ3RoOyBwaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRzW3BpXS55ICo9IC0xO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoT3JpZW50YXRpb24uSVNPICE9PSBtYXBJbmZvLm9yaWVudGF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QueSA9IGhlaWdodCAtIG9iamVjdC55O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvc0lkeFggPSBvYmplY3QueCAvIHRpbGVTaXplLmhlaWdodDtcclxuICAgICAgICAgICAgICAgIGxldCBwb3NJZHhZID0gb2JqZWN0LnkgLyB0aWxlU2l6ZS5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QueCA9IHRpbGVTaXplLndpZHRoICogMC41ICogKG1hcFNpemUuaGVpZ2h0ICsgcG9zSWR4WCAtIHBvc0lkeFkpO1xyXG4gICAgICAgICAgICAgICAgb2JqZWN0LnkgPSB0aWxlU2l6ZS5oZWlnaHQgKiAwLjUgKiAobWFwU2l6ZS53aWR0aCArIG1hcFNpemUuaGVpZ2h0IC0gcG9zSWR4WCAtIHBvc0lkeFkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAob2JqVHlwZSA9PT0gVE1YT2JqZWN0VHlwZS5URVhUKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGV4dE5hbWUgPSBcInRleHRcIiArIG9iamVjdC5pZDtcclxuICAgICAgICAgICAgICAgIGFsaXZlTm9kZXNbdGV4dE5hbWVdID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgdGV4dE5vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUodGV4dE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0ZXh0Tm9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHROb2RlID0gbmV3IGNjLk5vZGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5hY3RpdmUgPSBvYmplY3QudmlzaWJsZTtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLmFuY2hvclggPSAwO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUuYW5jaG9yWSA9IDE7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5hbmdsZSA9IC1vYmplY3Qucm90YXRpb247XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS54ID0gb2JqZWN0LnggLSBsZWZ0VG9wWDtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLnkgPSBvYmplY3QueSAtIGxlZnRUb3BZO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUubmFtZSA9IHRleHROYW1lO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUuY29sb3IgPSBvYmplY3QuY29sb3I7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5vcGFjaXR5ID0gdGhpcy5fb3BhY2l0eTtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLnNldFNpYmxpbmdJbmRleChpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgbGFiZWwgPSB0ZXh0Tm9kZS5nZXRDb21wb25lbnQoY2MuTGFiZWwpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFsYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsID0gdGV4dE5vZGUuYWRkQ29tcG9uZW50KGNjLkxhYmVsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsYWJlbC5vdmVyZmxvdyA9IGNjLkxhYmVsLk92ZXJmbG93LlNIUklOSztcclxuICAgICAgICAgICAgICAgIGxhYmVsLmxpbmVIZWlnaHQgPSBvYmplY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgbGFiZWwuc3RyaW5nID0gb2JqZWN0LnRleHQ7XHJcbiAgICAgICAgICAgICAgICBsYWJlbC5ob3Jpem9udGFsQWxpZ24gPSBvYmplY3QuaGFsaWduO1xyXG4gICAgICAgICAgICAgICAgbGFiZWwudmVydGljYWxBbGlnbiA9IG9iamVjdC52YWxpZ247XHJcbiAgICAgICAgICAgICAgICBsYWJlbC5mb250U2l6ZSA9IG9iamVjdC5waXhlbHNpemU7XHJcblxyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUud2lkdGggPSBvYmplY3Qud2lkdGg7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5oZWlnaHQgPSBvYmplY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAob2JqVHlwZSA9PT0gVE1YT2JqZWN0VHlwZS5JTUFHRSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGdpZCA9IG9iamVjdC5naWQ7XHJcbiAgICAgICAgICAgICAgICBsZXQgZ3JpZCA9IHRleEdyaWRzWyhnaWQgJiBGTElQUEVEX01BU0spID4+PiAwXTtcclxuICAgICAgICAgICAgICAgIGlmICghZ3JpZCkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGlsZXNldCA9IGdyaWQudGlsZXNldDtcclxuICAgICAgICAgICAgICAgIGxldCBpbWdOYW1lID0gXCJpbWdcIiArIG9iamVjdC5pZDtcclxuICAgICAgICAgICAgICAgIGFsaXZlTm9kZXNbaW1nTmFtZV0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgbGV0IGltZ05vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoaW1nTmFtZSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgaW1nV2lkdGggPSBvYmplY3Qud2lkdGggfHwgZ3JpZC53aWR0aDtcclxuICAgICAgICAgICAgICAgIGxldCBpbWdIZWlnaHQgPSBvYmplY3QuaGVpZ2h0IHx8IGdyaWQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgbGV0IHRpbGVPZmZzZXRYID0gdGlsZXNldC50aWxlT2Zmc2V0Lng7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGlsZU9mZnNldFkgPSB0aWxlc2V0LnRpbGVPZmZzZXQueTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBEZWxldGUgaW1hZ2Ugbm9kZXMgaW1wbGVtZW50ZWQgYXMgcHJpdmF0ZSBub2Rlc1xyXG4gICAgICAgICAgICAgICAgLy8gVXNlIGNjLk5vZGUgdG8gaW1wbGVtZW50IG5vZGUtbGV2ZWwgcmVxdWlyZW1lbnRzXHJcbiAgICAgICAgICAgICAgICBpZiAoaW1nTm9kZSBpbnN0YW5jZW9mIGNjLlByaXZhdGVOb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCFpbWdOb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZSA9IG5ldyBjYy5Ob2RlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKE9yaWVudGF0aW9uLklTTyA9PSBtYXBJbmZvLm9yaWVudGF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5hbmNob3JYID0gMC41ICsgdGlsZU9mZnNldFggLyBpbWdXaWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBpbWdOb2RlLmFuY2hvclkgPSB0aWxlT2Zmc2V0WSAvIGltZ0hlaWdodDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5hbmNob3JYID0gdGlsZU9mZnNldFggLyBpbWdXaWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBpbWdOb2RlLmFuY2hvclkgPSB0aWxlT2Zmc2V0WSAvIGltZ0hlaWdodDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGltZ05vZGUuYWN0aXZlID0gb2JqZWN0LnZpc2libGU7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLmFuZ2xlID0gLW9iamVjdC5yb3RhdGlvbjtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUueCA9IG9iamVjdC54IC0gbGVmdFRvcFg7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLnkgPSBvYmplY3QueSAtIGxlZnRUb3BZO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5uYW1lID0gaW1nTmFtZTtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5vcGFjaXR5ID0gdGhpcy5fb3BhY2l0eTtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUuc2V0U2libGluZ0luZGV4KGkpO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5fdGlsZWRNYXAgPSB0aWxlZE1hcDtcclxuXHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHNwID0gaW1nTm9kZS5nZXRDb21wb25lbnQoVG1vU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgIGlmICghc3ApIHtcclxuICAgICAgICAgICAgICAgICAgICBzcCA9IGltZ05vZGUuYWRkQ29tcG9uZW50KFRtb1Nwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgc3BmID0gc3Auc3ByaXRlRnJhbWU7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXNwZikge1xyXG4gICAgICAgICAgICAgICAgICAgIHNwZiA9IG5ldyBjYy5TcHJpdGVGcmFtZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmICgoZ2lkICYgRkxBR19IT1JJWk9OVEFMKSA+Pj4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNwZi5zZXRGbGlwWCh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldEZsaXBYKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoKGdpZCAmIEZMQUdfVkVSVElDQUwpID4+PiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldEZsaXBZKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBzcGYuc2V0RmxpcFkoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCBzb3VyY2VJbWFnZSA9IGdyaWQudGlsZXNldC5zb3VyY2VJbWFnZTtcclxuICAgICAgICAgICAgICAgIHNwZi5zZXRUZXh0dXJlKHNvdXJjZUltYWdlLCBjYy5yZWN0KGdyaWQpKTtcclxuICAgICAgICAgICAgICAgIHNwLnNwcml0ZUZyYW1lID0gc3BmO1xyXG4gICAgICAgICAgICAgICAgc3Auc2V0VmVydHNEaXJ0eSgpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIG9iamVjdCBncm91cCBtYXkgaGFzIG5vIHdpZHRoIG9yIGhlaWdodCBpbmZvXHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLndpZHRoID0gaW1nV2lkdGg7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLmhlaWdodCA9IGltZ0hlaWdodDtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyDmlLbpm4blm77pm4Yg5pu05pawdGV4dHVyZUluZGV4TWFwXHJcbiAgICAgICAgICAgICAgICBpZiAoIXRleHR1cmVJbmRleE1hcC5oYXMoc291cmNlSW1hZ2UpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dHVyZUluZGV4TWFwLnNldChzb3VyY2VJbWFnZSwgb2JqZWN0VGV4dHVyZXMubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgICAgICBvYmplY3RUZXh0dXJlcy5wdXNoKHNvdXJjZUltYWdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyDorr7nva50ZXh0dXJlSW5kZXhcclxuICAgICAgICAgICAgICAgIGxldCB0ZXh0dXJlSW5kZXggPSB0ZXh0dXJlSW5kZXhNYXAuZ2V0KHNvdXJjZUltYWdlKTtcclxuICAgICAgICAgICAgICAgIHNwLnNldFRleHR1cmVJZHgodGV4dHVyZUluZGV4ICsgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fb2JqZWN0cyA9IG9iamVjdHM7XHJcblxyXG5cclxuICAgICAgICAvLyBkZXN0cm95IHVzZWxlc3Mgbm9kZVxyXG4gICAgICAgIGxldCBjaGlsZHJlbiA9IHRoaXMubm9kZS5jaGlsZHJlbjtcclxuICAgICAgICBsZXQgdXNlbGVzc0V4cCA9IC9eKD86aW1nfHRleHQpXFxkKyQvO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBuID0gY2hpbGRyZW4ubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBjID0gY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgIGxldCBjTmFtZSA9IGMuX25hbWU7XHJcbiAgICAgICAgICAgIGxldCBpc1VzZWxlc3MgPSB1c2VsZXNzRXhwLnRlc3QoY05hbWUpO1xyXG4gICAgICAgICAgICBpZiAoaXNVc2VsZXNzICYmICFhbGl2ZU5vZGVzW2NOYW1lXSkgYy5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxufSk7XHJcbiJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vVGlsZWRNYXAuanMiXSwibmFtZXMiOlsiVG1vVGlsZWRMYXllciIsInJlcXVpcmUiLCJUbW9PYmplY3RHcm91cCIsImNjIiwiQ2xhc3MiLCJUaWxlZE1hcCIsInByb3BlcnRpZXMiLCJvYmplY3RNYXRlcmlhbCIsIk1hdGVyaWFsIiwibm9Db2xvciIsInNpbmdsZVRleHR1cmUiLCJfb2JqZWN0VGV4dHVyZXMiLCJfYXBwbHlGaWxlIiwiZXJyb3IiLCJfc3VwZXIiLCJfYnVpbGRMYXllckFuZEdyb3VwIiwidGlsZXNldHMiLCJfdGlsZXNldHMiLCJ0ZXhHcmlkcyIsIl90ZXhHcmlkcyIsImFuaW1hdGlvbnMiLCJfYW5pbWF0aW9ucyIsImxlbmd0aCIsImkiLCJsIiwidGlsZXNldEluZm8iLCJmaWxsVGV4dHVyZUdyaWRzIiwiX2ZpbGxBbmlHcmlkcyIsImxheWVycyIsIl9sYXllcnMiLCJncm91cHMiLCJfZ3JvdXBzIiwiaW1hZ2VzIiwiX2ltYWdlcyIsIm9sZE5vZGVOYW1lcyIsIm4iLCJub2RlIiwiX25hbWUiLCJtYXBJbmZvIiwiX21hcEluZm8iLCJsYXllckluZm9zIiwiZ2V0QWxsQ2hpbGRyZW4iLCJ0ZXh0dXJlcyIsIl90ZXh0dXJlcyIsIm1heFdpZHRoIiwibWF4SGVpZ2h0IiwiZmlyc3RUbXhMYXllciIsImxlbiIsImxheWVySW5mbyIsIm5hbWUiLCJjaGlsZCIsImdldENoaWxkQnlOYW1lIiwiTm9kZSIsImFkZENoaWxkIiwic2V0U2libGluZ0luZGV4IiwiYWN0aXZlIiwidmlzaWJsZSIsIlRNWExheWVySW5mbyIsImxheWVyIiwiZ2V0Q29tcG9uZW50IiwiYWRkQ29tcG9uZW50IiwiX2luaXQiLCJvd25UaWxlcyIsInB1c2giLCJUTVhPYmplY3RHcm91cEluZm8iLCJncm91cCIsIlRNWEltYWdlTGF5ZXJJbmZvIiwidGV4dHVyZSIsInNvdXJjZUltYWdlIiwib3BhY2l0eSIsIl9vZmZzZXQiLCJ2MiIsIm9mZnNldCIsIngiLCJ5IiwiaW1hZ2UiLCJTcHJpdGUiLCJzcGYiLCJzcHJpdGVGcmFtZSIsIlNwcml0ZUZyYW1lIiwic2V0VGV4dHVyZSIsIndpZHRoIiwiaGVpZ2h0IiwiTWF0aCIsIm1heCIsIm9iamVjdFRleHR1cmVzIiwiaWR4Iiwic2V0UHJvcGVydHkiLCJjaGlsZHJlbiIsImMiLCJkZXN0cm95IiwiX3N5bmNBbmNob3JQb2ludCIsImdldE9iamVjdE1hdGVyaWFsIiwiaXNOb0NvbG9yIiwiaXNTaW5nbGVUZXh0dXJlIiwiZ2V0T2JqZWN0VGV4dHVyZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUEsYUFBYSxHQUFHQyxPQUFPLENBQUMsaUJBQWlCLENBQUM7QUFDaEQsSUFBTUMsY0FBYyxHQUFHRCxPQUFPLENBQUMsa0JBQWtCLENBQUM7QUFDbERFLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDO0VBQ0wsV0FBU0QsRUFBRSxDQUFDRSxRQUFRO0VBQ3BCQyxVQUFVLEVBQUU7SUFDUkMsY0FBYyxFQUFFSixFQUFFLENBQUNLLFFBQVE7SUFDM0JDLE9BQU8sRUFBRSxJQUFJO0lBQ2JDLGFBQWEsRUFBRSxJQUFJO0lBRW5CQyxlQUFlLEVBQUU7RUFDckIsQ0FBQztFQUdEQyxVQUFVLEVBQUUsU0FBQUEsV0FBQSxFQUFZO0lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUNMLGNBQWMsRUFBRTtNQUN0QkosRUFBRSxDQUFDVSxLQUFLLENBQUMsc0NBQXNDLENBQUM7TUFDaEQ7SUFDSjtJQUVBLElBQUksQ0FBQ0MsTUFBTSxFQUFFO0VBQ2pCLENBQUM7RUFFREMsbUJBQW1CLEVBQUUsU0FBQUEsb0JBQUEsRUFBWTtJQUM3QixJQUFJQyxRQUFRLEdBQUcsSUFBSSxDQUFDQyxTQUFTO0lBQzdCLElBQUlDLFFBQVEsR0FBRyxJQUFJLENBQUNDLFNBQVM7SUFDN0IsSUFBSUMsVUFBVSxHQUFHLElBQUksQ0FBQ0MsV0FBVztJQUNqQ0gsUUFBUSxDQUFDSSxNQUFNLEdBQUcsQ0FBQztJQUNuQixLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVDLENBQUMsR0FBR1IsUUFBUSxDQUFDTSxNQUFNLEVBQUVDLENBQUMsR0FBR0MsQ0FBQyxFQUFFLEVBQUVELENBQUMsRUFBRTtNQUM3QyxJQUFJRSxXQUFXLEdBQUdULFFBQVEsQ0FBQ08sQ0FBQyxDQUFDO01BQzdCLElBQUksQ0FBQ0UsV0FBVyxFQUFFO01BQ2xCdEIsRUFBRSxDQUFDRSxRQUFRLENBQUNxQixnQkFBZ0IsQ0FBQ0QsV0FBVyxFQUFFUCxRQUFRLEVBQUVLLENBQUMsQ0FBQztJQUMxRDtJQUNBLElBQUksQ0FBQ0ksYUFBYSxDQUFDVCxRQUFRLEVBQUVFLFVBQVUsQ0FBQztJQUV4QyxJQUFJUSxNQUFNLEdBQUcsSUFBSSxDQUFDQyxPQUFPO0lBQ3pCLElBQUlDLE1BQU0sR0FBRyxJQUFJLENBQUNDLE9BQU87SUFDekIsSUFBSUMsTUFBTSxHQUFHLElBQUksQ0FBQ0MsT0FBTztJQUN6QixJQUFJQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLEtBQUssSUFBSVgsRUFBQyxHQUFHLENBQUMsRUFBRVksQ0FBQyxHQUFHUCxNQUFNLENBQUNOLE1BQU0sRUFBRUMsRUFBQyxHQUFHWSxDQUFDLEVBQUVaLEVBQUMsRUFBRSxFQUFFO01BQzNDVyxZQUFZLENBQUNOLE1BQU0sQ0FBQ0wsRUFBQyxDQUFDLENBQUNhLElBQUksQ0FBQ0MsS0FBSyxDQUFDLEdBQUcsSUFBSTtJQUM3QztJQUNBLEtBQUssSUFBSWQsR0FBQyxHQUFHLENBQUMsRUFBRVksRUFBQyxHQUFHTCxNQUFNLENBQUNSLE1BQU0sRUFBRUMsR0FBQyxHQUFHWSxFQUFDLEVBQUVaLEdBQUMsRUFBRSxFQUFFO01BQzNDVyxZQUFZLENBQUNKLE1BQU0sQ0FBQ1AsR0FBQyxDQUFDLENBQUNhLElBQUksQ0FBQ0MsS0FBSyxDQUFDLEdBQUcsSUFBSTtJQUM3QztJQUNBLEtBQUssSUFBSWQsR0FBQyxHQUFHLENBQUMsRUFBRVksR0FBQyxHQUFHSCxNQUFNLENBQUNWLE1BQU0sRUFBRUMsR0FBQyxHQUFHWSxHQUFDLEVBQUVaLEdBQUMsRUFBRSxFQUFFO01BQzNDVyxZQUFZLENBQUNGLE1BQU0sQ0FBQ1QsR0FBQyxDQUFDLENBQUNjLEtBQUssQ0FBQyxHQUFHLElBQUk7SUFDeEM7SUFFQVQsTUFBTSxHQUFHLElBQUksQ0FBQ0MsT0FBTyxHQUFHLEVBQUU7SUFDMUJDLE1BQU0sR0FBRyxJQUFJLENBQUNDLE9BQU8sR0FBRyxFQUFFO0lBQzFCQyxNQUFNLEdBQUcsSUFBSSxDQUFDQyxPQUFPLEdBQUcsRUFBRTtJQUUxQixJQUFJSyxPQUFPLEdBQUcsSUFBSSxDQUFDQyxRQUFRO0lBQzNCLElBQUlILElBQUksR0FBRyxJQUFJLENBQUNBLElBQUk7SUFDcEIsSUFBSUksVUFBVSxHQUFHRixPQUFPLENBQUNHLGNBQWMsRUFBRTtJQUN6QyxJQUFJQyxRQUFRLEdBQUcsSUFBSSxDQUFDQyxTQUFTO0lBQzdCLElBQUlDLFFBQVEsR0FBRyxDQUFDO0lBQ2hCLElBQUlDLFNBQVMsR0FBRyxDQUFDO0lBRWpCLElBQUksQ0FBQ2xDLGVBQWUsR0FBRyxFQUFFO0lBQ3pCLElBQUltQyxhQUFhLEdBQUcsSUFBSTtJQUV4QixJQUFJTixVQUFVLElBQUlBLFVBQVUsQ0FBQ2xCLE1BQU0sR0FBRyxDQUFDLEVBQUU7TUFDckMsS0FBSyxJQUFJQyxHQUFDLEdBQUcsQ0FBQyxFQUFFd0IsR0FBRyxHQUFHUCxVQUFVLENBQUNsQixNQUFNLEVBQUVDLEdBQUMsR0FBR3dCLEdBQUcsRUFBRXhCLEdBQUMsRUFBRSxFQUFFO1FBQ25ELElBQUl5QixTQUFTLEdBQUdSLFVBQVUsQ0FBQ2pCLEdBQUMsQ0FBQztRQUM3QixJQUFJMEIsSUFBSSxHQUFHRCxTQUFTLENBQUNDLElBQUk7UUFFekIsSUFBSUMsS0FBSyxHQUFHLElBQUksQ0FBQ2QsSUFBSSxDQUFDZSxjQUFjLENBQUNGLElBQUksQ0FBQztRQUMxQ2YsWUFBWSxDQUFDZSxJQUFJLENBQUMsR0FBRyxLQUFLO1FBRTFCLElBQUksQ0FBQ0MsS0FBSyxFQUFFO1VBQ1JBLEtBQUssR0FBRyxJQUFJL0MsRUFBRSxDQUFDaUQsSUFBSSxFQUFFO1VBQ3JCRixLQUFLLENBQUNELElBQUksR0FBR0EsSUFBSTtVQUNqQmIsSUFBSSxDQUFDaUIsUUFBUSxDQUFDSCxLQUFLLENBQUM7UUFDeEI7UUFFQUEsS0FBSyxDQUFDSSxlQUFlLENBQUMvQixHQUFDLENBQUM7UUFDeEIyQixLQUFLLENBQUNLLE1BQU0sR0FBR1AsU0FBUyxDQUFDUSxPQUFPO1FBRWhDLElBQUlSLFNBQVMsWUFBWTdDLEVBQUUsQ0FBQ3NELFlBQVksRUFBRTtVQUN0QztVQUNBLElBQUlDLEtBQUssR0FBR1IsS0FBSyxDQUFDUyxZQUFZLENBQUMzRCxhQUFhLENBQUM7VUFDN0MsSUFBSSxDQUFDMEQsS0FBSyxFQUFFO1lBQ1JBLEtBQUssR0FBR1IsS0FBSyxDQUFDVSxZQUFZLENBQUM1RCxhQUFhLENBQUM7VUFDN0M7VUFDQTtVQUNBO1VBQ0EwRCxLQUFLLENBQUNHLEtBQUssQ0FBQ2IsU0FBUyxFQUFFVixPQUFPLEVBQUV0QixRQUFRLEVBQUUwQixRQUFRLEVBQUV4QixRQUFRLEVBQUUsSUFBSSxFQUFFNEIsYUFBYSxDQUFDO1VBQ2xGQSxhQUFhLEdBQUdBLGFBQWEsSUFBSVksS0FBSztVQUN0Qzs7VUFFQTtVQUNBVixTQUFTLENBQUNjLFFBQVEsR0FBRyxLQUFLO1VBQzFCbEMsTUFBTSxDQUFDbUMsSUFBSSxDQUFDTCxLQUFLLENBQUM7UUFDdEIsQ0FBQyxNQUNJLElBQUlWLFNBQVMsWUFBWTdDLEVBQUUsQ0FBQzZELGtCQUFrQixFQUFFO1VBQ2pELElBQUlDLEtBQUssR0FBR2YsS0FBSyxDQUFDUyxZQUFZLENBQUN6RCxjQUFjLENBQUM7VUFDOUMsSUFBSSxDQUFDK0QsS0FBSyxFQUFFO1lBQ1JBLEtBQUssR0FBR2YsS0FBSyxDQUFDVSxZQUFZLENBQUMxRCxjQUFjLENBQUM7VUFDOUM7VUFFQStELEtBQUssQ0FBQ0osS0FBSyxDQUFDYixTQUFTLEVBQUVWLE9BQU8sRUFBRXBCLFFBQVEsRUFBRSxJQUFJLENBQUM7VUFDL0NZLE1BQU0sQ0FBQ2lDLElBQUksQ0FBQ0UsS0FBSyxDQUFDO1FBQ3RCLENBQUMsTUFDSSxJQUFJakIsU0FBUyxZQUFZN0MsRUFBRSxDQUFDK0QsaUJBQWlCLEVBQUU7VUFDaEQsSUFBSUMsT0FBTyxHQUFHbkIsU0FBUyxDQUFDb0IsV0FBVztVQUNuQ2xCLEtBQUssQ0FBQ21CLE9BQU8sR0FBR3JCLFNBQVMsQ0FBQ3FCLE9BQU87VUFDakNuQixLQUFLLENBQUNGLFNBQVMsR0FBR0EsU0FBUztVQUMzQkUsS0FBSyxDQUFDb0IsT0FBTyxHQUFHbkUsRUFBRSxDQUFDb0UsRUFBRSxDQUFDdkIsU0FBUyxDQUFDd0IsTUFBTSxDQUFDQyxDQUFDLEVBQUUsQ0FBQ3pCLFNBQVMsQ0FBQ3dCLE1BQU0sQ0FBQ0UsQ0FBQyxDQUFDO1VBRTlELElBQUlDLEtBQUssR0FBR3pCLEtBQUssQ0FBQ1MsWUFBWSxDQUFDeEQsRUFBRSxDQUFDeUUsTUFBTSxDQUFDO1VBQ3pDLElBQUksQ0FBQ0QsS0FBSyxFQUFFO1lBQ1JBLEtBQUssR0FBR3pCLEtBQUssQ0FBQ1UsWUFBWSxDQUFDekQsRUFBRSxDQUFDeUUsTUFBTSxDQUFDO1VBQ3pDO1VBRUEsSUFBSUMsR0FBRyxHQUFHRixLQUFLLENBQUNHLFdBQVcsSUFBSSxJQUFJM0UsRUFBRSxDQUFDNEUsV0FBVyxFQUFFO1VBQ25ERixHQUFHLENBQUNHLFVBQVUsQ0FBQ2IsT0FBTyxDQUFDO1VBQ3ZCUSxLQUFLLENBQUNHLFdBQVcsR0FBR0QsR0FBRztVQUV2QjNCLEtBQUssQ0FBQytCLEtBQUssR0FBR2QsT0FBTyxDQUFDYyxLQUFLO1VBQzNCL0IsS0FBSyxDQUFDZ0MsTUFBTSxHQUFHZixPQUFPLENBQUNlLE1BQU07VUFDN0JsRCxNQUFNLENBQUMrQixJQUFJLENBQUNiLEtBQUssQ0FBQztRQUN0QjtRQUVBTixRQUFRLEdBQUd1QyxJQUFJLENBQUNDLEdBQUcsQ0FBQ3hDLFFBQVEsRUFBRU0sS0FBSyxDQUFDK0IsS0FBSyxDQUFDO1FBQzFDcEMsU0FBUyxHQUFHc0MsSUFBSSxDQUFDQyxHQUFHLENBQUN2QyxTQUFTLEVBQUVLLEtBQUssQ0FBQ2dDLE1BQU0sQ0FBQztNQUNqRDtJQUNKOztJQUVBO0lBQ0EsSUFBSUcsY0FBYyxHQUFHLElBQUksQ0FBQzFFLGVBQWU7SUFDekMsS0FBSyxJQUFJWSxHQUFDLEdBQUcsQ0FBQyxFQUFFQSxHQUFDLEdBQUc4RCxjQUFjLENBQUMvRCxNQUFNLEVBQUVDLEdBQUMsRUFBRSxFQUFFO01BQzVDLElBQUkrRCxHQUFHLEdBQUcvRCxHQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBR0EsR0FBQztNQUMxQixJQUFJLENBQUNoQixjQUFjLENBQUNnRixXQUFXLGFBQVdELEdBQUcsRUFBSUQsY0FBYyxDQUFDOUQsR0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFFO0lBRUEsSUFBSWlFLFFBQVEsR0FBR3BELElBQUksQ0FBQ29ELFFBQVE7SUFDNUIsS0FBSyxJQUFJakUsR0FBQyxHQUFHLENBQUMsRUFBRVksR0FBQyxHQUFHcUQsUUFBUSxDQUFDbEUsTUFBTSxFQUFFQyxHQUFDLEdBQUdZLEdBQUMsRUFBRVosR0FBQyxFQUFFLEVBQUU7TUFDN0MsSUFBSWtFLENBQUMsR0FBR0QsUUFBUSxDQUFDakUsR0FBQyxDQUFDO01BQ25CLElBQUlXLFlBQVksQ0FBQ3VELENBQUMsQ0FBQ3BELEtBQUssQ0FBQyxFQUFFO1FBQ3ZCb0QsQ0FBQyxDQUFDQyxPQUFPLEVBQUU7TUFDZjtJQUNKO0lBRUEsSUFBSSxDQUFDdEQsSUFBSSxDQUFDNkMsS0FBSyxHQUFHckMsUUFBUTtJQUMxQixJQUFJLENBQUNSLElBQUksQ0FBQzhDLE1BQU0sR0FBR3JDLFNBQVM7SUFDNUIsSUFBSSxDQUFDOEMsZ0JBQWdCLEVBQUU7RUFDM0IsQ0FBQztFQUVEQyxpQkFBaUIsRUFBRSxTQUFBQSxrQkFBQSxFQUFZO0lBQzNCLE9BQU8sSUFBSSxDQUFDckYsY0FBYztFQUM5QixDQUFDO0VBRURzRixTQUFTLEVBQUUsU0FBQUEsVUFBQSxFQUFZO0lBQ25CLE9BQU8sSUFBSSxDQUFDcEYsT0FBTztFQUN2QixDQUFDO0VBRURxRixlQUFlLEVBQUUsU0FBQUEsZ0JBQUEsRUFBWTtJQUN6QixPQUFPLElBQUksQ0FBQ3BGLGFBQWE7RUFDN0IsQ0FBQztFQUVEcUYsaUJBQWlCLEVBQUUsU0FBQUEsa0JBQUEsRUFBWTtJQUMzQixPQUFPLElBQUksQ0FBQ3BGLGVBQWU7RUFDL0I7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5jb25zdCBUbW9UaWxlZExheWVyID0gcmVxdWlyZShcIi4vVG1vVGlsZWRMYXllclwiKTtcclxuY29uc3QgVG1vT2JqZWN0R3JvdXAgPSByZXF1aXJlKFwiLi9UbW9PYmplY3RHcm91cFwiKTtcclxuY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuVGlsZWRNYXAsXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgICAgb2JqZWN0TWF0ZXJpYWw6IGNjLk1hdGVyaWFsLFxyXG4gICAgICAgIG5vQ29sb3I6IHRydWUsXHJcbiAgICAgICAgc2luZ2xlVGV4dHVyZTogdHJ1ZSxcclxuXHJcbiAgICAgICAgX29iamVjdFRleHR1cmVzOiBbXSxcclxuICAgIH0sXHJcbiAgICBcclxuXHJcbiAgICBfYXBwbHlGaWxlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm9iamVjdE1hdGVyaWFsKSB7XHJcbiAgICAgICAgICAgIGNjLmVycm9yKFwiVGlsZWRtYXBPcHRpbWl6ZTog5pyq6K6+572ub2JqZWN0TWF0ZXJpYWwhXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zdXBlcigpO1xyXG4gICAgfSxcclxuXHJcbiAgICBfYnVpbGRMYXllckFuZEdyb3VwOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgbGV0IHRpbGVzZXRzID0gdGhpcy5fdGlsZXNldHM7XHJcbiAgICAgICAgbGV0IHRleEdyaWRzID0gdGhpcy5fdGV4R3JpZHM7XHJcbiAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSB0aGlzLl9hbmltYXRpb25zO1xyXG4gICAgICAgIHRleEdyaWRzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aWxlc2V0cy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcclxuICAgICAgICAgICAgbGV0IHRpbGVzZXRJbmZvID0gdGlsZXNldHNbaV07XHJcbiAgICAgICAgICAgIGlmICghdGlsZXNldEluZm8pIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBjYy5UaWxlZE1hcC5maWxsVGV4dHVyZUdyaWRzKHRpbGVzZXRJbmZvLCB0ZXhHcmlkcywgaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2ZpbGxBbmlHcmlkcyh0ZXhHcmlkcywgYW5pbWF0aW9ucyk7XHJcblxyXG4gICAgICAgIGxldCBsYXllcnMgPSB0aGlzLl9sYXllcnM7XHJcbiAgICAgICAgbGV0IGdyb3VwcyA9IHRoaXMuX2dyb3VwcztcclxuICAgICAgICBsZXQgaW1hZ2VzID0gdGhpcy5faW1hZ2VzO1xyXG4gICAgICAgIGxldCBvbGROb2RlTmFtZXMgPSB7fTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbiA9IGxheWVycy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgb2xkTm9kZU5hbWVzW2xheWVyc1tpXS5ub2RlLl9uYW1lXSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBuID0gZ3JvdXBzLmxlbmd0aDsgaSA8IG47IGkrKykge1xyXG4gICAgICAgICAgICBvbGROb2RlTmFtZXNbZ3JvdXBzW2ldLm5vZGUuX25hbWVdID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIG4gPSBpbWFnZXMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIG9sZE5vZGVOYW1lc1tpbWFnZXNbaV0uX25hbWVdID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxheWVycyA9IHRoaXMuX2xheWVycyA9IFtdO1xyXG4gICAgICAgIGdyb3VwcyA9IHRoaXMuX2dyb3VwcyA9IFtdO1xyXG4gICAgICAgIGltYWdlcyA9IHRoaXMuX2ltYWdlcyA9IFtdO1xyXG5cclxuICAgICAgICBsZXQgbWFwSW5mbyA9IHRoaXMuX21hcEluZm87XHJcbiAgICAgICAgbGV0IG5vZGUgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgbGV0IGxheWVySW5mb3MgPSBtYXBJbmZvLmdldEFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgbGV0IHRleHR1cmVzID0gdGhpcy5fdGV4dHVyZXM7XHJcbiAgICAgICAgbGV0IG1heFdpZHRoID0gMDtcclxuICAgICAgICBsZXQgbWF4SGVpZ2h0ID0gMDtcclxuXHJcbiAgICAgICAgdGhpcy5fb2JqZWN0VGV4dHVyZXMgPSBbXTtcclxuICAgICAgICBsZXQgZmlyc3RUbXhMYXllciA9IG51bGw7XHJcblxyXG4gICAgICAgIGlmIChsYXllckluZm9zICYmIGxheWVySW5mb3MubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gbGF5ZXJJbmZvcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGxheWVySW5mbyA9IGxheWVySW5mb3NbaV07XHJcbiAgICAgICAgICAgICAgICBsZXQgbmFtZSA9IGxheWVySW5mby5uYW1lO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBjaGlsZCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShuYW1lKTtcclxuICAgICAgICAgICAgICAgIG9sZE5vZGVOYW1lc1tuYW1lXSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICghY2hpbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZCA9IG5ldyBjYy5Ob2RlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQubmFtZSA9IG5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hZGRDaGlsZChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY2hpbGQuc2V0U2libGluZ0luZGV4KGkpO1xyXG4gICAgICAgICAgICAgICAgY2hpbGQuYWN0aXZlID0gbGF5ZXJJbmZvLnZpc2libGU7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGxheWVySW5mbyBpbnN0YW5jZW9mIGNjLlRNWExheWVySW5mbykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOatpOWkhOS/ruaUuSDmlLnkuLrliJvlu7pNeVRpbGVkTGF5ZXJcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbGF5ZXIgPSBjaGlsZC5nZXRDb21wb25lbnQoVG1vVGlsZWRMYXllcik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFsYXllcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXllciA9IGNoaWxkLmFkZENvbXBvbmVudChUbW9UaWxlZExheWVyKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5q2k5aSE5L+u5pS5IOS8oOmAkmZpcnN0VG14TGF5ZXIg6K6w5b2VZmlyc3RUbXhMYXllclxyXG4gICAgICAgICAgICAgICAgICAgIGxheWVyLl9pbml0KGxheWVySW5mbywgbWFwSW5mbywgdGlsZXNldHMsIHRleHR1cmVzLCB0ZXhHcmlkcywgdGhpcywgZmlyc3RUbXhMYXllcik7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RUbXhMYXllciA9IGZpcnN0VG14TGF5ZXIgfHwgbGF5ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHRlbGwgdGhlIGxheWVyaW5mbyB0byByZWxlYXNlIHRoZSBvd25lcnNoaXAgb2YgdGhlIHRpbGVzIG1hcC5cclxuICAgICAgICAgICAgICAgICAgICBsYXllckluZm8ub3duVGlsZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBsYXllcnMucHVzaChsYXllcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChsYXllckluZm8gaW5zdGFuY2VvZiBjYy5UTVhPYmplY3RHcm91cEluZm8pIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXAgPSBjaGlsZC5nZXRDb21wb25lbnQoVG1vT2JqZWN0R3JvdXApO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghZ3JvdXApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAgPSBjaGlsZC5hZGRDb21wb25lbnQoVG1vT2JqZWN0R3JvdXApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAuX2luaXQobGF5ZXJJbmZvLCBtYXBJbmZvLCB0ZXhHcmlkcywgdGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBzLnB1c2goZ3JvdXApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobGF5ZXJJbmZvIGluc3RhbmNlb2YgY2MuVE1YSW1hZ2VMYXllckluZm8pIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGV4dHVyZSA9IGxheWVySW5mby5zb3VyY2VJbWFnZTtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZC5vcGFjaXR5ID0gbGF5ZXJJbmZvLm9wYWNpdHk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQubGF5ZXJJbmZvID0gbGF5ZXJJbmZvO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkLl9vZmZzZXQgPSBjYy52MihsYXllckluZm8ub2Zmc2V0LngsIC1sYXllckluZm8ub2Zmc2V0LnkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBsZXQgaW1hZ2UgPSBjaGlsZC5nZXRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWltYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlID0gY2hpbGQuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBsZXQgc3BmID0gaW1hZ2Uuc3ByaXRlRnJhbWUgfHwgbmV3IGNjLlNwcml0ZUZyYW1lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldFRleHR1cmUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2Uuc3ByaXRlRnJhbWUgPSBzcGY7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkLndpZHRoID0gdGV4dHVyZS53aWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZC5oZWlnaHQgPSB0ZXh0dXJlLmhlaWdodDtcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZXMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgbWF4V2lkdGggPSBNYXRoLm1heChtYXhXaWR0aCwgY2hpbGQud2lkdGgpO1xyXG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0ID0gTWF0aC5tYXgobWF4SGVpZ2h0LCBjaGlsZC5oZWlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDorr7nva7mnZDotKjnmoR0ZXh0dXJl5bGe5oCnXHJcbiAgICAgICAgbGV0IG9iamVjdFRleHR1cmVzID0gdGhpcy5fb2JqZWN0VGV4dHVyZXM7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmplY3RUZXh0dXJlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaWR4ID0gaSA9PT0gMCA/ICcnIDogaTtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RNYXRlcmlhbC5zZXRQcm9wZXJ0eShgdGV4dHVyZSR7aWR4fWAsIG9iamVjdFRleHR1cmVzW2ldLCAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW47XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIG4gPSBjaGlsZHJlbi5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGMgPSBjaGlsZHJlbltpXTtcclxuICAgICAgICAgICAgaWYgKG9sZE5vZGVOYW1lc1tjLl9uYW1lXSkge1xyXG4gICAgICAgICAgICAgICAgYy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubm9kZS53aWR0aCA9IG1heFdpZHRoO1xyXG4gICAgICAgIHRoaXMubm9kZS5oZWlnaHQgPSBtYXhIZWlnaHQ7XHJcbiAgICAgICAgdGhpcy5fc3luY0FuY2hvclBvaW50KCk7XHJcbiAgICB9LFxyXG5cclxuICAgIGdldE9iamVjdE1hdGVyaWFsOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0TWF0ZXJpYWw7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzTm9Db2xvcjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm5vQ29sb3I7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzU2luZ2xlVGV4dHVyZTogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNpbmdsZVRleHR1cmU7XHJcbiAgICB9LFxyXG5cclxuICAgIGdldE9iamVjdFRleHR1cmVzOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29iamVjdFRleHR1cmVzO1xyXG4gICAgfVxyXG59KTsiXX0= //------QC-SOURCE-SPLIT------ diff --git a/temp/quick-scripts/dst/__qc_index__.js b/temp/quick-scripts/dst/__qc_index__.js index 44dd9e2..1f632ac 100644 --- a/temp/quick-scripts/dst/__qc_index__.js +++ b/temp/quick-scripts/dst/__qc_index__.js @@ -69,6 +69,8 @@ require('./assets/animation/NewScript'); require('./assets/effect/融化'); require('./assets/migration/use_v2.1-2.2.1_cc.Toggle_event'); require('./assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1'); +require('./assets/shop/script/item'); +require('./assets/shop/script/shop'); require('./tiledmap-optimize-resource/Script/TmoAssembler'); require('./tiledmap-optimize-resource/Script/TmoObjectGroup'); require('./tiledmap-optimize-resource/Script/TmoSprite'); diff --git a/temp/quick-scripts/dst/__quick_compile__.js b/temp/quick-scripts/dst/__quick_compile__.js index d20f41d..6d5e534 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/Sdk/DouyinEntranceView":1,"./assets/Script/module/Crypto/HttpUtil":2,"./assets/Script/lq_base/util/lq_game_util":3,"./tiledmap-optimize-resource/Script/TmoAssembler":4,"./assets/Script/CollisionDetection":5,"./assets/Script/lq_collide_system/lq_collide_base":6,"./assets/Script/prop/Boom":7,"./assets/migration/use_v2.1-2.2.1_cc.Toggle_event":8,"./assets/animation/NewScript":9,"./assets/effect/融化":10,"./assets/Script/lq_base/data/lq_const":11,"./assets/Script/module/Notification/Notification":12,"./assets/Script/module/GameStart/GameAppStart":13,"./assets/Script/module/Music/AudioManager":14,"./assets/Script/module/Share/share":15,"./assets/Script/module/Storage/Storage":16,"./assets/Script/DynamicAtlasManager":17,"./assets/Script/module/RankList/List":18,"./assets/Script/ControlManager":19,"./assets/Script/module/Tool/GameTool":20,"./assets/Script/module/Config/GameConfig":21,"./assets/Script/GameOver":22,"./assets/Script/GameScene":23,"./assets/Script/Load":24,"./assets/Script/GameManager":25,"./assets/Script/JiaZai":26,"./assets/Script/MapBlock":27,"./assets/Script/Reduce":28,"./assets/Script/NumberToImage":29,"./assets/Script/NewMode":30,"./assets/Script/SceneManager":31,"./assets/Script/RankManager":32,"./assets/Script/Window":33,"./assets/Script/Wall":34,"./assets/Script/Sdk/MiniGameManager":35,"./assets/Script/position":36,"./assets/Script/lq_collide_system/lq_collide_config":37,"./assets/Script/peizhi":38,"./assets/Script/Barrier":39,"./assets/Script/btnControl":40,"./assets/Script/Map":41,"./assets/Script/prop/Lock":42,"./assets/Script/Pause":43,"./assets/Script/prop/Freeze":44,"./assets/Script/Sdk/MiniGameSdk":45,"./assets/Script/lq_collide_system/lq_collide":46,"./assets/Script/prop/Adhesive":47,"./assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1":48,"./assets/Script/lq_collide_system/lq_collide_system":49,"./assets/Script/prop/Key":50,"./assets/Script/prop/Star":51,"./assets/Script/lq_base/util/lq_pool_util":52,"./assets/Script/lq_base/data/lq_data":53,"./assets/Script/lq_base/data/lq_interface":54,"./assets/Script/lq_base/util/lq_platform_util":55,"./assets/Script/Block":56,"./assets/Script/lq_base/util/lq_math_util":57,"./assets/Script/lq_base/util/lq_base_util":58,"./assets/Script/module/Crypto/crypto-js.min":59,"./assets/Script/module/RankList/ItemRender":60,"./tiledmap-optimize-resource/Script/TmoSprite":61,"./tiledmap-optimize-resource/Script/TmoTiledLayer":62,"./tiledmap-optimize-resource/Script/TmoTiledMap":63,"./tiledmap-optimize-resource/Script/TmoObjectGroup":64},"path":"preview-scripts/__qc_index__.js"},{"deps":{"./MiniGameSdk":45},"path":"preview-scripts/assets/Script/Sdk/DouyinEntranceView.js"},{"deps":{"./crypto-js.min.js":59},"path":"preview-scripts/assets/Script/module/Crypto/HttpUtil.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_game_util.js"},{"deps":{},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoAssembler.js"},{"deps":{},"path":"preview-scripts/assets/Script/CollisionDetection.js"},{"deps":{"./lq_collide":46,"../lq_base/data/lq_const":11},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_base.js"},{"deps":{"../Map":41,"../NumberToImage":29},"path":"preview-scripts/assets/Script/prop/Boom.js"},{"deps":{},"path":"preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js"},{"deps":{},"path":"preview-scripts/assets/animation/NewScript.js"},{"deps":{},"path":"preview-scripts/assets/effect/融化.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_const.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Notification/Notification.js"},{"deps":{"../Storage/Storage":16,"../Config/GameConfig":21,"../Crypto/HttpUtil":2,"../Music/AudioManager":14,"../Notification/Notification":12,"../Tool/GameTool":20},"path":"preview-scripts/assets/Script/module/GameStart/GameAppStart.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Music/AudioManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Share/share.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Storage/Storage.js"},{"deps":{},"path":"preview-scripts/assets/Script/DynamicAtlasManager.js"},{"deps":{"./ItemRender":60},"path":"preview-scripts/assets/Script/module/RankList/List.js"},{"deps":{},"path":"preview-scripts/assets/Script/ControlManager.js"},{"deps":{"../../Sdk/MiniGameSdk":45},"path":"preview-scripts/assets/Script/module/Tool/GameTool.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Config/GameConfig.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameOver.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameScene.js"},{"deps":{},"path":"preview-scripts/assets/Script/Load.js"},{"deps":{"./Sdk/MiniGameSdk":45},"path":"preview-scripts/assets/Script/GameManager.js"},{"deps":{"./GameManager":25,"./NumberToImage":29,"./Sdk/MiniGameSdk":45,"./lq_collide_system/lq_collide_system":49},"path":"preview-scripts/assets/Script/JiaZai.js"},{"deps":{},"path":"preview-scripts/assets/Script/MapBlock.js"},{"deps":{},"path":"preview-scripts/assets/Script/Reduce.js"},{"deps":{},"path":"preview-scripts/assets/Script/NumberToImage.js"},{"deps":{},"path":"preview-scripts/assets/Script/NewMode.js"},{"deps":{"./Map":41,"./Sdk/MiniGameSdk":45},"path":"preview-scripts/assets/Script/SceneManager.js"},{"deps":{"./module/RankList/List":18},"path":"preview-scripts/assets/Script/RankManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/Window.js"},{"deps":{"./Map":41},"path":"preview-scripts/assets/Script/Wall.js"},{"deps":{"./MiniGameSdk":45},"path":"preview-scripts/assets/Script/Sdk/MiniGameManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/position.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_config.js"},{"deps":{},"path":"preview-scripts/assets/Script/peizhi.js"},{"deps":{"./Map":41},"path":"preview-scripts/assets/Script/Barrier.js"},{"deps":{},"path":"preview-scripts/assets/Script/btnControl.js"},{"deps":{"./GameManager":25,"./NumberToImage":29,"./Sdk/MiniGameSdk":45},"path":"preview-scripts/assets/Script/Map.js"},{"deps":{"../NumberToImage":29},"path":"preview-scripts/assets/Script/prop/Lock.js"},{"deps":{},"path":"preview-scripts/assets/Script/Pause.js"},{"deps":{"../NumberToImage":29},"path":"preview-scripts/assets/Script/prop/Freeze.js"},{"deps":{},"path":"preview-scripts/assets/Script/Sdk/MiniGameSdk.js"},{"deps":{"../lq_base/data/lq_const":11,"./lq_collide_config":37,"./lq_collide_system":49,"../lq_base/data/lq_data":53,"./lq_collide_base":6,"../lq_base/util/lq_game_util":3,"../Map":41},"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_1.js"},{"deps":{"../lq_base/data/lq_const":11,"../lq_base/util/lq_math_util":57,"./lq_collide_config":37,"../lq_base/data/lq_data":53},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_system.js"},{"deps":{"../Map":41},"path":"preview-scripts/assets/Script/prop/Key.js"},{"deps":{"../Map":41},"path":"preview-scripts/assets/Script/prop/Star.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_pool_util.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_data.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_interface.js"},{"deps":{"../data/lq_const":11},"path":"preview-scripts/assets/Script/lq_base/util/lq_platform_util.js"},{"deps":{"./lq_collide_system/lq_collide_system":49,"./Map":41},"path":"preview-scripts/assets/Script/Block.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_math_util.js"},{"deps":{"./lq_platform_util":55,"../data/lq_const":11},"path":"preview-scripts/assets/Script/lq_base/util/lq_base_util.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Crypto/crypto-js.min.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/RankList/ItemRender.js"},{"deps":{"./TmoAssembler":4},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoSprite.js"},{"deps":{},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoTiledLayer.js"},{"deps":{"./TmoTiledLayer":62,"./TmoObjectGroup":64},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoTiledMap.js"},{"deps":{"./TmoSprite":61},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoObjectGroup.js"}]; +var scripts = [{"deps":{"./assets/Script/CollisionDetection":6,"./assets/Script/ControlManager":18,"./assets/Script/DynamicAtlasManager":19,"./assets/Script/GameManager":33,"./assets/Script/GameOver":24,"./assets/Script/GameScene":17,"./assets/Script/JiaZai":37,"./assets/Script/Load":25,"./assets/Script/Map":27,"./assets/Script/MapBlock":22,"./assets/Script/NewMode":31,"./assets/Script/NumberToImage":38,"./assets/Script/Pause":34,"./assets/Script/RankManager":23,"./assets/Script/Reduce":28,"./assets/Script/SceneManager":29,"./assets/Script/Wall":39,"./assets/Script/Window":36,"./assets/Script/btnControl":30,"./assets/Script/peizhi":35,"./assets/Script/position":41,"./assets/Script/Barrier":44,"./assets/Script/Sdk/MiniGameManager":43,"./assets/Script/Sdk/MiniGameSdk":1,"./assets/Script/Sdk/DouyinEntranceView":50,"./assets/Script/lq_collide_system/lq_collide_base":11,"./assets/Script/lq_collide_system/lq_collide_config":40,"./assets/Script/lq_collide_system/lq_collide_system":47,"./assets/Script/lq_collide_system/lq_collide":52,"./assets/Script/prop/Boom":58,"./assets/Script/prop/Freeze":45,"./assets/Script/prop/Key":46,"./assets/Script/prop/Lock":10,"./assets/Script/prop/Star":51,"./assets/Script/prop/Adhesive":49,"./assets/animation/NewScript":7,"./assets/effect/融化":8,"./assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1":42,"./assets/migration/use_v2.1-2.2.1_cc.Toggle_event":9,"./assets/Script/Block":48,"./assets/Script/lq_base/data/lq_interface":3,"./assets/Script/lq_base/data/lq_const":64,"./assets/Script/lq_base/util/lq_game_util":54,"./assets/Script/lq_base/util/lq_math_util":12,"./assets/Script/lq_base/util/lq_platform_util":56,"./assets/Script/lq_base/util/lq_pool_util":55,"./assets/Script/lq_base/util/lq_base_util":59,"./assets/Script/lq_base/data/lq_data":53,"./assets/Script/module/Crypto/crypto-js.min":63,"./assets/Script/module/Crypto/HttpUtil":16,"./assets/Script/module/GameStart/GameAppStart":2,"./assets/Script/module/Music/AudioManager":20,"./assets/Script/module/Notification/Notification":13,"./assets/Script/module/RankList/List":57,"./assets/Script/module/RankList/ItemRender":14,"./assets/Script/module/Share/share":32,"./assets/Script/module/Storage/Storage":15,"./assets/Script/module/Tool/GameTool":21,"./assets/Script/module/Config/GameConfig":26,"./assets/shop/script/item":60,"./assets/shop/script/shop":4,"./tiledmap-optimize-resource/Script/TmoSprite":62,"./tiledmap-optimize-resource/Script/TmoTiledLayer":5,"./tiledmap-optimize-resource/Script/TmoTiledMap":66,"./tiledmap-optimize-resource/Script/TmoAssembler":65,"./tiledmap-optimize-resource/Script/TmoObjectGroup":61},"path":"preview-scripts/__qc_index__.js"},{"deps":{},"path":"preview-scripts/assets/Script/Sdk/MiniGameSdk.js"},{"deps":{"../Storage/Storage":15,"../Config/GameConfig":26,"../Crypto/HttpUtil":16,"../Music/AudioManager":20,"../Notification/Notification":13,"../Tool/GameTool":21},"path":"preview-scripts/assets/Script/module/GameStart/GameAppStart.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_interface.js"},{"deps":{},"path":"preview-scripts/assets/shop/script/shop.js"},{"deps":{},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoTiledLayer.js"},{"deps":{},"path":"preview-scripts/assets/Script/CollisionDetection.js"},{"deps":{},"path":"preview-scripts/assets/animation/NewScript.js"},{"deps":{},"path":"preview-scripts/assets/effect/融化.js"},{"deps":{},"path":"preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js"},{"deps":{"../NumberToImage":38},"path":"preview-scripts/assets/Script/prop/Lock.js"},{"deps":{"./lq_collide":52,"../lq_base/data/lq_const":64},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_base.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_math_util.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Notification/Notification.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/RankList/ItemRender.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Storage/Storage.js"},{"deps":{"./crypto-js.min.js":63},"path":"preview-scripts/assets/Script/module/Crypto/HttpUtil.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameScene.js"},{"deps":{},"path":"preview-scripts/assets/Script/ControlManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/DynamicAtlasManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Music/AudioManager.js"},{"deps":{"../../Sdk/MiniGameSdk":1},"path":"preview-scripts/assets/Script/module/Tool/GameTool.js"},{"deps":{},"path":"preview-scripts/assets/Script/MapBlock.js"},{"deps":{"./module/RankList/List":57},"path":"preview-scripts/assets/Script/RankManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameOver.js"},{"deps":{},"path":"preview-scripts/assets/Script/Load.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Config/GameConfig.js"},{"deps":{"./GameManager":33,"./NumberToImage":38,"./Sdk/MiniGameSdk":1},"path":"preview-scripts/assets/Script/Map.js"},{"deps":{},"path":"preview-scripts/assets/Script/Reduce.js"},{"deps":{"./Map":27,"./Sdk/MiniGameSdk":1},"path":"preview-scripts/assets/Script/SceneManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/btnControl.js"},{"deps":{},"path":"preview-scripts/assets/Script/NewMode.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Share/share.js"},{"deps":{"./Sdk/MiniGameSdk":1},"path":"preview-scripts/assets/Script/GameManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/Pause.js"},{"deps":{},"path":"preview-scripts/assets/Script/peizhi.js"},{"deps":{},"path":"preview-scripts/assets/Script/Window.js"},{"deps":{"./GameManager":33,"./NumberToImage":38,"./Sdk/MiniGameSdk":1,"./lq_collide_system/lq_collide_system":47},"path":"preview-scripts/assets/Script/JiaZai.js"},{"deps":{},"path":"preview-scripts/assets/Script/NumberToImage.js"},{"deps":{"./Map":27},"path":"preview-scripts/assets/Script/Wall.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_config.js"},{"deps":{},"path":"preview-scripts/assets/Script/position.js"},{"deps":{},"path":"preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js"},{"deps":{"./MiniGameSdk":1},"path":"preview-scripts/assets/Script/Sdk/MiniGameManager.js"},{"deps":{"./Map":27},"path":"preview-scripts/assets/Script/Barrier.js"},{"deps":{"../NumberToImage":38},"path":"preview-scripts/assets/Script/prop/Freeze.js"},{"deps":{"../Map":27},"path":"preview-scripts/assets/Script/prop/Key.js"},{"deps":{"../lq_base/data/lq_const":64,"../lq_base/util/lq_math_util":12,"./lq_collide_config":40,"../lq_base/data/lq_data":53},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide_system.js"},{"deps":{"./lq_collide_system/lq_collide_system":47,"./Map":27},"path":"preview-scripts/assets/Script/Block.js"},{"deps":{},"path":"preview-scripts/assets/Script/prop/Adhesive.js"},{"deps":{"./MiniGameSdk":1},"path":"preview-scripts/assets/Script/Sdk/DouyinEntranceView.js"},{"deps":{"../Map":27},"path":"preview-scripts/assets/Script/prop/Star.js"},{"deps":{"../lq_base/data/lq_const":64,"./lq_collide_config":40,"./lq_collide_system":47,"../lq_base/data/lq_data":53,"./lq_collide_base":11,"../lq_base/util/lq_game_util":54,"../Map":27},"path":"preview-scripts/assets/Script/lq_collide_system/lq_collide.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_data.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_game_util.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/util/lq_pool_util.js"},{"deps":{"../data/lq_const":64},"path":"preview-scripts/assets/Script/lq_base/util/lq_platform_util.js"},{"deps":{"./ItemRender":14},"path":"preview-scripts/assets/Script/module/RankList/List.js"},{"deps":{"../Map":27,"../NumberToImage":38},"path":"preview-scripts/assets/Script/prop/Boom.js"},{"deps":{"./lq_platform_util":56,"../data/lq_const":64},"path":"preview-scripts/assets/Script/lq_base/util/lq_base_util.js"},{"deps":{},"path":"preview-scripts/assets/shop/script/item.js"},{"deps":{"./TmoSprite":62},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoObjectGroup.js"},{"deps":{"./TmoAssembler":65},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoSprite.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Crypto/crypto-js.min.js"},{"deps":{},"path":"preview-scripts/assets/Script/lq_base/data/lq_const.js"},{"deps":{},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoAssembler.js"},{"deps":{"./TmoTiledLayer":5,"./TmoObjectGroup":61},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoTiledMap.js"}]; var entries = ["preview-scripts/__qc_index__.js"]; var bundleScript = 'preview-scripts/__qc_bundle__.js'; diff --git a/temp/quick-scripts/dst/assets/Script/Barrier.js b/temp/quick-scripts/dst/assets/Script/Barrier.js index ca381ed..ce8b9bc 100644 --- a/temp/quick-scripts/dst/assets/Script/Barrier.js +++ b/temp/quick-scripts/dst/assets/Script/Barrier.js @@ -90,6 +90,7 @@ var Block = /** @class */ (function (_super) { 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 方法判断点是否在矩形范围内 @@ -124,4 +125,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxCYXJyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLDZCQUFnQztBQUUxQixJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFtQyx5QkFBWTtJQUEvQztRQUFBLHFFQXlGQztRQXZGRyxTQUFTO1FBQ0Qsc0JBQWdCLEdBQXFCLEVBQUUsQ0FBQztRQUN4QyxxQkFBZSxHQUFxQixFQUFFLENBQUM7UUFDL0MsY0FBYztRQUNkLHNDQUFzQztRQUN0QyxnQ0FBZ0M7UUFDaEMsbUNBQW1DO1FBQ25DLDBCQUEwQjtRQUMxQixLQUFLO1FBS0wsd0JBQXdCO1FBQ3hCLDRCQUE0QjtRQUM1Qiw2QkFBNkI7UUFDckIsd0JBQWtCLEdBQVksSUFBSSxDQUFDO1FBQ25DLHFCQUFlLEdBQUcsR0FBRyxDQUFDLENBQUMsVUFBVTtRQUd6QyxnQkFBVSxHQUFZLElBQUksQ0FBQyxDQUFLLEtBQUs7UUFDckMsYUFBTyxHQUFZLEtBQUssQ0FBQyxDQUFPLE1BQU07UUFDdEMsVUFBSSxHQUFXLENBQUMsQ0FBQyxDQUFlLFNBQVM7UUFDekMsVUFBSSxHQUFXLENBQUMsQ0FBQyxDQUFlLFNBQVM7UUFDekMsY0FBUSxHQUFZLElBQUksQ0FBQyxDQUFNLFNBQVM7UUFDeEMsZUFBUyxHQUFZLElBQUksQ0FBQyxDQUFLLFNBQVM7UUFDeEMsWUFBTSxHQUFZLElBQUksQ0FBQyxDQUFRLFNBQVM7UUFDeEMsY0FBUSxHQUFZLElBQUksQ0FBQyxDQUFNLFNBQVM7UUFDeEMsZ0JBQVUsR0FBVyxDQUFDLENBQUMsQ0FBUSxRQUFRO1FBQ3ZDLFdBQUssR0FBVSxDQUFDLENBQUMsQ0FBVSxXQUFXO1FBQ3RDLFdBQUssR0FBVSxDQUFDLENBQUMsQ0FBVSxXQUFXO1FBQ3RDLGlCQUFXLEdBQVcsQ0FBQyxDQUFDLENBQVEsU0FBUztRQUN6QyxpQkFBVyxHQUFXLENBQUMsQ0FBQyxDQUFRLFNBQVM7UUFDekMsYUFBTyxHQUFXLENBQUMsQ0FBQyxDQUFZLE9BQU87UUFFdkMsV0FBSyxHQUFXLENBQUMsQ0FBQyxDQUFZLFNBQVM7UUFDdkMsUUFBRSxHQUFZLEtBQUssQ0FBQzs7SUFtRHhCLENBQUM7SUF6Q0csc0JBQU0sR0FBTjtRQUNJLHNFQUFzRTtRQUN0RSxzRUFBc0U7UUFDdEUsdUVBQXVFO1FBQ3ZFLG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLDRFQUE0RTtRQUM1RSx5Q0FBeUM7SUFDN0MsQ0FBQztJQUdELHFCQUFLLEdBQUw7SUFFQSxDQUFDO0lBRUQsNkJBQWEsR0FBYixVQUFpQixHQUFNO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELG9CQUFJLEdBQUosVUFBSyxVQUFVLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxJQUFJLE9BQU8sR0FBRyxhQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUM1QyxLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztZQUMvQixJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDNUMsK0NBQStDO1lBQy9DLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDLENBQUE7WUFDbEUsSUFBRyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFDO2dCQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUMsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2hDLENBQUMsR0FBRSxLQUFLLENBQUM7Z0JBQ1QsTUFBTTthQUNUO1NBQ0o7SUFFTCxDQUFDO0lBdkZnQixLQUFLO1FBRHpCLE9BQU87T0FDYSxLQUFLLENBeUZ6QjtJQUFELFlBQUM7Q0F6RkQsQUF5RkMsQ0F6RmtDLEVBQUUsQ0FBQyxTQUFTLEdBeUY5QztrQkF6Rm9CLEtBQUsiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29sbGlzaW9uRGV0ZWN0aW9uIGZyb20gXCIuL0NvbGxpc2lvbkRldGVjdGlvblwiO1xyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4vTWFwXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJsb2NrIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICAvLyDmlrDlop7nvJPlrZjlj5jph49cclxuICAgIHByaXZhdGUgc2VsZkJveENvbGxpZGVyczogY2MuQm94Q29sbGlkZXJbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBhbGxCb3hDb2xsaWRlcnM6IGNjLkJveENvbGxpZGVyW10gPSBbXTtcclxuICAgIC8vIEBwcm9wZXJ0eSh7XHJcbiAgICAvLyAgICAgdG9vbHRpcDogJ+eisOaSnuW9oueKtu+8jE5vbmXlsLHmmK/ml6DmlYzvvIzkuI3lj4LkuI7norDmkp4nLFxyXG4gICAgLy8gICAgIHR5cGU6IGNjLkVudW0oQmxvY2tUeXBlKSxcclxuICAgIC8vICAgICAvLyBkZWZhdWx0OiBCbG9ja1R5cGUuTm9tYWwsXHJcbiAgICAvLyAgICAgZGlzcGxheU5hbWU6ICfnorDmkp7lvaLnirYnXHJcbiAgICAvLyB9KVxyXG5cclxuXHJcblxyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG4gICAgLy8gQHByb3BlcnR5KGNjLlNwcml0ZUF0bGFzKVxyXG4gICAgLy8gVUk6IGNjLlNwcml0ZUF0bGFzID0gbnVsbDtcclxuICAgIHByaXZhdGUgaW5pdGlhbFRvdWNoT2Zmc2V0OiBjYy5WZWMyID0gbnVsbDtcclxuICAgIHByaXZhdGUgb2Zmc2V0VG9sZXJhbmNlID0gMTAwOyAvLyDlgY/np7vlrrnlv43luqY7IFxyXG5cclxuICAgIGFsbEJsb2Nrczphbnk7ICAgICAgIC8v5omA5pyJ55qE5pa55Z2XLOeUqOS6juiuoeeul3Bvc1gscG9zWea2iOmZpFxyXG4gICAgdG91Y2hQb2ludDogY2MuVmVjMiA9IG51bGw7ICAgICAvL+inpuaRuOeCuVxyXG4gICAgaXNUb3VjaDogYm9vbGVhbiA9IGZhbHNlOyAgICAgICAvL+aYr+WQpuinpuaRuFxyXG4gICAgcG9zWDogbnVtYmVyID0gMDsgICAgICAgICAgICAgICAvL+WcsOWbvuWdl+eahFjlnZDmoIdcclxuICAgIHBvc1k6IG51bWJlciA9IDA7ICAgICAgICAgICAgICAgLy/lnLDlm77lnZfnmoRZ5Z2Q5qCHXHJcbiAgICBtb3ZlTGVmdDogYm9vbGVhbiA9IHRydWU7ICAgICAgLy/mmK/lkKblj6/ku6Xlt6bnp7s7XHJcbiAgICBtb3ZlUmlnaHQ6IGJvb2xlYW4gPSB0cnVlOyAgICAgLy/mmK/lkKblj6/ku6Xlj7Pnp7s7XHJcbiAgICBtb3ZlVXA6IGJvb2xlYW4gPSB0cnVlOyAgICAgICAgLy/mmK/lkKblj6/ku6XkuIrnp7s7XHJcbiAgICBtb3ZlRG93bjogYm9vbGVhbiA9IHRydWU7ICAgICAgLy/mmK/lkKblj6/ku6XkuIvnp7s7XHJcbiAgICBtb3ZlQ29ybmVyOiBudW1iZXIgPSAwOyAgICAgICAgLy/mmK/lkKbnorDmkp7op5LokL1cclxuICAgIG1vdmVZOm51bWJlciA9IDA7ICAgICAgICAgIC8v5piv5ZCm5Y+v5Lul5LiK5LiL56e75YqoO1xyXG4gICAgbW92ZVg6bnVtYmVyID0gMDsgICAgICAgICAgLy/mmK/lkKblj6/ku6Xlt6blj7Pnp7vliqg7XHJcbiAgICB0b3VjaFBvaW50WDogbnVtYmVyID0gMDsgICAgICAgIC8v6Kem5pG454K5WOWdkOaghztcclxuICAgIHRvdWNoUG9pbnRZOiBudW1iZXIgPSAwOyAgICAgICAgLy/op6bmkbjngrlZ5Z2Q5qCHO1xyXG4gICAgYmxvY2tJZDogbnVtYmVyID0gMDsgICAgICAgICAgICAvL+aWueWdl0lEO1xyXG4gICAgc3RhY2tpbmc6IGNjLlZlYzI7ICAgICAgICAvL+WPoOWKoOaWueWdl1xyXG4gICAgbGV2ZWw6IG51bWJlciA9IDA7ICAgICAgICAgICAgLy/lj6DliqDmlrnlnZflsYLmlbA7XHJcbiAgICBwejogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgY29sbGlkZXI6IGFueTtcclxuICAgIGJsb2NrX0luZm86YW55O1xyXG4gICAgX3RvdWNoTGlzdGVuZXI6IGFueTtcclxuICAgIHJlbGF0aXZlX1Bvc2l0aW9uOmNjLlZlYzI7ICAvL+eCueWHu+WSjOaWueWdl+ebuOWvueS9jee9rlxyXG4gICAgcHJpdmF0ZSBfZXZlbnRNYW5hZ2VyOiBhbnk7XHJcbiAgICBoaXQ6IGNjLk5vZGU7XHJcblxyXG5cclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9TVEFSVCwgdGhpcy50b3VjaFN0YXJ0LCB0aGlzKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfTU9WRSwgdGhpcy50b3VjaE1vdmUsIHRoaXMpOyAgXHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0NBTkNFTCwgdGhpcy50b3VjaEVuZCwgdGhpcyk7ICBcclxuICAgICAgICAvLyB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuVE9VQ0hfRU5ELCB0aGlzLnRvdWNoRW5kLCB0aGlzKTsgIFxyXG4gICAgICAgIHRoaXMucHogPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnN0YWNraW5nID0gY2MudjIoMCwwKTtcclxuICAgICAgICAvLyB0aGlzLnNlbGZCb3hDb2xsaWRlcnMgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50c0luQ2hpbGRyZW4oY2MuQm94Q29sbGlkZXIpXHJcbiAgICAgICAgLy8gLmZpbHRlcihjb2xsaWRlciA9PiBjb2xsaWRlci50YWcgPCA0KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBqc29uRGVlcENsb25lPFQ+KG9iajogVCk6IFQge1xyXG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQoYmxvY2tfSW5mbyxwb3NYLHBvc1ksbm9kZSl7XHJcbiAgICAgICAgdGhpcy5ibG9ja19JbmZvID0gdGhpcy5qc29uRGVlcENsb25lKGJsb2NrX0luZm8pO1xyXG4gICAgICAgIGxldCBtYXBJbmZvID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm1hcEluZm87XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8bWFwSW5mby5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGxldCBibG9ja1JlY3QgPSBtYXBJbmZvW2ldLmdldEJvdW5kaW5nQm94KCk7XHJcbiAgICAgICAgICAgIC8vIOS9v+eUqCBjYy5JbnRlcnNlY3Rpb24ucG9pbnRJblJlY3Qg5pa55rOV5Yik5pat54K55piv5ZCm5Zyo55+p5b2i6IyD5Zu05YaFXHJcbiAgICAgICAgICAgIGxldCBwb2ludCA9IGNjLnYyKHRoaXMubm9kZS5wb3NpdGlvbi54LTUsIHRoaXMubm9kZS5wb3NpdGlvbi55KzEwKVxyXG4gICAgICAgICAgICBpZihibG9ja1JlY3QuY29udGFpbnMocG9pbnQpKXtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zWCA9IG1hcEluZm9baV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWDtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zWSA9IG1hcEluZm9baV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGV2ZWwgPSA1MCArIHRoaXMucG9zWCAtIHRoaXMucG9zWSozO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnpJbmRleCA9IHRoaXMubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUueCA9IG1hcEluZm9baV0ueCArIDY1O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnkgPSBtYXBJbmZvW2ldLnkgLSA2MDtcclxuICAgICAgICAgICAgICAgIGk9IDEwMDAwO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuXHJcbiJdfQ== \ No newline at end of file +//# 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 \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/DynamicAtlasManager.js b/temp/quick-scripts/dst/assets/Script/DynamicAtlasManager.js index 4c209c5..61eb5e7 100644 --- a/temp/quick-scripts/dst/assets/Script/DynamicAtlasManager.js +++ b/temp/quick-scripts/dst/assets/Script/DynamicAtlasManager.js @@ -34,4 +34,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxEeW5hbWljQXRsYXNNYW5hZ2VyLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwib25Mb2FkIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsImVuYWJsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUFBLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ0wsYUFBU0QsRUFBRSxDQUFDRSxTQURQO0FBR0xDLEVBQUFBLFVBQVUsRUFBRSxFQUhQO0FBTUxDLEVBQUFBLE1BTkssb0JBTUs7QUFDTkosSUFBQUEsRUFBRSxDQUFDSyxtQkFBSCxDQUF1QkMsT0FBdkIsR0FBaUMsS0FBakM7QUFDSDtBQVJJLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImNjLkNsYXNzKHtcclxuICAgIGV4dGVuZHM6IGNjLkNvbXBvbmVudCxcclxuXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICB9LFxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgY2MuZHluYW1pY0F0bGFzTWFuYWdlci5lbmFibGVkID0gZmFsc2U7XHJcbiAgICB9LFxyXG59KTtcclxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxEeW5hbWljQXRsYXNNYW5hZ2VyLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwib25Mb2FkIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsImVuYWJsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUFBLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDO0VBQ0wsV0FBU0QsRUFBRSxDQUFDRSxTQUFTO0VBRXJCQyxVQUFVLEVBQUUsQ0FDWixDQUFDO0VBRURDLE1BQU0sV0FBQUEsT0FBQSxFQUFJO0lBQ05KLEVBQUUsQ0FBQ0ssbUJBQW1CLENBQUNDLE9BQU8sR0FBRyxLQUFLO0VBQzFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJjYy5DbGFzcyh7XHJcbiAgICBleHRlbmRzOiBjYy5Db21wb25lbnQsXHJcblxyXG4gICAgcHJvcGVydGllczoge1xyXG4gICAgfSxcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG4gICAgICAgIGNjLmR5bmFtaWNBdGxhc01hbmFnZXIuZW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgfSxcclxufSk7XHJcbiJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/GameManager.js b/temp/quick-scripts/dst/assets/Script/GameManager.js index 9d1b5c1..aa70036 100644 --- a/temp/quick-scripts/dst/assets/Script/GameManager.js +++ b/temp/quick-scripts/dst/assets/Script/GameManager.js @@ -93,6 +93,7 @@ var GameManager = /** @class */ (function (_super) { } // 将加载的 Prefab 赋值给 Block_Array _this.Block_Array = assets; + console.log('方块加载成功,共加载了', _this.Block_Array.length, '个方块'); _this.setSort(); _this.load1 = true; }); @@ -105,6 +106,7 @@ var GameManager = /** @class */ (function (_super) { // 将加载的 Prefab 赋值给 Block_Array _this.Wall_Prefab = assets; _this.load2 = true; + console.log('墙加载成功,共加载了', _this.Wall_Prefab.length, '个墙'); _this.setWallPrefabSort(); }); // debugger; @@ -686,4 +688,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdsRixpREFBZ0Q7QUFFMUMsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBeUMsK0JBQVk7SUFBckQ7UUFBQSxxRUF1cEJDO1FBcHBCRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFJdkIsaUJBQVcsR0FBc0IsRUFBRSxDQUFDO1FBR3BDLGlCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUdwQyxpQkFBVyxHQUEyQixFQUFFLENBQUM7UUFHekMseURBQXlEO1FBQ3pELG1EQUFtRDtRQUVuRCxXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7O0lBNm5CM0IsQ0FBQztvQkF2cEJvQixXQUFXO0lBK0I1Qix3QkFBd0I7SUFFeEIsNEJBQU0sR0FBTjtRQUFBLGlCQTRFQztRQTFFRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxD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QUFDLEtBQUssQ0FBQzs4Q0FDSTtJQUd2QjtRQURDLFFBQVE7NkNBQ2M7SUFJdkI7UUFEQyxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFDLE1BQU0sRUFBQyxDQUFDO29EQUNWO0lBR3BDO1FBREMsUUFBUSxDQUFDLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBQyxNQUFNLEVBQUMsQ0FBQztvREFDVjtJQUdwQztRQURDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUMsTUFBTSxFQUFDLENBQUM7b0RBQ1Y7SUFoQnhCLFdBQVc7UUFEL0IsT0FBTztPQUNhLFdBQVcsQ0F1cEIvQjtJQUFELGtCQUFDO0NBdnBCRCxBQXVwQkMsQ0F2cEJ3QyxFQUFFLENBQUMsU0FBUyxHQXVwQnBEO2tCQXZwQm9CLFdBQVciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgeyBNaW5pR2FtZU1hbmFnZXIgfSBmcm9tIFwiLi9TZGsvTWluaUdhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBsYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgdGV4dDogc3RyaW5nID0gJ2hlbGxvJztcclxuICAgIHN0YXRpYyBfaW5zdGFuY2UgOiBHYW1lTWFuYWdlciA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuaWueWdl+aVsOe7hFwifSlcclxuICAgIEJsb2NrX0FycmF5IDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlByZWZhYl0sIHRvb2x0aXA6XCLlopnlo4HmlbDnu4RcIn0pXHJcbiAgICBXYWxsX1ByZWZhYiA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5TcHJpdGVBdGxhc10sIHRvb2x0aXA6XCLmlrnlnZfpopzoibJcIn0pXHJcbiAgICBCbG9ja19Db2xvciA6IEFycmF5PGNjLlNwcml0ZUF0bGFzPiA9IFtdO1xyXG5cclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gQHByb3BlcnR5KHt0eXBlOiBbY2MuUGFydGljbGVTeXN0ZW1dLCB0b29sdGlwOlwi57KS5a2Q5pWw57uEXCJ9KVxyXG4gICAgLy8gcGFydGljbGVFZmZlY3RzIDogQXJyYXk8Y2MuUGFydGljbGVTeXN0ZW0+ID0gW107XHJcblxyXG4gICAgbG9hZDEgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQyIDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMyA6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZDQgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQ1IDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBzY2hlZHVsZUNhbGxiYWNrOiBhbnk7XHJcbiAgICB0aW1lTnVtYmVyOiBudW1iZXI7XHJcblxyXG4gICAgXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgICAgICB3aW5kb3cuaW5pdE1ncigpO1xyXG4gICAgICAgIHRoaXMudGltZU51bWJlciA9IDM7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5pbml0KHRydWUpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lU3RhdGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlYWRNdXNpY0NvbmZpZygpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6Z+z5LmQ5byA5YWzXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3Blbik7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5TXVzaWNHYW1lKCk7XHJcblxyXG4gICAgICAgIHRoaXMubG9hZDEgPSB0aGlzLmxvYWQyID0gdGhpcy5sb2FkMyA9IHRoaXMubG9hZDQgPSB0aGlzLmxvYWQ1ID1mYWxzZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZWFkVXNlckRhdGEoKTtcclxuICAgICAgICB9LCAyMDApO1xyXG4gXHJcblxyXG4gICAgICAgIGlmIChHYW1lTWFuYWdlci5faW5zdGFuY2UgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBHYW1lTWFuYWdlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgICAgICAgICBjYy5nYW1lLmFkZFBlcnNpc3RSb290Tm9kZSh0aGlzLm5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcGF0aCA9ICdwcmVmYWIvYmxvY2snO1xyXG4gICAgICAgIGNvbnN0IHBhdGgyID0gJ3ByZWZhYi93YWxsJztcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZERpcihwYXRoLCBjYy5QcmVmYWIsIChlcnIsIGFzc2V0czogY2MuUHJlZmFiW10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5bCG5Yqg6L2955qEIFByZWZhYiDotYvlgLznu5kgQmxvY2tfQXJyYXlcclxuICAgICAgICAgICAgdGhpcy5CbG9ja19BcnJheSA9IGFzc2V0cztcclxuICAgICAgICAgICAgdGhpcy5zZXRTb3J0KCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDEgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZERpcihwYXRoMiwgY2MuUHJlZmFiLCAoZXJyLCBhc3NldHM6IGNjLlByZWZhYltdKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5bCG5Yqg6L2955qEIFByZWZhYiDotYvlgLznu5kgQmxvY2tfQXJyYXlcclxuICAgICAgICAgICAgdGhpcy5XYWxsX1ByZWZhYiA9IGFzc2V0cztcclxuICAgICAgICAgICAgdGhpcy5sb2FkMiA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0V2FsbFByZWZhYlNvcnQoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gZGVidWdnZXI7XHJcblxyXG4gICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIC8vICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVycikgPT4ge1xyXG4gICAgICAgIC8vICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+mihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIC8vICAgICAgICAgfVxyXG4gICAgICAgIC8vICAgICB9KTtcclxuICAgICAgICAvLyB9LCAxMDAwKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyDmo4DmtYvlvq7kv6HlsI/muLjmiI/liIfliLDlkI7lj7BcclxuICAgICAgICBpZiAoY2Muc3lzLnBsYXRmb3JtID09PSBjYy5zeXMuV0VDSEFUX0dBTUUpIHtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4Lm9uSGlkZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uSGlkZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgLy8g5qOA5rWL5b6u5L+h5bCP5ri45oiP5Zue5Yiw5YmN5Y+wXHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5vblNob3coKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblNob3coKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBvbkhpZGUgKCkge1xyXG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnN0b3BNdXNpYygpO1xyXG4gICAgICAgIGNjLmdhbWUucGF1c2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNob3cgKCkge1xyXG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnJlc3VtZU11c2ljKCk7XHJcbiAgICAgICAgY2MuZ2FtZS5yZXN1bWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkUGFydGljbGVFZmZlY3RzKCkge1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxuXHJcbiAgICBzZXRXYWxsUHJlZmFiU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsnZG93bicsICdkb3duTGVmdCcsICdkb3duUmlnaHQnLCAnbGVmdCcsJ3JpZ2h0JywndXAnLCd1cExlZnQnLCd1cFJpZ2h0J107XHJcbiAgICAgICAgdGhpcy5XYWxsX1ByZWZhYi5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhBID09PSAtMSkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEIgPT09IC0xKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIHJldHVybiBpbmRleEEgLSBpbmRleEI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgc2V0UGFydGljbGVTb3J0KCkge1xyXG4gICAgICAgIGNvbnN0IG9yZGVyID0gWyd0b3AnLCAnYm90JywgJ3JpZycsICdsZWYnXTtcclxuICAgICAgICB0aGlzLnBhcnRpY2xlRWZmZWN0cy5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lLnN1YnN0cigwLDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUuc3Vic3RyKDAsMykpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhBID09PSAtMSkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEIgPT09IC0xKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIHJldHVybiBpbmRleEEgLSBpbmRleEI7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U29ydCgpe1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQXJyYXkuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyDku47lkI3np7DkuK3mj5Dlj5bmlbDlrZfpg6jliIZcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQSA9IHBhcnNlSW50KGEubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bWJlckIgPSBwYXJzZUludChiLm5hbWUubWF0Y2goL1xcZCsvKT8uWzBdIHx8ICcwJywgMTApO1xyXG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyQSAtIG51bWJlckI7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzdGFydEdhbWUoKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIui/m+WFpeWcuuaZr+S5i+WJjV9fX19fX19fX19fX19cIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCl7XHJcbiAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKSlcclxuICAgICAgICAgICAgLnRvKDAuNSwge29wYWNpdHk6IDEwMH0pXHJcbiAgICAgICAgICAgIC5jYWxsKCgpID0+IHtcclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIC8vIOmihOWKoOi9veaIkOWKn+WQjuWKoOi9veWcuuaZr1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuXHJcbiAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikpXHJcbiAgICAgICAgICAgIC50bygwLjUse29wYWNpdHk6IDI1NX0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgICAgICAvLyBjYy5sb2FkZXIucmVsZWFzZUFsbCgpO1xyXG4gICAgICAgIC8vIOmihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmvXHJcblxyXG4gICBcclxuICAgIH1cclxuXHJcblxyXG4gICAgcmVhZFVzZXJEYXRhKHJldHJ5Q291bnQgPSAwKXtcclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgaWYgKHR5cGVvZiB3eCAhPT0gJ3VuZGVmaW5lZCcgJiYgd3ggIT09IG51bGwpIHsgXHJcbiAgICAgICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcImxldmVsXCIpO1xyXG4gICAgICAgICAgICAgICAgLy/ml6fnmoTor7vlj5bmlbDmja7orr7nva7mlbDmja7mlrnms5Us5Lul5by66IGU572R5Li65Li7XHJcbiAgICAgICAgICAgICAgICBpZihsZXZlbEluZm8gPT0gdW5kZWZpbmVkIHx8IGxldmVsSW5mbyA9PSBcIlwiIHx8IGxldmVsSW5mbyA9PSBudWxsKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9sZFJlYWREYXRhKHJldHJ5Q291bnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy/mlrDnmoTor7vlj5bmlbDmja7orr7nva7mlrnms5XvvIzku6XmnKzlnLDkuLrkuLtcclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXdSZWFkRGF0YSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLljbPlsIbor7vlj5bkvZPlipvlgLxcIik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgoKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkvZPlipvlgLzlrozmiJDov5vlhaXmuLjmiI9cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkNSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgIH1cclxuICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQ1ID0gdHJ1ZTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0SGVhbHRoKG51bGwpO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgLy8g5a2Y5YKo55So5oi35pWw5o2uXHJcbiAgICB9XHJcblxyXG4gICAgcmVhZE11c2ljQ29uZmlnKCl7XHJcbiAgICAgICAgbGV0IGF1ZGlvSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJtdXNpY1wiKTtcclxuICAgICAgICBpZihhdWRpb0luZm8gPT0gdW5kZWZpbmVkIHx8IGF1ZGlvSW5mbyA9PSBcIlwiIHx8IGF1ZGlvSW5mbyA9PSBudWxsKXtcclxuICAgICAgICAgICAgYXVkaW9JbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgXCJtdXNpY09wZW5cIjogdHJ1ZSwgICAgICAgICAgICAgLy/pn7PkuZBcclxuICAgICAgICAgICAgICAgIFwiZWZmZWN0T3BlblwiOiB0cnVlLCAgICAgICAgICAgIC8v6Z+z5pWIXHJcbiAgICAgICAgICAgICAgICBcInZpYnJhdGVPcGVuXCI6IHRydWUsICAgICAgICAgICAvL+mch+WKqFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJtdXNpY1wiLGF1ZGlvSW5mbyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tdXNpY09wZW4gPSBhdWRpb0luZm8ubXVzaWNPcGVuO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZWZmZWN0T3BlbiA9IGF1ZGlvSW5mby5lZmZlY3RPcGVuO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udmlicmF0ZU9wZW4gPSBhdWRpb0luZm8udmlicmF0ZU9wZW47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvL+aWsOeUqOaIt++8jOacieacrOWcsOe8k+WtmOivu+WPlumFjee9rlxyXG4gICAgbmV3UmVhZERhdGEoKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuivu+WPluaWsOS/oeaBr1wiKTtcclxuICAgICAgICBsZXQgb3BlbmlkID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcIm9wZW5pZFwiKTtcclxuICAgICAgICBpZihvcGVuaWQgPT0gbnVsbCB8fCBvcGVuaWQgPT0gXCJcIiB8fCBvcGVuaWQgPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnIlvcGVuaWRcIik7XHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXNlckRhdGEnLFxyXG4gICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygn6K+75Y+W55So5oi35pWw5o2u5oiQ5YqfJywgcmVzLnJlc3VsdClcclxuICAgICAgICAgICAgICAgICAgICBpZihyZXMucmVzdWx0LmNvZGUgPT0gNDA0ICYmIHJlcy5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOeUqOaIt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihyZXMucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5kYXRhKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSByZXMucmVzdWx0Lm9wZW5pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VybmFtZSA9IHJlcy5yZXN1bHQuZGF0YS51c2VybmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VyYXZhdGFyID0gcmVzLnJlc3VsdC5kYXRhLnVzZXJhdmF0YXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdpc3Rlcl90aW1lID0gcmVzLnJlc3VsdC5kYXRhLnJlZ2lzdGVyX3RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X3VzZXJTZXQocmVnaXN0ZXJfdGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwib3BlbmlkXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfor7vlj5bnlKjmiLfmlbDmja7lpLHotKUnLCBlcnIpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKG9wZW5pZClcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSBvcGVuaWQ7XHJcbiAgICAgICAgfVxyXG4gICBcclxuXHJcblxyXG4gICAgICAgIC8v562J57qn5L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckxldmVsKChkYXRhKSA9PntcclxuICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJsZXZlbFwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOWFs+WNoeaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ562J57qn5L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIpO1xyXG4gICAgICAgICAgICAgICAgaWYobGV2ZWxJbmZvLmxldmVsKXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBsZXZlbEluZm8ubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pyJ562J57qn5L+h5oGv77yM5LuO5YWz5Y2h5o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAvL+a4uOaIj+WJjeerr+WtmOWCqCDmlrDkuo7mnI3liqHlmajnq68s5Lul5ri45oiP5YmN56uv5L+h5oGv5Li65Li777yM5pS+5pyN5Yqh5Zmo5a2Y5YKoXHJcbiAgICAgICAgICAgICAgICBsZXQgdGVtcCA9IGRhdGEucmVzdWx0LnRpbWVzdGFtcCAtIGxldmVsSW5mby50aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuetiee6p+aXtumXtOW3rjpcIix0ZW1wKTtcclxuICAgICAgICAgICAgICAgIGlmKChkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBsZXZlbEluZm8udGltZXN0YW1wKSA8IDEwMDAwKXtcclxuICAgICAgICAgICAgICAgICAgICBpZihsZXZlbEluZm8ubGV2ZWwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7pea4uOaIj+WJjeerr+etiee6p+S4uuWHhlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBsZXZlbEluZm8ubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi562J57qn5Li6OlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8v5pyN5Yqh5Zmo56uv5a2Y5YKo5pe26Ze05paw5LqO5ri45oiP56uv77yM5Lul5pyN5Yqh5Zmo56uv5Li65Li7LOW+gOWJjeerr+WtmOWCqFxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peacjeWKoeWZqOetiee6p+S4uuWHhlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IGRhdGEucmVzdWx0LmRhdGE7IFxyXG4gICAgICAgICAgICAgICAgICAgIGxldmVsSW5mby5sZXZlbCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbDtcclxuICAgICAgICAgICAgICAgICAgICBsZXZlbEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiMTExMTExMeWtmOWCqOWFs+WNoeaVsOaNrjpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8v6YeR5biB5L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckNvaW4oKGRhdGEpID0+e1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgY29pbkluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwiY29pblwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmHkeW4geaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIGlmKGNvaW5JbmZvLmNvaW4pXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBjb2luSW5mby5jb2luO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInph5HluIHkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmnInph5HluIHkv6Hmga/vvIzku47ph5HluIHmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgIC8v5ri45oiP5YmN56uv5a2Y5YKoIOaWsOS6juacjeWKoeWZqOerryzku6XmuLjmiI/liY3nq6/kv6Hmga/kuLrkuLvvvIzmlL7mnI3liqHlmajlrZjlgqhcclxuICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gY29pbkluZm8udGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLph5HluIHml7bpl7Tlt646XCIsdGVtcCk7XHJcbiAgICAgICAgICAgICAgICBpZigoZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gY29pbkluZm8udGltZXN0YW1wKSA8IDEwMDAwKXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peWJjeerr+mHkeW5o+S4uuWHhjpcIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY29pbkluZm8uY29pbilcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBjb2luSW5mby5jb2luO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gZGF0YS5yZXN1bHQuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29pbkluZm8uY29pbiA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2luSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMTExMTExMTExMTFcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaUueWPmOWQjumHkeW4gTpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckNvaW4oKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvL+acjeWKoeWZqOerr+WtmOWCqOaXtumXtOaWsOS6jua4uOaIj+err++8jOS7peacjeWKoeWZqOerr+S4uuS4uyzlvoDliY3nq6/lrZjlgqhcclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLku6XmnI3liqHlmajph5HluaPkuLrlh4Y6XCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBkYXRhLnJlc3VsdC5kYXRhOyBcclxuICAgICAgICAgICAgICAgICAgICBjb2luSW5mby5jb2luID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW47XHJcbiAgICAgICAgICAgICAgICAgICAgY29pbkluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMjIyMjIyMjIyMlwiKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8v6YGT5YW35L+h5oGvXHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlclByb3AoKGRhdGEpID0+e1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmBk+WFt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ6YGT5YW35L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgaWYocHJvcEluZm8uZnJlZXplQW1vdW50ID09IHVuZGVmaW5lZCB8fCBwcm9wSW5mby5oYW1tZXJBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLm1hZ2ljQW1vdW50ID09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMjIyMjIyMumBk+WFt+aVsOaNruW8guW4uFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91biA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mb05ldyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIxMTExMTEx5LiK5Lyg6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmZyZWV6ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5tYWdpY193YW5kO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IHByb3BJbmZvLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBwcm9wSW5mby5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBwcm9wSW5mby5tYWdpY0Ftb3VudDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDAsMCwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pys5Zyw5pe26Ze05oizXCIscHJvcEluZm8udGltZXN0YW1wLFwi5pyN5Yqh5Zmo5pe26Ze05oizXCIsZGF0YS5yZXN1bHQudGltZXN0YW1wKTtcclxuICAgICAgICAgICAgICAgIGlmKChkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBwcm9wSW5mby50aW1lc3RhbXApIDwgMTAwMDApe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5Lul5YmN56uv6YGT5YW35Li65Li7OlwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBpZihwcm9wSW5mby5mcmVlemVBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLmhhbW1lckFtb3VudCA9PSB1bmRlZmluZWQgfHwgcHJvcEluZm8ubWFnaWNBbW91bnQgPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIxMTExMTHpgZPlhbfmlbDmja7lvILluLhcIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuZnJlZXplO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IGRhdGEucmVzdWx0LmRhdGEubWFnaWNfd2FuZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvTmV3ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIzMzMzMzPkuIrkvKDpgZPlhbfkv6Hmga86XCIscHJvcEluZm9OZXcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLpgZPlhbfmlbDmja7mraPluLhcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBwcm9wSW5mby5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBwcm9wSW5mby5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IHByb3BJbmZvLm1hZ2ljQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgwLDAsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuZnJlZXplO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmhhbW1lcjtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvTmV3ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXBcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIyMjIyMjIyMuS4iuS8oOmBk+WFt+S/oeaBrzpcIixwcm9wSW5mb05ldyxkYXRhLnJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvL+aXp+eUqOaIt++8jOaXoOacrOWcsOe8k+WtmOivu+WPlumFjee9rlxyXG4gICAgb2xkUmVhZERhdGEocmV0cnlDb3VudDpudW1iZXIpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6K+75Y+W5pen5L+h5oGvXCIpO1xyXG4gICAgICAgIGNvbnN0IE1BWF9SRVRSSUVTID0gMTU7XHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAvLyDor7vlj5bnlKjmiLfmlbDmja5cclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgIG5hbWU6ICd1c2VyRGF0YScsXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICBhY3Rpb246ICdyZWFkJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3VjY2VzczogcmVzID0+IHsgICBcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ+ivu+WPlueUqOaIt+aVsOaNruaIkOWKnycsIHJlcy5yZXN1bHQpXHJcbiAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQuY29kZSA9PSA0MDQgJiYgcmVzLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw55So5oi35pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5vcGVuaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSByZXMucmVzdWx0Lm9wZW5pZFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZpcnN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0ge1wibGV2ZWxcIjowLFwidGltZXN0YW1wXCI6dGltZXN0YW1wfTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJsZXZlbFwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICBsZXQgY29pbkluZm8gPSB7XCJjb2luXCI6MCxcInRpbWVzdGFtcFwiOnRpbWVzdGFtcH07XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjMzMzMzMzMzMzMzXCIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjowLFxyXG4gICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOnRpbWVzdGFtcCxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VySW5mbygoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg55So5oi35L+h5oGv5oiQ5YqfXCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3VzZXJEYXRhJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdyZWFkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogcmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOWQju+8jOivu+WPlueUqOaIt+S/oeaBr++8jOS4uuS4iuaKpeazqOWGjOaXtumXtFwiKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0aW1lID0gcmVzLnJlc3VsdC5kYXRhLnJlZ2lzdGVyX3RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfdXNlclNldCh0aW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuacjeWKoeWZqOS5n+ayoeaciemHkeW4geS/oeaBr1wiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyTGV2ZWwoKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMCwwLChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOmBk+WFt+S/oeaBr+aIkOWKn1wiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi572R57uc5byC5bi477yM5q2j5Zyo5Yqq5Yqb5Yqg6L29XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbGRSZWFkRGF0YSgwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKHJlcy5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5kYXRhKXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkID0gcmVzLnJlc3VsdC5vcGVuaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gcmVzLnJlc3VsdC5kYXRhLmxldmVsO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gcmVzLnJlc3VsdC5kYXRhLmNvaW5BbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5mcmVlemVBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IHJlcy5yZXN1bHQuZGF0YS5oYW1tZXJBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLm1hZ2ljQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VybmFtZSA9IHJlcy5yZXN1bHQuZGF0YS51c2VybmFtZTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcmF2YXRhciA9IHJlcy5yZXN1bHQuZGF0YS51c2VyYXZhdGFyO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJvcGVuaWRcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdpc3Rlcl90aW1lID0gcmVzLnJlc3VsdC5kYXRhLnJlZ2lzdGVyX3RpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV91c2VyU2V0KHJlZ2lzdGVyX3RpbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckNvaW4oKGRhdGEpID0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw6YeR5biB5pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvaW5JbmZvID0ge1wiY29pblwiOjAsXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuayoeaciemHkeW4geS/oeaBr++8jOS7jueUqOaIt+aOpeWPo+aLv+WIsOaVsOaNrlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJDb2luKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiK5LygXCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pyJ6YeR5biB5L+h5oGv77yM5LuO6YeR5biB5o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IGRhdGEucmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29pbkluZm8gPSB7XCJjb2luXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLlrZjlgqjph5HluIHkv6Hmga86XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCI0NDQ0NDQ0NDQ0XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9LCA1MDApO1xyXG5cclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJMZXZlbCgoZGF0YSkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOWFs+WNoeaVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInnrYnnuqfkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsZXZlbEluZm8gPSB7XCJsZXZlbFwiOjAsXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIjMzMzMzM+WtmOWCqOWFs+WNoeaVsOaNrjpcIixsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImxldmVsXCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckxldmVsKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmi7/liLDnmoTmlbDmja5cIixkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuacieetiee6p+S/oeaBr++8jOS7juWFs+WNoeaOpeWPo+aLv+WIsOaVsOaNrlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSBkYXRhLnJlc3VsdC5kYXRhOyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IHtcImxldmVsXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsLFwidGltZXN0YW1wXCI6dGltZXN0YW1wfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCI0NDQ0NDTlrZjlgqjlhbPljaHkv6Hmga86XCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImxldmVsXCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFVzZXJQcm9wKChkYXRhKSA9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSA0MDQgJiYgZGF0YS5yZXN1bHQubWVzc2FnZSA9PSBcIuacquaJvuWIsOmBk+WFt+aVsOaNrlwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ6YGT5YW35L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjowLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGFtbWVyQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6MCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOnRpbWVzdGFtcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMCwwLChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmnInpgZPlhbfkv6Hmga/vvIzku47pgZPlhbfmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmZyZWV6ZSB8fCAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuaGFtbWVyIHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oOmBk+WFt+S/oeaBrzpcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfSwgMCk7XHJcbiAgICBcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9LFxyXG4gICAgICAgIGZhaWw6IGVyciA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+ivu+WPlueUqOaIt+aVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgaWYgKHJldHJ5Q291bnQgPCBNQVhfUkVUUklFUykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYOivu+WPlueUqOaIt+aVsOaNruWksei0pe+8jOesrCAke3JldHJ5Q291bnQgKyAxfSDmrKHph43or5XvvIzplJnor6/kv6Hmga86YCwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyDlu7bov58gMiDnp5LlkI7ph43or5VcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWFkVXNlckRhdGEocmV0cnlDb3VudCArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMDApO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfor7vlj5bnlKjmiLfmlbDmja7lpLHotKXvvIzovr7liLDmnIDlpKfph43or5XmrKHmlbDvvIzpgIDlh7rmuLjmiI8nLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOmAgOWHuua4uOaIj1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmdhbWUuZW5kKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHNldFVzZXJEYXRhKCl7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HYW1lVG9vbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKBcIixkYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0VGltZUN1dERvd24oKXtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICBpZih0aGlzLnRpbWVOdW1iZXIgPD0gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVOdW1iZXIgLT0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjaywgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcFRpbWVDdXREb3duKCl7XHJcbiAgICAgICAgaWYodGhpcy5zY2hlZHVsZUNhbGxiYWNrKXtcclxuICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjayk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZSAoZHQpIHtcclxuICAgICAgICBpZih0aGlzLmxvYWQxICYmIHRoaXMubG9hZDIgJiYgdGhpcy5sb2FkMyAgJiYgdGhpcy5sb2FkNCAmJiB0aGlzLmxvYWQ1ICYmIHRoaXMudGltZU51bWJlciA8PSAwKXtcclxuICAgICAgICAgICAgdGhpcy5sb2FkMSA9IHRoaXMubG9hZDIgPSBmYWxzZTtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV9Jbml0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnRHYW1lKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdsRixpREFBZ0Q7QUFFMUMsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBeUMsK0JBQVk7SUFBckQ7UUFBQSxxRUF5cEJDO1FBdHBCRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFJdkIsaUJBQVcsR0FBc0IsRUFBRSxDQUFDO1FBR3BDLGlCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUdwQyxpQkFBVyxHQUEyQixFQUFFLENBQUM7UUFHekMseURBQXlEO1FBQ3pELG1EQUFtRDtRQUVuRCxXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFdBQUssR0FBWSxLQUFLLENBQUM7O0lBK25CM0IsQ0FBQztvQkF6cEJvQixXQUFXO0lBK0I1Qix3QkFBd0I7SUFFeEIsNEJBQU0sR0FBTjtRQUFBLGlCQThFQztRQTVFRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxD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LEdBQUcsS0FBSyxDQUFDO1lBQ2hDLHlCQUFXLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNwQjtJQUNMLENBQUM7O0lBanBCTSxxQkFBUyxHQUFpQixJQUFJLENBQUM7SUFKdEM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQzs4Q0FDSTtJQUd2QjtRQURDLFFBQVE7NkNBQ2M7SUFJdkI7UUFEQyxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFDLE1BQU0sRUFBQyxDQUFDO29EQUNWO0lBR3BDO1FBREMsUUFBUSxDQUFDLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBQyxNQUFNLEVBQUMsQ0FBQztvREFDVjtJQUdwQztRQURDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUMsTUFBTSxFQUFDLENBQUM7b0RBQ1Y7SUFoQnhCLFdBQVc7UUFEL0IsT0FBTztPQUNhLFdBQVcsQ0F5cEIvQjtJQUFELGtCQUFDO0NBenBCRCxBQXlwQkMsQ0F6cEJ3QyxFQUFFLENBQUMsU0FBUyxHQXlwQnBEO2tCQXpwQm9CLFdBQVciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgeyBNaW5pR2FtZU1hbmFnZXIgfSBmcm9tIFwiLi9TZGsvTWluaUdhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBsYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgdGV4dDogc3RyaW5nID0gJ2hlbGxvJztcclxuICAgIHN0YXRpYyBfaW5zdGFuY2UgOiBHYW1lTWFuYWdlciA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuaWueWdl+aVsOe7hFwifSlcclxuICAgIEJsb2NrX0FycmF5IDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlByZWZhYl0sIHRvb2x0aXA6XCLlopnlo4HmlbDnu4RcIn0pXHJcbiAgICBXYWxsX1ByZWZhYiA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5TcHJpdGVBdGxhc10sIHRvb2x0aXA6XCLmlrnlnZfpopzoibJcIn0pXHJcbiAgICBCbG9ja19Db2xvciA6IEFycmF5PGNjLlNwcml0ZUF0bGFzPiA9IFtdO1xyXG5cclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gQHByb3BlcnR5KHt0eXBlOiBbY2MuUGFydGljbGVTeXN0ZW1dLCB0b29sdGlwOlwi57KS5a2Q5pWw57uEXCJ9KVxyXG4gICAgLy8gcGFydGljbGVFZmZlY3RzIDogQXJyYXk8Y2MuUGFydGljbGVTeXN0ZW0+ID0gW107XHJcblxyXG4gICAgbG9hZDEgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQyIDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMyA6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZDQgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQ1IDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBzY2hlZHVsZUNhbGxiYWNrOiBhbnk7XHJcbiAgICB0aW1lTnVtYmVyOiBudW1iZXI7XHJcblxyXG4gICAgXHJcbiAgICAvLyBMSUZFLUNZQ0xFIENBTExCQUNLUzpcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgICAgICB3aW5kb3cuaW5pdE1ncigpO1xyXG4gICAgICAgIHRoaXMudGltZU51bWJlciA9IDM7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5pbml0KHRydWUpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lU3RhdGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlYWRNdXNpY0NvbmZpZygpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6Z+z5LmQ5byA5YWzXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3Blbik7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5TXVzaWNHYW1lKCk7XHJcblxyXG4gICAgICAgIHRoaXMubG9hZDEgPSB0aGlzLmxvYWQyID0gdGhpcy5sb2FkMyA9IHRoaXMubG9hZDQgPSB0aGlzLmxvYWQ1ID1mYWxzZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZWFkVXNlckRhdGEoKTtcclxuICAgICAgICB9LCAyMDApO1xyXG4gXHJcblxyXG4gICAgICAgIGlmIChHYW1lTWFuYWdlci5faW5zdGFuY2UgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBHYW1lTWFuYWdlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgICAgICAgICBjYy5nYW1lLmFkZFBlcnNpc3RSb290Tm9kZSh0aGlzLm5vZGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcGF0aCA9ICdwcmVmYWIvYmxvY2snO1xyXG4gICAgICAgIGNvbnN0IHBhdGgyID0gJ3ByZWZhYi93YWxsJztcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZERpcihwYXRoLCBjYy5QcmVmYWIsIChlcnIsIGFzc2V0czogY2MuUHJlZmFiW10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJMb2FkU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5bCG5Yqg6L2955qEIFByZWZhYiDotYvlgLznu5kgQmxvY2tfQXJyYXlcclxuICAgICAgICAgICAgdGhpcy5CbG9ja19BcnJheSA9IGFzc2V0cztcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ+aWueWdl+WKoOi9veaIkOWKn++8jOWFseWKoOi9veS6hicsIHRoaXMuQmxvY2tfQXJyYXkubGVuZ3RoLCAn5Liq5pa55Z2XJyk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U29ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQxID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY2MucmVzb3VyY2VzLmxvYWREaXIocGF0aDIsIGNjLlByZWZhYiwgKGVyciwgYXNzZXRzOiBjYy5QcmVmYWJbXSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiTG9hZFNjZW5lXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOWwhuWKoOi9veeahCBQcmVmYWIg6LWL5YC857uZIEJsb2NrX0FycmF5XHJcbiAgICAgICAgICAgIHRoaXMuV2FsbF9QcmVmYWIgPSBhc3NldHM7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDIgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygn5aKZ5Yqg6L295oiQ5Yqf77yM5YWx5Yqg6L295LqGJywgdGhpcy5XYWxsX1ByZWZhYi5sZW5ndGgsICfkuKrlopknKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRXYWxsUHJlZmFiU29ydCgpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBkZWJ1Z2dlcjtcclxuXHJcbiAgICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgLy8gICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgLy8gICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgY29uc29sZS5lcnJvcign6aKE5Yqg6L29IEhvbWVTY2VuZSDlnLrmma/lpLHotKU6JywgZXJyKTtcclxuICAgICAgICAvLyAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgLy8gICAgIH0pO1xyXG4gICAgICAgIC8vIH0sIDEwMDApO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIOajgOa1i+W+ruS/oeWwj+a4uOaIj+WIh+WIsOWQjuWPsFxyXG4gICAgICAgIGlmIChjYy5zeXMucGxhdGZvcm0gPT09IGNjLnN5cy5XRUNIQVRfR0FNRSkge1xyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3gub25IaWRlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAvLyDmo4DmtYvlvq7kv6HlsI/muLjmiI/lm57liLDliY3lj7BcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4Lm9uU2hvdygoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uU2hvdygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG9uSGlkZSAoKSB7XHJcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUuc3RvcE11c2ljKCk7XHJcbiAgICAgICAgY2MuZ2FtZS5wYXVzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2hvdyAoKSB7XHJcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucmVzdW1lTXVzaWMoKTtcclxuICAgICAgICBjYy5nYW1lLnJlc3VtZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRQYXJ0aWNsZUVmZmVjdHMoKSB7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIFxyXG5cclxuICAgIHNldFdhbGxQcmVmYWJTb3J0KCkge1xyXG4gICAgICAgIGNvbnN0IG9yZGVyID0gWydkb3duJywgJ2Rvd25MZWZ0JywgJ2Rvd25SaWdodCcsICdsZWZ0JywncmlnaHQnLCd1cCcsJ3VwTGVmdCcsJ3VwUmlnaHQnXTtcclxuICAgICAgICB0aGlzLldhbGxfUHJlZmFiLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhBID0gb3JkZXIuaW5kZXhPZihhLm5hbWUpO1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEIgPSBvcmRlci5pbmRleE9mKGIubmFtZSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEEgPT09IC0xKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QiA9PT0gLTEpIHJldHVybiAtMTtcclxuICAgICAgICAgICAgcmV0dXJuIGluZGV4QSAtIGluZGV4QjtcclxuICAgICAgICB9KTtcclxuICAgICAgICBcclxuICAgIH1cclxuXHJcbiAgICBzZXRQYXJ0aWNsZVNvcnQoKSB7XHJcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBbJ3RvcCcsICdib3QnLCAncmlnJywgJ2xlZiddO1xyXG4gICAgICAgIHRoaXMucGFydGljbGVFZmZlY3RzLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhBID0gb3JkZXIuaW5kZXhPZihhLm5hbWUuc3Vic3RyKDAsMykpO1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEIgPSBvcmRlci5pbmRleE9mKGIubmFtZS5zdWJzdHIoMCwzKSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEEgPT09IC0xKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QiA9PT0gLTEpIHJldHVybiAtMTtcclxuICAgICAgICAgICAgcmV0dXJuIGluZGV4QSAtIGluZGV4QjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRTb3J0KCl7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOS7juWQjeensOS4reaPkOWPluaVsOWtl+mDqOWIhlxyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJBID0gcGFyc2VJbnQoYS5uYW1lLm1hdGNoKC9cXGQrLyk/LlswXSB8fCAnMCcsIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQiA9IHBhcnNlSW50KGIubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIHJldHVybiBudW1iZXJBIC0gbnVtYmVyQjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6L+b5YWl5Zy65pmv5LmL5YmNX19fX19fX19fX19fX1wiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCk7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybkhvbWUoKXtcclxuICAgICAgICBjYy50d2Vlbih0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpKVxyXG4gICAgICAgICAgICAudG8oMC41LCB7b3BhY2l0eTogMTAwfSlcclxuICAgICAgICAgICAgLmNhbGwoKCkgPT4ge1xyXG4gICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgLy8g6aKE5Yqg6L295oiQ5Yqf5ZCO5Yqg6L295Zy65pmvXHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqg6L29IEhvbWVTY2VuZSDlnLrmma/lpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgICAgICAgICAgY2MudHdlZW4odGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibWFza1wiKSlcclxuICAgICAgICAgICAgLnRvKDAuNSx7b3BhY2l0eTogMjU1fSlcclxuICAgICAgICAgICAgLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIC8vIGNjLmxvYWRlci5yZWxlYXNlQWxsKCk7XHJcbiAgICAgICAgLy8g6aKE5Yqg6L29IEhvbWVTY2VuZSDlnLrmma9cclxuXHJcbiAgIFxyXG4gICAgfVxyXG5cclxuXHJcbiAgICByZWFkVXNlckRhdGEocmV0cnlDb3VudCA9IDApe1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICBpZiAodHlwZW9mIHd4ICE9PSAndW5kZWZpbmVkJyAmJiB3eCAhPT0gbnVsbCkgeyBcclxuICAgICAgICAgICAgICAgIGxldCBsZXZlbEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwibGV2ZWxcIik7XHJcbiAgICAgICAgICAgICAgICAvL+aXp+eahOivu+WPluaVsOaNruiuvue9ruaVsOaNruaWueazlSzku6XlvLrogZTnvZHkuLrkuLtcclxuICAgICAgICAgICAgICAgIGlmKGxldmVsSW5mbyA9PSB1bmRlZmluZWQgfHwgbGV2ZWxJbmZvID09IFwiXCIgfHwgbGV2ZWxJbmZvID09IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub2xkUmVhZERhdGEocmV0cnlDb3VudCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvL+aWsOeahOivu+WPluaVsOaNruiuvue9ruaWueazle+8jOS7peacrOWcsOS4uuS4u1xyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5ld1JlYWREYXRhKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWNs+Wwhuivu+WPluS9k+WKm+WAvFwiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldEhlYWx0aCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS9k+WKm+WAvOWujOaIkOi/m+WFpea4uOaIj1wiKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQ1ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgfVxyXG4gICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZDUgPSB0cnVlO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgobnVsbCk7XHJcbiAgICAgICAgIH1cclxuICAgICAgICAvLyDlrZjlgqjnlKjmiLfmlbDmja5cclxuICAgIH1cclxuXHJcbiAgICByZWFkTXVzaWNDb25maWcoKXtcclxuICAgICAgICBsZXQgYXVkaW9JbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcIm11c2ljXCIpO1xyXG4gICAgICAgIGlmKGF1ZGlvSW5mbyA9PSB1bmRlZmluZWQgfHwgYXVkaW9JbmZvID09IFwiXCIgfHwgYXVkaW9JbmZvID09IG51bGwpe1xyXG4gICAgICAgICAgICBhdWRpb0luZm8gPSB7XHJcbiAgICAgICAgICAgICAgICBcIm11c2ljT3BlblwiOiB0cnVlLCAgICAgICAgICAgICAvL+mfs+S5kFxyXG4gICAgICAgICAgICAgICAgXCJlZmZlY3RPcGVuXCI6IHRydWUsICAgICAgICAgICAgLy/pn7PmlYhcclxuICAgICAgICAgICAgICAgIFwidmlicmF0ZU9wZW5cIjogdHJ1ZSwgICAgICAgICAgIC8v6ZyH5YqoXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcIm11c2ljXCIsYXVkaW9JbmZvKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3BlbiA9IGF1ZGlvSW5mby5tdXNpY09wZW47XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5lZmZlY3RPcGVuID0gYXVkaW9JbmZvLmVmZmVjdE9wZW47XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy52aWJyYXRlT3BlbiA9IGF1ZGlvSW5mby52aWJyYXRlT3BlbjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8v5paw55So5oi377yM5pyJ5pys5Zyw57yT5a2Y6K+75Y+W6YWN572uXHJcbiAgICBuZXdSZWFkRGF0YSgpe1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi6K+75Y+W5paw5L+h5oGvXCIpO1xyXG4gICAgICAgIGxldCBvcGVuaWQgPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwib3BlbmlkXCIpO1xyXG4gICAgICAgIGlmKG9wZW5pZCA9PSBudWxsIHx8IG9wZW5pZCA9PSBcIlwiIHx8IG9wZW5pZCA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIuayoeaciW9wZW5pZFwiKTtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgIG5hbWU6ICd1c2VyRGF0YScsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAncmVhZCdcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCfor7vlj5bnlKjmiLfmlbDmja7miJDlip8nLCByZXMucmVzdWx0KVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHJlcy5yZXN1bHQuY29kZSA9PSA0MDQgJiYgcmVzLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw55So5oi35pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKHJlcy5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihyZXMucmVzdWx0LmRhdGEpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IHJlcy5yZXN1bHQub3BlbmlkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJuYW1lID0gcmVzLnJlc3VsdC5kYXRhLnVzZXJuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJhdmF0YXIgPSByZXMucmVzdWx0LmRhdGEudXNlcmF2YXRhcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lzdGVyX3RpbWUgPSByZXMucmVzdWx0LmRhdGEucmVnaXN0ZXJfdGltZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaHVzaHVfdXNlclNldChyZWdpc3Rlcl90aW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJvcGVuaWRcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBmYWlsOiBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+ivu+WPlueUqOaIt+aVsOaNruWksei0pScsIGVycilcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgaWYob3BlbmlkKVxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IG9wZW5pZDtcclxuICAgICAgICB9XHJcbiAgIFxyXG5cclxuXHJcbiAgICAgICAgLy/nrYnnuqfkv6Hmga9cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VyTGV2ZWwoKGRhdGEpID0+e1xyXG4gICAgICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcImxldmVsXCIpO1xyXG4gICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw5YWz5Y2h5pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmsqHmnInnrYnnuqfkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIik7XHJcbiAgICAgICAgICAgICAgICBpZihsZXZlbEluZm8ubGV2ZWwpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IGxldmVsSW5mby5sZXZlbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckxldmVsKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmnInnrYnnuqfkv6Hmga/vvIzku47lhbPljaHmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgIC8v5ri45oiP5YmN56uv5a2Y5YKoIOaWsOS6juacjeWKoeWZqOerryzku6XmuLjmiI/liY3nq6/kv6Hmga/kuLrkuLvvvIzmlL7mnI3liqHlmajlrZjlgqhcclxuICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gZGF0YS5yZXN1bHQudGltZXN0YW1wIC0gbGV2ZWxJbmZvLnRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi562J57qn5pe26Ze05beuOlwiLHRlbXApO1xyXG4gICAgICAgICAgICAgICAgaWYoKGRhdGEucmVzdWx0LnRpbWVzdGFtcCAtIGxldmVsSW5mby50aW1lc3RhbXApIDwgMTAwMDApe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGxldmVsSW5mby5sZXZlbCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5Lul5ri45oiP5YmN56uv562J57qn5Li65YeGXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IGxldmVsSW5mby5sZXZlbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnrYnnuqfkuLo6XCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckxldmVsKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy/mnI3liqHlmajnq6/lrZjlgqjml7bpl7TmlrDkuo7muLjmiI/nq6/vvIzku6XmnI3liqHlmajnq6/kuLrkuLss5b6A5YmN56uv5a2Y5YKoXHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5Lul5pyN5Yqh5Zmo562J57qn5Li65YeGXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gZGF0YS5yZXN1bHQuZGF0YTsgXHJcbiAgICAgICAgICAgICAgICAgICAgbGV2ZWxJbmZvLmxldmVsID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldmVsSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCIxMTExMTEx5a2Y5YKo5YWz5Y2h5pWw5o2uOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImxldmVsXCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy/ph5HluIHkv6Hmga9cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VyQ29pbigoZGF0YSkgPT57XHJcbiAgICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgIGxldCBjb2luSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJjb2luXCIpO1xyXG4gICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw6YeR5biB5pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgaWYoY29pbkluZm8uY29pbilcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IGNvaW5JbmZvLmNvaW47XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuayoeaciemHkeW4geS/oeaBr++8jOS7jueUqOaIt+aOpeWPo+aLv+WIsOaVsOaNrlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckNvaW4oKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgZWxzZSBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaciemHkeW4geS/oeaBr++8jOS7jumHkeW4geaOpeWPo+aLv+WIsOaVsOaNrlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgLy/muLjmiI/liY3nq6/lrZjlgqgg5paw5LqO5pyN5Yqh5Zmo56uvLOS7pea4uOaIj+WJjeerr+S/oeaBr+S4uuS4u++8jOaUvuacjeWKoeWZqOWtmOWCqFxyXG4gICAgICAgICAgICAgICAgbGV0IHRlbXAgPSBkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBjb2luSW5mby50aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIumHkeW4geaXtumXtOW3rjpcIix0ZW1wKTtcclxuICAgICAgICAgICAgICAgIGlmKChkYXRhLnJlc3VsdC50aW1lc3RhbXAgLSBjb2luSW5mby50aW1lc3RhbXApIDwgMTAwMDApe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5Lul5YmN56uv6YeR5bmj5Li65YeGOlwiLGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBpZihjb2luSW5mby5jb2luKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IGNvaW5JbmZvLmNvaW47XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSBkYXRhLnJlc3VsdC5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2luSW5mby5jb2luID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvaW5JbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIxMTExMTExMTExMVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImNvaW5cIixjb2luSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pS55Y+Y5ZCO6YeR5biBOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyQ29pbigoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8v5pyN5Yqh5Zmo56uv5a2Y5YKo5pe26Ze05paw5LqO5ri45oiP56uv77yM5Lul5pyN5Yqh5Zmo56uv5Li65Li7LOW+gOWJjeerr+WtmOWCqFxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS7peacjeWKoeWZqOmHkeW5o+S4uuWHhjpcIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IGRhdGEucmVzdWx0LmRhdGE7IFxyXG4gICAgICAgICAgICAgICAgICAgIGNvaW5JbmZvLmNvaW4gPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbjtcclxuICAgICAgICAgICAgICAgICAgICBjb2luSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIyMjIyMjIyMjIyXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJjb2luXCIsY29pbkluZm8pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy/pgZPlhbfkv6Hmga9cclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VyUHJvcCgoZGF0YSkgPT57XHJcbiAgICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw6YGT5YW35pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInpgZPlhbfkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICBpZihwcm9wSW5mby5mcmVlemVBbW91bnQgPT0gdW5kZWZpbmVkIHx8IHByb3BJbmZvLmhhbW1lckFtb3VudCA9PSB1bmRlZmluZWQgfHwgcHJvcEluZm8ubWFnaWNBbW91bnQgPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIyMjIyMjIy6YGT5YW35pWw5o2u5byC5bi4XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VuID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvTmV3ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJmcmVlemVBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VuLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjExMTExMTHkuIrkvKDpgZPlhbfkv6Hmga86XCIscHJvcEluZm9OZXcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuZnJlZXplO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmhhbW1lcjtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLm1hZ2ljX3dhbmQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gcHJvcEluZm8uZnJlZXplQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IHByb3BJbmZvLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IHByb3BJbmZvLm1hZ2ljQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMCwwLChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmnKzlnLDml7bpl7TmiLNcIixwcm9wSW5mby50aW1lc3RhbXAsXCLmnI3liqHlmajml7bpl7TmiLNcIixkYXRhLnJlc3VsdC50aW1lc3RhbXApO1xyXG4gICAgICAgICAgICAgICAgaWYoKGRhdGEucmVzdWx0LnRpbWVzdGFtcCAtIHByb3BJbmZvLnRpbWVzdGFtcCkgPCAxMDAwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLku6XliY3nq6/pgZPlhbfkuLrkuLs6XCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHByb3BJbmZvLmZyZWV6ZUFtb3VudCA9PSB1bmRlZmluZWQgfHwgcHJvcEluZm8uaGFtbWVyQW1vdW50ID09IHVuZGVmaW5lZCB8fCBwcm9wSW5mby5tYWdpY0Ftb3VudCA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjExMTExMemBk+WFt+aVsOaNruW8guW4uFwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5mcmVlemU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSBkYXRhLnJlc3VsdC5kYXRhLmhhbW1lcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5tYWdpY193YW5kO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm9OZXcgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImhhbW1lckFtb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjMzMzMzM+S4iuS8oOmBk+WFt+S/oeaBrzpcIixwcm9wSW5mb05ldyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm9OZXcpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIumBk+WFt+aVsOaNruato+W4uFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IHByb3BJbmZvLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IHByb3BJbmZvLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gcHJvcEluZm8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDAsMCwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5mcmVlemU7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuaGFtbWVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IGRhdGEucmVzdWx0LmRhdGEubWFnaWNfd2FuZDtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcEluZm9OZXcgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm1hZ2ljQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOnRpbWVzdGFtcFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjIyMjIyMjIy5LiK5Lyg6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvTmV3LGRhdGEucmVzdWx0KTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvTmV3KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8v5pen55So5oi377yM5peg5pys5Zyw57yT5a2Y6K+75Y+W6YWN572uXHJcbiAgICBvbGRSZWFkRGF0YShyZXRyeUNvdW50Om51bWJlcil7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLor7vlj5bml6fkv6Hmga9cIik7XHJcbiAgICAgICAgY29uc3QgTUFYX1JFVFJJRVMgPSAxNTtcclxuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIC8vIOivu+WPlueUqOaIt+aVsOaNrlxyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgbmFtZTogJ3VzZXJEYXRhJyxcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzdWNjZXNzOiByZXMgPT4geyAgIFxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygn6K+75Y+W55So5oi35pWw5o2u5oiQ5YqfJywgcmVzLnJlc3VsdClcclxuICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5jb2RlID09IDQwNCAmJiByZXMucmVzdWx0Lm1lc3NhZ2UgPT0gXCLmnKrmib7liLDnlKjmiLfmlbDmja5cIil7XHJcbiAgICAgICAgICAgICAgICBpZihyZXMucmVzdWx0Lm9wZW5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IHJlcy5yZXN1bHQub3BlbmlkXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGxldCBsZXZlbEluZm8gPSB7XCJsZXZlbFwiOjAsXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcImxldmVsXCIsbGV2ZWxJbmZvKTtcclxuICAgICAgICAgICAgICAgIGxldCBjb2luSW5mbyA9IHtcImNvaW5cIjowLFwidGltZXN0YW1wXCI6dGltZXN0YW1wfTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiMzMzMzMzMzMzMzNcIik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOjAsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjowLFxyXG4gICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjowLFxyXG4gICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wLFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mbyk7XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJJbmZvKChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKDnlKjmiLfkv6Hmga/miJDlip9cIixkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHd4LmNsb3VkLmNhbGxGdW5jdGlvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAndXNlckRhdGEnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JlYWQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg5ZCO77yM6K+75Y+W55So5oi35L+h5oGv77yM5Li65LiK5oql5rOo5YaM5pe26Ze0XCIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYocmVzLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWUgPSByZXMucmVzdWx0LmRhdGEucmVnaXN0ZXJfdGltZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNodXNodV91c2VyU2V0KHRpbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pyN5Yqh5Zmo5Lmf5rKh5pyJ6YeR5biB5L+h5oGvXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckNvaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJMZXZlbCgoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgwLDAsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg6YGT5YW35L+h5oGv5oiQ5YqfXCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLnvZHnu5zlvILluLjvvIzmraPlnKjliqrlipvliqDovb1cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9sZFJlYWREYXRhKDApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYocmVzLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICBpZihyZXMucmVzdWx0LmRhdGEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQgPSByZXMucmVzdWx0Lm9wZW5pZDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSByZXMucmVzdWx0LmRhdGEubGV2ZWw7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPSByZXMucmVzdWx0LmRhdGEuY29pbkFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gcmVzLnJlc3VsdC5kYXRhLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQgPSByZXMucmVzdWx0LmRhdGEubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJuYW1lID0gcmVzLnJlc3VsdC5kYXRhLnVzZXJuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VyYXZhdGFyID0gcmVzLnJlc3VsdC5kYXRhLnVzZXJhdmF0YXI7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcIm9wZW5pZFwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lzdGVyX3RpbWUgPSByZXMucmVzdWx0LmRhdGEucmVnaXN0ZXJfdGltZTtcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X3VzZXJTZXQocmVnaXN0ZXJfdGltZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRVc2VyQ29pbigoZGF0YSkgPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRhdGEucmVzdWx0LmNvZGUgPT0gNDA0ICYmIGRhdGEucmVzdWx0Lm1lc3NhZ2UgPT0gXCLmnKrmib7liLDph5HluIHmlbDmja5cIil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29pbkluZm8gPSB7XCJjb2luXCI6MCxcInRpbWVzdGFtcFwiOnRpbWVzdGFtcH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5rKh5pyJ6YeR5biB5L+h5oGv77yM5LuO55So5oi35o6l5Y+j5ou/5Yiw5pWw5o2uXCIsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckNvaW4oKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvKBcIixkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoZGF0YS5yZXN1bHQuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmnInph5HluIHkv6Hmga/vvIzku47ph5HluIHmjqXlj6Pmi7/liLDmlbDmja5cIixkYXRhLnJlc3VsdC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luID0gZGF0YS5yZXN1bHQuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2luSW5mbyA9IHtcImNvaW5cIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbixcInRpbWVzdGFtcFwiOnRpbWVzdGFtcH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWtmOWCqOmHkeW4geS/oeaBrzpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIjQ0NDQ0NDQ0NDRcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwiY29pblwiLGNvaW5JbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZDMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0sIDUwMCk7XHJcblxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlckxldmVsKChkYXRhKSA9PntcclxuICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw5YWz5Y2h5pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuayoeacieetiee6p+S/oeaBr++8jOS7jueUqOaIt+aOpeWPo+aLv+WIsOaVsOaNrlwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxldmVsSW5mbyA9IHtcImxldmVsXCI6MCxcInRpbWVzdGFtcFwiOnRpbWVzdGFtcH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiMzMzMzMz5a2Y5YKo5YWz5Y2h5pWw5o2uOlwiLGxldmVsSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIixsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyTGV2ZWwoKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaLv+WIsOeahOaVsOaNrlwiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkNCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pyJ562J57qn5L+h5oGv77yM5LuO5YWz5Y2h5o6l5Y+j5ou/5Yiw5pWw5o2uXCIsZGF0YS5yZXN1bHQuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IGRhdGEucmVzdWx0LmRhdGE7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGV2ZWxJbmZvID0ge1wibGV2ZWxcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwsXCJ0aW1lc3RhbXBcIjp0aW1lc3RhbXB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIjQ0NDQ0NOWtmOWCqOWFs+WNoeS/oeaBrzpcIixsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIixsZXZlbEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWQ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlclByb3AoKGRhdGEpID0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihkYXRhLnJlc3VsdC5jb2RlID09IDQwNCAmJiBkYXRhLnJlc3VsdC5tZXNzYWdlID09IFwi5pyq5om+5Yiw6YGT5YW35pWw5o2uXCIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLmsqHmnInpgZPlhbfkv6Hmga/vvIzku47nlKjmiLfmjqXlj6Pmi7/liLDmlbDmja5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImZyZWV6ZUFtb3VudFwiOjAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJoYW1tZXJBbW91bnRcIjowLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWFnaWNBbW91bnRcIjowLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGltZXN0YW1wXCI6dGltZXN0YW1wLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKDpgZPlhbfkv6Hmga86XCIscHJvcEluZm8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgwLDAsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihkYXRhLnJlc3VsdC5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuaciemBk+WFt+S/oeaBr++8jOS7jumBk+WFt+aOpeWPo+aLv+WIsOaVsOaNrlwiLGRhdGEucmVzdWx0LmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IGRhdGEucmVzdWx0LmRhdGEuZnJlZXplIHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50ID0gZGF0YS5yZXN1bHQuZGF0YS5oYW1tZXIgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA9IGRhdGEucmVzdWx0LmRhdGEubWFnaWNfd2FuZCB8fCAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZnJlZXplQW1vdW50XCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImhhbW1lckFtb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYWdpY0Ftb3VudFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRpbWVzdGFtcFwiOnRpbWVzdGFtcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoXCJwcm9wXCIscHJvcEluZm8pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgIFxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZmFpbDogZXJyID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcign6K+75Y+W55So5oi35pWw5o2u5aSx6LSlJywgZXJyKVxyXG4gICAgICAgICAgICBpZiAocmV0cnlDb3VudCA8IE1BWF9SRVRSSUVTKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihg6K+75Y+W55So5oi35pWw5o2u5aSx6LSl77yM56ysICR7cmV0cnlDb3VudCArIDF9IOasoemHjeivle+8jOmUmeivr+S/oeaBrzpgLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOW7tui/nyAyIOenkuWQjumHjeivlVxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlYWRVc2VyRGF0YShyZXRyeUNvdW50ICsgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMjAwMCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+ivu+WPlueUqOaIt+aVsOaNruWksei0pe+8jOi+vuWIsOacgOWkp+mHjeivleasoeaVsO+8jOmAgOWHuua4uOaIjycsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g6YCA5Ye65ri45oiPXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZ2FtZS5lbmQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgc2V0VXNlckRhdGEoKXtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdhbWVUb29sKChkYXRhKT0+e1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIuS4iuS8oFwiLGRhdGEpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnRUaW1lQ3V0RG93bigpe1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVDYWxsYmFjayA9IGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMudGltZU51bWJlciA8PSAwKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMudGltZU51bWJlciAtPSAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfS5iaW5kKHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICBzdG9wVGltZUN1dERvd24oKXtcclxuICAgICAgICBpZih0aGlzLnNjaGVkdWxlQ2FsbGJhY2spe1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlIChkdCkge1xyXG4gICAgICAgIGlmKHRoaXMubG9hZDEgJiYgdGhpcy5sb2FkMiAmJiB0aGlzLmxvYWQzICAmJiB0aGlzLmxvYWQ0ICYmIHRoaXMubG9hZDUgJiYgdGhpcy50aW1lTnVtYmVyIDw9IDApe1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQxID0gdGhpcy5sb2FkMiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2h1c2h1X0luaXQoKTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydEdhbWUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19 \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/GameScene.js b/temp/quick-scripts/dst/assets/Script/GameScene.js index 23968ae..6255df1 100644 --- a/temp/quick-scripts/dst/assets/Script/GameScene.js +++ b/temp/quick-scripts/dst/assets/Script/GameScene.js @@ -13,6 +13,7 @@ cc._RF.push(module, 'e8b235WjRBErajwLmN8xFUz', 'GameScene'); // Script/GameScene.js + // cc.Class({ // extends: cc.Component, // properties: { @@ -43,15 +44,21 @@ cc._RF.push(module, 'e8b235WjRBErajwLmN8xFUz', 'GameScene'); // daojishi: cc.Label, // pause_anniu: cc.Sprite, // mask: cc.Node, + // flashUI: { // default: null, // type: cc.SpriteAtlas // }, // }, + // onLoad() { + // }, + // update(dt) { + // }, + // }); "use strict"; @@ -66,4 +73,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lU2NlbmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFFQTtBQUVBO0FBRUEiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG4vLyBjYy5DbGFzcyh7XHJcbi8vICAgICBleHRlbmRzOiBjYy5Db21wb25lbnQsXHJcbi8vICAgICBwcm9wZXJ0aWVzOiB7XHJcbi8vICAgICAgICAgbG9jYWxUZXN0OiB7XHJcbi8vICAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4vLyAgICAgICAgICAgICB0b29sdGlwOiAn5pys5Zyw5rWL6K+V5pe25Yu+6YCJ77yM6YG/5YWNdHpfdXJs5ZKMQ29uZmlndXJl5oql6ZSZ77yM5o+Q5Lqk5YmN5Yu+5o6JJ1xyXG4vLyAgICAgICAgIH0sXHJcbi8vICAgICAgICAgY2xpZW50VGVzdDoge1xyXG4vLyAgICAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcclxuLy8gICAgICAgICAgICAgdG9vbHRpcDogJ+WuouaIt+err+a1i+ivleaXtuWLvumAie+8jOWxleekuueJiOacrOagh+iusOaWueS+v+a1i+ivleWMuuWIhu+8jOS4iue6v+WJjeWLvuaOiSdcclxuLy8gICAgICAgICB9LFxyXG4vLyAgICAgICAgIGNsaWVudFRlc3RWZXJzaW9uOiB7XHJcbi8vICAgICAgICAgICAgIGRlZmF1bHQ6ICcnLFxyXG4vLyAgICAgICAgICAgICB0b29sdGlwOiAn54mI5pys5qCH6K6wJ1xyXG4vLyAgICAgICAgIH0sXHJcbi8vICAgICAgICAgdGVzdFZlcnNpb246IGNjLkxhYmVsLFxyXG4vLyAgICAgICAgIHNjb3JlOiBjYy5MYWJlbCxcclxuLy8gICAgICAgICBkb3VibGVfaGl0OiBjYy5Ob2RlLFxyXG4vLyAgICAgICAgIGFkZDogY2MuTm9kZSxcclxuLy8gICAgICAgICBhZGQyOiBjYy5Ob2RlLFxyXG4vLyAgICAgICAgIGRvdWJsZV90aXRsZTogY2MuTm9kZSxcclxuLy8gICAgICAgICBjb3VudF90aW1lOiBjYy5Ob2RlLFxyXG4vLyAgICAgICAgIGJlZ2luTm9kZTogY2MuTm9kZSxcclxuLy8gICAgICAgICBiYWxsX25vbWFsOiBbY2MuU3ByaXRlRnJhbWVdLFxyXG4vLyAgICAgICAgIGJnX25vbWFsOiBbY2MuU3ByaXRlRnJhbWVdLFxyXG4vLyAgICAgICAgIGJhbGxfbGlnaHQ6IFtjYy5TcHJpdGVGcmFtZV0sXHJcbi8vICAgICAgICAga3VhbmdfRnJhbWU6IFtjYy5TcHJpdGVGcmFtZV0sXHJcbi8vICAgICAgICAgZGFvamlzaGk6IGNjLkxhYmVsLFxyXG4vLyAgICAgICAgIHBhdXNlX2Fubml1OiBjYy5TcHJpdGUsXHJcbi8vICAgICAgICAgbWFzazogY2MuTm9kZSxcclxuXHJcbi8vICAgICAgICAgZmxhc2hVSToge1xyXG4vLyAgICAgICAgICAgICBkZWZhdWx0OiBudWxsLFxyXG4vLyAgICAgICAgICAgICB0eXBlOiBjYy5TcHJpdGVBdGxhc1xyXG4vLyAgICAgICAgIH0sXHJcbi8vICAgICB9LFxyXG5cclxuLy8gICAgIG9uTG9hZCgpIHtcclxuXHJcblxyXG4vLyAgICAgfSxcclxuXHJcbi8vICAgICB1cGRhdGUoZHQpIHtcclxuXHJcbi8vICAgICB9LFxyXG5cclxuLy8gfSk7Il19 \ No newline at end of file +//# 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 \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/JiaZai.js b/temp/quick-scripts/dst/assets/Script/JiaZai.js index a3d3b91..305e692 100644 --- a/temp/quick-scripts/dst/assets/Script/JiaZai.js +++ b/temp/quick-scripts/dst/assets/Script/JiaZai.js @@ -180,6 +180,24 @@ var NewClass = /** @class */ (function (_super) { // } } }; + //打开商店 + 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; }; @@ -301,4 +319,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxKaWFaYWkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkNBQXdDO0FBQ3hDLGlEQUE0QztBQUM1QyxpREFBZ0Q7QUFDaEQsMkVBQXNFO0FBQ2hFLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBOFBDO1FBM1BHLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsV0FBSyxHQUFZLElBQUksQ0FBQztRQUd0QixXQUFLLEdBQVksSUFBSSxDQUFDO1FBS3RCLGlCQUFXLEdBQTJCLEVBQUUsQ0FBQztRQUd6QyxZQUFNLEdBQWUsSUFBSSxDQUFDO1FBSzFCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsVUFBSSxHQUFZLElBQUksQ0FBQztRQUdyQixhQUFPLEdBQVksSUFBSSxDQUFDOztRQWlPeEIsaUJBQWlCO0lBQ3JCLENBQUM7SUEvTkcsd0JBQXdCO0lBRXhCLHlCQUFNLEdBQU47UUFDSSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QixtQ0FBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakMsMEJBQTBCO1FBQzFCLG9CQUFvQjtRQUNwQixxQkFBVyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNyRCxJQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUM7WUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFD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OzJDQUNJO0lBR3RCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFHckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzs2Q0FDTTtJQTVCUCxRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBOFA1QjtJQUFELGVBQUM7Q0E5UEQsQUE4UEMsQ0E5UHFDLEVBQUUsQ0FBQyxTQUFTLEdBOFBqRDtrQkE5UG9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgR2FtZU1hbmFnZXIgZnJvbSBcIi4vR2FtZU1hbmFnZXJcIjtcclxuaW1wb3J0IE51bWJlclRvSW1hZ2UgZnJvbSBcIi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5pbXBvcnQge0xRQ29sbGlkZVN5c3RlbX0gZnJvbSBcIi4vbHFfY29sbGlkZV9zeXN0ZW0vbHFfY29sbGlkZV9zeXN0ZW1cIjtcclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMjogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBub2RlMzogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgXHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOlwi5pa55Z2X6aKc6ImyXCJ9KVxyXG4gICAgQmxvY2tfQ29sb3IgOiBBcnJheTxjYy5TcHJpdGVBdGxhcz4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuRWRpdEJveClcclxuICAgIGN1c3RvbTogY2MuRWRpdEJveCA9IG51bGw7XHJcbiAgICBcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBsZXZlbDogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBjb2luOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIFN0YW1pbmE6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgc2NoZWR1bGVDYWxsYmFjazogYW55O1xyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgY2MuZ2FtZS5zZXRGcmFtZVJhdGUoNjMpOyBcclxuICAgICAgICBMUUNvbGxpZGVTeXN0ZW0uaXNfZW5hYmxlID0gdHJ1ZTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuWKoOi9veWFs+WNoemFjee9rjJcIik7XHJcbiAgICAgICAgLy8gd2luZG93LmluaXRNZ3IoKTtcclxuICAgICAgICBHYW1lTWFuYWdlci5faW5zdGFuY2UuQmxvY2tfQ29sb3IgPSB0aGlzLkJsb2NrX0NvbG9yO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCl7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOWHhuWkh+azqOWGjOS6i+S7tlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5vcGVuaWQpO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkICE9IFwiXCIpe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLigJTigJTigJTigJTigJTigJTigJTigJTlj5HpgIHms6jlhozkuovku7ZcIik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZWdpc3RlclwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIixudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsXCJ1cFwiLGZhbHNlKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5maXJzdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW3sue7j+i/m+WFpUhvbWXnlYzpnaJcIik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLph5HluIFcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlhbPljaFcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwrMSk7XHJcblxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldEhlYWx0aChudWxsKTtcclxuICAgICAgICAvLyBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwwKTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCsxKSwyNSwxNSxcImJpZ19cIix0aGlzLmxldmVsLGZhbHNlKTtcclxuICAgICAgICAgICAgTnVtYmVyVG9JbWFnZS5udW1iZXJUb0ltYWdlTm9kZXMoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4sMzAsMTUsXCJjb2luX1wiLHRoaXMuY29pbix0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRIZWFsdGhJbmZvKCk7XHJcbiAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmdhbWVTdGF0ZSl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjJcIixudWxsKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcImRvd25cIixmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwiZG93blwiICYmICFjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKCFjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZmlyc3QpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+WAkuiuoeaXtlxyXG4gICAgc3RhcnRUaW1lQ3V0RG93bigpe1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVDYWxsYmFjayA9IGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMucGF1c2UpIHJldHVybjtcclxuICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lIDw9IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcDtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoMSwoZGF0YSk9PntcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRIZWFsdGgobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRIZWFsdGhJbmZvKCk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWluX1RpbWUgLT0gMTtcclxuICAgICAgICAgICAgICAgIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4oY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0uYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMuc2NoZWR1bGVDYWxsYmFjaywgMSk7XHJcbiAgICB9XHJcbiAgICAvLyDlgZzmraLlgJLorqHml7ZcclxuICAgIHN0b3BUaW1lQ3V0RG93bigpe1xyXG4gICAgICAgIGlmKHRoaXMuc2NoZWR1bGVDYWxsYmFjayl7XHJcbiAgICAgICAgICAgIHRoaXMudW5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2spO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgc2V0SGVhbHRoSW5mbygpe1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA9PSA1KXtcclxuICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwibWFuXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcImhlYWx0aFwiKS5hY3RpdmUgPSBmYWxzZTsgXHJcbiAgICAgICAgICAgIHRoaXMuU3RhbWluYS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJtYW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJoZWFsdGhcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHApLDI1LDE1LFwiY29pbl9cIix0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJoZWFsdGhcIiksZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5TdGFtaW5hLmdldENoaWxkQnlOYW1lKFwidGltZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1pbl9UaW1lICE9IDApe1xyXG4gICAgICAgICAgICAgICAgbGV0IHRpbWUgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5taW5fVGltZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlN0YW1pbmEuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGltZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ocCA8IDEpe1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85LiN6LazXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxvYWRcIikuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydEJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkxvYWRcIikuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFydEJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gaWYodGhpcy5jdXN0b20uc3RyaW5nICE9IFwiXCIpe1xyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID0gcGFyc2VJbnQodGhpcy5jdXN0b20uc3RyaW5nKSAtIDE7XHJcbiAgICAgICAgICAgIC8vICAgICAvLyBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwibGV2ZWxcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwudG9TdHJpbmcoKSk7IFxyXG4gICAgICAgICAgICAvLyAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgLy8gZWxzZXtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLG51bGwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLFwidXBcIixmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLDEwMDApO1xyXG4gICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgICAgICAgICAgXHJcblxyXG4gICAgXHJcbiAgY2xvc2VSYW5rKCl7XHJcbiAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJhbmtcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvcGVuUmFuaygpe1xyXG4gICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJSYW5rXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvcGVuUmV3YXJkKCl7XHJcbiAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJld2FyZFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tTaG9wKCkge1xyXG4gICAgLy8g5YGH6K6+5bey57uP6I635Y+W5Yiw5LqGIHVzZXJJZCDlkowgcHJvZHVjdElkXHJcbiAgICBjb25zdCB1c2VySWQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkOyBcclxuICAgIGNvbnN0IHByb2R1Y3RJZCA9ICcxJzsgXHJcbiAgICBjb25zb2xlLmxvZyhcIuWNs+WwhuWIm+W7umNyZWF0ZW9yZGVyXCIpO1xyXG4gICAgLy9AdHMtaWdub3JlXHJcbiAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgIG5hbWU6IFwiY3JlYXRlT3JkZXJcIixcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIFwidXNlcklkXCI6dXNlcklkLFxyXG4gICAgICAgICAgICBcInByb2R1Y3RJZFwiOnByb2R1Y3RJZCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHN1Y2Nlc3M6IChyZXMpID0+IHtcclxuICAgICAgICAgICAgLy8g5Y+W5b6X5LqR5Ye95pWw6L+U5Zue55qE6K6i5Y2V5L+h5oGvXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY3JlYXRlT3JkZXLnu5Pmnpw6XCIscmVzLnJlc3VsdCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHBheW1lbnQgPSByZXMucmVzdWx0LnBheW1lbnRSZXN1bHQucGF5bWVudDtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJwYXltZW50OlwiLHBheW1lbnQpO1xyXG4gICAgICAgICAgICAvLyDosIPotbflvq7kv6HlrqLmiLfnq6/mlK/ku5hcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIC8vIOiwg+i1t+W+ruS/oeWuouaIt+err+aUr+S7mFxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgd3gucmVxdWVzdFBheW1lbnQoe1xyXG4gICAgICAgICAgICAgICAgLy8g5pe26Ze05oiz77yM5LuOIDE5NzAg5bm0IDEg5pyIIDEg5pelIDAwOjAwOjAwIOiHs+S7iueahOenkuaVsO+8jOWNs+W9k+WJjeeahOaXtumXtFxyXG4gICAgICAgICAgICAgICAgdGltZVN0YW1wOiBwYXltZW50LnRpbWVTdGFtcCxcclxuICAgICAgICAgICAgICAgIC8vIOmaj+acuuWtl+espuS4su+8jOmVv+W6puS4ujMy5Liq5a2X56ym5Lul5LiLXHJcbiAgICAgICAgICAgICAgICBub25jZVN0cjogcGF5bWVudC5ub25jZVN0cixcclxuICAgICAgICAgICAgICAgIC8vIOe7n+S4gOS4i+WNleaOpeWPo+i/lOWbnueahCBwcmVwYXlfaWQg5Y+C5pWw5YC8XHJcbiAgICAgICAgICAgICAgICBwYWNrYWdlOiBwYXltZW50LnBhY2thZ2UsXHJcbiAgICAgICAgICAgICAgICAvLyDnrb7lkI3nrpfms5XvvIzmmoLmlK/mjIEgTUQ144CBSE1BQy1TSEEyNTZcclxuICAgICAgICAgICAgICAgIHNpZ25UeXBlOiBwYXltZW50LnNpZ25UeXBlIHx8ICdNRDUnLFxyXG4gICAgICAgICAgICAgICAgLy8g5pSv5LuY562+5ZCNXHJcbiAgICAgICAgICAgICAgICBwYXlTaWduOiBwYXltZW50LnBheVNpZ24sXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzKHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qIOaIkOWKn+WbnuiwgyAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pSv5LuY5oiQ5YqfXCIscmVzKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBmYWlsKHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qIOWksei0peWbnuiwgyAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pSv5LuY5aSx6LSlXCIscmVzKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjb21wbGV0ZShyZXMpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5pSv5LuY5a6M5oiQXCIscmVzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIG9wZW5QYXVzZSgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLG51bGwpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTyk7XHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ub3BlbmlkKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZCA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IHRydWU7IFxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmdldENoaWxkQnlOYW1lKFwib3BlbklEXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm9wZW5pZDtcclxuICB9XHJcblxyXG4gIGNsb3NlUGF1c2UoKXtcclxuICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLG51bGwpO1xyXG4gICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuYWN0aXZlID0gZmFsc2U7IFxyXG5cclxuICB9XHJcblxyXG4gIGNsb3NlUmV3YXJkKCl7XHJcbiAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlJld2FyZFwiKS5hY3RpdmUgPSBmYWxzZTsgXHJcbiAgfVxyXG5cclxuICBvcGVuU3RhbWluYSgpe1xyXG4gICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJTdGFtaW5hXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZVN0YW1pbmEoKXtcclxuICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiU3RhbWluYVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9XHJcbn1cclxuIl19 \ No newline at end of file +//# 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 diff --git a/temp/quick-scripts/dst/assets/Script/Map.js b/temp/quick-scripts/dst/assets/Script/Map.js index eac56fe..c03a3d0 100644 --- a/temp/quick-scripts/dst/assets/Script/Map.js +++ b/temp/quick-scripts/dst/assets/Script/Map.js @@ -233,6 +233,7 @@ var MapConroler = /** @class */ (function (_super) { var _this = this; var blockArray = cc.fx.GameConfig.BLOCK_INFO[0]; blockArray = this.sortBlock(blockArray); + console.log("创建方块", blockArray); var index = 0; // 当前要创建的方块索引 var BLOCKS_PER_FRAME = 1; // 初始每帧创建的方块数量 var MAX_PER_FRAME = 10; // 每帧最大创建数量 @@ -1940,4 +1941,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RzVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7a0RBQ1E7SUFHMUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzttREFDUztJQUczQjtRQURLLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO21EQUNLO0lBSTNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7Z0RBQ007SUFyRFAsV0FBVztRQUQvQixPQUFPO09BQ2EsV0FBVyxDQW0rRC9CO0lBQUQsa0JBQUM7Q0FuK0RELEFBbStEQyxDQW4rRHdDLEVBQUUsQ0FBQyxTQUFTLEdBbStEcEQ7a0JBbitEb0IsV0FBVyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmltcG9ydCBHYW1lTWFuYWdlciBmcm9tIFwiLi9HYW1lTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBMUUNvbGxpZGUgfSBmcm9tIFwiLi9scV9jb2xsaWRlX3N5c3RlbS9scV9jb2xsaWRlXCI7XHJcbmltcG9ydCBOdW1iZXJUb0ltYWdlIGZyb20gXCIuL051bWJlclRvSW1hZ2VcIjtcclxuaW1wb3J0IHsgTWluaUdhbWVTZGsgfSBmcm9tIFwiLi9TZGsvTWluaUdhbWVTZGtcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNYXBDb25yb2xlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBzdGF0aWMgX2luc3RhbmNlOiBhbnk7XHJcblxyXG5cclxuICAgIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlByZWZhYl0sIHRvb2x0aXA6XCLmlrnlnZfmlbDnu4RcIn0pXHJcbiAgICBCbG9ja19BcnJheSA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5QcmVmYWJdLCB0b29sdGlwOlwi5pa55Z2X6YGT5YW35pWw57uEXCJ9KVxyXG4gICAgQmxvY2tfUHJvcCA6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgTWFwQmxvY2tQcmVmYWI6IGNjLlByZWZhYiA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOlwi5pa55Z2X6aKc6ImyXCJ9KVxyXG4gICAgQmxvY2tfQ29sb3IgOiBBcnJheTxjYy5TcHJpdGVBdGxhcz4gPSBbXTtcclxuXHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuWimeWjgeaVsOe7hFwifSlcclxuICAgIFdhbGxfUHJlZmFiIDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICBcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuUHJlZmFiKVxyXG4gICAgd2FsbFR1cm5QcmVmYWI6IGNjLlByZWZhYiA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkJ1dHRvbilcclxuICAgIHRpbWVCdG46IGNjLkJ1dHRvbiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuQnV0dG9uKVxyXG4gICAgZGVzdHJveUJ0bjogY2MuQnV0dG9uID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5CdXR0b24pXHJcbiAgICBtYWdpY0J0bjogY2MuQnV0dG9uID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIGljZUxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBoYW1tZXJMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbWFnaWNMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgbWFnaWNNYXNrOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGhhbW1lck1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgICAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZyZWV6ZU1hc2s6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIFxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBjb2luUG9wOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICB0aW1lTGFiZWw6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgbGV2ZWxMYWJlbDogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgbmV3X21vZGU6IG51bWJlciA9IDA7XHJcbiAgICBtYXBXaWR0aDogbnVtYmVyID0gMDtcclxuICAgIG1hcEhlaWdodDogbnVtYmVyID0gMDtcclxuICAgIHdhbGxOdW06IG51bWJlciA9IDA7XHJcbiAgICBibG9ja051bTogbnVtYmVyID0gMDtcclxuICAgIG1hcEJsb2Nrc1dhbGw6IGFueTsgICAgICAvL+WcsOWbvueahOaJgOacieW6leWdl1xyXG4gICAgbWFwSW5mbzogYW55OyAgICAgICAvL+WcsOWbvumZpOS6huW6leWdl+eahOWFtuS7luS/oeaBr1xyXG4gICAgYmxvY2tzOiBhbnk7ICAgICAgICAvL+aWueWdl+aVsOe7hFxyXG4gICAgd2FsbEluZm86IGFueTsgICAgICAvL+WimeWjgeaVsOe7hFxyXG4gICAgd2FsbEFycmF5OmFueTsgICAgICAvL1xyXG4gICAgb3BlbldhbGw6IGFueTsgICAgICAvL+W8gOWFs+WimeaVsOe7hFxyXG4gICAgZnJlZXplV2FsbDogYW55OyAgICAvL+WGu+e7k+WimeaVsOe7hFxyXG4gICAgcmlzZUZhbGxCbGNvazphbnk7ICAvL+WNh+mZjeWcsOWdl+aVsOe7hFxyXG4gICAgc2NoZWR1bGVDYWxsYmFjazogYW55Oy8v5YCS6K6h5pe255SoXHJcbiAgICBob21lQ2FuVG91Y2g6Ym9vbGVhbiA9IHRydWU7Ly/mjInpkq7lj6/nlKjnirbmgIFcclxuICAgIGFnYWluQ2FuVG91Y2g6Ym9vbGVhbiA9ICB0cnVlOy8v6YeN546p5oyJ6ZKu5Y+v5Lul55So54q25oCBXHJcbiAgICBnYW1lT3ZlcjogYm9vbGVhbiA9IGZhbHNlOy8v5ri45oiP57uT5p2f54q25oCBXHJcbiAgICBnYW1lV2luOiBib29sZWFuID0gZmFsc2U7Ly/muLjmiI/og5zliKnnirbmgIFcclxuICAgIGdhbWVTdGFydDogYm9vbGVhbiA9IGZhbHNlOy8v5ri45oiP5byA5aeL54q25oCBXHJcbiAgICB0aW1lTnVtYmVyOiBudW1iZXIgPSAwOyAvL+a4uOaIj+aXtumXtCDnlKjkuo7lgJLorqHml7ZcclxuICAgIGNvdW50X1RpbWU6IG51bWJlciA9IDA7IC8v55So5LqO57uf6K6h5oC75ri45oiP5pe26ZW/XHJcbiAgICBhZGRfVGltZTogbnVtYmVyID0gMDsgICAvL+Wkjea0u+aXtumXtFxyXG4gICAgbWFwQmxvY2tBcnJheTogYW55OyAgLy/lnLDlm77nmoTmiYDmnInmoLzlrZDnirbmgIHlrZjlgqhcclxuICAgIHBhdXNlOmJvb2xlYW4gPSBmYWxzZTsvL+aaguWBnOeKtuaAgVxyXG4gICAgaGFtbWVyOmJvb2xlYW4gPSBmYWxzZTsvL+mUpOWtkOeKtuaAgVxyXG4gICAgZnJlZXplQXJyYXk6IGFueTsgLy/lhrvnu5NcclxuICAgIGxvYWNrQXJyYXk6IGFueTsgLy/kuIrplIFcclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gbGVmdERvb3JzOiBbXTsgLy/lt6bpl6hcclxuICAgIHJpZ2h0RG9vcnM6IGFueTsgLy/lj7Ppl6hcclxuICAgIHRvcERvb3JzOiBhbnk7IC8v5LiK6ZeoXHJcbiAgICBib3R0b21Eb29yczogYW55OyAvL+S4i+mXqFxyXG4gICAgbGVmdERvb3JzOiBhbnk7XHJcblxyXG5cclxuICAgIC8vIG1hcEluZm86IG51bWJlcltdW10gPSBbXTtcclxuXHJcbiAgICBvbkxvYWQgKCkge1xyXG5cclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID0gMDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZVN0YXRlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1hc2sub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiQWRoZXNpdmVcIikuekluZGV4ID0gNTAwO1xyXG4gICAgICAgIGNjLmdhbWUuc2V0RnJhbWVSYXRlKDYzKTsgXHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4yXCIsbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcImRvd25cIixmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJkb3duXCIpIHtcclxuICAgICAgICAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYmxvY2tzID0gW107XHJcbiAgICAgICAgdGhpcy5sZWZ0RG9vcnMgPSBbXTsgLy/lt6bpl6hcclxuICAgICAgICB0aGlzLnJpZ2h0RG9vcnMgPSBbXTsgLy/lj7Ppl6hcclxuICAgICAgICB0aGlzLnRvcERvb3JzID0gW107IC8v5LiK6ZeoXHJcbiAgICAgICAgdGhpcy5ib3R0b21Eb29ycyA9IFtdOyAvL+S4i+mXqFxyXG4gICAgICAgIHRoaXMuZ2FtZVdpbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2FtZU92ZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdhbWVTdGFydCA9IGZhbHNlOyBcclxuICAgICAgICB0aGlzLmhvbWVDYW5Ub3VjaCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5hZ2FpbkNhblRvdWNoID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5ld19tb2RlID0gMDtcclxuIFxyXG4gICAgICAgIHRoaXMuaWNlTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuICAgXHJcbiAgICAgICAgLy8gY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIsIGFzc2V0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L29IEhvbWVTY2VuZSDlpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6L+b5YWlR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQXJyYXkgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UuQmxvY2tfQXJyYXk7XHJcbiAgICAgICAgdGhpcy5XYWxsX1ByZWZhYiA9IEdhbWVNYW5hZ2VyLl9pbnN0YW5jZS5XYWxsX1ByZWZhYjtcclxuICAgICAgICB0aGlzLkJsb2NrX0NvbG9yID0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLkJsb2NrX0NvbG9yO1xyXG4gICAgICAgIC8vIHRoaXMucGFydGljbGVFZmZlY3RzID0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLnBhcnRpY2xlRWZmZWN0cztcclxuICAgICAgIFxyXG4gICAgICAgIHRoaXMuaW5pdE1hcCgpO1xyXG4gICBcclxuICAgIH1cclxuXHJcbiAgICBzdGFydFVwZGF0ZSgpe1xyXG4gICAgICAgIGlmKHRoaXMuZ2FtZVN0YXJ0ID09IGZhbHNlKXtcclxuICAgICAgICAgICAgdGhpcy5nYW1lU3RhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAvL+WPkemAgeaVsOaVsOS6i+S7tuKAlOKAlOi/m+WFpeWFs+WNoVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWHhuWkh+i/m+WFpeS4i+S4gOWFsyzlj5HpgIHkuIvkuIDlhbPov5vlhaVcIik7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcImVudGVyX3N0YWdlXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuICAgICAgICAgICAgZm9yKGxldCBpID0wOyBpPHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNil7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3NbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJib29tXCIpLmdldENvbXBvbmVudChcIkJvb21cIikuc3RhcnRCb29tKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdE1hcCgpe1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIikuekluZGV4ID0gMTA7XHJcbiAgICAgICAgdGhpcy50aW1lTGFiZWwgPSAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVcIik7XHJcbiAgICAgICAgdGhpcy5sZXZlbExhYmVsID0gIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJUb3BcIikuZ2V0Q2hpbGRCeU5hbWUoXCJsZXZlbFwiKTtcclxuICAgICAgICB0aGlzLnRpbWVOdW1iZXIgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0udGltZTtcclxuICAgICAgICB0aGlzLmNvdW50X1RpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMuYWRkX1RpbWUgPSAwO1xyXG4gICAgICAgIE51bWJlclRvSW1hZ2UuZ2V0VGltZU1hcmdpbih0aGlzLnRpbWVOdW1iZXIsNTAsXCJ0aW1lX1wiLHRoaXMudGltZUxhYmVsKVxyXG4gICAgICAgIC8vIHZhciB0aW1lVGVtcCA9IGNjLmZ4LkdhbWVUb29sLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyKTtcclxuICAgICAgICAvLyB0aGlzLnRpbWVMYWJlbC5zdHJpbmcgPSB0aW1lVGVtcC50b1N0cmluZygpO1xyXG4gICAgICAgIE51bWJlclRvSW1hZ2UubnVtYmVyVG9JbWFnZU5vZGVzKChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwrMSksNTAsMjAsXCJsZXZlbF9cIix0aGlzLmxldmVsTGFiZWwsZmFsc2UpXHJcbiAgICAgICAgXHJcbiAgICAgICAgLy90aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXBXaWR0aCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5tYXBbMF07XHJcbiAgICAgICAgdGhpcy5tYXBIZWlnaHQgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0ubWFwWzFdO1xyXG4gICAgICAgIGxldCBnYXAgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0uZ2FwO1xyXG4gICAgICAgIGxldCByaXNlZmFsbCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5yaXNlZmFsbDtcclxuXHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaGFtbWVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy53YWxsTnVtID0gMDtcclxuICAgICAgICB0aGlzLnNldE1hcEluZm8oKTtcclxuICAgICAgICB0aGlzLmJsb2NrcyA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwQmxvY2tzV2FsbCA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwSW5mbyA9IFtdO1xyXG4gICAgICAgIHRoaXMud2FsbEluZm8gPSBbXTtcclxuICAgICAgICB0aGlzLm9wZW5XYWxsID0gW107XHJcbiAgICAgICAgdGhpcy53YWxsQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmZyZWV6ZVdhbGwgPSBbXTtcclxuICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2sgPSBbXTtcclxuICAgICAgICB0aGlzLm1hcEJsb2NrQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmZyZWV6ZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sb2Fja0FycmF5ID0gW107XHJcblxyXG4gICAgICBcclxuICAgICAgICBsZXQgc3RhcnRYID0gIHRoaXMubWFwV2lkdGglMj09MD8tKHRoaXMubWFwV2lkdGgtMSkqNjA6LSh0aGlzLm1hcFdpZHRoLTEpKjYwO1xyXG4gICAgICAgIGxldCBzdGFydFkgPSAgdGhpcy5tYXBIZWlnaHQlMj09MD8tKHRoaXMubWFwSGVpZ2h0LTEpKjYwOi0odGhpcy5tYXBIZWlnaHQtMSkqNjA7XHJcbiAgICAgICAgLy8gc3RhcnRYID0odGhpcy5tYXBXaWR0aC0xKSo2MCArIDYwO1xyXG4gICAgICAgIC8vIHN0YXJ0WSA9LSh0aGlzLm1hcEhlaWdodC0xKSo2MCAtIDYwO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0aGlzLm1hcFdpZHRoOyBpKyspe1xyXG4gICAgICAgICAgICB0aGlzLm1hcEJsb2Nrc1dhbGxbaV0gPSBbXTtcclxuXHJcbiAgICAgICAgICAgIGZvcihsZXQgaiA9IDA7IGogPCB0aGlzLm1hcEhlaWdodDsgaisrKXtcclxuICAgICAgICAgICAgICAgIGxldCBibG9jayA9IGNjLmluc3RhbnRpYXRlKHRoaXMuTWFwQmxvY2tQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgYmxvY2sucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibWFwQmxvY2tcIik7XHJcbiAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5pbml0KGksaik7ICAgIFxyXG4gICAgICAgICAgICAgICAgLy8gYmxvY2suZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBpICsgXCI6XCIgKyBqO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suc2V0UG9zaXRpb24oY2MudjIoc3RhcnRYICsgaSAqIDEyMCwgc3RhcnRZICsgaiAqIDEyMCkpXHJcbiAgICAgICAgICAgICAgICBpZihyaXNlZmFsbCAhPSBudWxsKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLm1hcFJpc2VGYWxsKGNjLnYyKGksaikscmlzZWZhbGwsYmxvY2spKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKGdhcCE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKCF0aGlzLm1hcEdhcChjYy52MihpLGopLGdhcCkgfHwgaSA9PSAwIHx8IGkgPT0gdGhpcy5tYXBXaWR0aC0xXHJcbiAgICAgICAgICAgICAgICAgICAgfHwgaiA9PSAwIHx8IGogPT0gdGhpcy5tYXBIZWlnaHQgLSAxKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sub3BhY2l0eSA9IDI1NDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2sucmVtb3ZlQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEluZm8ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMubWFwSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoIGkgPT0gMCB8fCBpID09IHRoaXMubWFwV2lkdGgtMVxyXG4gICAgICAgICAgICAgICAgICAgIHx8IGogPT0gMCB8fCBqID09IHRoaXMubWFwSGVpZ2h0IC0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLm9wYWNpdHkgPSAyNTQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnJlbW92ZUNvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5yZW1vdmVBbGxDaGlsZHJlbigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndhbGxJbmZvLnB1c2goYmxvY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMubWFwSW5mby5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hcEJsb2Nrc1dhbGxbaV0ucHVzaChibG9jayk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMud2FsbEluaXQoKTtcclxuICAgICAgICB0aGlzLmJsb2NrSW5pdCgpO1xyXG4gICAgIFxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu65pa55Z2XXHJcbi8vIC4uLiDlt7LmnInku6PnoIEgLi4uXHJcblxyXG4vL+WIm+W7uuaWueWdl1xyXG4vLyAuLi4g5bey5pyJ5Luj56CBIC4uLlxyXG5cclxuXHJcblxyXG5cclxuYmxvY2tJbml0KCkge1xyXG4gICAgbGV0IGJsb2NrQXJyYXkgPSBjYy5meC5HYW1lQ29uZmlnLkJMT0NLX0lORk9bMF07XHJcbiAgICBibG9ja0FycmF5ID0gdGhpcy5zb3J0QmxvY2soYmxvY2tBcnJheSk7IFxyXG5cclxuICAgIGxldCBpbmRleCA9IDA7IC8vIOW9k+WJjeimgeWIm+W7uueahOaWueWdl+e0ouW8lVxyXG4gICAgbGV0IEJMT0NLU19QRVJfRlJBTUUgPSAxOyAvLyDliJ3lp4vmr4/luKfliJvlu7rnmoTmlrnlnZfmlbDph49cclxuICAgIGNvbnN0IE1BWF9QRVJfRlJBTUUgPSAxMDsgLy8g5q+P5bin5pyA5aSn5Yib5bu65pWw6YePXHJcbiAgICBjb25zdCBNSU5fUEVSX0ZSQU1FID0gMTsgLy8g5q+P5bin5pyA5bCP5Yib5bu65pWw6YePXHJcblxyXG4gICAgY29uc3QgY3JlYXRlQmxvY2tzID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQkxPQ0tTX1BFUl9GUkFNRSAmJiBpbmRleCA8IGJsb2NrQXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGJsb2NrSW5mbyA9IGJsb2NrQXJyYXlbaW5kZXhdO1xyXG4gICAgICAgICAgICAvLyDnvJPlrZggQmxvY2tfQXJyYXkg6K6/6ZeuXHJcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrUHJlZmFiID0gdGhpcy5CbG9ja19BcnJheVtibG9ja0luZm8uYmxvY2tdOyBcclxuICAgICAgICAgICAgbGV0IGJsb2NrID0gY2MuaW5zdGFudGlhdGUoYmxvY2tQcmVmYWIpO1xyXG4gICAgICAgICAgICBibG9jay5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgIGJsb2NrLnNldFBvc2l0aW9uKGNjLnYyKGJsb2NrSW5mby5wb3NpdGlvbi54LCBibG9ja0luZm8ucG9zaXRpb24ueSkpO1xyXG4gICAgICAgICAgICBpZiAoYmxvY2tJbmZvLmJsb2NrICE9IDIzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5wdXNoKGJsb2NrKTtcclxuICAgICAgICAgICAgICAgIGlmIChibG9ja0luZm8udHlwZSA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluZm8gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBibG9ja0luZm8uaWQgKyAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9jazogYmxvY2tJbmZvLmJsb2NrLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmxvY2tJbmZvLnN0YWNraW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAxMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGJsb2NrSW5mby5wb3NpdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tpbmc6IGJsb2NrSW5mby5jb2xvclxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g57yT5a2YIEJsb2NrX0FycmF5IOiuv+mXrlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrVXBQcmVmYWIgPSB0aGlzLkJsb2NrX0FycmF5W2luZm8uYmxvY2tdOyBcclxuICAgICAgICAgICAgICAgICAgICBsZXQgYmxvY2tVcCA9IGNjLmluc3RhbnRpYXRlKGJsb2NrVXBQcmVmYWIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrVXAucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrVXAuc2V0UG9zaXRpb24oY2MudjIoaW5mby5wb3NpdGlvbi54LCBpbmZvLnBvc2l0aW9uLnkpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja3MucHVzaChibG9ja1VwKTtcclxuICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGJsb2NrSW5mbywgbnVsbCwgbnVsbCwgYmxvY2tVcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2tVcC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5pbml0KGluZm8sIG51bGwsIG51bGwsIGJsb2NrKTtcclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChibG9ja0luZm8udHlwZSA9PSA5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoYmxvY2tJbmZvLmFkaGVzaXZlVGltZSA8IDIpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaW5mbyA9IGJsb2NrQXJyYXlbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOe8k+WtmCBCbG9ja19BcnJheSDorr/pl65cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9ja1VwUHJlZmFiID0gdGhpcy5CbG9ja19BcnJheVtpbmZvLmJsb2NrXTsgXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJsb2NrVXAgPSBjYy5pbnN0YW50aWF0ZShibG9ja1VwUHJlZmFiKTtcclxuICAgICAgICAgICAgICAgICAgICBibG9ja1VwLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgICAgICBibG9ja1VwLnNldFBvc2l0aW9uKGNjLnYyKGluZm8ucG9zaXRpb24ueCwgaW5mby5wb3NpdGlvbi55KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzLnB1c2goYmxvY2tVcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuaW5pdChibG9ja0luZm8sIG51bGwsIG51bGwsIGJsb2NrVXAsZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBibG9ja1VwLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoaW5mbywgbnVsbCwgbnVsbCwgYmxvY2ssdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmluaXQoYmxvY2tJbmZvKTtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbXBvbmVudChcIkJhcnJpZXJcIikuaW5pdChibG9ja0luZm8pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGVuZFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICBjb25zdCBmcmFtZVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lO1xyXG4gICAgICAgIC8vIOWmguaenOW9k+WJjeW4p+aJp+ihjOaXtumXtOi/h+mVv++8jOWHj+Wwkeavj+W4p+WIm+W7uuaVsOmHj1xyXG4gICAgICAgIGlmIChmcmFtZVRpbWUgPiAxNikgeyBcclxuICAgICAgICAgICAgQkxPQ0tTX1BFUl9GUkFNRSA9IE1hdGgubWF4KEJMT0NLU19QRVJfRlJBTUUgLSAxLCBNSU5fUEVSX0ZSQU1FKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBCTE9DS1NfUEVSX0ZSQU1FID0gTWF0aC5taW4oQkxPQ0tTX1BFUl9GUkFNRSArIDEsIE1BWF9QRVJfRlJBTUUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5aaC5p6c6L+Y5pyJ5pa55Z2X5pyq5Yib5bu677yM5LiL5LiA5bin57un57ut5Yib5bu6XHJcbiAgICAgICAgaWYgKGluZGV4IDwgYmxvY2tBcnJheS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgLy8g5L2/55SoIHNjaGVkdWxlT25jZSDlnKjkuIvkuIDluKfmiafooYwgY3JlYXRlQmxvY2tzXHJcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNyZWF0ZUJsb2NrcygpO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIC8vIOW8gOWni+WIhuW4p+WIm+W7uuaWueWdl1xyXG4gICAgY3JlYXRlQmxvY2tzKCk7XHJcbn1cclxuLy/nu5nliJvlu7rmlrnlnZfmjpLluo/vvIznlKjmnaXpmY3kvY5kcmF3Y2FsbCDlkIjmiblcclxuc29ydEJsb2NrKGFsbEJsb2NrczogeyBjb2xvcjogbnVtYmVyOyBibG9jazogbnVtYmVyOyB0eXBlOiBudW1iZXIgfVtdKSB7XHJcbiAgICByZXR1cm4gYWxsQmxvY2tzLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAvLyDlhYjlpITnkIYgdHlwZSDkuLogMSDnmoTmg4XlhrXvvIzlsIblhbbmlL7liLDmnIDlkI5cclxuICAgICAgICBpZiAoYS50eXBlID09PSAxICYmIGIudHlwZSAhPT0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGEudHlwZSAhPT0gMSAmJiBiLnR5cGUgPT09IDEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5a+5IHR5cGUg5LiN5Li6IDAg55qE5YWD57Sg5oyJIHR5cGUg5o6S5bqPXHJcbiAgICAgICAgaWYgKGEudHlwZSAhPT0gMCAmJiBiLnR5cGUgIT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGEudHlwZSAtIGIudHlwZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGEudHlwZSAhPT0gMCAmJiBiLnR5cGUgPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhLnR5cGUgPT09IDAgJiYgYi50eXBlICE9PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIOWGjeWkhOeQhiBibG9jayDkuLogMjMg55qE5oOF5Ya177yM5bCG5YW25pS+5Yiw5pyA5YmN6Z2iXHJcbiAgICAgICAgaWYgKGEuYmxvY2sgPT09IDIzICYmIGIuYmxvY2sgIT09IDIzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGEuYmxvY2sgIT09IDIzICYmIGIuYmxvY2sgPT09IDIzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8g5YW25L2Z5oyJIGNvbG9yIOWNh+W6j+aOkuWIl1xyXG4gICAgICAgIHJldHVybiBhLmNvbG9yIC0gYi5jb2xvcjtcclxuICAgIH0pO1xyXG59XHJcblxyXG5cclxuLy/liJvlu7rlopnlo4FcclxuXHJcbndhbGxJbml0KCkge1xyXG4gICAgbGV0IGluZGV4ID0gMDsgLy8g5b2T5YmN6KaB5Yib5bu655qE5aKZ5aOB57Si5byVXHJcbiAgICBsZXQgV0FMTFNfUEVSX0ZSQU1FID0gMTsgLy8g5Yid5aeL5q+P5bin5Yib5bu655qE5aKZ5aOB5pWw6YePXHJcbiAgICBjb25zdCBNQVhfUEVSX0ZSQU1FID0gMTA7IC8vIOavj+W4p+acgOWkp+WIm+W7uuaVsOmHj1xyXG4gICAgY29uc3QgTUlOX1BFUl9GUkFNRSA9IDE7IC8vIOavj+W4p+acgOWwj+WIm+W7uuaVsOmHj1xyXG5cclxuICAgIGNvbnN0IGNyZWF0ZVdhbGxzID0gKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgV0FMTFNfUEVSX0ZSQU1FICYmIGluZGV4IDwgdGhpcy53YWxsSW5mby5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgYmxvY2sgPSB0aGlzLndhbGxJbmZvW2luZGV4XTtcclxuICAgICAgICAgICAgbGV0IGRpciA9IHRoaXMuZ2V0V2xsRGlyYWN0aW9uKFwid2FsbFwiLCBjYy52MihibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLCBibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZKSk7XHJcbiAgICAgICAgICAgIGlmIChkaXIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVXYWxsKGRpciwgYmxvY2spO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGVuZFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICBjb25zdCBmcmFtZVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lO1xyXG4gICAgICAgIC8vIOWmguaenOW9k+WJjeW4p+aJp+ihjOaXtumXtOi/h+mVv++8jOWHj+Wwkeavj+W4p+WIm+W7uuaVsOmHj1xyXG4gICAgICAgIGlmIChmcmFtZVRpbWUgPiAxNikgeyBcclxuICAgICAgICAgICAgV0FMTFNfUEVSX0ZSQU1FID0gTWF0aC5tYXgoV0FMTFNfUEVSX0ZSQU1FIC0gMSwgTUlOX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgV0FMTFNfUEVSX0ZSQU1FID0gTWF0aC5taW4oV0FMTFNfUEVSX0ZSQU1FICsgMSwgTUFYX1BFUl9GUkFNRSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDlpoLmnpzov5jmnInlopnlo4HmnKrliJvlu7rvvIzkuIvkuIDluKfnu6fnu63liJvlu7pcclxuICAgICAgICBpZiAoaW5kZXggPCB0aGlzLndhbGxJbmZvLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxlT25jZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjcmVhdGVXYWxscygpO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyDmiYDmnInlopnlo4HliJvlu7rlrozmiJDlkI7vvIzliJvlu7rmi5Dop5LoioLngrlcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVDb3JuZXJOb2RlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgLy8g5byA5aeL5YiG5bin5Yib5bu65aKZ5aOBXHJcbiAgICBjcmVhdGVXYWxscygpO1xyXG59XHJcblxyXG4vLyAuLi4g5bey5pyJ5Luj56CBIC4uLlxyXG5cclxuICAgIGdldFdsbERpcmFjdGlvbih0eXBlLHBvaW50QSl7XHJcbiAgICAgICAgbGV0IGRpciA9IFtdO1xyXG4gICAgICAgIGxldCBwb2ludEIgPSBjYy52Mihwb2ludEEueCArIDEscG9pbnRBLnkpO1xyXG4gICAgICAgIGxldCBwb2ludEMgPSBjYy52Mihwb2ludEEueCAtIDEscG9pbnRBLnkpO1xyXG4gICAgICAgIGxldCBwb2ludEQgPSBjYy52Mihwb2ludEEueCxwb2ludEEueSArIDEpO1xyXG4gICAgICAgIGxldCBwb2ludEUgPSBjYy52Mihwb2ludEEueCxwb2ludEEueSAtIDEpO1xyXG4gICAgICAgIGxldCBvcGFjaXR5ID0gMDtcclxuICAgICAgICBpZih0eXBlID09IFwid2FsbFwiKSBvcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgIGlmKHR5cGUgPT0gXCJ0dXJuXCIpIG9wYWNpdHkgPSAyNTA7XHJcbiAgICAgIFxyXG4gICAgICAgIGlmKHBvaW50Qi54IDwgdGhpcy5tYXBXaWR0aCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEIueF1bcG9pbnRCLnldLm9wYWNpdHkgPT0gb3BhY2l0eSApe1xyXG4gICAgICAgICAgICAgICAgaWYodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRCLnhdW3BvaW50Qi55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJyaWdodFwiKXtcclxuICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBkaXIucHVzaChcInJpZ2h0XCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHBvaW50Qy54ID49IDApe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRDLnhdW3BvaW50Qy55XS5vcGFjaXR5ID09IG9wYWNpdHkpe1xyXG4gICAgICAgICAgICAgICAgaWYodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRDLnhdW3BvaW50Qy55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJsZWZ0XCIpe1xyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgZGlyLnB1c2goXCJsZWZ0XCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHBvaW50RC55IDwgdGhpcy5tYXBIZWlnaHQpe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRELnhdW3BvaW50RC55XS5vcGFjaXR5ID09IG9wYWNpdHkpe1xyXG4gICAgICAgICAgICAgICAgaWYodHlwZSA9PSBcInR1cm5cIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbcG9pbnRELnhdW3BvaW50RC55XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5kaXJlY3Rpb24gPT0gXCJ1cFwiKXtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwidXBcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYocG9pbnRFLnkgPj0gMCl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEUueF1bcG9pbnRFLnldLm9wYWNpdHkgPT0gb3BhY2l0eSl7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlID09IFwidHVyblwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFtwb2ludEUueF1bcG9pbnRFLnldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmRpcmVjdGlvbiA9PSBcImRvd25cIil7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGRpci5wdXNoKFwiZG93blwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihkaXIubGVuZ3RoID4gMil7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoZGlyLmxlbmd0aCA9PSAxKXtcclxuICAgICAgICAgICAgaWYodHlwZSA9PSBcIndhbGxcIilcclxuICAgICAgICAgICAgICAgIHJldHVybiBkaXJbMF07XHJcbiAgICAgICAgICAgIGVsc2UgXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihkaXIubGVuZ3RoID09IDIpe1xyXG4gICAgICAgICAgICByZXR1cm4gZGlyWzBdICsgZGlyWzFdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVDb3JuZXJOb2RlcygpIHtcclxuICAgICAgICAvLyDlrprkuYnmi5Dop5LkvY3nva5cclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLndhbGxJbmZvLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgbGV0IGJsb2NrID0gdGhpcy53YWxsSW5mb1tpXTtcclxuICAgICAgICAgICAgaWYoYmxvY2sub3BhY2l0eSAhPSAyNTApe1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpciA9IHRoaXMuZ2V0V2xsRGlyYWN0aW9uKFwidHVyblwiLGNjLnYyKGJsb2NrLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSkpO1xyXG4gICAgICAgICAgICAgICAgaWYoZGlyICE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlVHVybihkaXIsYmxvY2ssYmxvY2suZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxibG9jay5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVdhbGwoZGlyZWN0aW9uLG5vZGUpe1xyXG4gICAgICAgIGxldCB3YWxsID0gbnVsbDtcclxuICAgICAgICBub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnNldERpcmFjdGlvbihkaXJlY3Rpb24pO1xyXG4gICAgICAgIHN3aXRjaChkaXJlY3Rpb24pe1xyXG4gICAgICAgICAgICBjYXNlIFwicmlnaHRcIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI1MDtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzRdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdERvb3JzLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBicmVhazsgXHJcbiAgICAgICAgICAgIGNhc2UgXCJsZWZ0XCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYlszXSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0RG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZih3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMykgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVXYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls1XSk7XHJcbiAgICAgICBcclxuICAgICAgICAgICAgICAgICAgIHRoaXMudG9wRG9vcnMucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICBpZih3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsLnB1c2god2FsbCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAzKSBcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZVdhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93blwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjUwO1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbMF0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5ib3R0b21Eb29ycy5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuc2V0RG9vckluZm8od2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKSk7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIGlmKHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbldhbGwucHVzaCh3YWxsKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYod2FsbC5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDMpIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbC5wdXNoKHdhbGwpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cHJpZ2h0XCIgOiBjYXNlIFwicmlnaHR1cFwiOlxyXG4gICAgICAgICAgICAgICAgbm9kZS5vcGFjaXR5ID0gMjQ5O1xyXG4gICAgICAgICAgICAgICAgd2FsbCA9IGNjLmluc3RhbnRpYXRlKHRoaXMuV2FsbF9QcmVmYWJbN10pO1xyXG4gICAgICAgICAgICAgICAgLy8gd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJXYWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnNldFBvc2l0aW9uKGNjLnYyKG5vZGUueCxub2RlLnkpKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsyXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMF0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblswXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblsxXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidXBsZWZ0XCIgOiBjYXNlIFwibGVmdHVwXCI6XHJcbiAgICAgICAgICAgICAgICBub2RlLm9wYWNpdHkgPSAyNDk7XHJcbiAgICAgICAgICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy5XYWxsX1ByZWZhYls2XSk7XHJcbiAgICAgICAgICAgICAgICAvLyB3YWxsLnBhcmVudCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICAgICAgICAgIHdhbGwuc2V0UG9zaXRpb24oY2MudjIobm9kZS54LG5vZGUueSkpO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5jaGlsZHJlblsxXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmluaXQobnVsbCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NZLGRpcmVjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIC8vd2FsbC5jaGlsZHJlblswXS5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMud2FsbE51bS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXREb29ySW5mbyh3YWxsLmNoaWxkcmVuWzBdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2FsbE51bSArPSAxO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzFdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMV0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJkb3ducmlnaHRcIiA6IGNhc2UgXCJyaWdodGRvd25cIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzJdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25sZWZ0XCIgOiBjYXNlIFwibGVmdGRvd25cIjpcclxuICAgICAgICAgICAgICAgIG5vZGUub3BhY2l0eSA9IDI0OTtcclxuICAgICAgICAgICAgICAgIHdhbGwgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLldhbGxfUHJlZmFiWzFdKTtcclxuICAgICAgICAgICAgICAgIC8vIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiV2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIHdhbGwucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmNoaWxkcmVuWzFdLmdldENvbXBvbmVudChcIldhbGxcIikuaW5pdChudWxsLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLnBvc1ksZGlyZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIHdhbGwuY2hpbGRyZW5bMl0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KG51bGwsbm9kZS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikucG9zWSxkaXJlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgLy93YWxsLmNoaWxkcmVuWzBdLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy53YWxsTnVtLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERvb3JJbmZvKHdhbGwuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53YWxsTnVtICs9IDE7XHJcbiAgICAgICAgICAgICAgICAvL3dhbGwuY2hpbGRyZW5bMV0uZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RG9vckluZm8od2FsbC5jaGlsZHJlblsxXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxOdW0gKz0gMTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIFxyXG4gICAgICAgIC8vIGlmKHdhbGxUdXJuKXtcclxuICAgICAgICAvLyAgICAgd2FsbFR1cm4uZ2V0Q29tcG9uZW50KFwid2FsbFR1bnJcIikuaW5pdCh3YWxsKTtcclxuICAgICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RG9vckluZm8od2FsbCl7XHJcbiAgICAgICAgbGV0IGRvb3JJbmZvID0gY2MuZnguR2FtZUNvbmZpZy5XQUxMX0lORk9bMF07XHJcblxyXG4gICAgICAgIGlmKGRvb3JJbmZvKXtcclxuICAgICAgICAgICAgZm9yKGxldCBqID0gMDsgaiA8IGRvb3JJbmZvLmxlbmd0aDsgaisrKXtcclxuICAgICAgICAgICAgICAgIGlmKGRvb3JJbmZvW2pdLm51bSA9PSB0aGlzLndhbGxOdW0pe1xyXG4gICAgICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5pbml0KGRvb3JJbmZvW2pdLG51bGwsbnVsbCxudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndhbGxBcnJheS5wdXNoKHdhbGwucGFyZW50KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlVHVybihkaXJlY3Rpb24sbm9kZSxwb3NYLHBvc1kpe1xyXG4gICAgICAgIGxldCB3YWxsID0gbnVsbDtcclxuICAgICAgICB3YWxsID0gY2MuaW5zdGFudGlhdGUodGhpcy53YWxsVHVyblByZWZhYik7XHJcbiAgICAgICAgd2FsbC5wYXJlbnQgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgd2FsbC5zZXRQb3NpdGlvbihjYy52Mihub2RlLngsbm9kZS55KSk7XHJcbiAgICAgICAgc3dpdGNoKGRpcmVjdGlvbil7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ1cHJpZ2h0XCIgOiBjYXNlIFwicmlnaHR1cFwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IDA7XHJcbiAgICAgXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcInVwbGVmdFwiIDogY2FzZSBcImxlZnR1cFwiOlxyXG4gICAgICAgICAgICAgICAgd2FsbC5hbmdsZSA9IDkwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYW5nbGUgPSAtOTA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS55ICs9IDU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS54IC09IDEuMztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiZG93bnJpZ2h0XCIgOiBjYXNlIFwicmlnaHRkb3duXCI6XHJcbiAgICAgICAgICAgICAgICB3YWxsLmFuZ2xlID0gMjcwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYW5nbGUgPSAtMjcwO1xyXG4gICAgICAgICAgICAgICAgd2FsbC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikueCArPSAyLjU7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS55ICs9IDE7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImRvd25sZWZ0XCIgOiBjYXNlIFwibGVmdGRvd25cIjpcclxuICAgICAgICAgICAgICAgIHdhbGwuYW5nbGUgPSAxODA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hbmdsZSA9IC0xODA7XHJcbiAgICAgICAgICAgICAgICB3YWxsLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS54ICs9IDQuNTtcclxuICAgICAgICAgICAgICAgIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLnkgKz0gMy4yO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBpZihkaXJlY3Rpb24gPT0gXCJyaWdodGRvd25cIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3ducmlnaHRcIikge1xyXG4gICAgICAgIC8vICAgICB3YWxsLnpJbmRleCA9IDUwICsgcG9zWCAtIHBvc1kqMztcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gZWxzZSBcclxuICAgICAgICAvLyAgICAgd2FsbC56SW5kZXggPSA1MCArIHBvc1ggLSBwb3NZKjM7XHJcblxyXG4gICAgICAgIGlmKGRpcmVjdGlvbiA9PSBcInVwXCIgfHwgZGlyZWN0aW9uID09IFwibGVmdHVwXCIgfHwgZGlyZWN0aW9uID09IFwidXBsZWZ0XCJcclxuICAgICAgICApe1xyXG4gICAgICAgICAgICB3YWxsLnpJbmRleCA9IDEwMCArIHBvc1ggLSBwb3NZKjM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoZGlyZWN0aW9uID09IFwicmlnaHR1cFwiIHx8IGRpcmVjdGlvbiA9PSBcInVwcmlnaHRcIiB8fCBkaXJlY3Rpb24gPT0gXCJyaWdodGRvd25cIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3ducmlnaHRcIiB8fCBkaXJlY3Rpb24gPT0gXCJkb3dubGVmdFwiKXtcclxuICAgICAgICAgICAgd2FsbC56SW5kZXggPSAzMCArIHBvc1ggLSBwb3NZKjM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKCBkaXJlY3Rpb24gPT0gXCJsZWZ0XCIgfHwgZGlyZWN0aW9uID09IFwibGVmdGRvd25cIil7XHJcbiAgICAgICAgICAgIHdhbGwuekluZGV4ID0gNzAgKyBwb3NYIC0gcG9zWSozOyBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB3YWxsLnpJbmRleCA9IDcwICsgcG9zWCAtIHBvc1kqMztcclxuICAgICAgICBcclxuICAgICAgICAvLyB3YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmFuZ2xlID0gLXdhbGwuYW5nbGU7XHJcbiAgICAgICAgLy93YWxsLmdldENoaWxkQnlOYW1lKFwibnVtXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gZGlyZWN0aW9uO1xyXG4gICAgICAgIC8vd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHdhbGwuekluZGV4KyBcIlwiO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHBvc1gscG9zWSx3YWxsLnpJbmRleCk7XHJcbiAgICAgICAgLy8gdGhpcy53YWxsTnVtICs9ICAxO1xyXG4gICAgICAgIC8vIHdhbGwuZ2V0Q2hpbGRCeU5hbWUoXCJudW1cIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLndhbGxOdW0gKyBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Zyw5Zu+5bqV5Z2X57y65Y+j5Yik5patXHJcbiAgICBtYXBHYXAocG9pbnQsZ2FwKXtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTxnYXAubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZihwb2ludC54ID09IGdhcFtpXS54ICYmIHBvaW50LnkgPT0gZ2FwW2ldLnkpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvL+WNh+mZjeWcsOWdl+WIpOaWrVxyXG4gICAgbWFwUmlzZUZhbGwocG9pbnQscmlzZWZhbGwsYmxvY2spe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHJpc2VmYWxsLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYocG9pbnQueCA9PSByaXNlZmFsbFtpXS5wb3MueCAmJiBwb2ludC55ID09IHJpc2VmYWxsW2ldLnBvcy55KXtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENoaWxkQnlOYW1lKFwiY29sb3JcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSByaXNlZmFsbFtpXS5jb2xvcitcIlwiO1xyXG4gICAgICAgICAgICAgICAgYmxvY2suZ2V0Q2hpbGRCeU5hbWUoJ3Jpc2VmYWxsJykuYWRkQ29tcG9uZW50KGNjLkJveENvbGxpZGVyKTtcclxuICAgICAgICAgICAgICAgIGJsb2NrLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcikuc2l6ZSA9IGNjLnNpemUoMTEwLDExMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvL+WNh+mZjeWcsOWdl1xyXG4gICAgY2hhbmdlUmlzZUZhbGwoY29sb3IsZG93bil7XHJcbiAgICAgICAgY29sb3IgPSBjb2xvci50b1N0cmluZygpO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMucmlzZUZhbGxCbGNvay5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKGNvbG9yID09IHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZShcInJpc2VmYWxsXCIpLmdldENoaWxkQnlOYW1lKFwiY29sb3JcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcpe1xyXG4gICAgICAgICAgICAgICAgaWYoZG93bil7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKFwicmlzZWZhbGxcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLnJlbW92ZUNvbXBvbmVudChjYy5Cb3hDb2xsaWRlcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmlzZUZhbGxCbGNva1tpXS5nZXRDaGlsZEJ5TmFtZShcInJpc2VmYWxsXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmFkZENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaXNlRmFsbEJsY29rW2ldLmdldENoaWxkQnlOYW1lKCdyaXNlZmFsbCcpLmdldENvbXBvbmVudChjYy5Cb3hDb2xsaWRlcikuc2l6ZSA9IGNjLnNpemUoMTEwLDExMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLy/mn6Xor6Llj6DliqDlv6tpZFxyXG4gICAgZm91bmREb3duQmxvY2soaWQpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMuYmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tJZCA9PSBpZCl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ibG9ja3NbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liKDpmaTlnZdcclxuICAgIHJlbW92ZUJsb2NrKGlkKXtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tzW2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmJsb2NrSWQgPT0gaWQpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmxvY2tzW2ldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE1pbkFuZE1heChibG9jayl7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gTWF0aC5mbG9vcihibG9jay53aWR0aCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IGhlaWdodCA9IE1hdGguZmxvb3IoYmxvY2suaGVpZ2h0IC8gMTIwKTtcclxuXHJcbiAgICAgICAgbGV0IG1pblggPSB3aWR0aDtcclxuICAgICAgICBsZXQgbWF4WCA9IHRoaXMubWFwV2lkdGgtMjtcclxuICAgICAgICBsZXQgbWluWSA9IDE7XHJcbiAgICAgICAgbGV0IG1heFkgPSB0aGlzLm1hcEhlaWdodC0yIC0gaGVpZ2h0ICsgMTtcclxuXHJcbiAgICAgICAgaWYoYmxvY2submFtZSA9PSBcImJsb2NrMTBcIil7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aC0xO1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcFdpZHRoID4gMykgbWF4WCA9IG1heFgtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihibG9jay5uYW1lID09IFwiYmxvY2sxMVwiKXtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoLTI7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwV2lkdGggPiAzKSBtYXhYID0gbWF4WC0yO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSBpZihibG9jay5uYW1lID09IFwiYmxvY2sxNFwiKXtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoLTE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYLTE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoYmxvY2submFtZSA9PSBcImJsb2NrMTZcIil7XHJcbiAgICAgICAgICAgIG1pblggPSB3aWR0aC0xO1xyXG4gICAgICAgICAgICBtYXhYID0gbWF4WC0xO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGJsb2NrLm5hbWUgPT0gXCJibG9jazE4XCIpe1xyXG4gICAgICAgICAgICBtaW5YID0gd2lkdGgtMTtcclxuICAgICAgICAgICAgbWF4WCA9IG1heFgtMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihibG9jay5uYW1lID09IFwiYmxvY2syMVwiKXtcclxuICAgICAgICAgICAgbWluWCA9IHdpZHRoLTE7XHJcbiAgICAgICAgICAgIG1heFggPSBtYXhYLTE7XHJcbiAgICAgICAgfVxyXG4gICAgIFxyXG4gICAgICAgIHJldHVybiB7bWluWDptaW5YLG1heFg6bWF4WCxtaW5ZOm1pblksbWF4WTptYXhZfTtcclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+iQveeCueaYr+WQpuWPr+S7pea2iOmZpFxyXG4gICAgY2hlY2tQYXNzKG5vZGUsYmxvY2tzKSB7XHJcbiAgICAgICAgbGV0IG1pbkFuZE1heCA9IHRoaXMuZ2V0TWluQW5kTWF4KG5vZGUpO1xyXG4gICAgICAgIGxldCBtaW5YID0gbWluQW5kTWF4Lm1pblg7XHJcbiAgICAgICAgbGV0IG1heFggPSBtaW5BbmRNYXgubWF4WDtcclxuICAgICAgICBsZXQgbWluWSA9IG1pbkFuZE1heC5taW5ZO1xyXG4gICAgICAgIGxldCBtYXhZID0gbWluQW5kTWF4Lm1heFk7XHJcblxyXG4gICAgICAgIGxldCBub2RlUG9zID0gY2MudjIobm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLCBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1kpO1xyXG5cclxuICAgICAgICAvLyDojrflj5blnLDlm77ovrnnlYzkv6Hmga9cclxuXHJcbiAgICAgICAgbGV0IGFsbEJsb2NrcyA9IFtdO1xyXG4gICAgICAgIGZvcihsZXQgaT0wO2k8YmxvY2tzLmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBhbGxCbG9ja3MucHVzaChjYy52Mihub2RlUG9zLnggKyBibG9ja3NbaV0ueCwgbm9kZVBvcy55ICsgYmxvY2tzW2ldLnkpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNvbnN0IGRhdGUxID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlsIblsI/lnZfmlL7lhaXmlbDnu4TnmoTml7bpl7RcIixkYXRlMSk7XHJcbiAgIFxyXG4gICAgICAgIGxldCBqZyA9IC0xO1xyXG4gICAgICAgIGxldCBweiA9IDA7XHJcbiAgICAgICAgLy8g6I635Y+W5omA5pyJ5aKZ5aOB6IqC54K5XHJcbiAgICAgICAgLy8gbGV0IHdhbGwgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgbGV0IGRpcmVjdGlvbiA9IHRoaXMuY2hlY2tEaXJhY3Rpb24oYWxsQmxvY2tzLG1heFgsbWF4WSk7XHJcblxyXG4gICAgICAgIC8vIOWIpOaWreaWueWdl+aYr+WQpuWcqOWcsOWbvui+uee8mFxyXG4gICAgICAgIGlmIChub2RlUG9zLnggPD0gbWluWCB8fCBkaXJlY3Rpb25bMF0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlMiA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOW3pui+uee8mFwiLGRhdGUyKTtcclxuICAgICAgICAgICAgcHogKz0gMTtcclxuICAgICAgICAgICAgbGV0IGxlZnRXYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGhpcy5sZWZ0RG9vcnMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxMZWZ0ID0gdGhpcy5sZWZ0RG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsTGVmdC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1gsd2FsbExlZnQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS55ID09IHdhbGxQb3MueSAmJiBhbGxCbG9ja3NbaV0ueCA+IHdhbGxQb3MueCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRXYWxscy5wdXNoKHdhbGxMZWZ0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlvpfliLDlt6bovrnlopnlo4HmlbDnu4RcIixkYXRlNik7XHJcbiAgICAgICAgICAgIGlmKGxlZnRXYWxscy5sZW5ndGggIT0gMCl7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kZXRlY3RpbmdCbG9jayhcImxlZnRcIixub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLGFsbEJsb2Nrcyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQgPT0gdHJ1ZSkgcmVzdWx0ID0gdGhpcy5wYXNzV2FsbChyZXN1bHQsbGVmdFdhbGxzLG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDlt6bovrnnvJjnu5Pmnpw6XCIsamcpO1xyXG4gICAgICAgICAgICAgICAgaWYocmVzdWx0KXtcclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSxqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChub2RlUG9zLnggPj0gbWF4WCB8fCBkaXJlY3Rpb25bMV0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlMyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOWPs+i+uee8mFwiLGRhdGUzKTtcclxuICAgICAgICAgICAgcHogKz0gMTtcclxuICAgICAgICAgICAgbGV0IHJpZ2h0V2FsbHMgPSBbXTtcclxuICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRoaXMucmlnaHREb29ycy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbFJpZ2h0ID0gdGhpcy5yaWdodERvb3JzW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUG9zID0gY2MudjIod2FsbFJpZ2h0LmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCx3YWxsUmlnaHQuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5wb3NZKTtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS55ID09IHdhbGxQb3MueSAmJiBhbGxCbG9ja3NbaV0ueCA8IHdhbGxQb3MueCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0V2FsbHMucHVzaCh3YWxsUmlnaHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYocmlnaHRXYWxscy5sZW5ndGggIT0gMCl7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kZXRlY3RpbmdCbG9jayhcInJpZ2h0XCIsbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NYLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWSxhbGxCbG9ja3MpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCxyaWdodFdhbGxzLG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLnorDliLDlj7PovrnnvJjnu5Pmnpw6XCIsamcpO1xyXG4gICAgICAgICAgICAgICAgaWYocmVzdWx0KXtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tOdW0gLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNwZWNpYWxfVHJlYXRtZW50KG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gMztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBhcnRpY2xlKG5vZGUsamcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICBcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vZGVQb3MueSAgPD0gbWluWSB8fCBkaXJlY3Rpb25bMl0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlNCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mFwiLGRhdGU0KTtcclxuICAgICAgICAgICAgbGV0IGRvd25XYWxscyA9IFtdO1xyXG4gICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGhpcy50b3BEb29ycy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICBsZXQgd2FsbEJvdHRvbSA9IHRoaXMudG9wRG9vcnNbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxQb3MgPSBjYy52Mih3YWxsQm90dG9tLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWCx3YWxsQm90dG9tLmdldENvbXBvbmVudChcIldhbGxcIikucG9zWSk7XHJcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgYWxsQmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbHVvY2hhID0gTWF0aC5hYnMoYWxsQmxvY2tzW2ldLnkgLSB3YWxsUG9zLnkpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYoYWxsQmxvY2tzW2ldLnggPT0gd2FsbFBvcy54ICYmIGFsbEJsb2Nrc1tpXS55ID4gd2FsbFBvcy55ICYmIGx1b2NoYSA8PSBub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnNodSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaWQ6XCIsd2FsbC5nZXRDaGlsZEJ5TmFtZShcIm51bVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvd25XYWxscy5wdXNoKHdhbGxCb3R0b20pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYoZG93bldhbGxzLmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwiZG93blwiLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikucG9zWCxub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1ksYWxsQmxvY2tzKTtcclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSB0cnVlKSByZXN1bHQgPSB0aGlzLnBhc3NXYWxsKHJlc3VsdCxkb3duV2FsbHMsbm9kZSk7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4i+i+uee8mOe7k+aenDpcIixqZyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQpe1xyXG4gICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSxqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgIFxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5vZGVQb3MueSAgPj0gbWF4WSB8fCBkaXJlY3Rpb25bM10gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBweiArPSAxO1xyXG4gICAgICAgICAgICAvLyBjb25zdCBkYXRlNSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIueisOWIsOS4iui+uee8mFwiLGRhdGU1KTtcclxuICAgICAgICAgICAgbGV0IHVwV2FsbHMgPSBbXTtcclxuICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRoaXMuYm90dG9tRG9vcnMubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgbGV0IHdhbGxUb3AgPSB0aGlzLmJvdHRvbURvb3JzW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKTtcclxuICAgICAgICAgICAgICAgIGxldCB3YWxsUG9zID0gY2MudjIod2FsbFRvcC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1gsd2FsbFRvcC5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBvc1kpO1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGx1b2NoYSA9IE1hdGguYWJzKGFsbEJsb2Nrc1tpXS55IC0gd2FsbFBvcy55KVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS54ID09IHdhbGxQb3MueCAmJiBhbGxCbG9ja3NbaV0ueSA8IHdhbGxQb3MueSAmJiBsdW9jaGEgPD0gbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5zaHUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cFdhbGxzLnB1c2god2FsbFRvcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZih1cFdhbGxzLmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRldGVjdGluZ0Jsb2NrKFwidXBcIixub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnBvc1gsbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5wb3NZLGFsbEJsb2Nrcyk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQgPT0gdHJ1ZSkgcmVzdWx0ID0gdGhpcy5wYXNzV2FsbChyZXN1bHQsdXBXYWxscyxub2RlKTtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi56Kw5Yiw5LiK6L6557yY57uT5p6cOlwiLHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQpe1xyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja051bSAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BlY2lhbF9UcmVhdG1lbnQobm9kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGFydGljbGUobm9kZSxqZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihweiA9PSAwIClqZyA9IC0xO1xyXG4gICAgICAgIC8vIGNvbnN0IGRhdGUxMCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5omA5pyJ5qOA5rWL57uT5p2f6ICX5pe2XCIsZGF0ZTEwLGpnKTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlU3RhdGUoKXtcclxuICAgICAgICBpZih0aGlzLm9wZW5XYWxsLmxlbmd0aCAhPSAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5vcGVuV2FsbC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5XYWxsW2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNoYW5nZUxvY2soKTsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKHRoaXMuZnJlZXplV2FsbC5sZW5ndGghPSAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5mcmVlemVXYWxsLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJlZXplV2FsbFtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jaGFuZ2VGcmVlemUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+ajgOa1i+aYr+WQpuWPr+S7pemAmui/h+mXqFxyXG4gICAgcGFzc1dhbGwoamcsd2FsbEFycmF5LG5vZGUpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wO2k8d2FsbEFycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBpZih3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsID09IDIpe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLlsJ3or5XpgJrov4flvIDlhbPpl6g6XCIsd2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikub3Blbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYod2FsbEFycmF5W2ldLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAyICYmIHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLm9wZW4gPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2cod2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNvbG9yLG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuY29sb3IpXHJcbiAgICAgICAgICAgIGlmKHdhbGxBcnJheVtpXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmNvbG9yICE9IG5vZGUuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuY29sb3Ipe1xyXG5cclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihub2RlLmdldENvbXBvbmVudChcIkJsb2NrXCIpLnR5cGUgPT0gNSl7XHJcbiAgICAgICAgICAgICAgICBpZih3YWxsQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5zcGVjaWFsICE9IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoamcgPT0gdHJ1ZSAgJiYgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDUpe1xyXG4gICAgICAgICAgICBmb3IobGV0IGo9MDtqPHdhbGxBcnJheS5sZW5ndGg7aisrKXtcclxuICAgICAgICAgICAgICAgIGlmKHdhbGxBcnJheVtqXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnNwZWNpYWwgPT0gMSAmJiB3YWxsQXJyYXlbal0uZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS53YWxsX0luZm8ubGVuZ3RoICE9IDApe1xyXG4gICAgICAgICAgICAgICAgICAgIHdhbGxBcnJheVtqXS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLnBsYXlTdGFyRG9vcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnN0IGRhdGU4ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLmo4DmtYvpopzoibLmmK/lkKbog73lpJ/pgJrov4fpl6hcIixkYXRlOCk7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5qOA5rWL5pa55Z2X5ZKM6Zeo5Lit6Ze05pyJ5rKh5pyJ5aS55p2C5YW25LuW5Z2XXHJcbiAgICBkZXRlY3RpbmdCbG9jayhkaXJlY3Rpb24scG9zWCxwb3NZLGJsb2Nrcyl7XHJcbiAgICAgICAgbGV0IGpnID0gdHJ1ZTtcclxuICAgICAgICBsZXQgaWQgPSBcIlwiO1xyXG4gICAgICAgIGlmKGJsb2Nrcy5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8YmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgIGxldCBwb3MgPSBibG9ja3NbaV07XHJcbiAgICAgICAgICAgICAgICBsZXQgeCA9IHBvcy54O1xyXG4gICAgICAgICAgICAgICAgbGV0IHkgPSBwb3MueTsgXHJcbiAgICAgICAgICAgICAgICBpZCA9IHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZDtcclxuICAgICAgICAgICAgICAgIGpnID0gdGhpcy5jaGVja0FsbERpcmVjdGlvbnMoaWQsZGlyZWN0aW9uLHgseSk7XHJcbiAgICAgICAgICAgICAgICBpZighamcpe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5pa55ZCR5qOA5rWL5rKh6L+HXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGkgPSAxMDAwMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc3QgZGF0ZTcgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaWueWQkeajgOa1i+mAmui/h1wiLGRhdGU3LGpnKTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgLy/mo4DmtYvniankvZPlkITmlrnlkJHmmK/lkKbmnInliKvnmoTnianlnZfvvIzpmLLmraLnorDliLDlopnlo4HkuobkvYbmmK/mmK/lh7nlh7jlvaLnirbvvIzlopnkuI7lnZfkuYvpl7TmnInpmLvmjKHnianlnZdcclxuICAgIGNoZWNrQWxsRGlyZWN0aW9ucyhpZCxkaXJlY3Rpb24seCx5KXtcclxuICAgICAgICBsZXQgamcgPSB0cnVlO1xyXG4gXHJcbiAgICAgICAgaWYoZGlyZWN0aW9uID09IFwibGVmdFwiKXtcclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3gtMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeC0xXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4LTFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkICl7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuW3puS+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeC0xXVt5XS5vcGFjaXR5ID09IDI0OSl7XHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKCh4IC0gMikgPj0gMCl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeC0yXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4LTJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4LTJdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkICl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlt6bkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4LTJdW3ldLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKGRpcmVjdGlvbiA9PSBcInJpZ2h0XCIpe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeCsxXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4KzFdW3ldLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3grMV1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+z5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4KzFdW3ldLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoKHggKyAyKSA8PSB0aGlzLm1hcEJsb2Nrc1dhbGwubGVuZ3RoLTEpe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3grMl1beV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gXCJcIiAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCsyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCE9IFwiV2FsbFwiXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeCsyXVt5XS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCApe1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5Y+z5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeCsyXVt5XS5vcGFjaXR5ID09IDI0OSl7XHJcbiAgICAgICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoZGlyZWN0aW9uID09IFwidXBcIil7XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3krMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAmJiB0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSsxXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBpZCApe1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3krMV0ub3BhY2l0eSA9PSAyNDkpe1xyXG4gICAgICAgICAgICAgICAgamcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZigoeSArIDIpIDw9IHRoaXMubWFwQmxvY2tzV2FsbFt4XS5sZW5ndGgtMSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beSsyXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgICAgICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IGlkICl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLkuIrkvqfmnInniankvZNcIilcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5KzJdLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBqZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihkaXJlY3Rpb24gPT0gXCJkb3duXCIpe1xyXG4gICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbeF1beS0xXS5nZXRDb21wb25lbnQoXCJNYXBCbG9ja1wiKS5ibG9ja19JZCAhPSBcIlwiICYmIHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5LTFdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkIT0gXCJXYWxsXCJcclxuICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMV0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5LiL5L6n5pyJ54mp5L2TXCIpXHJcbiAgICAgICAgICAgICAgICBqZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5LTFdLm9wYWNpdHkgPT0gMjQ5KXtcclxuICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gamc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoKHkgLSAyKSA+PSAwKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFt4XVt5LTJdLmdldENvbXBvbmVudChcIk1hcEJsb2NrXCIpLmJsb2NrX0lkICE9IFwiXCIgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQhPSBcIldhbGxcIlxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMl0uZ2V0Q29tcG9uZW50KFwiTWFwQmxvY2tcIikuYmxvY2tfSWQgIT0gaWQgKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4i+S+p+acieeJqeS9k1wiKVxyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5tYXBCbG9ja3NXYWxsW3hdW3ktMl0ub3BhY2l0eSA9PSAyNDkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5qOA5rWL54mp5L2T5ZCE5pa55ZCR5piv5ZCm5pyJ5Yir55qE54mp5Z2XXCIsamcpO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja0RpcmFjdGlvbihhbGxCbG9ja3MsbWF4WCxtYXhZKXtcclxuICAgICAgICBsZXQgamcgPSBbZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2VdO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS54ID4gMCAmJiBqZ1swXSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLngtMV1bYWxsQmxvY2tzW2ldLnldLm9wYWNpdHkgPT0gMjUwKXtcclxuICAgICAgICAgICAgICAgICAgICBqZ1swXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKCBqZ1sxXSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLngrMV1bYWxsQmxvY2tzW2ldLnldLm9wYWNpdHkgPT0gMjUwKXtcclxuICAgICAgICAgICAgICAgICAgICBqZ1sxXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGFsbEJsb2Nrc1tpXS55ID4gMCAmJiBqZ1syXSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLm1hcEJsb2Nrc1dhbGxbYWxsQmxvY2tzW2ldLnhdW2FsbEJsb2Nrc1tpXS55LTFdLm9wYWNpdHkgPT0gMjUwKXtcclxuICAgICAgICAgICAgICAgICAgICBqZ1syXSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGpnWzNdID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWFwQmxvY2tzV2FsbFthbGxCbG9ja3NbaV0ueF1bYWxsQmxvY2tzW2ldLnkrMV0ub3BhY2l0eSA9PSAyNTApe1xyXG4gICAgICAgICAgICAgICAgICAgIGpnWzNdID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrTGVmdChhbGxCbG9ja3Mpe1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBqZztcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1JpZ2h0KGFsbEJsb2NrcyxtYXgpe1xyXG4gICAgICAgIGxldCBqZyA9IGZhbHNlO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPGFsbEJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tEb3duKGFsbEJsb2Nrcyl7XHJcbiAgICAgICAgbGV0IGpnID0gZmFsc2U7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7IGk8YWxsQmxvY2tzLmxlbmd0aDsgaSsrKXtcclxuIFxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tVcChhbGxCbG9ja3MsbWF4KXtcclxuICAgICAgICBsZXQgamcgPSBmYWxzZTtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTxhbGxCbG9ja3MubGVuZ3RoOyBpKyspe1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG4gICAgXHJcblxyXG4gICAgLy/nibnmrorlpITnkIbvvIzmlrnlnZfluKbpgZPlhbfmiJbogIXpnIDopoHmtojpmaTlhrDlnZdcclxuICAgIHNwZWNpYWxfVHJlYXRtZW50KG5vZGUpe1xyXG4gICAgICAgIGxldCBmcmVlemVCbG9jayA9IHRoaXMubm9kZS5jaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICBpZihjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKSl7XHJcbiAgICAgICAgICAgICAgICBpZihjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDQpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZihmcmVlemVCbG9jay5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8ZnJlZXplQmxvY2subGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgZnJlZXplQmxvY2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJmcmVlemVcIikuZ2V0Q29tcG9uZW50KFwiRnJlZXplXCIpLnJlZHVjZSgxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYobm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDIgfHwgbm9kZS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDQpe1xyXG4gICAgICAgICAgICBsZXQgbG9ja0Jsb2NrID0gdGhpcy5ub2RlLmNoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihjaGlsZC5nZXRDb21wb25lbnQoXCJCbG9ja1wiKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2hpbGQuZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSAzKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmKGxvY2tCbG9jay5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8bG9ja0Jsb2NrLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICBsb2NrQmxvY2tbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJsb2NrXCIpLmdldENvbXBvbmVudChcIkxvY2tcIikucmVkdWNlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvcihsZXQgaT0wO2k8dGhpcy5ibG9ja3MubGVuZ3RoO2krKyl7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuYmxvY2tzW2ldID09IG5vZGUpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja3Muc3BsaWNlKGksMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgLy/liKTmlq3muLjmiI/miJDlip/kuIvkuIDlhbNcclxuICAgIG5leHRMZXZlbCgpe1xyXG4gICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9wZW5JY2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy5ibG9ja051bSA9IHRoaXMuYmxvY2tzLmxlbmd0aDtcclxuIFxyXG4gICAgICAgIGlmKHRoaXMuYmxvY2tOdW0gPT0gMCAmJiAhdGhpcy5nYW1lV2luICYmICF0aGlzLmdhbWVPdmVyKXtcclxuICAgICAgICAgICAgLy8gYWxlcnQoXCLmuLjmiI/miJDlip9cIik7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FtZVdpbiA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuaIkOWKn+a2iOmZpOS4gOS4qlwiKTtcclxuICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuY2hhbmdlQ29pbig0MCk7XHJcbiAgICAgICAgICAgIGxldCB0aW1lRGF0YSA9IHtcclxuICAgICAgICAgICAgICAgIGNvdW50X1RpbWU6dGhpcy5jb3VudF9UaW1lLFxyXG4gICAgICAgICAgICAgICAgYWRkX1RpbWU6dGhpcy5hZGRfVGltZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmFkZExldmVsKHRpbWVEYXRhKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tfTmV3TW9kZSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH0sIDY2MCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5ri45oiP5oiQ5YqfXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBpZih0aGlzLmdhbWVPdmVyID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mYWlsTGV2ZWwobnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tfTmV3TW9kZSgpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPGNjLmZ4LkdhbWVDb25maWcuTkVXX0xFVkVMLmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgaWYoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCsxKSA9PSBjYy5meC5HYW1lQ29uZmlnLk5FV19MRVZFTFtpXS5sZXZlbCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld19tb2RlID0gMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB3aW5MZXZlbCgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA+IDE1Nil7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IDE1NjtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgIFxyXG4gICAgICAgICAgICBpZih0aGlzLm5ld19tb2RlID09IDMpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJXaW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5OZXdNb2RlKDIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQoZmFsc2UsMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcInVwXCIsZmFsc2UpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcblxyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICB9IFxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4i+S4gOWFs1wiKTtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGlmKHRoaXMubmV3X21vZGUgPT0gMyl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMub3Blbk5ld01vZGUoMik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIixudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsXCJ1cFwiLGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwidXBcIikge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLDApO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICBcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmRlc3Ryb3koKTtcclxuICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFnYWluTGV2ZWwoKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIixudWxsKTtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaHAgPCAxKXtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOS4jei2s1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gXHJcbiAgICAgICAgaWYoIXRoaXMuYWdhaW5DYW5Ub3VjaCkgcmV0dXJuO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuYWdhaW5DYW5Ub3VjaCA9IGZhbHNlO1xyXG4gICAgICAgIFxyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGw7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSxcInVwXCIsZmFsc2UpO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRDb21wbGV0ZUxpc3RlbmVyKChlbnRyeSkgPT4ge1xyXG4gICAgICAgIC8vICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwidXBcIikge1xyXG4gICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgLy8gICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLDApO1xyXG4gICAgICAgIH0sIDEyMDApO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV2aWV3TGV2ZWwoKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIixudWxsKTtcclxuICAgICAgICBsZXQgY29pbiA9IDkwMDtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDEpIGNvaW4gPSAxOTAwO1xyXG4gICAgICAgIGVsc2UgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAyKSBjb2luID0gMjUwMDtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuiHqui6q+mHkeW4gTpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbixcIua2iOiAl+mHkeW4gTpcIixjb2luKTtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IE1hdGguYWJzKGNvaW4pKXtcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazleWKoOaXtumXtFwiKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLnJ1blJld2l2ZSgtY29pbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJ1blJld2l2ZShkYXRhKXtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuWkjea0u+Wbnuiwg+WHveaVsOWGhVwiLGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmNoYW5nZUNvaW4oZGF0YSk7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIue7p+e7rea4uOaIj1wiKTtcclxuICAgXHJcbiAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA8IDIpXHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5yZXZpZXcgKz0gMTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmdhbWVPdmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW1lTnVtYmVyID0gMjE7XHJcbiAgICAgICAgdGhpcy5hZGRfVGltZSArPSAyMDtcclxuICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgIFxyXG4gICAgaG9tZUJ0bigpe1xyXG4gICAgICAgIC8vIGFsZXJ0KFwi5ri45oiP5aSx6LSlXCIpO1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKCF0aGlzLmhvbWVDYW5Ub3VjaCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuaG9tZUNhblRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJCb29tXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkxvY2tcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiSGVhbHRoXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgIHRpbWU6dGhpcy5jb3VudF9UaW1lLCAgICAgICAgIFxyXG4gICAgICAgICAgICBhZGRfVGltZTp0aGlzLmFkZF9UaW1lLFxyXG4gICAgICAgICAgICByZXN1bHQ6XCJmYWlsXCJcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZmluaXNoX3N0YWdlXCIsZGF0YSk7XHJcbiAgICAgICAgaWYodGhpcy5nYW1lU3RhcnQgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoLTEsKGRhdGEpPT57XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuSG9tZSgpe1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLG51bGwpO1xyXG4gICAgICAgIGlmKE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGwpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLkvZPlipvlgLzlh4/lsJFcIik7XHJcbiAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwwKTtcclxuICAgICAgICBpZih0aGlzLm5ld19tb2RlID09IDMpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5vcGVuTmV3TW9kZSgxKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIixudWxsKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLFwidXBcIixmYWxzZSk7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IucHJlbG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIsIChlcnIsIGFzc2V0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgfSwgMTIwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy/liKTmlq3muLjmiI/lpLHotKVcclxuICAgIGZhaWxMZXZlbCh0eXBlKXtcclxuICAgICAgICB0aGlzLnN0b3BUaW1lQ3V0RG93bigpO1xyXG4gICAgICAgIGlmKHRoaXMuZ2FtZU92ZXI9PSB0cnVlIHx8dGhpcy5nYW1lV2luID09IHRydWUpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgdGhpcy5nYW1lT3ZlciA9IHRydWU7XHJcbiAgICAgICAgaWYodHlwZSA9PSBcImJvb21cIil7XHJcbiAgICAgICAgICAgIHRpbWUgPSAyMDAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiQm9vbVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGxldCBidXlCdG4gPSB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJUaW1lXCIpLmdldENoaWxkQnlOYW1lKFwiYnV5QnRuXCIpO1xyXG4gICAgICAgICAgICAgICAgYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjFcIikuYWN0aXZlID0gYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjJcIikuYWN0aXZlID0gYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjNcIikuYWN0aXZlID1mYWxzZTsgXHJcbiAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDApYnV5QnRuLmdldENoaWxkQnlOYW1lKFwiY29pbjFcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAxKSBidXlCdG4uZ2V0Q2hpbGRCeU5hbWUoXCJjb2luMlwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZWxzZSBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDIpIGJ1eUJ0bi5nZXRDaGlsZEJ5TmFtZShcImNvaW4zXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0eXBlID09IFwiYm9vbVwiKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiQm9vbVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICB9LCB0aW1lKTtcclxuICAgIFxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5ri45oiP5aSx6LSlXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5omT5byA5paw5qih5byP5by556qXXHJcbiAgICBvcGVuTmV3TW9kZSh0eXBlKXtcclxuICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICAgIGNvbnN0IEJMT0NLU19QRVJfRlJBTUUgPSA1OyAvLyDmr4/luKfplIDmr4HnmoTmlrnlnZfmlbDph49cclxuICAgICAgICBjb25zdCBkZXN0cm95QmxvY2tzID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBlbmRJbmRleCA9IE1hdGgubWluKGluZGV4ICsgQkxPQ0tTX1BFUl9GUkFNRSwgdGhpcy5ibG9ja3MubGVuZ3RoKTtcclxuICAgICAgICAgICAgZm9yICg7IGluZGV4IDwgZW5kSW5kZXg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpbmRleF0pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1tpbmRleF0uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOWmguaenOi/mOacieaWueWdl+acqumUgOavge+8jOS4i+S4gOW4p+e7p+e7rVxyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCB0aGlzLmJsb2Nrcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKGRlc3Ryb3lCbG9ja3MsIDApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvLyDlvIDlp4vliIbluKfplIDmr4HmlrnlnZdcclxuICAgICAgICBkZXN0cm95QmxvY2tzKCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJOZXdNb2RlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJOZXdNb2RlXCIpLmdldENvbXBvbmVudChcIk5ld01vZGVcIikuc2V0TW9kZSh0eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBcclxuICAgIGRvd25Eb29yKGNvbG9yLHR5cGUpe1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMud2FsbEFycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICBpZih0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS5jb2xvciA9PSBjb2xvcil7XHJcbiAgICAgICAgICAgICAgICBpZih0eXBlKXtcclxuICAgICAgICAgICAgICAgICAgICBpZih0eXBlID09IDUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiggdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuc3BlY2lhbCA9PSAxKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2FsbEFycmF5W2ldLmdldENoaWxkQnlOYW1lKFwid2FsbFwiKS5nZXRDb21wb25lbnQoXCJXYWxsXCIpLmRvd25Eb29yKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSAgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuZG93bkRvb3IoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgdGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLmdldENvbXBvbmVudChcIldhbGxcIikuZG93bkRvb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cERvb3IoKXtcclxuICAgICAgICBmb3IobGV0IGk9MDsgaTx0aGlzLndhbGxBcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgaWYodGhpcy53YWxsQXJyYXlbaV0uZ2V0Q2hpbGRCeU5hbWUoXCJ3YWxsXCIpLm9wYWNpdHkgPT0gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndhbGxBcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcIndhbGxcIikuZ2V0Q29tcG9uZW50KFwiV2FsbFwiKS51cERvb3IoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgIC8v5byA5aeL5YCS6K6h5pe2XHJcbiAgIHN0YXJ0VGltZUN1dERvd24oKXtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICBpZih0aGlzLnBhdXNlKSByZXR1cm47XHJcbiAgICAgICAgICAgIGlmKHRoaXMudGltZU51bWJlciA8PSAwKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLDUwLFwidGltZV9cIix0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMudGltZUxhYmVsLnN0cmluZyA9IHRpbWVUZW1wLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICBpZighdGhpcy5wYXVzZSl0aGlzLmZhaWxMZXZlbChcInRpbWVcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMudGltZU51bWJlciAtPSAxO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudF9UaW1lICs9IDE7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLDUwLFwidGltZV9cIix0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMudGltZUxhYmVsLnN0cmluZyA9IHRpbWVUZW1wLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZSh0aGlzLnNjaGVkdWxlQ2FsbGJhY2ssIDEpO1xyXG4gICAgfVxyXG4gICAgLy8g5YGc5q2i5YCS6K6h5pe2XHJcbiAgICBzdG9wVGltZUN1dERvd24oKXtcclxuICAgICAgICBpZih0aGlzLnNjaGVkdWxlQ2FsbGJhY2spe1xyXG4gICAgICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy5zY2hlZHVsZUNhbGxiYWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/kvb/nlKjml7bpl7TpgZPlhbdcclxuICAgIHVzZVRpbWVQcm9wKCl7XHJcbiAgICAgICAgaWYodGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPT0gdHJ1ZSB8fCB0aGlzLmhhbW1lciA9PSB0cnVlIFxyXG4gICAgICAgIHx8IHRoaXMubWFnaWNNYXNrLmFjdGl2ZT09IHRydWUgfHwgdGhpcy50aW1lTnVtYmVyIDw9IDEpe1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgICBsZXQgZnJlZXplQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcInRpbWVCdG5cIik7XHJcbiAgICAgICAgaWYoZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKXtcclxuICAgICAgICAgICAgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50IDwgMSl7XHJcbiAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLm9wZW5Qcm9wQnV5KFwiZnJlZXplXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBpZighdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgJiYgIXRoaXMucGF1c2Upe1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVNYXNrLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJUb3BcIikuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQgPCAwKSAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pY2VMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BJbmZvID0gY2MuZnguU3RvcmFnZU1lc3NhZ2UuZ2V0U3RvcmFnZShcInByb3BcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcEluZm8uZnJlZXplQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlclByb3AoMjAwMSxjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZnJlZXplQW1vdW50LChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOlwiMjAwMVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBudW06LTFcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwicmVzb3VyY2VfY29zdFwiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YGT5YW35L2/55So5Lit77yM6K+356iN5ZCO5YaN6K+VXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/op6PlvIDml7bpl7Tlhrvnu5NcclxuICAgIG9wZW5JY2UoKXtcclxuICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSl7XHJcbiAgICAgICAgICAgIHRoaXMuZnJlZXplTWFzay5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lQnRuXCIpO1xyXG4gICAgICAgICAgICBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyB0aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGhhbmRsZUJ1eVN1Y2Nlc3MoZGF0YSl7XHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLlm57osIPlh73mlbDlhoU6XCIsdGhpcy5wYXVzZSk7XHJcbiAgICAgICAgbGV0IGZyZWV6ZUJ0biA9IHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lQnRuXCIpO1xyXG4gICAgICAgIGxldCBoYW1tZXJCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwibWFnaWNCdG5cIik7XHJcbiAgICAgICAgaWYoZGF0YSA9PSBcImZyZWV6ZUFtb3VudFwiKSBmcmVlemVCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBlbHNlIGlmKGRhdGEgPT0gXCJoYW1tZXJBbW91bnRcIikgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7IFxyXG4gICAgICAgIGVsc2UgaWYoZGF0YSA9PSBcIm1hZ2ljQW1vdW50XCIpIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgaWYoZGF0YSA9PSBcImZyZWV6ZUFtb3VudFwiKXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8uZnJlZXplQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudDtcclxuICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5jbG9zZVByb3BCdXkoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmljZUxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5mcmVlemVBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLotK3kubDlhrvnu5Pml7bpl7TpgZPlhbfmiJDlip9cIik7XHJcbiAgICAgICAgICAgIH0sIDIwMCk7XHJcblxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihkYXRhID09IFwibWFnaWNBbW91bnRcIil7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8ubWFnaWNBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShcInByb3BcIixwcm9wSW5mbyk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikuY2xvc2VQcm9wQnV5KCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIui0reS5sOmUpOWtkOmBk+WFt+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgfSwgMjAwKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoZGF0YSA9PSBcImhhbW1lckFtb3VudFwiKXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudCArPSAzO1xyXG4gICAgICAgICAgICBsZXQgcHJvcEluZm8gPSBjYy5meC5TdG9yYWdlTWVzc2FnZS5nZXRTdG9yYWdlKFwicHJvcFwiKTtcclxuICAgICAgICAgICAgcHJvcEluZm8uaGFtbWVyQW1vdW50ID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudDtcclxuICAgICAgICAgICAgcHJvcEluZm8udGltZXN0YW1wID0gdGltZXN0YW1wO1xyXG4gICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIlNjZW5lTWFuYWdlclwiKS5jbG9zZVByb3BCdXkoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhbW1lckxhYmVsLnN0cmluZyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLotK3kubDprZTms5Xmo5LpgZPlhbfmiJDlip9cIik7XHJcbiAgICAgICAgICAgIH0sIDIwMCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/kvb/nlKjplKTlrZDpgZPlhbdcclxuICAgIHVzZUhhbW1lcigpe1xyXG4gICAgICAgIGlmKHRoaXMubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IHRydWUgfHwgdGhpcy5oYW1tZXIgPT0gdHJ1ZSBcclxuICAgICAgICB8fCB0aGlzLm1hZ2ljTWFzay5hY3RpdmU9PSB0cnVlIHx8IHRoaXMudGltZU51bWJlciA8PSAxKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgaGFtbWVyQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcImRlc3Ryb3lCdG5cIik7XHJcbiAgICAgICAgaWYoaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKXtcclxuICAgICAgICAgICAgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50IDwgMSl7XHJcbiAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDb21wb25lbnQoXCJTY2VuZU1hbmFnZXJcIikub3BlblByb3BCdXkoXCJoYW1tZXJcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGlmKCF0aGlzLmhhbW1lcil7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbW1lck1hc2suYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW1tZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50IDwgMCkgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6ZSk5a2Q6YGT5YW35L+h5oGvOlwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBwcm9wSW5mby5oYW1tZXJBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uaGFtbWVyQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BJbmZvLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRVc2VyUHJvcCgyMDAyLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5oYW1tZXJBbW91bnQsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6XCIyMDAyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bTotMVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJyZXNvdXJjZV9jb3N0XCIsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLpgZPlhbfkvb/nlKjkuK3vvIzor7fnqI3lkI7lho3or5VcIik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuIFxyXG4gICAgYnV5TWFnaWMoKXtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmJ1eVByb3AoMjAwMyx0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLFwibWFnaWNBbW91bnRcIikpO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1eUhhbW1lcigpe1xyXG4gICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luIDwgMTUwMCl7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XotK3kubDpgZPlhbdcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuYnV5UHJvcCgyMDAyLCB0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLFwiaGFtbWVyQW1vdW50XCIpKTtcclxuICAgIH1cclxuXHJcbiAgICBidXlGcmVlemUoKXtcclxuICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNjLmZ4LkdhbWVUb29sLmJ1eVByb3AoMjAwMSx0aGlzLmhhbmRsZUJ1eVN1Y2Nlc3MuYmluZCh0aGlzLFwiZnJlZXplQW1vdW50XCIpKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+S9v+eUqOmtlOazleajkumaj+acuua2iOmZpOS4pOS4quaWueWdl1xyXG4gICAgdXNlTWFnaWMoKXtcclxuICAgICAgICBpZih0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiSWNlXCIpLmFjdGl2ZSA9PSB0cnVlIHx8IHRoaXMuaGFtbWVyID09IHRydWUgXHJcbiAgICAgICAgfHwgdGhpcy5tYWdpY01hc2suYWN0aXZlPT0gdHJ1ZSB8fCB0aGlzLnRpbWVOdW1iZXIgPD0gMSl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG1hZ2ljQnRuID0gdGhpcy5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkJvdHRvbVwiKS5nZXRDaGlsZEJ5TmFtZShcIm1hZ2ljQnRuXCIpO1xyXG4gICAgICAgIGlmKG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKXtcclxuICAgICAgICAgICAgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCA8IDEpe1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gPCAxNTAwKXtcclxuICAgICAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6YeR5biB5LiN6Laz77yM5peg5rOV6LSt5Lmw6YGT5YW3XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1hZ2ljQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q29tcG9uZW50KFwiU2NlbmVNYW5hZ2VyXCIpLm9wZW5Qcm9wQnV5KFwibWFnaWNcIik7XHJcbiAgICAgICAgICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi6a2U5rOV5qOS5pWw6YeP5LiN6LazLOiHquWKqOi0reS5sOmtlOazleajklwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNNYXNrLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hZ2ljTWFzay5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSwgMTAwMCk7XHJcbiBcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYWdpY0Ftb3VudCAtPSAxO1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50IDwgMCkgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50ID0gMDtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIGxldCBwcm9wSW5mbyA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoXCJwcm9wXCIpO1xyXG4gICAgICAgICAgICAgICAgcHJvcEluZm8ubWFnaWNBbW91bnQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQ7XHJcbiAgICAgICAgICAgICAgICBwcm9wSW5mby50aW1lc3RhbXAgPSB0aW1lc3RhbXA7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKFwicHJvcFwiLHByb3BJbmZvKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJQcm9wKDIwMDMsY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hZ2ljQW1vdW50LChkYXRhKT0+e1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDpcIjIwMDNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtOi0xXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwicmVzb3VyY2VfY29zdFwiLGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgbGV0IG5vbWFsQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMubWFnaWNCdG4ubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9MDsgaTx0aGlzLmJsb2Nrcy5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmlrnlnZfnsbvlnotcIix0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDMpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWNrQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikudHlwZSA9PSA0KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmVlemVBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5ibG9ja3NbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuYmxvY2tfSW5mby5ub2RlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXkucHVzaCh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5ibG9ja19JbmZvLm5vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugbm9tYWxBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheS5wdXNoKHRoaXMuYmxvY2tzW2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihub21hbEFycmF5Lmxlbmd0aCA+IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIG5vbWFsQXJyYXkgPSBjYy5meC5HYW1lVG9vbC5zaHVmZmxlQXJyYXkobm9tYWxBcnJheSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYobm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEgfHwgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZih0aW1lID4gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVsxXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGltZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVsxXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYobm9tYWxBcnJheS5sZW5ndGggPT0gMSl7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5lbGltaW5hdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGltZSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYobm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDEgfHwgbm9tYWxBcnJheVswXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDkpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lID0gMjAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5mcmVlemVBcnJheS5sZW5ndGggPT0gMCAmJiB0aGlzLmxvYWNrQXJyYXkubGVuZ3RoID09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLlj6rliankuIvkuIDkuKrlnZfpgZPlhbfkvb/nlKjlrozmr5VcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubG9hY2tBcnJheS5sZW5ndGggIT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCLmtojpmaTkuIDkuKrmma7pgJrlnZflkI7vvIzmtojpmaTkuIDkuKrluKbplIHlnZdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Fja0FycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYodGhpcy5mcmVlemVBcnJheS5sZW5ndGghPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIua2iOmZpOS4gOS4quaZrumAmuWdl+WQju+8jOa2iOmZpOS4gOS4quWGu+e7k+Wdl1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZyZWV6ZUFycmF5WzBdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMjAwK3RpbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgY291bnQgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubG9hY2tBcnJheS5sZW5ndGghPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5sb2Fja0FycmF5Lmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ5pmu6YCa5b+r77yM6a2U5rOV5raI6Zmk5LiA5Liq5bim6ZSB5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Fja0FycmF5W2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmVsaW1pbmF0ZSgpOyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50IC09IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb3VudCA9PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb3VudCAhPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMuZnJlZXplQXJyYXkubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5rKh5pyJ5pmu6YCa5b+r77yM6a2U5rOV5raI6Zmk5LiA5Liq5Ya757uT5Z2XXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZnJlZXplQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuZWxpbWluYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgLT0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb3VudCA9PSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/mjInkuIvmmoLlgZzmjInpkq5cclxuICAgIHVzZVBhdXNlKCl7XHJcbiAgICAgICAgaWYodGhpcy5wYXVzZSl7XHJcbiAgICAgICAgICAgIHRoaXMucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgLy/moLnmja7lhbPljaHorr7nva7lnLDlm77lpKflsI9cclxuICAgIHNldE1hcEluZm8oKXtcclxuICAgICAgICBsZXQgd2lkdGggPSAwO1xyXG4gICAgICAgIGlmKHRoaXMubWFwV2lkdGggPCAxMCl7XHJcbiAgICAgICAgICAgIHdpZHRoID0gMC4yO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMubWFwV2lkdGggPCAxNyl7XHJcbiAgICAgICAgICAgIHdpZHRoID0gMC4xNSAtICh0aGlzLm1hcFdpZHRoLTExKSowLjAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5ub2RlLnNjYWxlID0gMS42ICsgKDYgLSB0aGlzLm1hcFdpZHRoKSAqIHdpZHRoO1xyXG5cclxuICAgICAgICBpZih0aGlzLm1hcFdpZHRoID09IDggJiYgdGhpcy5tYXBIZWlnaHQgPiAxMyl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5zY2FsZSA9IDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAxO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5zY2FsZSA9IHRoaXMubm9kZS5zY2FsZTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAwLjU7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5ub2RlLnNjYWxlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUuc2NhbGUgPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu66Zeo55qE57KS5a2Q54m55pWIXHJcbiAgICBjcmVhdGVQYXJ0aWNsZShibG9jayxqZyl7XHJcbiAgICAgICAgbGV0IHBhcnRpY2xlID0gY2MuaW5zdGFudGlhdGUoTWFwQ29ucm9sZXIuX2luc3RhbmNlLkJsb2NrX1Byb3BbOV0pO1xyXG4gICAgICAgIHBhcnRpY2xlLnBhcmVudCA9IHRoaXMubm9kZTtcclxuICAgICAgICBwYXJ0aWNsZS56SW5kZXggPSAxMDAwO1xyXG4gICAgICAgIGxldCB3aWR0aCA9IE1hdGguZmxvb3IoYmxvY2sud2lkdGggLyAxMjApO1xyXG4gICAgICAgIGxldCBoZWlnaHQgPSBNYXRoLmZsb29yKGJsb2NrLmhlaWdodCAvIDEyMCk7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBcIlwiO1xyXG5cclxuICAgICAgICBpZihqZyA9PSAwIHx8IGpnID09IDEpe1xyXG4gICAgICAgICAgICBsZXQgeSA9IGJsb2NrLnkgKyBibG9jay5oZWlnaHQ7XHJcbiAgICAgICAgICAgIGxldCB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoLzI7XHJcbiAgICAgICAgICAgIG5hbWUgPSBcInRvcF9cIiArIHdpZHRoICsgXCJfXCIgKyBoZWlnaHQ7XHJcbiAgICAgICAgICAgIGlmKGpnID09IDEpe1xyXG4gICAgICAgICAgICAgICAgbmFtZSA9IFwiYm90X1wiICsgd2lkdGggKyBcIl9cIiArIGhlaWdodDtcclxuICAgICAgICAgICAgICAgIHkgPSBibG9jay55O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGJsb2NrLmFuY2hvclggPT0gMC41KXtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjMzKXtcclxuICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCooMC41LTAuMzMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjY2KXtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGgqKDAuNS0wLjY2KTsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcGFydGljbGUuc2V0UG9zaXRpb24oeCwgeSk7IFxyXG4gICAgICAgIH0gXHJcbiAgICAgICAgZWxzZSBpZihqZyA9PSAyIHx8IGpnID09IDMpe1xyXG4gICAgICAgICAgICBuYW1lID0gXCJsZWZ0X1wiICsgaGVpZ2h0ICsgXCJfXCIgKyB3aWR0aDtcclxuICAgICAgICAgICAgbGV0IHggPSBibG9jay54IC0gYmxvY2sud2lkdGg7XHJcbiAgICAgICAgICAgIGxldCB5ID0gYmxvY2sueSArIGJsb2NrLmhlaWdodC8yO1xyXG4gICAgICAgICAgICBpZihibG9jay5hbmNob3JYID09IDAuNSl7XHJcbiAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoLzI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihibG9jay5hbmNob3JYID09IDAuMzMpe1xyXG4gICAgICAgICAgICAgICB4ID0gYmxvY2sueCAtIGJsb2NrLndpZHRoKjAuMzM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZihibG9jay5hbmNob3JYID09IDAuNjYpe1xyXG4gICAgICAgICAgICAgICAgeCA9IGJsb2NrLnggKyBibG9jay53aWR0aCowLjY2OyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihqZyA9PSAzKXtcclxuICAgICAgICAgICAgICAgIG5hbWUgPSBcInJpZ2h0X1wiICsgaGVpZ2h0ICsgXCJfXCIgKyB3aWR0aDtcclxuICAgICAgICAgICAgICAgIHggPSBibG9jay54O1xyXG4gICAgICAgICAgICAgICAgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjUpe1xyXG4gICAgICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGgvMjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjMzKXtcclxuICAgICAgICAgICAgICAgICAgIHggPSBibG9jay54ICsgYmxvY2sud2lkdGgqMC42NjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYoYmxvY2suYW5jaG9yWCA9PSAwLjY2KXtcclxuICAgICAgICAgICAgICAgICAgICB4ID0gYmxvY2sueCArIGJsb2NrLndpZHRoKjAuMzM7IFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwYXJ0aWNsZS5zZXRQb3NpdGlvbih4LCB5KTsgXHJcbiAgICAgICAgfSBcclxuXHJcbiAgICAgICAgbGV0IHBhcnRpY2xlTm9kZSA9ICBwYXJ0aWNsZS5nZXRDaGlsZEJ5TmFtZShuYW1lKTtcclxuICAgICAgICBsZXQgY29sb3IgPSBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5jb2xvciAtIDE7XHJcblxyXG4gICAgICAgIHBhcnRpY2xlTm9kZS5nZXRDb21wb25lbnQoY2MuUGFydGljbGVTeXN0ZW0pLnNwcml0ZUZyYW1lID0gcGFydGljbGUuZ2V0Q29tcG9uZW50KFwiUmVkdWNlXCIpLkJsb2NrX0NvbG9yW2NvbG9yXTtcclxuICAgICAgICBwYXJ0aWNsZU5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY2MudHdlZW4ocGFydGljbGUpXHJcbiAgICAgICAgICAgIC50bygyLCB7b3BhY2l0eTogMH0pXHJcbiAgICAgICAgICAgIC5jYWxsKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHBhcnRpY2xlLmRlc3Ryb3koKTsgXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgIH0sIDEyMDApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZU9uZUJsb2NrKCkge1xyXG4gICAgICAgIC8vIOenu+mZpOaJgOacieaWueWdl1xyXG4gICAgICAgIGZvcihsZXQgaSA9MCA7IGk8dGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBpZih0aGlzLmJsb2Nrc1tpXS5vcGFjaXR5ID09IDApe1xyXG4gICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzW2ldLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrcy5zcGxpY2UoaSwxKTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgXHJcblxyXG4gICAgdXBkYXRlIChkdCkge1xyXG5cclxuICAgIH1cclxufVxyXG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFHckIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM1RixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQy9GLHFDQUFxQztRQUNyQyx1Q0FBdUM7UUFFdkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUs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S0FBSyxDQUFDO29EQUNVO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7bURBQ1M7SUFHNUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztrREFDUTtJQUcxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO21EQUNTO0lBRzNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7bURBQ1M7SUFJM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnREFDTTtJQXJEUCxXQUFXO1FBRC9CLE9BQU87T0FDYSxXQUFXLENBbStEL0I7SUFBRCxrQkFBQztDQW4rREQsQUFtK0RDLENBbitEd0MsRUFBRSxDQUFDLFNBQVMsR0FtK0RwRDtrQkFuK0RvQixXQUFXIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IEdhbWVNYW5hZ2VyIGZyb20gXCIuL0dhbWVNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IExRQ29sbGlkZSB9IGZyb20gXCIuL2xxX2NvbGxpZGVfc3lzdGVtL2xxX2NvbGxpZGVcIjtcclxuaW1wb3J0IE51bWJlclRvSW1hZ2UgZnJvbSBcIi4vTnVtYmVyVG9JbWFnZVwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcblxyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWFwQ29ucm9sZXIgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfQXJyYXk6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfpgZPlhbfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfUHJvcDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICBNYXBCbG9ja1ByZWZhYjogY2MuUHJlZmFiID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuU3ByaXRlQXRsYXNdLCB0b29sdGlwOiBcIuaWueWdl+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/kuIrpl6hcclxuICAgICAgICB0aGlzLmJvdHRvbURvb3JzID0gW107IC8v5LiL6ZeoXHJcbiAgICAgICAgdGhpcy5nYW1lV2luID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5nYW1lT3ZlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ2FtZVN0YXJ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ob21lQ2FuVG91Y2ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuYWdhaW5DYW5Ub3VjaCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5uZXdfbW9kZSA9IDA7XHJcblxyXG4gICAgICAgIHRoaXMuaWNlTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmZyZWV6ZUFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuaGFtbWVyTGFiZWwuc3RyaW5nID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhhbW1lckFtb3VudC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMubWFnaWNMYWJlbC5zdHJpbmcgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubWFnaWNBbW91bnQudG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgLy8gY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UgPSB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gSG9tZVNjZW5lIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLov5vlhaVHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheSA9IEdhbWVNYW5hZ2VyLl9pbnN0YW5jZS5CbG9ja19BcnJheTtcclxuICAgICAgICB0aGlzLldhbGxfUHJlZmFiID0gR2FtZU1hbmFnZXIuX2luc3RhbmNlLldhbGxfUHJlZmFiO1xyXG4gICAgICAgIHRoaXMuQmxvY2tfQ29sb3IgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UuQmxvY2tfQ29sb3I7XHJcbiAgICAgICAgLy8gdGhpcy5wYXJ0aWNsZUVmZmVjdHMgPSBHYW1lTWFuYWdlci5faW5zdGFuY2UucGFydGljbGVFZmZlY3RzO1xyXG5cclxuICAgICAgICB0aGlzLmluaXRNYXAoKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnRVcGRhdGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ2FtZVN0YXJ0ID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FtZVN0YXJ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy/lj5HpgIHmlbDmlbDkuovku7bigJTigJTov5vlhaXlhbPljaFcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLlh4blpIfov5vlhaXkuIvkuIDlhbMs5Y+R6YCB5LiL5LiA5YWz6L+b5YWlXCIpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJlbnRlcl9zdGFnZVwiKTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ibG9ja3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJsb2Nrc1tpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS50eXBlID09IDYpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2Nrc1tpXS5nZXRDaGlsZEJ5TmFtZShcImJvb21cIikuZ2V0Q29tcG9uZW50KFwiQm9vbVwiKS5zdGFydEJvb20oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0TWFwKCkge1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIldhbGxcIikuekluZGV4ID0gMTA7XHJcbiAgICAgICAgdGhpcy50aW1lTGFiZWwgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwidGltZVwiKTtcclxuICAgICAgICB0aGlzLmxldmVsTGFiZWwgPSB0aGlzLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwibGV2ZWxcIik7XHJcbiAgICAgICAgdGhpcy50aW1lTnVtYmVyID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPWzBdLnRpbWU7XHJcbiAgICAgICAgdGhpcy5jb3VudF9UaW1lID0gMDtcclxuICAgICAgICB0aGlzLmFkZF9UaW1lID0gMDtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLmdldFRpbWVNYXJnaW4odGhpcy50aW1lTnVtYmVyLCA1MCwgXCJ0aW1lX1wiLCB0aGlzLnRpbWVMYWJlbClcclxuICAgICAgICAvLyB2YXIgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lTWFyZ2luKHRoaXMudGltZU51bWJlcik7XHJcbiAgICAgICAgLy8gdGhpcy50aW1lTGFiZWwuc3RyaW5nID0gdGltZVRlbXAudG9TdHJpbmcoKTtcclxuICAgICAgICBOdW1iZXJUb0ltYWdlLm51bWJlclRvSW1hZ2VOb2RlcygoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICsgMSksIDUwLCAyMCwgXCJsZXZlbF9cIiwgdGhpcy5sZXZlbExhYmVsLCBmYWxzZSlcclxuXHJcbiAgICAgICAgLy90aGlzLnN0YXJ0VGltZUN1dERvd24oKTtcclxuXHJcbiAgICAgICAgdGhpcy5tYXBXaWR0aCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5tYXBbMF07XHJcbiAgICAgICAgdGhpcy5tYXBIZWlnaHQgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0ubWFwWzFdO1xyXG4gICAgICAgIGxldCBnYXAgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bMF0uZ2FwO1xyXG4gICAgICAgIGxldCByaXNlZmFsbCA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1swXS5yaXNlZmFsbDtcclxuXHJcbiAgICAgICAgdGhpcy5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaGFtbWVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy53YWxsTnVtID0gMDtcclxuICAgICAgICB0aGlzLnNldE1hcEluZm8oKTtcclxuICAgICAgICB0aGlzLmJsb2NrcyA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwQmxvY2tzV2FsbCA9IFtdO1xyXG4gICAgICAgIHRoaXMubWFwSW5mbyA9IFtdO1xyXG4gICAgICAgIHRoaXMud2FsbEluZm8gPSBbXTtcclxuICAgICAgICB0aGlzLm9wZW5XYWxsID0gW107XHJcbiAgICAgICAgdGhpcy53YWxsQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmZyZWV6ZVdhbGwgPSBbXTtcclxuICAgICAgICB0aGlzLnJpc2VGYWxsQmxjb2sgPSBbXTtcclxuICAgICAgICB0aGlzLm1hcEJsb2NrQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmZyZWV6ZUFycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5sb2Fja0FycmF5ID0gW107XHJcblxyXG5cclxuICAgICAgICBsZXQgc3RhcnRYID0gdGhpcy5tYXBXaWR0aCAlIDIgPT0gMCA/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+aIkOWKn1wiKTtcclxuICAgICAgICAgICAgdGhpcy5nYW1lV2luID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcFRpbWVDdXREb3duKCk7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi5oiQ5Yqf5raI6Zmk5LiA5LiqXCIpO1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5jaGFuZ2VDb2luKDQwKTtcclxuICAgICAgICAgICAgbGV0IHRpbWVEYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgY291bnRfVGltZTogdGhpcy5jb3VudF9UaW1lLFxyXG4gICAgICAgICAgICAgICAgYWRkX1RpbWU6IHRoaXMuYWRkX1RpbWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5hZGRMZXZlbCh0aW1lRGF0YSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrX05ld01vZGUoKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9LCA2NjApO1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIua4uOaIj+aIkOWKn1wiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmdhbWVPdmVyID09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmFpbExldmVsKG51bGwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrX05ld01vZGUoKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYy5meC5HYW1lQ29uZmlnLk5FV19MRVZFTC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCArIDEpID09IGNjLmZ4LkdhbWVDb25maWcuTkVXX0xFVkVMW2ldLmxldmVsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld19tb2RlID0gMztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB3aW5MZXZlbCgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA+IDE1Nikge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgPSAxNTY7XHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5uZXdfbW9kZSA9PSAzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIldpblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMub3Blbk5ld01vZGUoMik7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdChmYWxzZSwgMCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIGlmIChlbnRyeS5hbmltYXRpb24ubmFtZSA9PT0gXCJ1cFwiKSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgLy8g5Yqo55S75pKt5pS+57uT5p2f5ZCO5omn6KGM55qE6YC76L6RXHJcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcblxyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVyciwgYXNzZXQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcblxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuS4i+S4gOWFs1wiKTtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm5ld19tb2RlID09IDMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiV2luXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTmV3TW9kZSgyKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KGZhbHNlLCAwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJ6aHVhbjFcIiwgbnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcInVwXCIsIGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldENvbXBsZXRlTGlzdGVuZXIoKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgICBpZiAoZW50cnkuYW5pbWF0aW9uLm5hbWUgPT09IFwidXBcIikge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgICAgICAvLyAgICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT19pbml0KHRydWUsIDApO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuXHJcbiAgICAgICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhZ2FpbkxldmVsKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLCBudWxsKTtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmhwIDwgMSkge1xyXG4gICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85LiN6LazXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5hZ2FpbkNhblRvdWNoKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuYWdhaW5DYW5Ub3VjaCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UgPSBudWxsO1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcInpodWFuMVwiLCBudWxsKTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLCBcInVwXCIsIGZhbHNlKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0Q29tcGxldGVMaXN0ZW5lcigoZW50cnkpID0+IHtcclxuICAgICAgICAvLyAgICAgaWYgKGVudHJ5LmFuaW1hdGlvbi5uYW1lID09PSBcInVwXCIpIHtcclxuICAgICAgICAvLyAgICAgICAgIC8vIOWKqOeUu+aSreaUvue7k+adn+WQjuaJp+ihjOeahOmAu+i+kVxyXG4gICAgICAgIC8vICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9faW5pdCh0cnVlLCAwKTtcclxuICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICAvLyB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldmlld0xldmVsKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X0JpZ1wiLCBudWxsKTtcclxuICAgICAgICBsZXQgY29pbiA9IDkwMDtcclxuICAgICAgICBpZiAoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyA9PSAxKSBjb2luID0gMTkwMDtcclxuICAgICAgICBlbHNlIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3ID09IDIpIGNvaW4gPSAyNTAwO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi6Ieq6Lqr6YeR5biBOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jb2luLFwi5raI6ICX6YeR5biBOlwiLGNvaW4pO1xyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IE1hdGguYWJzKGNvaW4pKSB7XHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLph5HluIHkuI3otrPvvIzml6Dms5XliqDml7bpl7RcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucnVuUmV3aXZlKC1jb2luKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcnVuUmV3aXZlKGRhdGEpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIuWkjea0u+Wbnuiwg+WHveaVsOWGhVwiLCBkYXRhKTtcclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5jaGFuZ2VDb2luKGRhdGEpO1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoXCLnu6fnu63muLjmiI9cIik7XHJcblxyXG4gICAgICAgIGlmIChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ucmV2aWV3IDwgMilcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnJldmlldyArPSAxO1xyXG5cclxuICAgICAgICB0aGlzLmdhbWVPdmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW1lTnVtYmVyID0gMjE7XHJcbiAgICAgICAgdGhpcy5hZGRfVGltZSArPSAyMDtcclxuICAgICAgICB0aGlzLnBhdXNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRUaW1lQ3V0RG93bigpO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgaG9tZUJ0bigpIHtcclxuICAgICAgICAvLyBhbGVydChcIua4uOaIj+Wksei0pVwiKTtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhvbWVDYW5Ub3VjaCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMuaG9tZUNhblRvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiVGltZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkxvc2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJCb29tXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwiTG9zZVwiKS5nZXRDaGlsZEJ5TmFtZShcIkxvY2tcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJMb3NlXCIpLmdldENoaWxkQnlOYW1lKFwiSGVhbHRoXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgIHRpbWU6IHRoaXMuY291bnRfVGltZSxcclxuICAgICAgICAgICAgYWRkX1RpbWU6IHRoaXMuYWRkX1RpbWUsXHJcbiAgICAgICAgICAgIHJlc3VsdDogXCJmYWlsXCJcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1c2h1X1RyYWNrKFwiZmluaXNoX3N0YWdlXCIsIGRhdGEpO1xyXG4gICAgICAgIGlmICh0aGlzLmdhbWVTdGFydCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoLTEsIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuSG9tZSgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9CaWdcIiwgbnVsbCk7XHJcbiAgICAgICAgaWYgKE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85YeP5bCRXCIpO1xyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZSA9IG51bGw7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPX2luaXQoZmFsc2UsIDApO1xyXG4gICAgICAgIGlmICh0aGlzLm5ld19tb2RlID09IDMpIHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJXaW5cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMub3Blbk5ld01vZGUoMSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgIHRoaXMubm9kZS5wYXJlbnQucGFyZW50LnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm5vZGUucGFyZW50LnBhcmVudC5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmdldENvbXBvbmVudChzcC5Ta2VsZXRvbikuc2V0QW5pbWF0aW9uKDEsIFwidXBcIiwgZmFsc2UpO1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfliqjmgIHliqDovb0gUHJlZmFiIOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+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/SceneManager.js b/temp/quick-scripts/dst/assets/Script/SceneManager.js index fb02c5e..a2890d6 100644 --- a/temp/quick-scripts/dst/assets/Script/SceneManager.js +++ b/temp/quick-scripts/dst/assets/Script/SceneManager.js @@ -248,6 +248,24 @@ var SceneManager = /** @class */ (function (_super) { 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"); @@ -305,4 +323,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTY2VuZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkJBQWdDO0FBQ2hDLGlEQUFnRDtBQUUxQyxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUEwQyxnQ0FBWTtJQUF0RDtRQUFBLHFFQW1RQztRQWhRRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFHdkIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUd2QixZQUFNLEdBQVksSUFBSSxDQUFDO1FBR3ZCLGdCQUFVLEdBQVksSUFBSSxDQUFDO1FBRzNCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFJdEIsaUJBQVcsR0FBc0IsRUFBRSxDQUFDO1FBR3BDLGlCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUdwQyx5REFBeUQ7UUFDekQsbURBQW1EO1FBRW5ELFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGFBQU8sR0FBVyxFQUFFLENBQUM7O0lBaU96QixDQUFDO0lBN05HLHdCQUF3QjtJQUV4Qiw2QkFBTSxHQUFOO1FBQ0ksRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLFVBQVUsQ0FBQztZQUNQLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUc7Z0JBQ3RDLElBQUksR0FBRyxFQUFFO29CQUNMLDZDQUE2QztvQkFDN0MsT0FBTztpQkFDVjtnQkFDRCxxQ0FBcUM7WUFDekMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFYixDQUFDO0lBRUQsK0JBQVEsR0FBUjtRQUFBLGlCQVVDO1FBVEcsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLElBQU0sSUFBSSxHQUFHLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDOUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxXQUFXLEVBQUUsVUFBQyxHQUFHLEVBQUUsV0FBMkI7WUFDckUsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2pDLE9BQU87YUFDVjtZQUNELEtBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDNUcsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsMENBQW1CLEdBQW5CO1FBQUEsaUJBYUM7UUFaRyxJQUFNLElBQUksR0FBRyxVQUFVLENBQUM7UUFDeEIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBQyxHQUFHLEVBQUUsTUFBMEI7WUFDekUsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2xDLE9BQU87YUFDVjtZQUVELEtBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDO1lBQzlCLEtBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixLQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixxRUFBcUU7UUFDekUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsd0NBQWlCLEdBQWpCO1FBQ0ksSUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsT0FBTyxFQUFDLElBQUksRUFBQyxRQUFRLEVBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQztZQUN2QixJQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxJQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxJQUFJLE1BQU0sS0FBSyxDQUFDLENBQUM7Z0JBQUUsT0FBTyxDQUFDLENBQUM7WUFDNUIsSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDN0IsT0FBTyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUVELHNDQUFlLEdBQWY7UUFDSSxJQUFNLEtBQUssR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0Isc0RBQXNEO1lBQ3RELElBQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakQsSUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRCxJQUFJLE1BQU0sS0FBSyxDQUFDLENBQUM7Z0JBQUUsT0FBTyxDQUFDLENBQUM7WUFDNUIsSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDN0IsT0FBTyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELDhCQUFPLEdBQVA7UUFDSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsRUFBRSxDQUFDOztZQUN2QixhQUFhO1lBQ2IsSUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLDBDQUFHLENBQUMsTUFBSyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUQsSUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQUEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLDBDQUFHLENBQUMsTUFBSyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUQsT0FBTyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELDRCQUFLLEdBQUw7SUFFQSxDQUFDO0lBRUQsZ0NBQVMsR0FBVDtRQUNJLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUc7WUFDbkMsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUM1QztpQkFBTTtnQkFDSCxxQ0FBcUM7Z0JBQ3JDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3RDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFUCxDQUFDO0lBRUQsaUNBQVUsR0FBVjtRQUNJLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEVBQUM7WUFDekYsSUFBRyxhQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUM7Z0JBQ3ZDLHlCQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbkMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFDLFVBQUMsSUFBSTtnQkFDckMsQ0FBQyxDQUFDLENBQUE7Z0JBQ0YsSUFBSSxJQUFJLEdBQUc7b0JBQ1AsSUFBSSxFQUFDLGFBQVcsQ0FBQyxTQUFTLENBQUMsVUFBVTtvQkFDckMsUUFBUSxFQUFDLGFBQVcsQ0FBQyxTQUFTLENBQUMsUUFBUTtvQkFDdkMsTUFBTSxFQUFDLFNBQVM7aUJBQ25CLENBQUE7Z0JBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBQyxJQUFJLENBQUMsQ0FBQzthQUNwRDtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25HLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxLQUFLLENBQUMsQ0FBQztZQUM1RixFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsVUFBQyxHQUFHLEVBQUUsS0FBSztnQkFDN0MsSUFBSSxHQUFHLEVBQUU7b0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDdEMsT0FBTztpQkFDVjtZQUVMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsVUFBVSxDQUFDO2dCQUNQLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNaO0lBQ0wsQ0FBQztJQUdELDJDQUFvQixHQUFwQixVQUFxQixLQUFnQixFQUFFLFFBQW9CO1FBQTNELGlCQXdCQztRQXZCRyxJQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQyxZQUFZO1FBQ25DLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVkLElBQU0sWUFBWSxHQUFHO1lBQ2pCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNkLE9BQU8sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxHQUFHLFVBQVUsRUFBRTtnQkFDL0MsSUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixJQUFJLElBQUksRUFBRTtvQkFFTixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztpQkFDdkI7Z0JBQ0QsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsS0FBSyxFQUFFLENBQUM7YUFDWDtZQUVELElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RCLEtBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3RDO2lCQUFNO2dCQUNILFFBQVEsRUFBRSxDQUFDO2FBQ2Q7UUFDTCxDQUFDLENBQUM7UUFFRixZQUFZLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsYUFBYTtJQUNiLHlDQUFrQixHQUFsQjtRQUNJLElBQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO1FBQ2pELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUU7WUFDaEMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZ0NBQVMsR0FBVDtRQUNJLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdELElBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxFQUFDO1lBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ2hELGFBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUN0QztJQUVMLENBQUM7SUFFRCxpQ0FBVSxHQUFWO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDakQsSUFBRyxhQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLEVBQUM7WUFDdkUsYUFBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztJQUVELGtDQUFXLEdBQVgsVUFBWSxJQUFJO1FBQ1osYUFBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvRSxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUN6QixVQUFVLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkQsVUFBVSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ25ELFVBQVUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNsRCxVQUFVLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0UsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ2xELENBQUM7SUFFRCwrQkFBUSxHQUFSO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9FLElBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxFQUFDO1lBQ3BFLFVBQVUsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoRixJQUFHLElBQUksQ0FBQyxPQUFPLElBQUksUUFBUTtnQkFDekIsYUFBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztpQkFDL0IsSUFBRyxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVE7Z0JBQzlCLGFBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7aUJBQy9CLElBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPO2dCQUM3QixhQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQztJQUlELG1DQUFZLEdBQVo7UUFDSSxhQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDcEMsSUFBSSxTQUFTLEdBQUcsYUFBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckcsSUFBSSxTQUFTLEdBQUcsYUFBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEcsSUFBSSxRQUFRLEdBQUcsYUFBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckcsSUFBRyxJQUFJLENBQUMsT0FBTyxJQUFJLFFBQVE7WUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM1RSxJQUFHLElBQUksQ0FBQyxPQUFPLElBQUksUUFBUTtZQUFFLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2pGLElBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPO1lBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEYsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDakYsQ0FBQztJQUVELDZCQUFNLEdBQU4sVUFBUSxFQUFFO0lBRVYsQ0FBQztJQS9QRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDOytDQUNJO0lBR3ZCO1FBREMsUUFBUTs4Q0FDYztJQUd2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO2dEQUNLO0lBR3ZCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7Z0RBQ0s7SUFHdkI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztvREFDUztJQUczQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOytDQUNJO0lBSXRCO1FBREMsUUFBUSxDQUFDLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBQyxNQUFNLEVBQUMsQ0FBQztxREFDVjtJQUdwQztRQURDLFFBQVEsQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUMsTUFBTSxFQUFDLENBQUM7cURBQ1Y7SUF6Qm5CLFlBQVk7UUFEaEMsT0FBTztPQUNhLFlBQVksQ0FtUWhDO0lBQUQsbUJBQUM7Q0FuUUQsQUFtUUMsQ0FuUXlDLEVBQUUsQ0FBQyxTQUFTLEdBbVFyRDtrQkFuUW9CLFlBQVkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgTWFwQ29ucm9sZXIgZnJvbSBcIi4vTWFwXCI7XHJcbmltcG9ydCB7IE1pbmlHYW1lU2RrIH0gZnJvbSBcIi4vU2RrL01pbmlHYW1lU2RrXCI7XHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjZW5lTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHlcclxuICAgIHRleHQ6IHN0cmluZyA9ICdoZWxsbyc7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmcmVlemU6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgaGFtbWVyOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hZ2ljX3dhbmQ6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgcGF1c2U6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoe3R5cGU6IFtjYy5QcmVmYWJdLCB0b29sdGlwOlwi5pa55Z2X5pWw57uEXCJ9KVxyXG4gICAgQmxvY2tfQXJyYXkgOiBBcnJheTxjYy5QcmVmYWI+ID0gW107XHJcblxyXG4gICAgQHByb3BlcnR5KHt0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDpcIuWimeWjgeaVsOe7hFwifSlcclxuICAgIFdhbGxfUHJlZmFiIDogQXJyYXk8Y2MuUHJlZmFiPiA9IFtdO1xyXG5cclxuICAgIHBhcnRpY2xlRWZmZWN0czogY2MuUGFydGljbGVBc3NldFtdO1xyXG4gICAgLy8gQHByb3BlcnR5KHt0eXBlOiBbY2MuUGFydGljbGVTeXN0ZW1dLCB0b29sdGlwOlwi57KS5a2Q5pWw57uEXCJ9KVxyXG4gICAgLy8gcGFydGljbGVFZmZlY3RzIDogQXJyYXk8Y2MuUGFydGljbGVTeXN0ZW0+ID0gW107XHJcblxyXG4gICAgbG9hZDEgOmJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxvYWQyIDpib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMyA6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gICAgYnRuTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgICBjYWxsQmFjazogYW55O1xyXG5cclxuICAgIFxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICBjYy5nYW1lLnNldEZyYW1lUmF0ZSg2Myk7IFxyXG4gICAgICAgIHRoaXMuY2hhbmdlQmcoKTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcign6aKE5Yqg6L29IEhvbWVTY2VuZSDlnLrmma/lpLHotKU6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5oiQ5Yqf6aKE5Yqg6L29IEhvbWVTY2VuZSDlnLrmma8nKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNoYW5nZUJnKCl7XHJcbiAgICAgICAgbGV0IG51bWJlciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDgpICsgMTtcclxuICAgICAgICBjb25zdCBwYXRoID0gJ2JnL2JnJyArIG51bWJlcjtcclxuICAgICAgICBjYy5yZXNvdXJjZXMubG9hZChwYXRoLCBjYy5TcHJpdGVGcmFtZSwgKGVyciwgc3ByaXRlRnJhbWU6IGNjLlNwcml0ZUZyYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9veiDjOaZr+WbvuWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpLmdldENoaWxkQnlOYW1lKFwiYmdcIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBzcHJpdGVGcmFtZTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIGxvYWRQYXJ0aWNsZUVmZmVjdHMoKSB7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9ICdQYXJ0aWNsZSc7XHJcbiAgICAgICAgY2MucmVzb3VyY2VzLmxvYWREaXIocGF0aCwgY2MuUGFydGljbGVBc3NldCwgKGVyciwgYXNzZXRzOiBjYy5QYXJ0aWNsZUFzc2V0W10pID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L2957KS5a2Q54m55pWI5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucGFydGljbGVFZmZlY3RzID0gYXNzZXRzO1xyXG4gICAgICAgICAgICB0aGlzLnNldFBhcnRpY2xlU29ydCgpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQzID0gdHJ1ZTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygn57KS5a2Q54m55pWI5Yqg6L295oiQ5Yqf77yM5YWx5Yqg6L295LqGJywgdGhpcy5wYXJ0aWNsZUVmZmVjdHMubGVuZ3RoLCAn5Liq57KS5a2Q54m55pWIJyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0V2FsbFByZWZhYlNvcnQoKSB7XHJcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBbJ2Rvd24nLCAnZG93bkxlZnQnLCAnZG93blJpZ2h0JywgJ2xlZnQnLCdyaWdodCcsJ3VwJywndXBMZWZ0JywndXBSaWdodCddO1xyXG4gICAgICAgIHRoaXMuV2FsbF9QcmVmYWIuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEEgPSBvcmRlci5pbmRleE9mKGEubmFtZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QiA9IG9yZGVyLmluZGV4T2YoYi5uYW1lKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QSA9PT0gLTEpIHJldHVybiAxO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhCID09PSAtMSkgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXhBIC0gaW5kZXhCO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIHNldFBhcnRpY2xlU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsndG9wJywgJ2JvdCcsICdyaWcnLCAnbGVmJ107XHJcbiAgICAgICAgdGhpcy5wYXJ0aWNsZUVmZmVjdHMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhhLm5hbWUuc3Vic3RyKDAsMyksYi5uYW1lLnN1YnN0cigwLDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhBID0gb3JkZXIuaW5kZXhPZihhLm5hbWUuc3Vic3RyKDAsMykpO1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEIgPSBvcmRlci5pbmRleE9mKGIubmFtZS5zdWJzdHIoMCwzKSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEEgPT09IC0xKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QiA9PT0gLTEpIHJldHVybiAtMTtcclxuICAgICAgICAgICAgcmV0dXJuIGluZGV4QSAtIGluZGV4QjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRTb3J0KCl7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOS7juWQjeensOS4reaPkOWPluaVsOWtl+mDqOWIhlxyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJBID0gcGFyc2VJbnQoYS5uYW1lLm1hdGNoKC9cXGQrLyk/LlswXSB8fCAnMCcsIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQiA9IHBhcnNlSW50KGIubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIHJldHVybiBudW1iZXJBIC0gbnVtYmVyQjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0R2FtZSgpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5oiQ5Yqf5YiH5o2i5YiwIEhvbWVTY2VuZSDlnLrmma8nKTtcclxuICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCl7XHJcbiAgICAgICAgaWYodGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuZ2V0Q2hpbGRCeU5hbWUoXCJidG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5fdG91Y2gpe1xyXG4gICAgICAgICAgICBpZihNYXBDb25yb2xlci5faW5zdGFuY2UuZ2FtZVN0YXJ0ID09IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIuS9k+WKm+WAvOWHj+WwkVwiKTtcclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJIZWFsdGgoLTEsKGRhdGEpPT57XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGltZTpNYXBDb25yb2xlci5faW5zdGFuY2UuY291bnRfVGltZSwgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBhZGRfVGltZTpNYXBDb25yb2xlci5faW5zdGFuY2UuYWRkX1RpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OlwiZ2l2ZV91cFwiXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVzaHVfVHJhY2soXCJmaW5pc2hfc3RhZ2VcIixkYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJQYXVzZVwiKS5nZXRDaGlsZEJ5TmFtZShcImJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsbnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiemh1YW5jaGFuZ1wiKS5nZXRDb21wb25lbnQoc3AuU2tlbGV0b24pLnNldEFuaW1hdGlvbigxLFwidXBcIixmYWxzZSk7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgICAgIH0sIDEyMDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgZGVzdHJveU5vZGVzSW5GcmFtZXMobm9kZXM6IGNjLk5vZGVbXSwgY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcclxuICAgICAgICBjb25zdCBCQVRDSF9TSVpFID0gMTA7IC8vIOavj+W4p+mUgOavgeeahOiKgueCueaVsOmHj1xyXG4gICAgICAgIGxldCBpbmRleCA9IDA7XHJcblxyXG4gICAgICAgIGNvbnN0IGRlc3Ryb3lCYXRjaCA9ICgpID0+IHtcclxuICAgICAgICAgICAgbGV0IGNvdW50ID0gMDtcclxuICAgICAgICAgICAgd2hpbGUgKGluZGV4IDwgbm9kZXMubGVuZ3RoICYmIGNvdW50IDwgQkFUQ0hfU0laRSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW2luZGV4XTtcclxuICAgICAgICAgICAgICAgIGlmIChub2RlKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIG5vZGUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgICAgICAgICAgY291bnQrKztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGluZGV4IDwgbm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlT25jZShkZXN0cm95QmF0Y2gsIDYpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGRlc3Ryb3lCYXRjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOaUuei/m+WQjueahOWIh+aNouWcuuaZr+aWueazlVxyXG4gICAgc3dpdGNoVG9FbXB0eVNjZW5lKCkge1xyXG4gICAgICAgIGNvbnN0IGFsbE5vZGVzID0gY2MuZGlyZWN0b3IuZ2V0U2NlbmUoKS5jaGlsZHJlbjtcclxuICAgICAgICB0aGlzLmRlc3Ryb3lOb2Rlc0luRnJhbWVzKGFsbE5vZGVzLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuUGF1c2UoKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9saXR0bGVcIixudWxsKTtcclxuICAgICAgICBpZih0aGlzLnBhdXNlLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKXtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlUGF1c2UoKXtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9saXR0bGVcIixudWxsKTtcclxuICAgICAgICB0aGlzLnBhdXNlLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiUGF1c2VcIikuYWN0aXZlID0gZmFsc2U7IFxyXG4gICAgICAgIGlmKE1hcENvbnJvbGVyLl9pbnN0YW5jZS5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcIkljZVwiKS5hY3RpdmUgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICB9IFxyXG4gICAgfVxyXG5cclxuICAgIG9wZW5Qcm9wQnV5KG5hbWUpe1xyXG4gICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5wYXVzZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5idG5OYW1lID0gbmFtZTtcclxuICAgICAgICBsZXQgcHJvcFdpbmRvdyA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIkdhbWVcIikuZ2V0Q2hpbGRCeU5hbWUoXCJwcm9wV2luZG93XCIpO1xyXG4gICAgICAgIHByb3BXaW5kb3cuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwiZnJlZXplXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJoYW1tZXJcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcIm1hZ2ljXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJidXlfQnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShuYW1lKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNsaWNrQnRuKCl7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsbnVsbCk7XHJcbiAgICAgICAgbGV0IHByb3BXaW5kb3cgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpLmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKTtcclxuICAgICAgICBpZihwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwiYnV5X0J0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCl7XHJcbiAgICAgICAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcImJ1eV9CdG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgaWYodGhpcy5idG5OYW1lID09IFwiZnJlZXplXCIpXHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuYnV5RnJlZXplKCk7XHJcbiAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLmJ0bk5hbWUgPT0gXCJoYW1tZXJcIilcclxuICAgICAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5idXlIYW1tZXIoKTtcclxuICAgICAgICAgICAgICBlbHNlIGlmKHRoaXMuYnRuTmFtZSA9PSBcIm1hZ2ljXCIpXHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuYnV5TWFnaWMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBjbG9zZVByb3BCdXkoKXtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICBsZXQgZnJlZXplQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwidGltZUJ0blwiKTtcclxuICAgICAgICBsZXQgaGFtbWVyQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSBNYXBDb25yb2xlci5faW5zdGFuY2Uubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJtYWdpY0J0blwiKTtcclxuICAgICAgICBpZih0aGlzLmJ0bk5hbWUgPT0gXCJmcmVlemVcIikgZnJlZXplQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7XHJcbiAgICAgICAgZWxzZSBpZih0aGlzLmJ0bk5hbWUgPT0gXCJoYW1tZXJcIikgaGFtbWVyQnRuLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2godHJ1ZSk7IFxyXG4gICAgICAgIGVsc2UgaWYodGhpcy5idG5OYW1lID09IFwibWFnaWNcIikgbWFnaWNCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKS5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlIChkdCkge1xyXG5cclxuICAgIH1cclxufVxyXG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTY2VuZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix3RUFBd0U7QUFDeEUsbUJBQW1CO0FBQ25CLGtGQUFrRjtBQUNsRiw4QkFBOEI7QUFDOUIsa0ZBQWtGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEYsNkJBQWdDO0FBQ2hDLGlEQUFnRDtBQUUxQyxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQUc1QztJQUEwQyxnQ0FBWTtJQUF0RDtRQUFBLHFFQW1SQztRQWhSRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBR3ZCLFVBQUksR0FBVyxPQUFPLENBQUM7UUFHdkIsWUFBTSxHQUFZLElBQUksQ0FBQztRQUd2QixZQUFNLEdBQVksSUFBSSxDQUFDO1FBR3ZCLGdCQUFVLEdBQVksSUFBSSxDQUFDO1FBRzNCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFJdEIsaUJBQVcsR0FBcUIsRUFBRSxDQUFDO1FBR25DLGlCQUFXLEdBQXFCLEVBQUUsQ0FBQztRQUduQyx5REFBeUQ7UUFDekQsbURBQW1EO1FBRW5ELFdBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsV0FBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixXQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGFBQU8sR0FBVyxFQUFFLENBQUM7O0lBaVB6QixDQUFDO0lBN09HLHdCQUF3QjtJQUV4Qiw2QkFBTSxHQUFOO1FBQ0ksRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLFVBQVUsQ0FBQztZQUNQLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxVQUFDLEdBQUc7Z0JBQ3RDLElBQUksR0FBRyxFQUFFO29CQUNMLDZDQUE2Qztv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QUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnREFDSztJQUd2QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO2dEQUNLO0lBR3ZCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7b0RBQ1M7SUFHM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzsrQ0FDSTtJQUl0QjtRQURDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7cURBQ2Q7SUFHbkM7UUFEQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO3FEQUNkO0lBekJsQixZQUFZO1FBRGhDLE9BQU87T0FDYSxZQUFZLENBbVJoQztJQUFELG1CQUFDO0NBblJELEFBbVJDLENBblJ5QyxFQUFFLENBQUMsU0FBUyxHQW1SckQ7a0JBblJvQixZQUFZIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuaW1wb3J0IE1hcENvbnJvbGVyIGZyb20gXCIuL01hcFwiO1xyXG5pbXBvcnQgeyBNaW5pR2FtZVNkayB9IGZyb20gXCIuL1Nkay9NaW5pR2FtZVNka1wiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjZW5lTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgbGFiZWw6IGNjLkxhYmVsID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHlcclxuICAgIHRleHQ6IHN0cmluZyA9ICdoZWxsbyc7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBmcmVlemU6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgaGFtbWVyOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG1hZ2ljX3dhbmQ6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgcGF1c2U6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLmlrnlnZfmlbDnu4RcIiB9KVxyXG4gICAgQmxvY2tfQXJyYXk6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBbY2MuUHJlZmFiXSwgdG9vbHRpcDogXCLlopnlo4HmlbDnu4RcIiB9KVxyXG4gICAgV2FsbF9QcmVmYWI6IEFycmF5PGNjLlByZWZhYj4gPSBbXTtcclxuXHJcbiAgICBwYXJ0aWNsZUVmZmVjdHM6IGNjLlBhcnRpY2xlQXNzZXRbXTtcclxuICAgIC8vIEBwcm9wZXJ0eSh7dHlwZTogW2NjLlBhcnRpY2xlU3lzdGVtXSwgdG9vbHRpcDpcIueykuWtkOaVsOe7hFwifSlcclxuICAgIC8vIHBhcnRpY2xlRWZmZWN0cyA6IEFycmF5PGNjLlBhcnRpY2xlU3lzdGVtPiA9IFtdO1xyXG5cclxuICAgIGxvYWQxOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBsb2FkMjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZDM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGJ0bk5hbWU6IHN0cmluZyA9ICcnO1xyXG4gICAgY2FsbEJhY2s6IGFueTtcclxuXHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkKCkge1xyXG4gICAgICAgIGNjLmdhbWUuc2V0RnJhbWVSYXRlKDYzKTtcclxuICAgICAgICB0aGlzLmNoYW5nZUJnKCk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5wcmVsb2FkU2NlbmUoXCJIb21lU2NlbmVcIiwgKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ+mihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ+aIkOWKn+mihOWKoOi9vSBIb21lU2NlbmUg5Zy65pmvJyk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIDEwMDApO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VCZygpIHtcclxuICAgICAgICBsZXQgbnVtYmVyID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogOCkgKyAxO1xyXG4gICAgICAgIGNvbnN0IHBhdGggPSAnYmcvYmcnICsgbnVtYmVyO1xyXG4gICAgICAgIGNjLnJlc291cmNlcy5sb2FkKHBhdGgsIGNjLlNwcml0ZUZyYW1lLCAoZXJyLCBzcHJpdGVGcmFtZTogY2MuU3ByaXRlRnJhbWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign5Yqo5oCB5Yqg6L296IOM5pmv5Zu+5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKS5nZXRDaGlsZEJ5TmFtZShcImJnXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gc3ByaXRlRnJhbWU7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBsb2FkUGFydGljbGVFZmZlY3RzKCkge1xyXG4gICAgICAgIGNvbnN0IHBhdGggPSAnUGFydGljbGUnO1xyXG4gICAgICAgIGNjLnJlc291cmNlcy5sb2FkRGlyKHBhdGgsIGNjLlBhcnRpY2xlQXNzZXQsIChlcnIsIGFzc2V0czogY2MuUGFydGljbGVBc3NldFtdKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9veeykuWtkOeJueaViOWksei0pTonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnBhcnRpY2xlRWZmZWN0cyA9IGFzc2V0cztcclxuICAgICAgICAgICAgdGhpcy5zZXRQYXJ0aWNsZVNvcnQoKTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkMyA9IHRydWU7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ+eykuWtkOeJueaViOWKoOi9veaIkOWKn++8jOWFseWKoOi9veS6hicsIHRoaXMucGFydGljbGVFZmZlY3RzLmxlbmd0aCwgJ+S4queykuWtkOeJueaViCcpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFdhbGxQcmVmYWJTb3J0KCkge1xyXG4gICAgICAgIGNvbnN0IG9yZGVyID0gWydkb3duJywgJ2Rvd25MZWZ0JywgJ2Rvd25SaWdodCcsICdsZWZ0JywgJ3JpZ2h0JywgJ3VwJywgJ3VwTGVmdCcsICd1cFJpZ2h0J107XHJcbiAgICAgICAgdGhpcy5XYWxsX1ByZWZhYi5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IG9yZGVyLmluZGV4T2YoYS5uYW1lKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhBID09PSAtMSkgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgIGlmIChpbmRleEIgPT09IC0xKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIHJldHVybiBpbmRleEEgLSBpbmRleEI7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHNldFBhcnRpY2xlU29ydCgpIHtcclxuICAgICAgICBjb25zdCBvcmRlciA9IFsndG9wJywgJ2JvdCcsICdyaWcnLCAnbGVmJ107XHJcbiAgICAgICAgdGhpcy5wYXJ0aWNsZUVmZmVjdHMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhhLm5hbWUuc3Vic3RyKDAsMyksYi5uYW1lLnN1YnN0cigwLDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhBID0gb3JkZXIuaW5kZXhPZihhLm5hbWUuc3Vic3RyKDAsIDMpKTtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXhCID0gb3JkZXIuaW5kZXhPZihiLm5hbWUuc3Vic3RyKDAsIDMpKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4QSA9PT0gLTEpIHJldHVybiAxO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXhCID09PSAtMSkgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXhBIC0gaW5kZXhCO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFNvcnQoKSB7XHJcbiAgICAgICAgdGhpcy5CbG9ja19BcnJheS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIOS7juWQjeensOS4reaPkOWPluaVsOWtl+mDqOWIhlxyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJBID0gcGFyc2VJbnQoYS5uYW1lLm1hdGNoKC9cXGQrLyk/LlswXSB8fCAnMCcsIDEwKTtcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQiA9IHBhcnNlSW50KGIubmFtZS5tYXRjaCgvXFxkKy8pPy5bMF0gfHwgJzAnLCAxMCk7XHJcbiAgICAgICAgICAgIHJldHVybiBudW1iZXJBIC0gbnVtYmVyQjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnRHYW1lKCkge1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKoOi9vSBIb21lU2NlbmUg5Zy65pmv5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygn5oiQ5Yqf5YiH5o2i5YiwIEhvbWVTY2VuZSDlnLrmma8nKTtcclxuICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkhvbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm5Ib21lKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJQYXVzZVwiKS5nZXRDaGlsZEJ5TmFtZShcImJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCkge1xyXG4gICAgICAgICAgICBpZiAoTWFwQ29ucm9sZXIuX2luc3RhbmNlLmdhbWVTdGFydCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KFwi5L2T5Yqb5YC85YeP5bCRXCIpO1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0VXNlckhlYWx0aCgtMSwgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICB0aW1lOiBNYXBDb25yb2xlci5faW5zdGFuY2UuY291bnRfVGltZSxcclxuICAgICAgICAgICAgICAgICAgICBhZGRfVGltZTogTWFwQ29ucm9sZXIuX2luc3RhbmNlLmFkZF9UaW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdDogXCJnaXZlX3VwXCJcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodXNodV9UcmFjayhcImZpbmlzaF9zdGFnZVwiLCBkYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJQYXVzZVwiKS5nZXRDaGlsZEJ5TmFtZShcImJ0blwiKS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKGZhbHNlKTtcclxuICAgICAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiemh1YW4xXCIsIG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ6aHVhbmNoYW5nXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInpodWFuY2hhbmdcIikuZ2V0Q29tcG9uZW50KHNwLlNrZWxldG9uKS5zZXRBbmltYXRpb24oMSwgXCJ1cFwiLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGNjLmRpcmVjdG9yLnByZWxvYWRTY2VuZShcIkhvbWVTY2VuZVwiLCAoZXJyLCBhc3NldCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+WKqOaAgeWKoOi9vSBQcmVmYWIg5aSx6LSlOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiSG9tZVNjZW5lXCIpO1xyXG4gICAgICAgICAgICB9LCAxMjAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGRlc3Ryb3lOb2Rlc0luRnJhbWVzKG5vZGVzOiBjYy5Ob2RlW10sIGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XHJcbiAgICAgICAgY29uc3QgQkFUQ0hfU0laRSA9IDEwOyAvLyDmr4/luKfplIDmr4HnmoToioLngrnmlbDph49cclxuICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG5cclxuICAgICAgICBjb25zdCBkZXN0cm95QmF0Y2ggPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICAgICAgICAgIHdoaWxlIChpbmRleCA8IG5vZGVzLmxlbmd0aCAmJiBjb3VudCA8IEJBVENIX1NJWkUpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBub2Rlc1tpbmRleF07XHJcbiAgICAgICAgICAgICAgICBpZiAobm9kZSkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaW5kZXgrKztcclxuICAgICAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IG5vZGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZU9uY2UoZGVzdHJveUJhdGNoLCA2KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBkZXN0cm95QmF0Y2goKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDmlLnov5vlkI7nmoTliIfmjaLlnLrmma/mlrnms5VcclxuICAgIHN3aXRjaFRvRW1wdHlTY2VuZSgpIHtcclxuICAgICAgICBjb25zdCBhbGxOb2RlcyA9IGNjLmRpcmVjdG9yLmdldFNjZW5lKCkuY2hpbGRyZW47XHJcbiAgICAgICAgdGhpcy5kZXN0cm95Tm9kZXNJbkZyYW1lcyhhbGxOb2RlcywgKCkgPT4ge1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJIb21lU2NlbmVcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlblBhdXNlKCkge1xyXG4gICAgICAgIGNjLmZ4LkF1ZGlvTWFuYWdlci5faW5zdGFuY2UucGxheUVmZmVjdChcImFubml1X2xpdHRsZVwiLCBudWxsKTtcclxuICAgICAgICBpZiAodGhpcy5wYXVzZS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLl90b3VjaCkge1xyXG4gICAgICAgICAgICB0aGlzLnBhdXNlLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJQYXVzZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VQYXVzZSgpIHtcclxuICAgICAgICBjYy5meC5BdWRpb01hbmFnZXIuX2luc3RhbmNlLnBsYXlFZmZlY3QoXCJhbm5pdV9saXR0bGVcIiwgbnVsbCk7XHJcbiAgICAgICAgdGhpcy5wYXVzZS5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlBhdXNlXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChNYXBDb25yb2xlci5faW5zdGFuY2Uubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJJY2VcIikuYWN0aXZlID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIE1hcENvbnJvbGVyLl9pbnN0YW5jZS5wYXVzZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvcGVuUHJvcEJ1eShuYW1lKSB7XHJcbiAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLnBhdXNlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmJ0bk5hbWUgPSBuYW1lO1xyXG4gICAgICAgIGxldCBwcm9wV2luZG93ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKS5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIik7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJmcmVlemVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcImhhbW1lclwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKFwibWFnaWNcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgcHJvcFdpbmRvdy5nZXRDaGlsZEJ5TmFtZShcImJ1eV9CdG5cIikuZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBwcm9wV2luZG93LmdldENoaWxkQnlOYW1lKG5hbWUpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY2xpY2tCdG4oKSB7XHJcbiAgICAgICAgY2MuZnguQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZS5wbGF5RWZmZWN0KFwiYW5uaXVfQmlnXCIsIG51bGwpO1xyXG4gICAgICAgIGxldCBwcm9wV2luZG93ID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiR2FtZVwiKS5nZXRDaGlsZEJ5TmFtZShcInByb3BXaW5kb3dcIik7XHJcbiAgICAgICAgaWYgKHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJidXlfQnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuX3RvdWNoKSB7XHJcbiAgICAgICAgICAgIHByb3BXaW5kb3cuZ2V0Q2hpbGRCeU5hbWUoXCJidXlfQnRuXCIpLmdldENvbXBvbmVudChcImJ0bkNvbnRyb2xcIikuc2V0VG91Y2goZmFsc2UpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5idG5OYW1lID09IFwiZnJlZXplXCIpXHJcbiAgICAgICAgICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UuYnV5RnJlZXplKCk7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuYnRuTmFtZSA9PSBcImhhbW1lclwiKVxyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLmJ1eUhhbW1lcigpO1xyXG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLmJ0bk5hbWUgPT0gXCJtYWdpY1wiKVxyXG4gICAgICAgICAgICAgICAgTWFwQ29ucm9sZXIuX2luc3RhbmNlLmJ1eU1hZ2ljKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy/miZPlvIDllYblupdcclxuICAgIG9wZW5TaG9wKCkge1xyXG4gICAgICAgIC8vIOWKoOi9vSBzaG9wICBidW5kbGVcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZEJ1bmRsZSgnc2hvcCcsIChlcnI6IEVycm9yLCBidW5kbGU6IGNjLkFzc2V0TWFuYWdlci5CdW5kbGUpID0+IHtcclxuICAgICAgICAgICAgYnVuZGxlLmxvYWQoJ3ByZWZhYi9zaG9wJywgY2MuUHJlZmFiLCAoZXJyOiBFcnJvciwgcHJlZmFiOiBjYy5QcmVmYWIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYy5lcnJvcihlcnIubWVzc2FnZSB8fCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChwcmVmYWIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaG9wTm9kZSA9IGNjLmluc3RhbnRpYXRlKHByZWZhYik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLmFkZENoaWxkKHNob3BOb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInNob3BOb2RlIHBhcmVudDpcIiwgc2hvcE5vZGUucGFyZW50KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNsb3NlUHJvcEJ1eSgpIHtcclxuICAgICAgICBNYXBDb25yb2xlci5faW5zdGFuY2UucGF1c2UgPSBmYWxzZTtcclxuICAgICAgICBsZXQgZnJlZXplQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwidGltZUJ0blwiKTtcclxuICAgICAgICBsZXQgaGFtbWVyQnRuID0gTWFwQ29ucm9sZXIuX2luc3RhbmNlLm5vZGUucGFyZW50LmdldENoaWxkQnlOYW1lKFwiQm90dG9tXCIpLmdldENoaWxkQnlOYW1lKFwiZGVzdHJveUJ0blwiKTtcclxuICAgICAgICBsZXQgbWFnaWNCdG4gPSBNYXBDb25yb2xlci5faW5zdGFuY2Uubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJCb3R0b21cIikuZ2V0Q2hpbGRCeU5hbWUoXCJtYWdpY0J0blwiKTtcclxuICAgICAgICBpZiAodGhpcy5idG5OYW1lID09IFwiZnJlZXplXCIpIGZyZWV6ZUJ0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuYnRuTmFtZSA9PSBcImhhbW1lclwiKSBoYW1tZXJCdG4uZ2V0Q29tcG9uZW50KFwiYnRuQ29udHJvbFwiKS5zZXRUb3VjaCh0cnVlKTtcclxuICAgICAgICBlbHNlIGlmICh0aGlzLmJ0bk5hbWUgPT0gXCJtYWdpY1wiKSBtYWdpY0J0bi5nZXRDb21wb25lbnQoXCJidG5Db250cm9sXCIpLnNldFRvdWNoKHRydWUpO1xyXG5cclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJHYW1lXCIpLmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUoZHQpIHtcclxuXHJcbiAgICB9XHJcbn1cclxuIl19 \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/btnControl.js b/temp/quick-scripts/dst/assets/Script/btnControl.js index 64d1969..251fd64 100644 --- a/temp/quick-scripts/dst/assets/Script/btnControl.js +++ b/temp/quick-scripts/dst/assets/Script/btnControl.js @@ -14,12 +14,6 @@ cc._RF.push(module, '6ee6czJ4eVNb4Feiqps5SIa', 'btnControl'); // Script/btnControl.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 || @@ -74,4 +68,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxidG5Db250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRzVFLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBSTFDO0lBQXdDLDhCQUFZO0lBQXBEOztJQWtCQSxDQUFDO0lBYkcsMkJBQU0sR0FBTjtRQUNJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCwwQkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELDZCQUFRLEdBQVIsVUFBUyxJQUFJO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELDJCQUFNLEdBQU4sVUFBUSxFQUFFO0lBQ1YsQ0FBQztJQWpCZ0IsVUFBVTtRQUQ5QixPQUFPO09BQ2EsVUFBVSxDQWtCOUI7SUFBRCxpQkFBQztDQWxCRCxBQWtCQyxDQWxCdUMsRUFBRSxDQUFDLFNBQVMsR0FrQm5EO2tCQWxCb0IsVUFBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcblxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBidG5Db250cm9sIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcclxuICAgIF90b3VjaDogYm9vbGVhbjtcclxuXHJcblxyXG4gICAgb25Mb2FkICgpIHsgXHJcbiAgICAgICAgdGhpcy5fdG91Y2ggPSB0cnVlO1xyXG4gICAgfSBcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VG91Y2godHlwZSl7XHJcbiAgICAgICAgdGhpcy5fdG91Y2ggPSB0eXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZSAoZHQpIHtcclxuICAgIH1cclxufVxyXG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxidG5Db250cm9sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdNLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBSTFDO0lBQXdDLDhCQUFZO0lBQXBEOztJQWtCQSxDQUFDO0lBYkcsMkJBQU0sR0FBTjtRQUNJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCwwQkFBSyxHQUFMO0lBQ0EsQ0FBQztJQUVELDZCQUFRLEdBQVIsVUFBUyxJQUFJO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELDJCQUFNLEdBQU4sVUFBUSxFQUFFO0lBQ1YsQ0FBQztJQWpCZ0IsVUFBVTtRQUQ5QixPQUFPO09BQ2EsVUFBVSxDQWtCOUI7SUFBRCxpQkFBQztDQWxCRCxBQWtCQyxDQWxCdUMsRUFBRSxDQUFDLFNBQVMsR0FrQm5EO2tCQWxCb0IsVUFBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIGJ0bkNvbnRyb2wgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xyXG4gICAgX3RvdWNoOiBib29sZWFuO1xyXG5cclxuXHJcbiAgICBvbkxvYWQgKCkgeyBcclxuICAgICAgICB0aGlzLl90b3VjaCA9IHRydWU7XHJcbiAgICB9IFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuICAgIH1cclxuXHJcbiAgICBzZXRUb3VjaCh0eXBlKXtcclxuICAgICAgICB0aGlzLl90b3VjaCA9IHR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlIChkdCkge1xyXG4gICAgfVxyXG59XHJcbiJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/module/Crypto/crypto-js.min.js b/temp/quick-scripts/dst/assets/Script/module/Crypto/crypto-js.min.js index c0fd98e..afce80e 100644 --- a/temp/quick-scripts/dst/assets/Script/module/Crypto/crypto-js.min.js +++ b/temp/quick-scripts/dst/assets/Script/module/Crypto/crypto-js.min.js @@ -20,259 +20,216 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }(void 0, function () { var t = t || function (t, r) { var e = Object.create || function () { - function t() {} - - return function (r) { - var e; - return t.prototype = r, e = new t(), t.prototype = null, e; - }; - }(), - i = {}, - n = i.lib = {}, - o = n.Base = function () { - return { - extend: function extend(t) { - var r = e(this); - return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { - r.$super.init.apply(this, arguments); - }), r.init.prototype = r, r.$super = this, r; - }, - create: function create() { - var t = this.extend(); - return t.init.apply(t, arguments), t; - }, - init: function init() {}, - mixIn: function mixIn(t) { - for (var r in t) { - t.hasOwnProperty(r) && (this[r] = t[r]); + function t() {} + return function (r) { + var e; + return t.prototype = r, e = new t(), t.prototype = null, e; + }; + }(), + i = {}, + n = i.lib = {}, + o = n.Base = function () { + return { + extend: function extend(t) { + var r = e(this); + return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { + r.$super.init.apply(this, arguments); + }), r.init.prototype = r, r.$super = this, r; + }, + create: function create() { + var t = this.extend(); + return t.init.apply(t, arguments), t; + }, + init: function init() {}, + mixIn: function mixIn(t) { + for (var r in t) t.hasOwnProperty(r) && (this[r] = t[r]); + t.hasOwnProperty("toString") && (this.toString = t.toString); + }, + clone: function clone() { + return this.init.prototype.extend(this); } - - t.hasOwnProperty("toString") && (this.toString = t.toString); + }; + }(), + s = n.WordArray = o.extend({ + init: function init(t, e) { + t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length; }, - clone: function clone() { - return this.init.prototype.extend(this); - } - }; - }(), - s = n.WordArray = o.extend({ - init: function init(t, e) { - t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length; - }, - toString: function toString(t) { - return (t || c).stringify(this); - }, - concat: function concat(t) { - var r = this.words, + toString: function toString(t) { + return (t || c).stringify(this); + }, + concat: function concat(t) { + var r = this.words, e = t.words, i = this.sigBytes, n = t.sigBytes; - if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { - var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; - r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8; - } else for (var o = 0; o < n; o += 4) { - r[i + o >>> 2] = e[o >>> 2]; - } - return this.sigBytes += n, this; - }, - clamp: function clamp() { - var r = this.words, + if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { + var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; + r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8; + } else for (var o = 0; o < n; o += 4) r[i + o >>> 2] = e[o >>> 2]; + return this.sigBytes += n, this; + }, + clamp: function clamp() { + var r = this.words, e = this.sigBytes; - r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4); - }, - clone: function clone() { - var t = o.clone.call(this); - return t.words = this.words.slice(0), t; - }, - random: function random(r) { - for (var e, i = [], n = function n(r) { - var r = r, - e = 987654321, - i = 4294967295; - return function () { - e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; - var n = (e << 16) + r & i; - return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1); - }; - }, o = 0; o < r; o += 4) { - var a = n(4294967296 * (e || t.random())); - e = 987654071 * a(), i.push(4294967296 * a() | 0); + r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4); + }, + clone: function clone() { + var t = o.clone.call(this); + return t.words = this.words.slice(0), t; + }, + random: function random(r) { + for (var e, i = [], n = function n(r) { + var r = r, + e = 987654321, + i = 4294967295; + return function () { + e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; + var n = (e << 16) + r & i; + return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1); + }; + }, o = 0; o < r; o += 4) { + var a = n(4294967296 * (e || t.random())); + e = 987654071 * a(), i.push(4294967296 * a() | 0); + } + return new s.init(i, r); } - - return new s.init(i, r); - } - }), - a = i.enc = {}, - c = a.Hex = { - stringify: function stringify(t) { - for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { - var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; - i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)); - } - - return i.join(""); - }, - parse: function parse(t) { - for (var r = t.length, e = [], i = 0; i < r; i += 2) { - e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; - } - - return new s.init(e, r / 2); - } - }, - h = a.Latin1 = { - stringify: function stringify(t) { - for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { - var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; - i.push(String.fromCharCode(o)); - } - - return i.join(""); - }, - parse: function parse(t) { - for (var r = t.length, e = [], i = 0; i < r; i++) { - e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; - } - - return new s.init(e, r); - } - }, - l = a.Utf8 = { - stringify: function stringify(t) { - try { - return decodeURIComponent(escape(h.stringify(t))); - } catch (t) { - throw new Error("Malformed UTF-8 data"); + }), + a = i.enc = {}, + c = a.Hex = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { + var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; + i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)); + } + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i += 2) e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; + return new s.init(e, r / 2); } }, - parse: function parse(t) { - return h.parse(unescape(encodeURIComponent(t))); - } - }, - f = n.BufferedBlockAlgorithm = o.extend({ - reset: function reset() { - this._data = new s.init(), this._nDataBytes = 0; + h = a.Latin1 = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { + var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; + i.push(String.fromCharCode(o)); + } + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i++) e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; + return new s.init(e, r); + } }, - _append: function _append(t) { - "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes; + l = a.Utf8 = { + stringify: function stringify(t) { + try { + return decodeURIComponent(escape(h.stringify(t))); + } catch (t) { + throw new Error("Malformed UTF-8 data"); + } + }, + parse: function parse(t) { + return h.parse(unescape(encodeURIComponent(t))); + } }, - _process: function _process(r) { - var e = this._data, + f = n.BufferedBlockAlgorithm = o.extend({ + reset: function reset() { + this._data = new s.init(), this._nDataBytes = 0; + }, + _append: function _append(t) { + "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes; + }, + _process: function _process(r) { + var e = this._data, i = e.words, n = e.sigBytes, o = this.blockSize, a = 4 * o, c = n / a; - c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); - var h = c * o, + c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); + var h = c * o, l = t.min(4 * h, n); - - if (h) { - for (var f = 0; f < h; f += o) { - this._doProcessBlock(i, f); + if (h) { + for (var f = 0; f < h; f += o) this._doProcessBlock(i, f); + var u = i.splice(0, h); + e.sigBytes -= l; } - - var u = i.splice(0, h); - e.sigBytes -= l; + return new s.init(u, l); + }, + clone: function clone() { + var t = o.clone.call(this); + return t._data = this._data.clone(), t; + }, + _minBufferSize: 0 + }), + u = (n.Hasher = f.extend({ + cfg: o.extend(), + init: function init(t) { + this.cfg = this.cfg.extend(t), this.reset(); + }, + reset: function reset() { + f.reset.call(this), this._doReset(); + }, + update: function update(t) { + return this._append(t), this._process(), this; + }, + finalize: function finalize(t) { + t && this._append(t); + var r = this._doFinalize(); + return r; + }, + blockSize: 16, + _createHelper: function _createHelper(t) { + return function (r, e) { + return new t.init(e).finalize(r); + }; + }, + _createHmacHelper: function _createHmacHelper(t) { + return function (r, e) { + return new u.HMAC.init(t, e).finalize(r); + }; } - - return new s.init(u, l); - }, - clone: function clone() { - var t = o.clone.call(this); - return t._data = this._data.clone(), t; - }, - _minBufferSize: 0 - }), - u = (n.Hasher = f.extend({ - cfg: o.extend(), - init: function init(t) { - this.cfg = this.cfg.extend(t), this.reset(); - }, - reset: function reset() { - f.reset.call(this), this._doReset(); - }, - update: function update(t) { - return this._append(t), this._process(), this; - }, - finalize: function finalize(t) { - t && this._append(t); - - var r = this._doFinalize(); - - return r; - }, - blockSize: 16, - _createHelper: function _createHelper(t) { - return function (r, e) { - return new t.init(e).finalize(r); - }; - }, - _createHmacHelper: function _createHmacHelper(t) { - return function (r, e) { - return new u.HMAC.init(t, e).finalize(r); - }; - } - }), i.algo = {}); - + }), i.algo = {}); return i; }(Math); - return function () { function r(t, r, e) { - for (var i = [], o = 0, s = 0; s < r; s++) { - if (s % 4) { - var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, - c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; - i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++; - } + for (var i = [], o = 0, s = 0; s < r; s++) if (s % 4) { + var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, + c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; + i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++; } - return n.create(i, o); } - var e = t, - i = e.lib, - n = i.WordArray, - o = e.enc; + i = e.lib, + n = i.WordArray, + o = e.enc; o.Base64 = { stringify: function stringify(t) { var r = t.words, - e = t.sigBytes, - i = this._map; + e = t.sigBytes, + i = this._map; t.clamp(); - - for (var n = [], o = 0; o < e; o += 3) { - for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++) { - n.push(i.charAt(h >>> 6 * (3 - l) & 63)); - } - } - + for (var n = [], o = 0; o < e; o += 3) for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++) n.push(i.charAt(h >>> 6 * (3 - l) & 63)); var f = i.charAt(64); - if (f) for (; n.length % 4;) { - n.push(f); - } + if (f) for (; n.length % 4;) n.push(f); return n.join(""); }, parse: function parse(t) { var e = t.length, - i = this._map, - n = this._reverseMap; - + i = this._map, + n = this._reverseMap; if (!n) { n = this._reverseMap = []; - - for (var o = 0; o < i.length; o++) { - n[i.charCodeAt(o)] = o; - } + for (var o = 0; o < i.length; o++) n[i.charCodeAt(o)] = o; } - var s = i.charAt(64); - if (s) { var a = t.indexOf(s); a !== -1 && (e = a); } - return r(t, e, n); }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" @@ -282,32 +239,26 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); var a = t + (r & e | ~r & i) + n + s; return (a << o | a >>> 32 - o) + r; } - function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; return (a << o | a >>> 32 - o) + r; } - function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; return (a << o | a >>> 32 - o) + r; } - function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; return (a << o | a >>> 32 - o) + r; } - var s = t, - a = s.lib, - c = a.WordArray, - h = a.Hasher, - l = s.algo, - f = []; + a = s.lib, + c = a.WordArray, + h = a.Hasher, + l = s.algo, + f = []; !function () { - for (var t = 0; t < 64; t++) { - f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0; - } + for (var t = 0; t < 64; t++) f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0; }(); var u = l.MD5 = h.extend({ _doReset: function _doReset() { @@ -316,48 +267,45 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); _doProcessBlock: function _doProcessBlock(t, r) { for (var s = 0; s < 16; s++) { var a = r + s, - c = t[a]; + c = t[a]; t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8); } - var h = this._hash.words, - l = t[r + 0], - u = t[r + 1], - d = t[r + 2], - v = t[r + 3], - p = t[r + 4], - _ = t[r + 5], - y = t[r + 6], - g = t[r + 7], - B = t[r + 8], - w = t[r + 9], - k = t[r + 10], - S = t[r + 11], - m = t[r + 12], - x = t[r + 13], - b = t[r + 14], - H = t[r + 15], - z = h[0], - A = h[1], - C = h[2], - D = h[3]; + l = t[r + 0], + u = t[r + 1], + d = t[r + 2], + v = t[r + 3], + p = t[r + 4], + _ = t[r + 5], + y = t[r + 6], + g = t[r + 7], + B = t[r + 8], + w = t[r + 9], + k = t[r + 10], + S = t[r + 11], + m = t[r + 12], + x = t[r + 13], + b = t[r + 14], + H = t[r + 15], + z = h[0], + A = h[1], + C = h[2], + D = h[3]; z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0; }, _doFinalize: function _doFinalize() { var t = this._data, - e = t.words, - i = 8 * this._nDataBytes, - n = 8 * t.sigBytes; + e = t.words, + i = 8 * this._nDataBytes, + n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32; var o = r.floor(i / 4294967296), - s = i; + s = i; e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); - for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { var l = c[h]; c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); } - return a; }, clone: function clone() { @@ -368,126 +316,112 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u); }(Math), function () { var r = t, - e = r.lib, - i = e.WordArray, - n = e.Hasher, - o = r.algo, - s = [], - a = o.SHA1 = n.extend({ - _doReset: function _doReset() { - this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { - if (h < 16) s[h] = 0 | t[r + h];else { - var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; - s[h] = l << 1 | l >>> 31; + e = r.lib, + i = e.WordArray, + n = e.Hasher, + o = r.algo, + s = [], + a = o.SHA1 = n.extend({ + _doReset: function _doReset() { + this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { + if (h < 16) s[h] = 0 | t[r + h];else { + var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; + s[h] = l << 1 | l >>> 31; + } + var f = (i << 5 | i >>> 27) + c + s[h]; + f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f; } - var f = (i << 5 | i >>> 27) + c + s[h]; - f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f; - } - - e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0; - }, - _doFinalize: function _doFinalize() { - var t = this._data, + e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; - return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash; - }, - clone: function clone() { - var t = n.clone.call(this); - return t._hash = this._hash.clone(), t; - } - }); + return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash; + }, + clone: function clone() { + var t = n.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a); }(), function (r) { var e = t, - i = e.lib, - n = i.WordArray, - o = i.Hasher, - s = e.algo, - a = [], - c = []; + i = e.lib, + n = i.WordArray, + o = i.Hasher, + s = e.algo, + a = [], + c = []; !function () { function t(t) { - for (var e = r.sqrt(t), i = 2; i <= e; i++) { - if (!(t % i)) return !1; - } - + for (var e = r.sqrt(t), i = 2; i <= e; i++) if (!(t % i)) return !1; return !0; } - function e(t) { return 4294967296 * (t - (0 | t)) | 0; } - - for (var i = 2, n = 0; n < 64;) { - t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++; - } + for (var i = 2, n = 0; n < 64;) t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++; }(); var h = [], - l = s.SHA256 = o.extend({ - _doReset: function _doReset() { - this._hash = new n.init(a.slice(0)); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { - if (d < 16) h[d] = 0 | t[r + d];else { - var v = h[d - 15], + l = s.SHA256 = o.extend({ + _doReset: function _doReset() { + this._hash = new n.init(a.slice(0)); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { + if (d < 16) h[d] = 0 | t[r + d];else { + var v = h[d - 15], p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, _ = h[d - 2], y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; - h[d] = p + h[d - 7] + y + h[d - 16]; - } - var g = a & l ^ ~a & f, + h[d] = p + h[d - 7] + y + h[d - 16]; + } + var g = a & l ^ ~a & f, B = i & n ^ i & o ^ n & o, w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), S = u + k + g + c[d] + h[d], m = w + B; - u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0; - } - - e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0; - }, - _doFinalize: function _doFinalize() { - var t = this._data, + u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0; + } + e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; - return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash; - }, - clone: function clone() { - var t = o.clone.call(this); - return t._hash = this._hash.clone(), t; - } - }); + return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash; + }, + clone: function clone() { + var t = o.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l); }(Math), function () { function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935; } - var e = t, - i = e.lib, - n = i.WordArray, - o = e.enc; + i = e.lib, + n = i.WordArray, + o = e.enc; o.Utf16 = o.Utf16BE = { stringify: function stringify(t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; i.push(String.fromCharCode(o)); } - return i.join(""); }, parse: function parse(t) { - for (var r = t.length, e = [], i = 0; i < r; i++) { - e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; - } - + for (var r = t.length, e = [], i = 0; i < r; i++) e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; return n.create(e, 2 * r); } }; @@ -497,83 +431,68 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); n.push(String.fromCharCode(s)); } - return n.join(""); }, parse: function parse(t) { - for (var e = t.length, i = [], o = 0; o < e; o++) { - i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); - } - + for (var e = t.length, i = [], o = 0; o < e; o++) i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); return n.create(i, 2 * e); } }; }(), function () { if ("function" == typeof ArrayBuffer) { var r = t, - e = r.lib, - i = e.WordArray, - n = i.init, - o = i.init = function (t) { - if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { - for (var r = t.byteLength, e = [], i = 0; i < r; i++) { - e[i >>> 2] |= t[i] << 24 - i % 4 * 8; - } - - n.call(this, e, r); - } else n.apply(this, arguments); - }; - + e = r.lib, + i = e.WordArray, + n = i.init, + o = i.init = function (t) { + if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { + for (var r = t.byteLength, e = [], i = 0; i < r; i++) e[i >>> 2] |= t[i] << 24 - i % 4 * 8; + n.call(this, e, r); + } else n.apply(this, arguments); + }; o.prototype = i; } }(), function (r) { function e(t, r, e) { return t ^ r ^ e; } - function i(t, r, e) { return t & r | ~t & e; } - function n(t, r, e) { return (t | ~r) ^ e; } - function o(t, r, e) { return t & e | r & ~e; } - function s(t, r, e) { return t ^ (r | ~e); } - function a(t, r) { return t << r | t >>> 32 - r; } - var c = t, - h = c.lib, - l = h.WordArray, - f = h.Hasher, - u = c.algo, - d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), - v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), - p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), - _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), - y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), - g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), - B = u.RIPEMD160 = f.extend({ - _doReset: function _doReset() { - this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - for (var c = 0; c < 16; c++) { - var h = r + c, + h = c.lib, + l = h.WordArray, + f = h.Hasher, + u = c.algo, + d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), + v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), + p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), + _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), + y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), + g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), + B = u.RIPEMD160 = f.extend({ + _doReset: function _doReset() { + this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var c = 0; c < 16; c++) { + var h = r + c, l = t[h]; - t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); - } - - var f, + t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); + } + var f, u, B, w, @@ -590,53 +509,42 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); R = v.words, E = p.words, M = _.words; - S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; - - for (var F, c = 0; c < 80; c += 1) { - F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; - } - - F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F; - }, - _doFinalize: function _doFinalize() { - var t = this._data, + S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; + for (var F, c = 0; c < 80; c += 1) F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; + F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F; + }, + _doFinalize: function _doFinalize() { + var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; - r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); - - for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { - var a = o[s]; - o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8); + r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); + for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { + var a = o[s]; + o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8); + } + return n; + }, + clone: function clone() { + var t = f.clone.call(this); + return t._hash = this._hash.clone(), t; } - - return n; - }, - clone: function clone() { - var t = f.clone.call(this); - return t._hash = this._hash.clone(), t; - } - }); - + }); c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B); }(Math), function () { var r = t, - e = r.lib, - i = e.Base, - n = r.enc, - o = n.Utf8, - s = r.algo; + e = r.lib, + i = e.Base, + n = r.enc, + o = n.Utf8, + s = r.algo; s.HMAC = i.extend({ init: function init(t, r) { t = this._hasher = new t.init(), "string" == typeof r && (r = o.parse(r)); var e = t.blockSize, - i = 4 * e; + i = 4 * e; r.sigBytes > i && (r = t.finalize(r)), r.clamp(); - - for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++) { - a[h] ^= 1549556828, c[h] ^= 909522486; - } - + for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++) a[h] ^= 1549556828, c[h] ^= 909522486; n.sigBytes = s.sigBytes = i, this.reset(); }, reset: function reset() { @@ -648,7 +556,7 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }, finalize: function finalize(t) { var r = this._hasher, - e = r.finalize(t); + e = r.finalize(t); r.reset(); var i = r.finalize(this._oKey.clone().concat(e)); return i; @@ -656,103 +564,89 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }); }(), function () { var r = t, - e = r.lib, - i = e.Base, - n = e.WordArray, - o = r.algo, - s = o.SHA1, - a = o.HMAC, - c = o.PBKDF2 = i.extend({ - cfg: i.extend({ - keySize: 4, - hasher: s, - iterations: 1 - }), - init: function init(t) { - this.cfg = this.cfg.extend(t); - }, - compute: function compute(t, r) { - for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { - var u = i.update(r).finalize(s); - i.reset(); - - for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { - p = i.finalize(p), i.reset(); - - for (var y = p.words, g = 0; g < v; g++) { - d[g] ^= y[g]; + e = r.lib, + i = e.Base, + n = e.WordArray, + o = r.algo, + s = o.SHA1, + a = o.HMAC, + c = o.PBKDF2 = i.extend({ + cfg: i.extend({ + keySize: 4, + hasher: s, + iterations: 1 + }), + init: function init(t) { + this.cfg = this.cfg.extend(t); + }, + compute: function compute(t, r) { + for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { + var u = i.update(r).finalize(s); + i.reset(); + for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { + p = i.finalize(p), i.reset(); + for (var y = p.words, g = 0; g < v; g++) d[g] ^= y[g]; } + o.concat(u), h[0]++; } - - o.concat(u), h[0]++; + return o.sigBytes = 4 * l, o; } - - return o.sigBytes = 4 * l, o; - } - }); - + }); r.PBKDF2 = function (t, r, e) { return c.create(e).compute(t, r); }; }(), function () { var r = t, - e = r.lib, - i = e.Base, - n = e.WordArray, - o = r.algo, - s = o.MD5, - a = o.EvpKDF = i.extend({ - cfg: i.extend({ - keySize: 4, - hasher: s, - iterations: 1 - }), - init: function init(t) { - this.cfg = this.cfg.extend(t); - }, - compute: function compute(t, r) { - for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { - h && i.update(h); - var h = i.update(t).finalize(r); - i.reset(); - - for (var l = 1; l < c; l++) { - h = i.finalize(h), i.reset(); + e = r.lib, + i = e.Base, + n = e.WordArray, + o = r.algo, + s = o.MD5, + a = o.EvpKDF = i.extend({ + cfg: i.extend({ + keySize: 4, + hasher: s, + iterations: 1 + }), + init: function init(t) { + this.cfg = this.cfg.extend(t); + }, + compute: function compute(t, r) { + for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { + h && i.update(h); + var h = i.update(t).finalize(r); + i.reset(); + for (var l = 1; l < c; l++) h = i.finalize(h), i.reset(); + o.concat(h); } - - o.concat(h); + return o.sigBytes = 4 * a, o; } - - return o.sigBytes = 4 * a, o; - } - }); - + }); r.EvpKDF = function (t, r, e) { return a.create(e).compute(t, r); }; }(), function () { var r = t, - e = r.lib, - i = e.WordArray, - n = r.algo, - o = n.SHA256, - s = n.SHA224 = o.extend({ - _doReset: function _doReset() { - this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]); - }, - _doFinalize: function _doFinalize() { - var t = o._doFinalize.call(this); - - return t.sigBytes -= 4, t; - } - }); + e = r.lib, + i = e.WordArray, + n = r.algo, + o = n.SHA256, + s = n.SHA224 = o.extend({ + _doReset: function _doReset() { + this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]); + }, + _doFinalize: function _doFinalize() { + var t = o._doFinalize.call(this); + return t.sigBytes -= 4, t; + } + }); r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s); }(), function (r) { var e = t, - i = e.lib, - n = i.Base, - o = i.WordArray, - s = e.x64 = {}; + i = e.lib, + n = i.Base, + o = i.WordArray, + s = e.x64 = {}; s.Word = n.extend({ init: function init(t, r) { this.high = t, this.low = r; @@ -766,152 +660,119 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); var n = t[i]; e.push(n.high), e.push(n.low); } - return o.create(e, this.sigBytes); }, clone: function clone() { - for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++) { - r[i] = r[i].clone(); - } - + for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++) r[i] = r[i].clone(); return t; } }); }(), function (r) { var e = t, - i = e.lib, - n = i.WordArray, - o = i.Hasher, - s = e.x64, - a = s.Word, - c = e.algo, - h = [], - l = [], - f = []; + i = e.lib, + n = i.WordArray, + o = i.Hasher, + s = e.x64, + a = s.Word, + c = e.algo, + h = [], + l = [], + f = []; !function () { for (var t = 1, r = 0, e = 0; e < 24; e++) { h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; var i = r % 5, - n = (2 * t + 3 * r) % 5; + n = (2 * t + 3 * r) % 5; t = i, r = n; } - - for (var t = 0; t < 5; t++) { - for (var r = 0; r < 5; r++) { - l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; - } - } - + for (var t = 0; t < 5; t++) for (var r = 0; r < 5; r++) l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; for (var o = 1, s = 0; s < 24; s++) { for (var c = 0, u = 0, d = 0; d < 7; d++) { if (1 & o) { var v = (1 << d) - 1; v < 32 ? u ^= 1 << v : c ^= 1 << v - 32; } - 128 & o ? o = o << 1 ^ 113 : o <<= 1; } - f[s] = a.create(c, u); } }(); var u = []; !function () { - for (var t = 0; t < 25; t++) { - u[t] = a.create(); - } + for (var t = 0; t < 25; t++) u[t] = a.create(); }(); var d = c.SHA3 = o.extend({ cfg: o.cfg.extend({ outputLength: 512 }), _doReset: function _doReset() { - for (var t = this._state = [], r = 0; r < 25; r++) { - t[r] = new a.init(); - } - + for (var t = this._state = [], r = 0; r < 25; r++) t[r] = new a.init(); this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; }, _doProcessBlock: function _doProcessBlock(t, r) { for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { var o = t[r + 2 * n], - s = t[r + 2 * n + 1]; + s = t[r + 2 * n + 1]; o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); var a = e[n]; a.high ^= s, a.low ^= o; } - for (var c = 0; c < 24; c++) { for (var d = 0; d < 5; d++) { for (var v = 0, p = 0, _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; v ^= a.high, p ^= a.low; } - var y = u[d]; y.high = v, y.low = p; } - - for (var d = 0; d < 5; d++) { - for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { - var a = e[d + 5 * _]; - a.high ^= v, a.low ^= p; - } + for (var d = 0; d < 5; d++) for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { + var a = e[d + 5 * _]; + a.high ^= v, a.low ^= p; } - for (var S = 1; S < 25; S++) { var a = e[S], - m = a.high, - x = a.low, - b = h[S]; + m = a.high, + x = a.low, + b = h[S]; if (b < 32) var v = m << b | x >>> 32 - b, - p = x << b | m >>> 32 - b;else var v = x << b - 32 | m >>> 64 - b, - p = m << b - 32 | x >>> 64 - b; + p = x << b | m >>> 32 - b;else var v = x << b - 32 | m >>> 64 - b, + p = m << b - 32 | x >>> 64 - b; var H = u[l[S]]; H.high = v, H.low = p; } - var z = u[0], - A = e[0]; + A = e[0]; z.high = A.high, z.low = A.low; - - for (var d = 0; d < 5; d++) { - for (var _ = 0; _ < 5; _++) { - var S = d + 5 * _, - a = e[S], - C = u[S], - D = u[(d + 1) % 5 + 5 * _], - R = u[(d + 2) % 5 + 5 * _]; - a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low; - } + for (var d = 0; d < 5; d++) for (var _ = 0; _ < 5; _++) { + var S = d + 5 * _, + a = e[S], + C = u[S], + D = u[(d + 1) % 5 + 5 * _], + R = u[(d + 2) % 5 + 5 * _]; + a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low; } - var a = e[0], - E = f[c]; + E = f[c]; a.high ^= E.high, a.low ^= E.low; } }, _doFinalize: function _doFinalize() { var t = this._data, - e = t.words, - i = (8 * this._nDataBytes, 8 * t.sigBytes), - o = 32 * this.blockSize; + e = t.words, + i = (8 * this._nDataBytes, 8 * t.sigBytes), + o = 32 * this.blockSize; e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); - for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { var f = s[l], - u = f.high, - d = f.low; + u = f.high, + d = f.low; u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u); } - return new n.init(h, a); }, clone: function clone() { - for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++) { - r[e] = r[e].clone(); - } - + for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++) r[e] = r[e].clone(); return t; } }); @@ -920,20 +781,17 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); function r() { return s.create.apply(s, arguments); } - var e = t, - i = e.lib, - n = i.Hasher, - o = e.x64, - s = o.Word, - a = o.WordArray, - c = e.algo, - h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], - l = []; + i = e.lib, + n = i.Hasher, + o = e.x64, + s = o.Word, + a = o.WordArray, + c = e.algo, + h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], + l = []; !function () { - for (var t = 0; t < 80; t++) { - l[t] = r(); - } + for (var t = 0; t < 80; t++) l[t] = r(); }(); var f = c.SHA512 = n.extend({ _doReset: function _doReset() { @@ -943,68 +801,63 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { var Z = l[T]; if (T < 16) var q = Z.high = 0 | t[r + 2 * T], - G = Z.low = 0 | t[r + 2 * T + 1];else { + G = Z.low = 0 | t[r + 2 * T + 1];else { var J = l[T - 15], - $ = J.high, - Q = J.low, - V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, - Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), - tt = l[T - 2], - rt = tt.high, - et = tt.low, - it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, - nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), - ot = l[T - 7], - st = ot.high, - at = ot.low, - ct = l[T - 16], - ht = ct.high, - lt = ct.low, - G = Y + at, - q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), - G = G + nt, - q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), - G = G + lt, - q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); + $ = J.high, + Q = J.low, + V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, + Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), + tt = l[T - 2], + rt = tt.high, + et = tt.low, + it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, + nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), + ot = l[T - 7], + st = ot.high, + at = ot.low, + ct = l[T - 16], + ht = ct.high, + lt = ct.low, + G = Y + at, + q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), + G = G + nt, + q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), + G = G + lt, + q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); Z.high = q, Z.low = G; } - var ft = O & I ^ ~O & X, - ut = U & K ^ ~U & L, - dt = C & R ^ C & M ^ R & M, - vt = D & E ^ D & F ^ E & F, - pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), - _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), - yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), - gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), - Bt = h[T], - wt = Bt.high, - kt = Bt.low, - St = N + gt, - mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), - St = St + ut, - mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), - St = St + kt, - mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), - St = St + G, - mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), - xt = _t + vt, - bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); - + ut = U & K ^ ~U & L, + dt = C & R ^ C & M ^ R & M, + vt = D & E ^ D & F ^ E & F, + pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), + _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), + yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), + gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), + Bt = h[T], + wt = Bt.high, + kt = Bt.low, + St = N + gt, + mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), + St = St + ut, + mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), + St = St + kt, + mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), + St = St + G, + mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), + xt = _t + vt, + bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0; } - v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0); }, _doFinalize: function _doFinalize() { var t = this._data, - r = t.words, - e = 8 * this._nDataBytes, - i = 8 * t.sigBytes; + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); - var n = this._hash.toX32(); - return n; }, clone: function clone() { @@ -1016,298 +869,273 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f); }(), function () { var r = t, - e = r.x64, - i = e.Word, - n = e.WordArray, - o = r.algo, - s = o.SHA512, - a = o.SHA384 = s.extend({ - _doReset: function _doReset() { - this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]); - }, - _doFinalize: function _doFinalize() { - var t = s._doFinalize.call(this); - - return t.sigBytes -= 16, t; - } - }); + e = r.x64, + i = e.Word, + n = e.WordArray, + o = r.algo, + s = o.SHA512, + a = o.SHA384 = s.extend({ + _doReset: function _doReset() { + this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]); + }, + _doFinalize: function _doFinalize() { + var t = s._doFinalize.call(this); + return t.sigBytes -= 16, t; + } + }); r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a); }(), t.lib.Cipher || function (r) { var e = t, - i = e.lib, - n = i.Base, - o = i.WordArray, - s = i.BufferedBlockAlgorithm, - a = e.enc, - c = (a.Utf8, a.Base64), - h = e.algo, - l = h.EvpKDF, - f = i.Cipher = s.extend({ - cfg: n.extend(), - createEncryptor: function createEncryptor(t, r) { - return this.create(this._ENC_XFORM_MODE, t, r); - }, - createDecryptor: function createDecryptor(t, r) { - return this.create(this._DEC_XFORM_MODE, t, r); - }, - init: function init(t, r, e) { - this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset(); - }, - reset: function reset() { - s.reset.call(this), this._doReset(); - }, - process: function process(t) { - return this._append(t), this._process(); - }, - finalize: function finalize(t) { - t && this._append(t); - - var r = this._doFinalize(); - - return r; - }, - keySize: 4, - ivSize: 4, - _ENC_XFORM_MODE: 1, - _DEC_XFORM_MODE: 2, - _createHelper: function () { - function t(t) { - return "string" == typeof t ? m : w; - } - - return function (r) { - return { - encrypt: function encrypt(e, i, n) { - return t(i).encrypt(r, e, i, n); - }, - decrypt: function decrypt(e, i, n) { - return t(i).decrypt(r, e, i, n); - } + i = e.lib, + n = i.Base, + o = i.WordArray, + s = i.BufferedBlockAlgorithm, + a = e.enc, + c = (a.Utf8, a.Base64), + h = e.algo, + l = h.EvpKDF, + f = i.Cipher = s.extend({ + cfg: n.extend(), + createEncryptor: function createEncryptor(t, r) { + return this.create(this._ENC_XFORM_MODE, t, r); + }, + createDecryptor: function createDecryptor(t, r) { + return this.create(this._DEC_XFORM_MODE, t, r); + }, + init: function init(t, r, e) { + this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset(); + }, + reset: function reset() { + s.reset.call(this), this._doReset(); + }, + process: function process(t) { + return this._append(t), this._process(); + }, + finalize: function finalize(t) { + t && this._append(t); + var r = this._doFinalize(); + return r; + }, + keySize: 4, + ivSize: 4, + _ENC_XFORM_MODE: 1, + _DEC_XFORM_MODE: 2, + _createHelper: function () { + function t(t) { + return "string" == typeof t ? m : w; + } + return function (r) { + return { + encrypt: function encrypt(e, i, n) { + return t(i).encrypt(r, e, i, n); + }, + decrypt: function decrypt(e, i, n) { + return t(i).decrypt(r, e, i, n); + } + }; }; - }; - }() - }), - u = (i.StreamCipher = f.extend({ - _doFinalize: function _doFinalize() { - var t = this._process(!0); - - return t; - }, - blockSize: 1 - }), e.mode = {}), - d = i.BlockCipherMode = n.extend({ - createEncryptor: function createEncryptor(t, r) { - return this.Encryptor.create(t, r); - }, - createDecryptor: function createDecryptor(t, r) { - return this.Decryptor.create(t, r); - }, - init: function init(t, r) { - this._cipher = t, this._iv = r; - } - }), - v = u.CBC = function () { - function t(t, e, i) { - var n = this._iv; - - if (n) { - var o = n; - this._iv = r; - } else var o = this._prevBlock; - - for (var s = 0; s < i; s++) { - t[e + s] ^= o[s]; + }() + }), + u = (i.StreamCipher = f.extend({ + _doFinalize: function _doFinalize() { + var t = this._process(!0); + return t; + }, + blockSize: 1 + }), e.mode = {}), + d = i.BlockCipherMode = n.extend({ + createEncryptor: function createEncryptor(t, r) { + return this.Encryptor.create(t, r); + }, + createDecryptor: function createDecryptor(t, r) { + return this.Decryptor.create(t, r); + }, + init: function init(t, r) { + this._cipher = t, this._iv = r; } - } - - var e = d.extend(); - return e.Encryptor = e.extend({ - processBlock: function processBlock(r, e) { - var i = this._cipher, + }), + v = u.CBC = function () { + function t(t, e, i) { + var n = this._iv; + if (n) { + var o = n; + this._iv = r; + } else var o = this._prevBlock; + for (var s = 0; s < i; s++) t[e + s] ^= o[s]; + } + var e = d.extend(); + return e.Encryptor = e.extend({ + processBlock: function processBlock(r, e) { + var i = this._cipher, n = i.blockSize; - t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n); - } - }), e.Decryptor = e.extend({ - processBlock: function processBlock(r, e) { - var i = this._cipher, + t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n); + } + }), e.Decryptor = e.extend({ + processBlock: function processBlock(r, e) { + var i = this._cipher, n = i.blockSize, o = r.slice(e, e + n); - i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o; + i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o; + } + }), e; + }(), + p = e.pad = {}, + _ = p.Pkcs7 = { + pad: function pad(t, r) { + for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4) s.push(n); + var c = o.create(s, i); + t.concat(c); + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; } - }), e; - }(), - p = e.pad = {}, - _ = p.Pkcs7 = { - pad: function pad(t, r) { - for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4) { - s.push(n); - } - - var c = o.create(s, i); - t.concat(c); }, - unpad: function unpad(t) { - var r = 255 & t.words[t.sigBytes - 1 >>> 2]; - t.sigBytes -= r; - } - }, - y = (i.BlockCipher = f.extend({ - cfg: f.cfg.extend({ - mode: v, - padding: _ - }), - reset: function reset() { - f.reset.call(this); - var t = this.cfg, + y = (i.BlockCipher = f.extend({ + cfg: f.cfg.extend({ + mode: v, + padding: _ + }), + reset: function reset() { + f.reset.call(this); + var t = this.cfg, r = t.iv, e = t.mode; - if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor;else { - var i = e.createDecryptor; - this._minBufferSize = 1; + if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor;else { + var i = e.createDecryptor; + this._minBufferSize = 1; + } + this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + this._mode.processBlock(t, r); + }, + _doFinalize: function _doFinalize() { + var t = this.cfg.padding; + if (this._xformMode == this._ENC_XFORM_MODE) { + t.pad(this._data, this.blockSize); + var r = this._process(!0); + } else { + var r = this._process(!0); + t.unpad(r); + } + return r; + }, + blockSize: 4 + }), i.CipherParams = n.extend({ + init: function init(t) { + this.mixIn(t); + }, + toString: function toString(t) { + return (t || this.formatter).stringify(this); } - this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - this._mode.processBlock(t, r); - }, - _doFinalize: function _doFinalize() { - var t = this.cfg.padding; - - if (this._xformMode == this._ENC_XFORM_MODE) { - t.pad(this._data, this.blockSize); - - var r = this._process(!0); - } else { - var r = this._process(!0); - - t.unpad(r); - } - - return r; - }, - blockSize: 4 - }), i.CipherParams = n.extend({ - init: function init(t) { - this.mixIn(t); - }, - toString: function toString(t) { - return (t || this.formatter).stringify(this); - } - })), - g = e.format = {}, - B = g.OpenSSL = { - stringify: function stringify(t) { - var r = t.ciphertext, + })), + g = e.format = {}, + B = g.OpenSSL = { + stringify: function stringify(t) { + var r = t.ciphertext, e = t.salt; - if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r);else var i = r; - return i.toString(c); - }, - parse: function parse(t) { - var r = c.parse(t), + if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r);else var i = r; + return i.toString(c); + }, + parse: function parse(t) { + var r = c.parse(t), e = r.words; - - if (1398893684 == e[0] && 1701076831 == e[1]) { - var i = o.create(e.slice(2, 4)); - e.splice(0, 4), r.sigBytes -= 16; + if (1398893684 == e[0] && 1701076831 == e[1]) { + var i = o.create(e.slice(2, 4)); + e.splice(0, 4), r.sigBytes -= 16; + } + return y.create({ + ciphertext: r, + salt: i + }); } - - return y.create({ - ciphertext: r, - salt: i - }); - } - }, - w = i.SerializableCipher = n.extend({ - cfg: n.extend({ - format: B - }), - encrypt: function encrypt(t, r, e, i) { - i = this.cfg.extend(i); - var n = t.createEncryptor(e, i), + }, + w = i.SerializableCipher = n.extend({ + cfg: n.extend({ + format: B + }), + encrypt: function encrypt(t, r, e, i) { + i = this.cfg.extend(i); + var n = t.createEncryptor(e, i), o = n.finalize(r), s = n.cfg; - return y.create({ - ciphertext: o, - key: e, - iv: s.iv, - algorithm: t, - mode: s.mode, - padding: s.padding, - blockSize: t.blockSize, - formatter: i.format - }); - }, - decrypt: function decrypt(t, r, e, i) { - i = this.cfg.extend(i), r = this._parse(r, i.format); - var n = t.createDecryptor(e, i).finalize(r.ciphertext); - return n; - }, - _parse: function _parse(t, r) { - return "string" == typeof t ? r.parse(t, this) : t; - } - }), - k = e.kdf = {}, - S = k.OpenSSL = { - execute: function execute(t, r, e, i) { - i || (i = o.random(8)); - var n = l.create({ - keySize: r + e - }).compute(t, i), - s = o.create(n.words.slice(r), 4 * e); - return n.sigBytes = 4 * r, y.create({ - key: n, - iv: s, - salt: i - }); - } - }, - m = i.PasswordBasedCipher = w.extend({ - cfg: w.cfg.extend({ - kdf: S + return y.create({ + ciphertext: o, + key: e, + iv: s.iv, + algorithm: t, + mode: s.mode, + padding: s.padding, + blockSize: t.blockSize, + formatter: i.format + }); + }, + decrypt: function decrypt(t, r, e, i) { + i = this.cfg.extend(i), r = this._parse(r, i.format); + var n = t.createDecryptor(e, i).finalize(r.ciphertext); + return n; + }, + _parse: function _parse(t, r) { + return "string" == typeof t ? r.parse(t, this) : t; + } }), - encrypt: function encrypt(t, r, e, i) { - i = this.cfg.extend(i); - var n = i.kdf.execute(e, t.keySize, t.ivSize); - i.iv = n.iv; - var o = w.encrypt.call(this, t, r, n.key, i); - return o.mixIn(n), o; + k = e.kdf = {}, + S = k.OpenSSL = { + execute: function execute(t, r, e, i) { + i || (i = o.random(8)); + var n = l.create({ + keySize: r + e + }).compute(t, i), + s = o.create(n.words.slice(r), 4 * e); + return n.sigBytes = 4 * r, y.create({ + key: n, + iv: s, + salt: i + }); + } }, - decrypt: function decrypt(t, r, e, i) { - i = this.cfg.extend(i), r = this._parse(r, i.format); - var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); - i.iv = n.iv; - var o = w.decrypt.call(this, t, r, n.key, i); - return o; - } - }); + m = i.PasswordBasedCipher = w.extend({ + cfg: w.cfg.extend({ + kdf: S + }), + encrypt: function encrypt(t, r, e, i) { + i = this.cfg.extend(i); + var n = i.kdf.execute(e, t.keySize, t.ivSize); + i.iv = n.iv; + var o = w.encrypt.call(this, t, r, n.key, i); + return o.mixIn(n), o; + }, + decrypt: function decrypt(t, r, e, i) { + i = this.cfg.extend(i), r = this._parse(r, i.format); + var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); + i.iv = n.iv; + var o = w.decrypt.call(this, t, r, n.key, i); + return o; + } + }); }(), t.mode.CFB = function () { function r(t, r, e, i) { var n = this._iv; - if (n) { var o = n.slice(0); this._iv = void 0; } else var o = this._prevBlock; - i.encryptBlock(o, 0); - - for (var s = 0; s < e; s++) { - t[r + s] ^= o[s]; - } + for (var s = 0; s < e; s++) t[r + s] ^= o[s]; } - var e = t.lib.BlockCipherMode.extend(); return e.Encryptor = e.extend({ processBlock: function processBlock(t, e) { var i = this._cipher, - n = i.blockSize; + n = i.blockSize; r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n); } }), e.Decryptor = e.extend({ processBlock: function processBlock(t, e) { var i = this._cipher, - n = i.blockSize, - o = t.slice(e, e + n); + n = i.blockSize, + o = t.slice(e, e + n); r.call(this, t, e, n, i), this._prevBlock = o; } }), e; @@ -1325,9 +1153,9 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }(), t.pad.AnsiX923 = { pad: function pad(t, r) { var e = t.sigBytes, - i = 4 * r, - n = i - e % i, - o = e + n - 1; + i = 4 * r, + n = i - e % i, + o = e + n - 1; t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n; }, unpad: function unpad(t) { @@ -1337,7 +1165,7 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }, t.pad.Iso10126 = { pad: function pad(r, e) { var i = 4 * e, - n = i - r.sigBytes % i; + n = i - r.sigBytes % i; r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)); }, unpad: function unpad(t) { @@ -1353,30 +1181,27 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); } }, t.mode.OFB = function () { var r = t.lib.BlockCipherMode.extend(), - e = r.Encryptor = r.extend({ - processBlock: function processBlock(t, r) { - var e = this._cipher, + e = r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + var e = this._cipher, i = e.blockSize, n = this._iv, o = this._keystream; - n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); - - for (var s = 0; s < i; s++) { - t[r + s] ^= o[s]; + n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); + for (var s = 0; s < i; s++) t[r + s] ^= o[s]; } - } - }); + }); return r.Decryptor = e, r; }(), t.pad.NoPadding = { pad: function pad() {}, unpad: function unpad() {} }, function (r) { var e = t, - i = e.lib, - n = i.CipherParams, - o = e.enc, - s = o.Hex, - a = e.format; + i = e.lib, + n = i.CipherParams, + o = e.enc, + s = o.Hex, + a = e.format; a.Hex = { stringify: function stringify(t) { return t.ciphertext.toString(s); @@ -1390,680 +1215,651 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }; }(), function () { var r = t, - e = r.lib, - i = e.BlockCipher, - n = r.algo, - o = [], - s = [], - a = [], - c = [], - h = [], - l = [], - f = [], - u = [], - d = [], - v = []; + e = r.lib, + i = e.BlockCipher, + n = r.algo, + o = [], + s = [], + a = [], + c = [], + h = [], + l = [], + f = [], + u = [], + d = [], + v = []; !function () { - for (var t = [], r = 0; r < 256; r++) { - r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; - } - + for (var t = [], r = 0; r < 256; r++) r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; for (var e = 0, i = 0, r = 0; r < 256; r++) { var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; var p = t[e], - _ = t[p], - y = t[_], - g = 257 * t[n] ^ 16843008 * n; + _ = t[p], + y = t[_], + g = 257 * t[n] ^ 16843008 * n; a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1; } }(); - var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], - _ = n.AES = i.extend({ - _doReset: function _doReset() { - if (!this._nRounds || this._keyPriorReset !== this._key) { - for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++) { - if (a < e) s[a] = r[a];else { + _ = n.AES = i.extend({ + _doReset: function _doReset() { + if (!this._nRounds || this._keyPriorReset !== this._key) { + for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++) if (a < e) s[a] = r[a];else { var c = s[a - 1]; a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c; } + for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { + var a = n - l; + if (l % 4) var c = s[a];else var c = s[a - 4]; + l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]]; + } } - - for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { - var a = n - l; - if (l % 4) var c = s[a];else var c = s[a - 4]; - l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]]; - } - } - }, - encryptBlock: function encryptBlock(t, r) { - this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o); - }, - decryptBlock: function decryptBlock(t, r) { - var e = t[r + 1]; - t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); - var e = t[r + 1]; - t[r + 1] = t[r + 3], t[r + 3] = e; - }, - _doCryptBlock: function _doCryptBlock(t, r, e, i, n, o, s, a) { - for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { - var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], + }, + encryptBlock: function encryptBlock(t, r) { + this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o); + }, + decryptBlock: function decryptBlock(t, r) { + var e = t[r + 1]; + t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); + var e = t[r + 1]; + t[r + 1] = t[r + 3], t[r + 3] = e; + }, + _doCryptBlock: function _doCryptBlock(t, r, e, i, n, o, s, a) { + for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { + var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; - - h = p, l = _, f = y, u = g; - } - - var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], + h = p, l = _, f = y, u = g; + } + var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; - - t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g; - }, - keySize: 8 - }); - + t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g; + }, + keySize: 8 + }); r.AES = i._createHelper(_); }(), function () { function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this._rBlock ^= e, this._lBlock ^= e << t; } - function e(t, r) { var e = (this._rBlock >>> t ^ this._lBlock) & r; this._lBlock ^= e, this._rBlock ^= e << t; } - var i = t, - n = i.lib, - o = n.WordArray, - s = n.BlockCipher, - a = i.algo, - c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], - h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], - l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], - f = [{ - 0: 8421888, - 268435456: 32768, - 536870912: 8421378, - 805306368: 2, - 1073741824: 512, - 1342177280: 8421890, - 1610612736: 8389122, - 1879048192: 8388608, - 2147483648: 514, - 2415919104: 8389120, - 2684354560: 33280, - 2952790016: 8421376, - 3221225472: 32770, - 3489660928: 8388610, - 3758096384: 0, - 4026531840: 33282, - 134217728: 0, - 402653184: 8421890, - 671088640: 33282, - 939524096: 32768, - 1207959552: 8421888, - 1476395008: 512, - 1744830464: 8421378, - 2013265920: 2, - 2281701376: 8389120, - 2550136832: 33280, - 2818572288: 8421376, - 3087007744: 8389122, - 3355443200: 8388610, - 3623878656: 32770, - 3892314112: 514, - 4160749568: 8388608, - 1: 32768, - 268435457: 2, - 536870913: 8421888, - 805306369: 8388608, - 1073741825: 8421378, - 1342177281: 33280, - 1610612737: 512, - 1879048193: 8389122, - 2147483649: 8421890, - 2415919105: 8421376, - 2684354561: 8388610, - 2952790017: 33282, - 3221225473: 514, - 3489660929: 8389120, - 3758096385: 32770, - 4026531841: 0, - 134217729: 8421890, - 402653185: 8421376, - 671088641: 8388608, - 939524097: 512, - 1207959553: 32768, - 1476395009: 8388610, - 1744830465: 2, - 2013265921: 33282, - 2281701377: 32770, - 2550136833: 8389122, - 2818572289: 514, - 3087007745: 8421888, - 3355443201: 8389120, - 3623878657: 0, - 3892314113: 33280, - 4160749569: 8421378 - }, { - 0: 1074282512, - 16777216: 16384, - 33554432: 524288, - 50331648: 1074266128, - 67108864: 1073741840, - 83886080: 1074282496, - 100663296: 1073758208, - 117440512: 16, - 134217728: 540672, - 150994944: 1073758224, - 167772160: 1073741824, - 184549376: 540688, - 201326592: 524304, - 218103808: 0, - 234881024: 16400, - 251658240: 1074266112, - 8388608: 1073758208, - 25165824: 540688, - 41943040: 16, - 58720256: 1073758224, - 75497472: 1074282512, - 92274688: 1073741824, - 109051904: 524288, - 125829120: 1074266128, - 142606336: 524304, - 159383552: 0, - 176160768: 16384, - 192937984: 1074266112, - 209715200: 1073741840, - 226492416: 540672, - 243269632: 1074282496, - 260046848: 16400, - 268435456: 0, - 285212672: 1074266128, - 301989888: 1073758224, - 318767104: 1074282496, - 335544320: 1074266112, - 352321536: 16, - 369098752: 540688, - 385875968: 16384, - 402653184: 16400, - 419430400: 524288, - 436207616: 524304, - 452984832: 1073741840, - 469762048: 540672, - 486539264: 1073758208, - 503316480: 1073741824, - 520093696: 1074282512, - 276824064: 540688, - 293601280: 524288, - 310378496: 1074266112, - 327155712: 16384, - 343932928: 1073758208, - 360710144: 1074282512, - 377487360: 16, - 394264576: 1073741824, - 411041792: 1074282496, - 427819008: 1073741840, - 444596224: 1073758224, - 461373440: 524304, - 478150656: 0, - 494927872: 16400, - 511705088: 1074266128, - 528482304: 540672 - }, { - 0: 260, - 1048576: 0, - 2097152: 67109120, - 3145728: 65796, - 4194304: 65540, - 5242880: 67108868, - 6291456: 67174660, - 7340032: 67174400, - 8388608: 67108864, - 9437184: 67174656, - 10485760: 65792, - 11534336: 67174404, - 12582912: 67109124, - 13631488: 65536, - 14680064: 4, - 15728640: 256, - 524288: 67174656, - 1572864: 67174404, - 2621440: 0, - 3670016: 67109120, - 4718592: 67108868, - 5767168: 65536, - 6815744: 65540, - 7864320: 260, - 8912896: 4, - 9961472: 256, - 11010048: 67174400, - 12058624: 65796, - 13107200: 65792, - 14155776: 67109124, - 15204352: 67174660, - 16252928: 67108864, - 16777216: 67174656, - 17825792: 65540, - 18874368: 65536, - 19922944: 67109120, - 20971520: 256, - 22020096: 67174660, - 23068672: 67108868, - 24117248: 0, - 25165824: 67109124, - 26214400: 67108864, - 27262976: 4, - 28311552: 65792, - 29360128: 67174400, - 30408704: 260, - 31457280: 65796, - 32505856: 67174404, - 17301504: 67108864, - 18350080: 260, - 19398656: 67174656, - 20447232: 0, - 21495808: 65540, - 22544384: 67109120, - 23592960: 256, - 24641536: 67174404, - 25690112: 65536, - 26738688: 67174660, - 27787264: 65796, - 28835840: 67108868, - 29884416: 67109124, - 30932992: 67174400, - 31981568: 4, - 33030144: 65792 - }, { - 0: 2151682048, - 65536: 2147487808, - 131072: 4198464, - 196608: 2151677952, - 262144: 0, - 327680: 4198400, - 393216: 2147483712, - 458752: 4194368, - 524288: 2147483648, - 589824: 4194304, - 655360: 64, - 720896: 2147487744, - 786432: 2151678016, - 851968: 4160, - 917504: 4096, - 983040: 2151682112, - 32768: 2147487808, - 98304: 64, - 163840: 2151678016, - 229376: 2147487744, - 294912: 4198400, - 360448: 2151682112, - 425984: 0, - 491520: 2151677952, - 557056: 4096, - 622592: 2151682048, - 688128: 4194304, - 753664: 4160, - 819200: 2147483648, - 884736: 4194368, - 950272: 4198464, - 1015808: 2147483712, - 1048576: 4194368, - 1114112: 4198400, - 1179648: 2147483712, - 1245184: 0, - 1310720: 4160, - 1376256: 2151678016, - 1441792: 2151682048, - 1507328: 2147487808, - 1572864: 2151682112, - 1638400: 2147483648, - 1703936: 2151677952, - 1769472: 4198464, - 1835008: 2147487744, - 1900544: 4194304, - 1966080: 64, - 2031616: 4096, - 1081344: 2151677952, - 1146880: 2151682112, - 1212416: 0, - 1277952: 4198400, - 1343488: 4194368, - 1409024: 2147483648, - 1474560: 2147487808, - 1540096: 64, - 1605632: 2147483712, - 1671168: 4096, - 1736704: 2147487744, - 1802240: 2151678016, - 1867776: 4160, - 1933312: 2151682048, - 1998848: 4194304, - 2064384: 4198464 - }, { - 0: 128, - 4096: 17039360, - 8192: 262144, - 12288: 536870912, - 16384: 537133184, - 20480: 16777344, - 24576: 553648256, - 28672: 262272, - 32768: 16777216, - 36864: 537133056, - 40960: 536871040, - 45056: 553910400, - 49152: 553910272, - 53248: 0, - 57344: 17039488, - 61440: 553648128, - 2048: 17039488, - 6144: 553648256, - 10240: 128, - 14336: 17039360, - 18432: 262144, - 22528: 537133184, - 26624: 553910272, - 30720: 536870912, - 34816: 537133056, - 38912: 0, - 43008: 553910400, - 47104: 16777344, - 51200: 536871040, - 55296: 553648128, - 59392: 16777216, - 63488: 262272, - 65536: 262144, - 69632: 128, - 73728: 536870912, - 77824: 553648256, - 81920: 16777344, - 86016: 553910272, - 90112: 537133184, - 94208: 16777216, - 98304: 553910400, - 102400: 553648128, - 106496: 17039360, - 110592: 537133056, - 114688: 262272, - 118784: 536871040, - 122880: 0, - 126976: 17039488, - 67584: 553648256, - 71680: 16777216, - 75776: 17039360, - 79872: 537133184, - 83968: 536870912, - 88064: 17039488, - 92160: 128, - 96256: 553910272, - 100352: 262272, - 104448: 553910400, - 108544: 0, - 112640: 553648128, - 116736: 16777344, - 120832: 262144, - 124928: 537133056, - 129024: 536871040 - }, { - 0: 268435464, - 256: 8192, - 512: 270532608, - 768: 270540808, - 1024: 268443648, - 1280: 2097152, - 1536: 2097160, - 1792: 268435456, - 2048: 0, - 2304: 268443656, - 2560: 2105344, - 2816: 8, - 3072: 270532616, - 3328: 2105352, - 3584: 8200, - 3840: 270540800, - 128: 270532608, - 384: 270540808, - 640: 8, - 896: 2097152, - 1152: 2105352, - 1408: 268435464, - 1664: 268443648, - 1920: 8200, - 2176: 2097160, - 2432: 8192, - 2688: 268443656, - 2944: 270532616, - 3200: 0, - 3456: 270540800, - 3712: 2105344, - 3968: 268435456, - 4096: 268443648, - 4352: 270532616, - 4608: 270540808, - 4864: 8200, - 5120: 2097152, - 5376: 268435456, - 5632: 268435464, - 5888: 2105344, - 6144: 2105352, - 6400: 0, - 6656: 8, - 6912: 270532608, - 7168: 8192, - 7424: 268443656, - 7680: 270540800, - 7936: 2097160, - 4224: 8, - 4480: 2105344, - 4736: 2097152, - 4992: 268435464, - 5248: 268443648, - 5504: 8200, - 5760: 270540808, - 6016: 270532608, - 6272: 270540800, - 6528: 270532616, - 6784: 8192, - 7040: 2105352, - 7296: 2097160, - 7552: 0, - 7808: 268435456, - 8064: 268443656 - }, { - 0: 1048576, - 16: 33555457, - 32: 1024, - 48: 1049601, - 64: 34604033, - 80: 0, - 96: 1, - 112: 34603009, - 128: 33555456, - 144: 1048577, - 160: 33554433, - 176: 34604032, - 192: 34603008, - 208: 1025, - 224: 1049600, - 240: 33554432, - 8: 34603009, - 24: 0, - 40: 33555457, - 56: 34604032, - 72: 1048576, - 88: 33554433, - 104: 33554432, - 120: 1025, - 136: 1049601, - 152: 33555456, - 168: 34603008, - 184: 1048577, - 200: 1024, - 216: 34604033, - 232: 1, - 248: 1049600, - 256: 33554432, - 272: 1048576, - 288: 33555457, - 304: 34603009, - 320: 1048577, - 336: 33555456, - 352: 34604032, - 368: 1049601, - 384: 1025, - 400: 34604033, - 416: 1049600, - 432: 1, - 448: 0, - 464: 34603008, - 480: 33554433, - 496: 1024, - 264: 1049600, - 280: 33555457, - 296: 34603009, - 312: 1, - 328: 33554432, - 344: 1048576, - 360: 1025, - 376: 34604032, - 392: 33554433, - 408: 34603008, - 424: 0, - 440: 34604033, - 456: 1049601, - 472: 1024, - 488: 33555456, - 504: 1048577 - }, { - 0: 134219808, - 1: 131072, - 2: 134217728, - 3: 32, - 4: 131104, - 5: 134350880, - 6: 134350848, - 7: 2048, - 8: 134348800, - 9: 134219776, - 10: 133120, - 11: 134348832, - 12: 2080, - 13: 0, - 14: 134217760, - 15: 133152, - 2147483648: 2048, - 2147483649: 134350880, - 2147483650: 134219808, - 2147483651: 134217728, - 2147483652: 134348800, - 2147483653: 133120, - 2147483654: 133152, - 2147483655: 32, - 2147483656: 134217760, - 2147483657: 2080, - 2147483658: 131104, - 2147483659: 134350848, - 2147483660: 0, - 2147483661: 134348832, - 2147483662: 134219776, - 2147483663: 131072, - 16: 133152, - 17: 134350848, - 18: 32, - 19: 2048, - 20: 134219776, - 21: 134217760, - 22: 134348832, - 23: 131072, - 24: 0, - 25: 131104, - 26: 134348800, - 27: 134219808, - 28: 134350880, - 29: 133120, - 30: 2080, - 31: 134217728, - 2147483664: 131072, - 2147483665: 2048, - 2147483666: 134348832, - 2147483667: 133152, - 2147483668: 32, - 2147483669: 134348800, - 2147483670: 134217728, - 2147483671: 134219808, - 2147483672: 134350880, - 2147483673: 134217760, - 2147483674: 134219776, - 2147483675: 0, - 2147483676: 133120, - 2147483677: 2080, - 2147483678: 131104, - 2147483679: 134350848 - }], - u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], - d = a.DES = s.extend({ - _doReset: function _doReset() { - for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { - var n = c[i] - 1; - e[i] = r[n >>> 5] >>> 31 - n % 32 & 1; - } - - for (var o = this._subKeys = [], s = 0; s < 16; s++) { - for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++) { - a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; + n = i.lib, + o = n.WordArray, + s = n.BlockCipher, + a = i.algo, + c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], + h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], + l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], + f = [{ + 0: 8421888, + 268435456: 32768, + 536870912: 8421378, + 805306368: 2, + 1073741824: 512, + 1342177280: 8421890, + 1610612736: 8389122, + 1879048192: 8388608, + 2147483648: 514, + 2415919104: 8389120, + 2684354560: 33280, + 2952790016: 8421376, + 3221225472: 32770, + 3489660928: 8388610, + 3758096384: 0, + 4026531840: 33282, + 134217728: 0, + 402653184: 8421890, + 671088640: 33282, + 939524096: 32768, + 1207959552: 8421888, + 1476395008: 512, + 1744830464: 8421378, + 2013265920: 2, + 2281701376: 8389120, + 2550136832: 33280, + 2818572288: 8421376, + 3087007744: 8389122, + 3355443200: 8388610, + 3623878656: 32770, + 3892314112: 514, + 4160749568: 8388608, + 1: 32768, + 268435457: 2, + 536870913: 8421888, + 805306369: 8388608, + 1073741825: 8421378, + 1342177281: 33280, + 1610612737: 512, + 1879048193: 8389122, + 2147483649: 8421890, + 2415919105: 8421376, + 2684354561: 8388610, + 2952790017: 33282, + 3221225473: 514, + 3489660929: 8389120, + 3758096385: 32770, + 4026531841: 0, + 134217729: 8421890, + 402653185: 8421376, + 671088641: 8388608, + 939524097: 512, + 1207959553: 32768, + 1476395009: 8388610, + 1744830465: 2, + 2013265921: 33282, + 2281701377: 32770, + 2550136833: 8389122, + 2818572289: 514, + 3087007745: 8421888, + 3355443201: 8389120, + 3623878657: 0, + 3892314113: 33280, + 4160749569: 8421378 + }, { + 0: 1074282512, + 16777216: 16384, + 33554432: 524288, + 50331648: 1074266128, + 67108864: 1073741840, + 83886080: 1074282496, + 100663296: 1073758208, + 117440512: 16, + 134217728: 540672, + 150994944: 1073758224, + 167772160: 1073741824, + 184549376: 540688, + 201326592: 524304, + 218103808: 0, + 234881024: 16400, + 251658240: 1074266112, + 8388608: 1073758208, + 25165824: 540688, + 41943040: 16, + 58720256: 1073758224, + 75497472: 1074282512, + 92274688: 1073741824, + 109051904: 524288, + 125829120: 1074266128, + 142606336: 524304, + 159383552: 0, + 176160768: 16384, + 192937984: 1074266112, + 209715200: 1073741840, + 226492416: 540672, + 243269632: 1074282496, + 260046848: 16400, + 268435456: 0, + 285212672: 1074266128, + 301989888: 1073758224, + 318767104: 1074282496, + 335544320: 1074266112, + 352321536: 16, + 369098752: 540688, + 385875968: 16384, + 402653184: 16400, + 419430400: 524288, + 436207616: 524304, + 452984832: 1073741840, + 469762048: 540672, + 486539264: 1073758208, + 503316480: 1073741824, + 520093696: 1074282512, + 276824064: 540688, + 293601280: 524288, + 310378496: 1074266112, + 327155712: 16384, + 343932928: 1073758208, + 360710144: 1074282512, + 377487360: 16, + 394264576: 1073741824, + 411041792: 1074282496, + 427819008: 1073741840, + 444596224: 1073758224, + 461373440: 524304, + 478150656: 0, + 494927872: 16400, + 511705088: 1074266128, + 528482304: 540672 + }, { + 0: 260, + 1048576: 0, + 2097152: 67109120, + 3145728: 65796, + 4194304: 65540, + 5242880: 67108868, + 6291456: 67174660, + 7340032: 67174400, + 8388608: 67108864, + 9437184: 67174656, + 10485760: 65792, + 11534336: 67174404, + 12582912: 67109124, + 13631488: 65536, + 14680064: 4, + 15728640: 256, + 524288: 67174656, + 1572864: 67174404, + 2621440: 0, + 3670016: 67109120, + 4718592: 67108868, + 5767168: 65536, + 6815744: 65540, + 7864320: 260, + 8912896: 4, + 9961472: 256, + 11010048: 67174400, + 12058624: 65796, + 13107200: 65792, + 14155776: 67109124, + 15204352: 67174660, + 16252928: 67108864, + 16777216: 67174656, + 17825792: 65540, + 18874368: 65536, + 19922944: 67109120, + 20971520: 256, + 22020096: 67174660, + 23068672: 67108868, + 24117248: 0, + 25165824: 67109124, + 26214400: 67108864, + 27262976: 4, + 28311552: 65792, + 29360128: 67174400, + 30408704: 260, + 31457280: 65796, + 32505856: 67174404, + 17301504: 67108864, + 18350080: 260, + 19398656: 67174656, + 20447232: 0, + 21495808: 65540, + 22544384: 67109120, + 23592960: 256, + 24641536: 67174404, + 25690112: 65536, + 26738688: 67174660, + 27787264: 65796, + 28835840: 67108868, + 29884416: 67109124, + 30932992: 67174400, + 31981568: 4, + 33030144: 65792 + }, { + 0: 2151682048, + 65536: 2147487808, + 131072: 4198464, + 196608: 2151677952, + 262144: 0, + 327680: 4198400, + 393216: 2147483712, + 458752: 4194368, + 524288: 2147483648, + 589824: 4194304, + 655360: 64, + 720896: 2147487744, + 786432: 2151678016, + 851968: 4160, + 917504: 4096, + 983040: 2151682112, + 32768: 2147487808, + 98304: 64, + 163840: 2151678016, + 229376: 2147487744, + 294912: 4198400, + 360448: 2151682112, + 425984: 0, + 491520: 2151677952, + 557056: 4096, + 622592: 2151682048, + 688128: 4194304, + 753664: 4160, + 819200: 2147483648, + 884736: 4194368, + 950272: 4198464, + 1015808: 2147483712, + 1048576: 4194368, + 1114112: 4198400, + 1179648: 2147483712, + 1245184: 0, + 1310720: 4160, + 1376256: 2151678016, + 1441792: 2151682048, + 1507328: 2147487808, + 1572864: 2151682112, + 1638400: 2147483648, + 1703936: 2151677952, + 1769472: 4198464, + 1835008: 2147487744, + 1900544: 4194304, + 1966080: 64, + 2031616: 4096, + 1081344: 2151677952, + 1146880: 2151682112, + 1212416: 0, + 1277952: 4198400, + 1343488: 4194368, + 1409024: 2147483648, + 1474560: 2147487808, + 1540096: 64, + 1605632: 2147483712, + 1671168: 4096, + 1736704: 2147487744, + 1802240: 2151678016, + 1867776: 4160, + 1933312: 2151682048, + 1998848: 4194304, + 2064384: 4198464 + }, { + 0: 128, + 4096: 17039360, + 8192: 262144, + 12288: 536870912, + 16384: 537133184, + 20480: 16777344, + 24576: 553648256, + 28672: 262272, + 32768: 16777216, + 36864: 537133056, + 40960: 536871040, + 45056: 553910400, + 49152: 553910272, + 53248: 0, + 57344: 17039488, + 61440: 553648128, + 2048: 17039488, + 6144: 553648256, + 10240: 128, + 14336: 17039360, + 18432: 262144, + 22528: 537133184, + 26624: 553910272, + 30720: 536870912, + 34816: 537133056, + 38912: 0, + 43008: 553910400, + 47104: 16777344, + 51200: 536871040, + 55296: 553648128, + 59392: 16777216, + 63488: 262272, + 65536: 262144, + 69632: 128, + 73728: 536870912, + 77824: 553648256, + 81920: 16777344, + 86016: 553910272, + 90112: 537133184, + 94208: 16777216, + 98304: 553910400, + 102400: 553648128, + 106496: 17039360, + 110592: 537133056, + 114688: 262272, + 118784: 536871040, + 122880: 0, + 126976: 17039488, + 67584: 553648256, + 71680: 16777216, + 75776: 17039360, + 79872: 537133184, + 83968: 536870912, + 88064: 17039488, + 92160: 128, + 96256: 553910272, + 100352: 262272, + 104448: 553910400, + 108544: 0, + 112640: 553648128, + 116736: 16777344, + 120832: 262144, + 124928: 537133056, + 129024: 536871040 + }, { + 0: 268435464, + 256: 8192, + 512: 270532608, + 768: 270540808, + 1024: 268443648, + 1280: 2097152, + 1536: 2097160, + 1792: 268435456, + 2048: 0, + 2304: 268443656, + 2560: 2105344, + 2816: 8, + 3072: 270532616, + 3328: 2105352, + 3584: 8200, + 3840: 270540800, + 128: 270532608, + 384: 270540808, + 640: 8, + 896: 2097152, + 1152: 2105352, + 1408: 268435464, + 1664: 268443648, + 1920: 8200, + 2176: 2097160, + 2432: 8192, + 2688: 268443656, + 2944: 270532616, + 3200: 0, + 3456: 270540800, + 3712: 2105344, + 3968: 268435456, + 4096: 268443648, + 4352: 270532616, + 4608: 270540808, + 4864: 8200, + 5120: 2097152, + 5376: 268435456, + 5632: 268435464, + 5888: 2105344, + 6144: 2105352, + 6400: 0, + 6656: 8, + 6912: 270532608, + 7168: 8192, + 7424: 268443656, + 7680: 270540800, + 7936: 2097160, + 4224: 8, + 4480: 2105344, + 4736: 2097152, + 4992: 268435464, + 5248: 268443648, + 5504: 8200, + 5760: 270540808, + 6016: 270532608, + 6272: 270540800, + 6528: 270532616, + 6784: 8192, + 7040: 2105352, + 7296: 2097160, + 7552: 0, + 7808: 268435456, + 8064: 268443656 + }, { + 0: 1048576, + 16: 33555457, + 32: 1024, + 48: 1049601, + 64: 34604033, + 80: 0, + 96: 1, + 112: 34603009, + 128: 33555456, + 144: 1048577, + 160: 33554433, + 176: 34604032, + 192: 34603008, + 208: 1025, + 224: 1049600, + 240: 33554432, + 8: 34603009, + 24: 0, + 40: 33555457, + 56: 34604032, + 72: 1048576, + 88: 33554433, + 104: 33554432, + 120: 1025, + 136: 1049601, + 152: 33555456, + 168: 34603008, + 184: 1048577, + 200: 1024, + 216: 34604033, + 232: 1, + 248: 1049600, + 256: 33554432, + 272: 1048576, + 288: 33555457, + 304: 34603009, + 320: 1048577, + 336: 33555456, + 352: 34604032, + 368: 1049601, + 384: 1025, + 400: 34604033, + 416: 1049600, + 432: 1, + 448: 0, + 464: 34603008, + 480: 33554433, + 496: 1024, + 264: 1049600, + 280: 33555457, + 296: 34603009, + 312: 1, + 328: 33554432, + 344: 1048576, + 360: 1025, + 376: 34604032, + 392: 33554433, + 408: 34603008, + 424: 0, + 440: 34604033, + 456: 1049601, + 472: 1024, + 488: 33555456, + 504: 1048577 + }, { + 0: 134219808, + 1: 131072, + 2: 134217728, + 3: 32, + 4: 131104, + 5: 134350880, + 6: 134350848, + 7: 2048, + 8: 134348800, + 9: 134219776, + 10: 133120, + 11: 134348832, + 12: 2080, + 13: 0, + 14: 134217760, + 15: 133152, + 2147483648: 2048, + 2147483649: 134350880, + 2147483650: 134219808, + 2147483651: 134217728, + 2147483652: 134348800, + 2147483653: 133120, + 2147483654: 133152, + 2147483655: 32, + 2147483656: 134217760, + 2147483657: 2080, + 2147483658: 131104, + 2147483659: 134350848, + 2147483660: 0, + 2147483661: 134348832, + 2147483662: 134219776, + 2147483663: 131072, + 16: 133152, + 17: 134350848, + 18: 32, + 19: 2048, + 20: 134219776, + 21: 134217760, + 22: 134348832, + 23: 131072, + 24: 0, + 25: 131104, + 26: 134348800, + 27: 134219808, + 28: 134350880, + 29: 133120, + 30: 2080, + 31: 134217728, + 2147483664: 131072, + 2147483665: 2048, + 2147483666: 134348832, + 2147483667: 133152, + 2147483668: 32, + 2147483669: 134348800, + 2147483670: 134217728, + 2147483671: 134219808, + 2147483672: 134350880, + 2147483673: 134217760, + 2147483674: 134219776, + 2147483675: 0, + 2147483676: 133120, + 2147483677: 2080, + 2147483678: 131104, + 2147483679: 134350848 + }], + u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], + d = a.DES = s.extend({ + _doReset: function _doReset() { + for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { + var n = c[i] - 1; + e[i] = r[n >>> 5] >>> 31 - n % 32 & 1; } - - a[0] = a[0] << 1 | a[0] >>> 31; - - for (var i = 1; i < 7; i++) { - a[i] = a[i] >>> 4 * (i - 1) + 3; + for (var o = this._subKeys = [], s = 0; s < 16; s++) { + for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++) a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; + a[0] = a[0] << 1 | a[0] >>> 31; + for (var i = 1; i < 7; i++) a[i] = a[i] >>> 4 * (i - 1) + 3; + a[7] = a[7] << 5 | a[7] >>> 27; } - - a[7] = a[7] << 5 | a[7] >>> 27; - } - - for (var u = this._invSubKeys = [], i = 0; i < 16; i++) { - u[i] = o[15 - i]; - } - }, - encryptBlock: function encryptBlock(t, r) { - this._doCryptBlock(t, r, this._subKeys); - }, - decryptBlock: function decryptBlock(t, r) { - this._doCryptBlock(t, r, this._invSubKeys); - }, - _doCryptBlock: function _doCryptBlock(t, i, n) { - this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); - - for (var o = 0; o < 16; o++) { - for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++) { - h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; + for (var u = this._invSubKeys = [], i = 0; i < 16; i++) u[i] = o[15 - i]; + }, + encryptBlock: function encryptBlock(t, r) { + this._doCryptBlock(t, r, this._subKeys); + }, + decryptBlock: function decryptBlock(t, r) { + this._doCryptBlock(t, r, this._invSubKeys); + }, + _doCryptBlock: function _doCryptBlock(t, i, n) { + this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); + for (var o = 0; o < 16; o++) { + for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++) h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; + this._lBlock = c, this._rBlock = a ^ h; } - - this._lBlock = c, this._rBlock = a ^ h; - } - - var d = this._lBlock; - this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock; - }, - keySize: 2, - ivSize: 2, - blockSize: 2 - }); + var d = this._lBlock; + this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock; + }, + keySize: 2, + ivSize: 2, + blockSize: 2 + }); i.DES = s._createHelper(d); var v = a.TripleDES = s.extend({ _doReset: function _doReset() { var t = this._key, - r = t.words; + r = t.words; this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))); }, encryptBlock: function encryptBlock(t, r) { @@ -2084,36 +1880,30 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); var o = t[r]; t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n; } - return this._i = r, this._j = e, i; } - var e = t, - i = e.lib, - n = i.StreamCipher, - o = e.algo, - s = o.RC4 = n.extend({ - _doReset: function _doReset() { - for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++) { - i[n] = n; - } - - for (var n = 0, o = 0; n < 256; n++) { - var s = n % e, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = o.RC4 = n.extend({ + _doReset: function _doReset() { + for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++) i[n] = n; + for (var n = 0, o = 0; n < 256; n++) { + var s = n % e, a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; - o = (o + i[n] + a) % 256; - var c = i[n]; - i[n] = i[o], i[o] = c; - } - - this._i = this._j = 0; - }, - _doProcessBlock: function _doProcessBlock(t, e) { - t[e] ^= r.call(this); - }, - keySize: 8, - ivSize: 0 - }); + o = (o + i[n] + a) % 256; + var c = i[n]; + i[n] = i[o], i[o] = c; + } + this._i = this._j = 0; + }, + _doProcessBlock: function _doProcessBlock(t, e) { + t[e] ^= r.call(this); + }, + keySize: 8, + ivSize: 0 + }); e.RC4 = n._createHelper(s); var a = o.RC4Drop = s.extend({ cfg: s.cfg.extend({ @@ -2121,10 +1911,7 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }), _doReset: function _doReset() { s._doReset.call(this); - - for (var t = this.cfg.drop; t > 0; t--) { - r.call(this); - } + for (var t = this.cfg.drop; t > 0; t--) r.call(this); } }); e.RC4Drop = n._createHelper(a); @@ -2132,194 +1919,144 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, - e = t >> 8 & 255, - i = 255 & t; + e = t >> 8 & 255, + i = 255 & t; 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i; } else t += 1 << 24; - return t; } - function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t; } - var i = t.lib.BlockCipherMode.extend(), - n = i.Encryptor = i.extend({ - processBlock: function processBlock(t, r) { - var i = this._cipher, + n = i.Encryptor = i.extend({ + processBlock: function processBlock(t, r) { + var i = this._cipher, n = i.blockSize, o = this._iv, s = this._counter; - o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); - var a = s.slice(0); - i.encryptBlock(a, 0); - - for (var c = 0; c < n; c++) { - t[r + c] ^= a[c]; + o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); + var a = s.slice(0); + i.encryptBlock(a, 0); + for (var c = 0; c < n; c++) t[r + c] ^= a[c]; } - } - }); + }); return i.Decryptor = n, i; }(), function () { function r() { - for (var t = this._X, r = this._C, e = 0; e < 8; e++) { - a[e] = r[e]; - } - + for (var t = this._X, r = this._C, e = 0; e < 8; e++) a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; - for (var e = 0; e < 8; e++) { var i = t[e] + r[e], - n = 65535 & i, - o = i >>> 16, - s = ((n * n >>> 17) + n * o >>> 15) + o * o, - h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); + n = 65535 & i, + o = i >>> 16, + s = ((n * n >>> 17) + n * o >>> 15) + o * o, + h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h; } - t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; } - var e = t, - i = e.lib, - n = i.StreamCipher, - o = e.algo, - s = [], - a = [], - c = [], - h = o.Rabbit = n.extend({ - _doReset: function _doReset() { - for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++) { - t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); - } - - var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = [], + a = [], + c = [], + h = o.Rabbit = n.extend({ + _doReset: function _doReset() { + for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++) t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); + var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; - this._b = 0; - - for (var i = 0; i < 4; i++) { - r.call(this); - } - - for (var i = 0; i < 8; i++) { - o[i] ^= n[i + 4 & 7]; - } - - if (e) { - var s = e.words, + this._b = 0; + for (var i = 0; i < 4; i++) r.call(this); + for (var i = 0; i < 8; i++) o[i] ^= n[i + 4 & 7]; + if (e) { + var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; - o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; - - for (var i = 0; i < 4; i++) { - r.call(this); + o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; + for (var i = 0; i < 4; i++) r.call(this); } - } - }, - _doProcessBlock: function _doProcessBlock(t, e) { - var i = this._X; - r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; - - for (var n = 0; n < 4; n++) { - s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; - } - }, - blockSize: 4, - ivSize: 2 - }); + }, + _doProcessBlock: function _doProcessBlock(t, e) { + var i = this._X; + r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; + for (var n = 0; n < 4; n++) s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; + }, + blockSize: 4, + ivSize: 2 + }); e.Rabbit = n._createHelper(h); }(), t.mode.CTR = function () { var r = t.lib.BlockCipherMode.extend(), - e = r.Encryptor = r.extend({ - processBlock: function processBlock(t, r) { - var e = this._cipher, + e = r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + var e = this._cipher, i = e.blockSize, n = this._iv, o = this._counter; - n && (o = this._counter = n.slice(0), this._iv = void 0); - var s = o.slice(0); - e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; - - for (var a = 0; a < i; a++) { - t[r + a] ^= s[a]; + n && (o = this._counter = n.slice(0), this._iv = void 0); + var s = o.slice(0); + e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; + for (var a = 0; a < i; a++) t[r + a] ^= s[a]; } - } - }); + }); return r.Decryptor = e, r; }(), function () { function r() { - for (var t = this._X, r = this._C, e = 0; e < 8; e++) { - a[e] = r[e]; - } - + for (var t = this._X, r = this._C, e = 0; e < 8; e++) a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; - for (var e = 0; e < 8; e++) { var i = t[e] + r[e], - n = 65535 & i, - o = i >>> 16, - s = ((n * n >>> 17) + n * o >>> 15) + o * o, - h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); + n = 65535 & i, + o = i >>> 16, + s = ((n * n >>> 17) + n * o >>> 15) + o * o, + h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h; } - t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; } - var e = t, - i = e.lib, - n = i.StreamCipher, - o = e.algo, - s = [], - a = [], - c = [], - h = o.RabbitLegacy = n.extend({ - _doReset: function _doReset() { - var t = this._key.words, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = [], + a = [], + c = [], + h = o.RabbitLegacy = n.extend({ + _doReset: function _doReset() { + var t = this._key.words, e = this.cfg.iv, i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; - this._b = 0; - - for (var o = 0; o < 4; o++) { - r.call(this); - } - - for (var o = 0; o < 8; o++) { - n[o] ^= i[o + 4 & 7]; - } - - if (e) { - var s = e.words, + this._b = 0; + for (var o = 0; o < 4; o++) r.call(this); + for (var o = 0; o < 8; o++) n[o] ^= i[o + 4 & 7]; + if (e) { + var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; - n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; - - for (var o = 0; o < 4; o++) { - r.call(this); + n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; + for (var o = 0; o < 4; o++) r.call(this); } - } - }, - _doProcessBlock: function _doProcessBlock(t, e) { - var i = this._X; - r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; - - for (var n = 0; n < 4; n++) { - s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; - } - }, - blockSize: 4, - ivSize: 2 - }); + }, + _doProcessBlock: function _doProcessBlock(t, e) { + var i = this._X; + r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; + for (var n = 0; n < 4; n++) s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; + }, + blockSize: 4, + ivSize: 2 + }); e.RabbitLegacy = n._createHelper(h); }(), t.pad.ZeroPadding = { pad: function pad(t, r) { @@ -2327,16 +2064,14 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); t.clamp(), t.sigBytes += e - (t.sigBytes % e || e); }, unpad: function unpad(t) { - for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);) { - e--; - } - + for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);) e--; t.sigBytes = e + 1; } }, t; -}); //# sourceMappingURL=crypto-js.min.js.map +}); cc._RF.pop(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENyeXB0b1xcY3J5cHRvLWpzLm1pbi5qcyJdLCJuYW1lcyI6WyJ0IiwiciIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJDcnlwdG9KUyIsImUiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm90b3R5cGUiLCJpIiwibiIsImxpYiIsIm8iLCJCYXNlIiwiZXh0ZW5kIiwibWl4SW4iLCJoYXNPd25Qcm9wZXJ0eSIsImluaXQiLCIkc3VwZXIiLCJhcHBseSIsImFyZ3VtZW50cyIsInRvU3RyaW5nIiwiY2xvbmUiLCJzIiwiV29yZEFycmF5Iiwid29yZHMiLCJzaWdCeXRlcyIsImxlbmd0aCIsImMiLCJzdHJpbmdpZnkiLCJjb25jYXQiLCJjbGFtcCIsImNlaWwiLCJjYWxsIiwic2xpY2UiLCJyYW5kb20iLCJhIiwicHVzaCIsImVuYyIsIkhleCIsImpvaW4iLCJwYXJzZSIsInBhcnNlSW50Iiwic3Vic3RyIiwiaCIsIkxhdGluMSIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsImNoYXJDb2RlQXQiLCJsIiwiVXRmOCIsImRlY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsIkVycm9yIiwidW5lc2NhcGUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJmIiwiQnVmZmVyZWRCbG9ja0FsZ29yaXRobSIsInJlc2V0IiwiX2RhdGEiLCJfbkRhdGFCeXRlcyIsIl9hcHBlbmQiLCJfcHJvY2VzcyIsImJsb2NrU2l6ZSIsIm1heCIsIl9taW5CdWZmZXJTaXplIiwibWluIiwiX2RvUHJvY2Vzc0Jsb2NrIiwidSIsInNwbGljZSIsIkhhc2hlciIsImNmZyIsIl9kb1Jlc2V0IiwidXBkYXRlIiwiZmluYWxpemUiLCJfZG9GaW5hbGl6ZSIsIl9jcmVhdGVIZWxwZXIiLCJfY3JlYXRlSG1hY0hlbHBlciIsIkhNQUMiLCJhbGdvIiwiTWF0aCIsIkJhc2U2NCIsIl9tYXAiLCJjaGFyQXQiLCJfcmV2ZXJzZU1hcCIsImluZGV4T2YiLCJhYnMiLCJzaW4iLCJNRDUiLCJfaGFzaCIsImQiLCJ2IiwicCIsIl8iLCJ5IiwiZyIsIkIiLCJ3IiwiayIsIlMiLCJtIiwieCIsImIiLCJIIiwieiIsIkEiLCJDIiwiRCIsImZsb29yIiwiSG1hY01ENSIsIlNIQTEiLCJIbWFjU0hBMSIsInNxcnQiLCJwb3ciLCJTSEEyNTYiLCJIbWFjU0hBMjU2IiwiVXRmMTYiLCJVdGYxNkJFIiwiVXRmMTZMRSIsIkFycmF5QnVmZmVyIiwiVWludDhBcnJheSIsIkludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiSW50MTZBcnJheSIsIlVpbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIlVpbnQzMkFycmF5IiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiYnVmZmVyIiwiYnl0ZU9mZnNldCIsImJ5dGVMZW5ndGgiLCJSSVBFTUQxNjAiLCJSIiwiRSIsIk0iLCJGIiwiSG1hY1JJUEVNRDE2MCIsIl9oYXNoZXIiLCJfb0tleSIsIl9pS2V5IiwiUEJLREYyIiwia2V5U2l6ZSIsImhhc2hlciIsIml0ZXJhdGlvbnMiLCJjb21wdXRlIiwiRXZwS0RGIiwiU0hBMjI0IiwiSG1hY1NIQTIyNCIsIng2NCIsIldvcmQiLCJoaWdoIiwibG93IiwidG9YMzIiLCJTSEEzIiwib3V0cHV0TGVuZ3RoIiwiX3N0YXRlIiwiSG1hY1NIQTMiLCJTSEE1MTIiLCJQIiwiVyIsIk8iLCJVIiwiSSIsIksiLCJYIiwiTCIsImoiLCJOIiwiVCIsIloiLCJxIiwiRyIsIkoiLCIkIiwiUSIsIlYiLCJZIiwidHQiLCJydCIsImV0IiwiaXQiLCJudCIsIm90Iiwic3QiLCJhdCIsImN0IiwiaHQiLCJsdCIsImZ0IiwidXQiLCJkdCIsInZ0IiwicHQiLCJfdCIsInl0IiwiZ3QiLCJCdCIsInd0Iiwia3QiLCJTdCIsIm10IiwieHQiLCJidCIsIkhtYWNTSEE1MTIiLCJTSEEzODQiLCJIbWFjU0hBMzg0IiwiQ2lwaGVyIiwiY3JlYXRlRW5jcnlwdG9yIiwiX0VOQ19YRk9STV9NT0RFIiwiY3JlYXRlRGVjcnlwdG9yIiwiX0RFQ19YRk9STV9NT0RFIiwiX3hmb3JtTW9kZSIsIl9rZXkiLCJwcm9jZXNzIiwiaXZTaXplIiwiZW5jcnlwdCIsImRlY3J5cHQiLCJTdHJlYW1DaXBoZXIiLCJtb2RlIiwiQmxvY2tDaXBoZXJNb2RlIiwiRW5jcnlwdG9yIiwiRGVjcnlwdG9yIiwiX2NpcGhlciIsIl9pdiIsIkNCQyIsIl9wcmV2QmxvY2siLCJwcm9jZXNzQmxvY2siLCJlbmNyeXB0QmxvY2siLCJkZWNyeXB0QmxvY2siLCJwYWQiLCJQa2NzNyIsInVucGFkIiwiQmxvY2tDaXBoZXIiLCJwYWRkaW5nIiwiaXYiLCJfbW9kZSIsIl9fY3JlYXRvciIsIkNpcGhlclBhcmFtcyIsImZvcm1hdHRlciIsImZvcm1hdCIsIk9wZW5TU0wiLCJjaXBoZXJ0ZXh0Iiwic2FsdCIsIlNlcmlhbGl6YWJsZUNpcGhlciIsImtleSIsImFsZ29yaXRobSIsIl9wYXJzZSIsImtkZiIsImV4ZWN1dGUiLCJQYXNzd29yZEJhc2VkQ2lwaGVyIiwiQ0ZCIiwiRUNCIiwiQW5zaVg5MjMiLCJJc28xMDEyNiIsIklzbzk3OTcxIiwiWmVyb1BhZGRpbmciLCJPRkIiLCJfa2V5c3RyZWFtIiwiTm9QYWRkaW5nIiwiQUVTIiwiX25Sb3VuZHMiLCJfa2V5UHJpb3JSZXNldCIsIl9rZXlTY2hlZHVsZSIsIl9pbnZLZXlTY2hlZHVsZSIsIl9kb0NyeXB0QmxvY2siLCJfbEJsb2NrIiwiX3JCbG9jayIsIkRFUyIsIl9zdWJLZXlzIiwiX2ludlN1YktleXMiLCJUcmlwbGVERVMiLCJfZGVzMSIsIl9kZXMyIiwiX2RlczMiLCJfUyIsIl9pIiwiX2oiLCJSQzQiLCJSQzREcm9wIiwiZHJvcCIsIkNUUkdsYWRtYW4iLCJfY291bnRlciIsIl9YIiwiX0MiLCJfYiIsIlJhYmJpdCIsIkNUUiIsIlJhYmJpdExlZ2FjeSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsQ0FBQyxVQUFTQSxDQUFDLEVBQUNDLENBQUMsRUFBQztFQUFDLFFBQVEsSUFBRSxPQUFPQyxPQUFPLEdBQUNDLE1BQU0sQ0FBQ0QsT0FBTyxHQUFDQSxPQUFPLEdBQUNELENBQUMsRUFBRSxHQUFDLFVBQVUsSUFBRSxPQUFPRyxNQUFNLElBQUVBLE1BQU0sQ0FBQ0MsR0FBRyxHQUFDRCxNQUFNLENBQUMsRUFBRSxFQUFDSCxDQUFDLENBQUMsR0FBQ0QsQ0FBQyxDQUFDTSxRQUFRLEdBQUNMLENBQUMsRUFBRTtBQUFBLENBQUMsU0FBTSxZQUFVO0VBQUMsSUFBSUQsQ0FBQyxHQUFDQSxDQUFDLElBQUUsVUFBU0EsQ0FBQyxFQUFDQyxDQUFDLEVBQUM7SUFBQyxJQUFJTSxDQUFDLEdBQUNDLE1BQU0sQ0FBQ0MsTUFBTSxJQUFFLFlBQVU7UUFBQyxTQUFTVCxDQUFDQSxDQUFBLEVBQUUsQ0FBQztRQUFDLE9BQU8sVUFBU0MsQ0FBQyxFQUFDO1VBQUMsSUFBSU0sQ0FBQztVQUFDLE9BQU9QLENBQUMsQ0FBQ1UsU0FBUyxHQUFDVCxDQUFDLEVBQUNNLENBQUMsR0FBQyxJQUFJUCxDQUFDLElBQUNBLENBQUMsQ0FBQ1UsU0FBUyxHQUFDLElBQUksRUFBQ0gsQ0FBQztRQUFBLENBQUM7TUFBQSxDQUFDLEVBQUU7TUFBQ0ksQ0FBQyxHQUFDLENBQUMsQ0FBQztNQUFDQyxDQUFDLEdBQUNELENBQUMsQ0FBQ0UsR0FBRyxHQUFDLENBQUMsQ0FBQztNQUFDQyxDQUFDLEdBQUNGLENBQUMsQ0FBQ0csSUFBSSxHQUFDLFlBQVU7UUFBQyxPQUFNO1VBQUNDLE1BQU0sRUFBQyxTQUFBQSxPQUFTaEIsQ0FBQyxFQUFDO1lBQUMsSUFBSUMsQ0FBQyxHQUFDTSxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQUMsT0FBT1AsQ0FBQyxJQUFFQyxDQUFDLENBQUNnQixLQUFLLENBQUNqQixDQUFDLENBQUMsRUFBQ0MsQ0FBQyxDQUFDaUIsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFFLElBQUksQ0FBQ0MsSUFBSSxLQUFHbEIsQ0FBQyxDQUFDa0IsSUFBSSxLQUFHbEIsQ0FBQyxDQUFDa0IsSUFBSSxHQUFDLFlBQVU7Y0FBQ2xCLENBQUMsQ0FBQ21CLE1BQU0sQ0FBQ0QsSUFBSSxDQUFDRSxLQUFLLENBQUMsSUFBSSxFQUFDQyxTQUFTLENBQUM7WUFBQSxDQUFDLENBQUMsRUFBQ3JCLENBQUMsQ0FBQ2tCLElBQUksQ0FBQ1QsU0FBUyxHQUFDVCxDQUFDLEVBQUNBLENBQUMsQ0FBQ21CLE1BQU0sR0FBQyxJQUFJLEVBQUNuQixDQUFDO1VBQUEsQ0FBQztVQUFDUSxNQUFNLEVBQUMsU0FBQUEsT0FBQSxFQUFVO1lBQUMsSUFBSVQsQ0FBQyxHQUFDLElBQUksQ0FBQ2dCLE1BQU0sRUFBRTtZQUFDLE9BQU9oQixDQUFDLENBQUNtQixJQUFJLENBQUNFLEtBQUssQ0FBQ3JCLENBQUMsRUFBQ3NCLFNBQVMsQ0FBQyxFQUFDdEIsQ0FBQztVQUFBLENBQUM7VUFBQ21CLElBQUksRUFBQyxTQUFBQSxLQUFBLEVBQVUsQ0FBQyxDQUFDO1VBQUNGLEtBQUssRUFBQyxTQUFBQSxNQUFTakIsQ0FBQyxFQUFDO1lBQUMsS0FBSSxJQUFJQyxDQUFDLElBQUlELENBQUMsRUFBQ0EsQ0FBQyxDQUFDa0IsY0FBYyxDQUFDakIsQ0FBQyxDQUFDLEtBQUcsSUFBSSxDQUFDQSxDQUFDLENBQUMsR0FBQ0QsQ0FBQyxDQUFDQyxDQUFDLENBQUMsQ0FBQztZQUFDRCxDQUFDLENBQUNrQixjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUcsSUFBSSxDQUFDSyxRQUFRLEdBQUN2QixDQUFDLENBQUN1QixRQUFRLENBQUM7VUFBQSxDQUFDO1VBQUNDLEtBQUssRUFBQyxTQUFBQSxNQUFBLEVBQVU7WUFBQyxPQUFPLElBQUksQ0FBQ0wsSUFBSSxDQUFDVCxTQUFTLENBQUNNLE1BQU0sQ0FBQyxJQUFJLENBQUM7VUFBQTtRQUFDLENBQUM7TUFBQSxDQUFDLEVBQUU7TUFBQ1MsQ0FBQyxHQUFDYixDQUFDLENBQUNjLFNBQVMsR0FBQ1osQ0FBQyxDQUFDRSxNQUFNLENBQUM7UUFBQ0csSUFBSSxFQUFDLFNBQUFBLEtBQVNuQixDQUFDLEVBQUNPLENBQUMsRUFBQztVQUFDUCxDQUFDLEdBQUMsSUFBSSxDQUFDMkIsS0FBSyxHQUFDM0IsQ0FBQyxJQUFFLEVBQUUsRUFBQ08sQ0FBQyxJQUFFTixDQUFDLEdBQUMsSUFBSSxDQUFDMkIsUUFBUSxHQUFDckIsQ0FBQyxHQUFDLElBQUksQ0FBQ3FCLFFBQVEsR0FBQyxDQUFDLEdBQUM1QixDQUFDLENBQUM2QixNQUFNO1FBQUEsQ0FBQztRQUFDTixRQUFRLEVBQUMsU0FBQUEsU0FBU3ZCLENBQUMsRUFBQztVQUFDLE9BQU0sQ0FBQ0EsQ0FBQyxJQUFFOEIsQ0FBQyxFQUFFQyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQUEsQ0FBQztRQUFDQyxNQUFNLEVBQUMsU0FBQUEsT0FBU2hDLENBQUMsRUFBQztVQUFDLElBQUlDLENBQUMsR0FBQyxJQUFJLENBQUMwQixLQUFLO1lBQUNwQixDQUFDLEdBQUNQLENBQUMsQ0FBQzJCLEtBQUs7WUFBQ2hCLENBQUMsR0FBQyxJQUFJLENBQUNpQixRQUFRO1lBQUNoQixDQUFDLEdBQUNaLENBQUMsQ0FBQzRCLFFBQVE7VUFBQyxJQUFHLElBQUksQ0FBQ0ssS0FBSyxFQUFFLEVBQUN0QixDQUFDLEdBQUMsQ0FBQyxFQUFDLEtBQUksSUFBSUcsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDRixDQUFDLEVBQUNFLENBQUMsRUFBRSxFQUFDO1lBQUMsSUFBSVcsQ0FBQyxHQUFDbEIsQ0FBQyxDQUFDTyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHO1lBQUNiLENBQUMsQ0FBQ1UsQ0FBQyxHQUFDRyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUVXLENBQUMsSUFBRSxFQUFFLEdBQUMsQ0FBQ2QsQ0FBQyxHQUFDRyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUM7VUFBQSxDQUFDLE1BQUssS0FBSSxJQUFJQSxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUNGLENBQUMsRUFBQ0UsQ0FBQyxJQUFFLENBQUMsRUFBQ2IsQ0FBQyxDQUFDVSxDQUFDLEdBQUNHLENBQUMsS0FBRyxDQUFDLENBQUMsR0FBQ1AsQ0FBQyxDQUFDTyxDQUFDLEtBQUcsQ0FBQyxDQUFDO1VBQUMsT0FBTyxJQUFJLENBQUNjLFFBQVEsSUFBRWhCLENBQUMsRUFBQyxJQUFJO1FBQUEsQ0FBQztRQUFDcUIsS0FBSyxFQUFDLFNBQUFBLE1BQUEsRUFBVTtVQUFDLElBQUloQyxDQUFDLEdBQUMsSUFBSSxDQUFDMEIsS0FBSztZQUFDcEIsQ0FBQyxHQUFDLElBQUksQ0FBQ3FCLFFBQVE7VUFBQzNCLENBQUMsQ0FBQ00sQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLFVBQVUsSUFBRSxFQUFFLEdBQUNBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDTixDQUFDLENBQUM0QixNQUFNLEdBQUM3QixDQUFDLENBQUNrQyxJQUFJLENBQUMzQixDQUFDLEdBQUMsQ0FBQyxDQUFDO1FBQUEsQ0FBQztRQUFDaUIsS0FBSyxFQUFDLFNBQUFBLE1BQUEsRUFBVTtVQUFDLElBQUl4QixDQUFDLEdBQUNjLENBQUMsQ0FBQ1UsS0FBSyxDQUFDVyxJQUFJLENBQUMsSUFBSSxDQUFDO1VBQUMsT0FBT25DLENBQUMsQ0FBQzJCLEtBQUssR0FBQyxJQUFJLENBQUNBLEtBQUssQ0FBQ1MsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFDcEMsQ0FBQztRQUFBLENBQUM7UUFBQ3FDLE1BQU0sRUFBQyxTQUFBQSxPQUFTcEMsQ0FBQyxFQUFDO1VBQUMsS0FBSSxJQUFJTSxDQUFDLEVBQUNJLENBQUMsR0FBQyxFQUFFLEVBQUNDLENBQUMsR0FBQyxTQUFGQSxDQUFDQSxDQUFVWCxDQUFDLEVBQUM7Y0FBQyxJQUFJQSxDQUFDLEdBQUNBLENBQUM7Z0JBQUNNLENBQUMsR0FBQyxTQUFTO2dCQUFDSSxDQUFDLEdBQUMsVUFBVTtjQUFDLE9BQU8sWUFBVTtnQkFBQ0osQ0FBQyxHQUFDLEtBQUssSUFBRSxLQUFLLEdBQUNBLENBQUMsQ0FBQyxJQUFFQSxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUNJLENBQUMsRUFBQ1YsQ0FBQyxHQUFDLElBQUksSUFBRSxLQUFLLEdBQUNBLENBQUMsQ0FBQyxJQUFFQSxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUNVLENBQUM7Z0JBQUMsSUFBSUMsQ0FBQyxHQUFDLENBQUNMLENBQUMsSUFBRSxFQUFFLElBQUVOLENBQUMsR0FBQ1UsQ0FBQztnQkFBQyxPQUFPQyxDQUFDLElBQUUsVUFBVSxFQUFDQSxDQUFDLElBQUUsRUFBRSxFQUFDQSxDQUFDLElBQUVaLENBQUMsQ0FBQ3FDLE1BQU0sRUFBRSxHQUFDLEVBQUUsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7Y0FBQSxDQUFDO1lBQUEsQ0FBQyxFQUFDdkIsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDYixDQUFDLEVBQUNhLENBQUMsSUFBRSxDQUFDLEVBQUM7WUFBQyxJQUFJd0IsQ0FBQyxHQUFDMUIsQ0FBQyxDQUFDLFVBQVUsSUFBRUwsQ0FBQyxJQUFFUCxDQUFDLENBQUNxQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQUM5QixDQUFDLEdBQUMsU0FBUyxHQUFDK0IsQ0FBQyxFQUFFLEVBQUMzQixDQUFDLENBQUM0QixJQUFJLENBQUMsVUFBVSxHQUFDRCxDQUFDLEVBQUUsR0FBQyxDQUFDLENBQUM7VUFBQTtVQUFDLE9BQU8sSUFBSWIsQ0FBQyxDQUFDTixJQUFJLENBQUNSLENBQUMsRUFBQ1YsQ0FBQyxDQUFDO1FBQUE7TUFBQyxDQUFDLENBQUM7TUFBQ3FDLENBQUMsR0FBQzNCLENBQUMsQ0FBQzZCLEdBQUcsR0FBQyxDQUFDLENBQUM7TUFBQ1YsQ0FBQyxHQUFDUSxDQUFDLENBQUNHLEdBQUcsR0FBQztRQUFDVixTQUFTLEVBQUMsU0FBQUEsVUFBUy9CLENBQUMsRUFBQztVQUFDLEtBQUksSUFBSUMsQ0FBQyxHQUFDRCxDQUFDLENBQUMyQixLQUFLLEVBQUNwQixDQUFDLEdBQUNQLENBQUMsQ0FBQzRCLFFBQVEsRUFBQ2pCLENBQUMsR0FBQyxFQUFFLEVBQUNDLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQ0wsQ0FBQyxFQUFDSyxDQUFDLEVBQUUsRUFBQztZQUFDLElBQUlFLENBQUMsR0FBQ2IsQ0FBQyxDQUFDVyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHO1lBQUNELENBQUMsQ0FBQzRCLElBQUksQ0FBQyxDQUFDekIsQ0FBQyxLQUFHLENBQUMsRUFBRVMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNaLENBQUMsQ0FBQzRCLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBQ3pCLENBQUMsRUFBRVMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1VBQUE7VUFBQyxPQUFPWixDQUFDLENBQUMrQixJQUFJLENBQUMsRUFBRSxDQUFDO1FBQUEsQ0FBQztRQUFDQyxLQUFLLEVBQUMsU0FBQUEsTUFBUzNDLENBQUMsRUFBQztVQUFDLEtBQUksSUFBSUMsQ0FBQyxHQUFDRCxDQUFDLENBQUM2QixNQUFNLEVBQUN0QixDQUFDLEdBQUMsRUFBRSxFQUFDSSxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUNWLENBQUMsRUFBQ1UsQ0FBQyxJQUFFLENBQUMsRUFBQ0osQ0FBQyxDQUFDSSxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUVpQyxRQUFRLENBQUM1QyxDQUFDLENBQUM2QyxNQUFNLENBQUNsQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUM7VUFBQyxPQUFPLElBQUljLENBQUMsQ0FBQ04sSUFBSSxDQUFDWixDQUFDLEVBQUNOLENBQUMsR0FBQyxDQUFDLENBQUM7UUFBQTtNQUFDLENBQUM7TUFBQzZDLENBQUMsR0FBQ1IsQ0FBQyxDQUFDUyxNQUFNLEdBQUM7UUFBQ2hCLFNBQVMsRUFBQyxTQUFBQSxVQUFTL0IsQ0FBQyxFQUFDO1VBQUMsS0FBSSxJQUFJQyxDQUFDLEdBQUNELENBQUMsQ0FBQzJCLEtBQUssRUFBQ3BCLENBQUMsR0FBQ1AsQ0FBQyxDQUFDNEIsUUFBUSxFQUFDakIsQ0FBQyxHQUFDLEVBQUUsRUFBQ0MsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDTCxDQUFDLEVBQUNLLENBQUMsRUFBRSxFQUFDO1lBQUMsSUFBSUUsQ0FBQyxHQUFDYixDQUFDLENBQUNXLENBQUMsS0FBRyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUNBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUc7WUFBQ0QsQ0FBQyxDQUFDNEIsSUFBSSxDQUFDUyxNQUFNLENBQUNDLFlBQVksQ0FBQ25DLENBQUMsQ0FBQyxDQUFDO1VBQUE7VUFBQyxPQUFPSCxDQUFDLENBQUMrQixJQUFJLENBQUMsRUFBRSxDQUFDO1FBQUEsQ0FBQztRQUFDQyxLQUFLLEVBQUMsU0FBQUEsTUFBUzNDLENBQUMsRUFBQztVQUFDLEtBQUksSUFBSUMsQ0FBQyxHQUFDRCxDQUFDLENBQUM2QixNQUFNLEVBQUN0QixDQUFDLEdBQUMsRUFBRSxFQUFDSSxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUNWLENBQUMsRUFBQ1UsQ0FBQyxFQUFFLEVBQUNKLENBQUMsQ0FBQ0ksQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBRyxHQUFDWCxDQUFDLENBQUNrRCxVQUFVLENBQUN2QyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUNBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQztVQUFDLE9BQU8sSUFBSWMsQ0FBQyxDQUFDTixJQUFJLENBQUNaLENBQUMsRUFBQ04sQ0FBQyxDQUFDO1FBQUE7TUFBQyxDQUFDO01BQUNrRCxDQUFDLEdBQUNiLENBQUMsQ0FBQ2MsSUFBSSxHQUFDO1FBQUNyQixTQUFTLEVBQUMsU0FBQUEsVUFBUy9CLENBQUMsRUFBQztVQUFDLElBQUc7WUFBQyxPQUFPcUQsa0JBQWtCLENBQUNDLE1BQU0sQ0FBQ1IsQ0FBQyxDQUFDZixTQUFTLENBQUMvQixDQUFDLENBQUMsQ0FBQyxDQUFDO1VBQUEsQ0FBQyxRQUFNQSxDQUFDLEVBQUM7WUFBQyxNQUFNLElBQUl1RCxLQUFLLENBQUMsc0JBQXNCLENBQUM7VUFBQTtRQUFDLENBQUM7UUFBQ1osS0FBSyxFQUFDLFNBQUFBLE1BQVMzQyxDQUFDLEVBQUM7VUFBQyxPQUFPOEMsQ0FBQyxDQUFDSCxLQUFLLENBQUNhLFFBQVEsQ0FBQ0Msa0JBQWtCLENBQUN6RCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQUE7TUFBQyxDQUFDO01BQUMwRCxDQUFDLEdBQUM5QyxDQUFDLENBQUMrQyxzQkFBc0IsR0FBQzdDLENBQUMsQ0FBQ0UsTUFBTSxDQUFDO1FBQUM0QyxLQUFLLEVBQUMsU0FBQUEsTUFBQSxFQUFVO1VBQUMsSUFBSSxDQUFDQyxLQUFLLEdBQUMsSUFBSXBDLENBQUMsQ0FBQ04sSUFBSSxJQUFDLElBQUksQ0FBQzJDLFdBQVcsR0FBQyxDQUFDO1FBQUEsQ0FBQztRQUFDQyxPQUFPLEVBQUMsU0FBQUEsUUFBUy9ELENBQUMsRUFBQztVQUFDLFFBQVEsSUFBRSxPQUFPQSxDQUFDLEtBQUdBLENBQUMsR0FBQ21ELENBQUMsQ0FBQ1IsS0FBSyxDQUFDM0MsQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUM2RCxLQUFLLENBQUM3QixNQUFNLENBQUNoQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUM4RCxXQUFXLElBQUU5RCxDQUFDLENBQUM0QixRQUFRO1FBQUEsQ0FBQztRQUFDb0MsUUFBUSxFQUFDLFNBQUFBLFNBQVMvRCxDQUFDLEVBQUM7VUFBQyxJQUFJTSxDQUFDLEdBQUMsSUFBSSxDQUFDc0QsS0FBSztZQUFDbEQsQ0FBQyxHQUFDSixDQUFDLENBQUNvQixLQUFLO1lBQUNmLENBQUMsR0FBQ0wsQ0FBQyxDQUFDcUIsUUFBUTtZQUFDZCxDQUFDLEdBQUMsSUFBSSxDQUFDbUQsU0FBUztZQUFDM0IsQ0FBQyxHQUFDLENBQUMsR0FBQ3hCLENBQUM7WUFBQ2dCLENBQUMsR0FBQ2xCLENBQUMsR0FBQzBCLENBQUM7VUFBQ1IsQ0FBQyxHQUFDN0IsQ0FBQyxHQUFDRCxDQUFDLENBQUNrQyxJQUFJLENBQUNKLENBQUMsQ0FBQyxHQUFDOUIsQ0FBQyxDQUFDa0UsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFDcEMsQ0FBQyxJQUFFLElBQUksQ0FBQ3FDLGNBQWMsRUFBQyxDQUFDLENBQUM7VUFBQyxJQUFJckIsQ0FBQyxHQUFDaEIsQ0FBQyxHQUFDaEIsQ0FBQztZQUFDcUMsQ0FBQyxHQUFDbkQsQ0FBQyxDQUFDb0UsR0FBRyxDQUFDLENBQUMsR0FBQ3RCLENBQUMsRUFBQ2xDLENBQUMsQ0FBQztVQUFDLElBQUdrQyxDQUFDLEVBQUM7WUFBQyxLQUFJLElBQUlZLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQ1osQ0FBQyxFQUFDWSxDQUFDLElBQUU1QyxDQUFDLEVBQUMsSUFBSSxDQUFDdUQsZUFBZSxDQUFDMUQsQ0FBQyxFQUFDK0MsQ0FBQyxDQUFDO1lBQUMsSUFBSVksQ0FBQyxHQUFDM0QsQ0FBQyxDQUFDNEQsTUFBTSxDQUFDLENBQUMsRUFBQ3pCLENBQUMsQ0FBQztZQUFDdkMsQ0FBQyxDQUFDcUIsUUFBUSxJQUFFdUIsQ0FBQztVQUFBO1VBQUMsT0FBTyxJQUFJMUIsQ0FBQyxDQUFDTixJQUFJLENBQUNtRCxDQUFDLEVBQUNuQixDQUFDLENBQUM7UUFBQSxDQUFDO1FBQUMzQixLQUFLLEVBQUMsU0FBQUEsTUFBQSxFQUFVO1VBQUMsSUFBSXhCLENBQUMsR0FBQ2MsQ0FBQyxDQUFDVSxLQUFLLENBQUNXLElBQUksQ0FBQyxJQUFJLENBQUM7VUFBQyxPQUFPbkMsQ0FBQyxDQUFDNkQsS0FBSyxHQUFDLElBQUksQ0FBQ0EsS0FBSyxDQUFDckMsS0FBSyxFQUFFLEVBQUN4QixDQUFDO1FBQUEsQ0FBQztRQUFDbUUsY0FBYyxFQUFDO01BQUMsQ0FBQyxDQUFDO01BQUNHLENBQUMsSUFBRTFELENBQUMsQ0FBQzRELE1BQU0sR0FBQ2QsQ0FBQyxDQUFDMUMsTUFBTSxDQUFDO1FBQUN5RCxHQUFHLEVBQUMzRCxDQUFDLENBQUNFLE1BQU0sRUFBRTtRQUFDRyxJQUFJLEVBQUMsU0FBQUEsS0FBU25CLENBQUMsRUFBQztVQUFDLElBQUksQ0FBQ3lFLEdBQUcsR0FBQyxJQUFJLENBQUNBLEdBQUcsQ0FBQ3pELE1BQU0sQ0FBQ2hCLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQzRELEtBQUssRUFBRTtRQUFBLENBQUM7UUFBQ0EsS0FBSyxFQUFDLFNBQUFBLE1BQUEsRUFBVTtVQUFDRixDQUFDLENBQUNFLEtBQUssQ0FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLENBQUN1QyxRQUFRLEVBQUU7UUFBQSxDQUFDO1FBQUNDLE1BQU0sRUFBQyxTQUFBQSxPQUFTM0UsQ0FBQyxFQUFDO1VBQUMsT0FBTyxJQUFJLENBQUMrRCxPQUFPLENBQUMvRCxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUNnRSxRQUFRLEVBQUUsRUFBQyxJQUFJO1FBQUEsQ0FBQztRQUFDWSxRQUFRLEVBQUMsU0FBQUEsU0FBUzVFLENBQUMsRUFBQztVQUFDQSxDQUFDLElBQUUsSUFBSSxDQUFDK0QsT0FBTyxDQUFDL0QsQ0FBQyxDQUFDO1VBQUMsSUFBSUMsQ0FBQyxHQUFDLElBQUksQ0FBQzRFLFdBQVcsRUFBRTtVQUFDLE9BQU81RSxDQUFDO1FBQUEsQ0FBQztRQUFDZ0UsU0FBUyxFQUFDLEVBQUU7UUFBQ2EsYUFBYSxFQUFDLFNBQUFBLGNBQVM5RSxDQUFDLEVBQUM7VUFBQyxPQUFPLFVBQVNDLENBQUMsRUFBQ00sQ0FBQyxFQUFDO1lBQUMsT0FBTyxJQUFJUCxDQUFDLENBQUNtQixJQUFJLENBQUNaLENBQUMsQ0FBQyxDQUFDcUUsUUFBUSxDQUFDM0UsQ0FBQyxDQUFDO1VBQUEsQ0FBQztRQUFBLENBQUM7UUFBQzhFLGlCQUFpQixFQUFDLFNBQUFBLGtCQUFTL0UsQ0FBQyxFQUFDO1VBQUMsT0FBTyxVQUFTQyxDQUFDLEVBQUNNLENBQUMsRUFBQztZQUFDLE9BQU8sSUFBSStELENBQUMsQ0FBQ1UsSUFBSSxDQUFDN0QsSUFBSSxDQUFDbkIsQ0FBQyxFQUFDTyxDQUFDLENBQUMsQ0FBQ3FFLFFBQVEsQ0FBQzNFLENBQUMsQ0FBQztVQUFBLENBQUM7UUFBQTtNQUFDLENBQUMsQ0FBQyxFQUFDVSxDQUFDLENBQUNzRSxJQUFJLEdBQUMsQ0FBQyxDQUFDLENBQUM7SUFBQyxPQUFPdEUsQ0FBQztFQUFBLENBQUMsQ0FBQ3VFLElBQUksQ0FBQztFQUFDLE9BQU8sWUFBVTtJQUFDLFNBQVNqRixDQUFDQSxDQUFDRCxDQUFDLEVBQUNDLENBQUMsRUFBQ00sQ0FBQyxFQUFDO01BQUMsS0FBSSxJQUFJSSxDQUFDLEdBQUMsRUFBRSxFQUFDRyxDQUFDLEdBQUMsQ0FBQyxFQUFDVyxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUN4QixDQUFDLEVBQUN3QixDQUFDLEVBQUUsRUFBQyxJQUFHQSxDQUFDLEdBQUMsQ0FBQyxFQUFDO1FBQUMsSUFBSWEsQ0FBQyxHQUFDL0IsQ0FBQyxDQUFDUCxDQUFDLENBQUNrRCxVQUFVLENBQUN6QixDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDO1VBQUNLLENBQUMsR0FBQ3ZCLENBQUMsQ0FBQ1AsQ0FBQyxDQUFDa0QsVUFBVSxDQUFDekIsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQztRQUFDZCxDQUFDLENBQUNHLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxDQUFDd0IsQ0FBQyxHQUFDUixDQUFDLEtBQUcsRUFBRSxHQUFDaEIsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsRUFBRTtNQUFBO01BQUMsT0FBT0YsQ0FBQyxDQUFDSCxNQUFNLENBQUNFLENBQUMsRUFBQ0csQ0FBQyxDQUFDO0lBQUE7SUFBQyxJQUFJUCxDQUFDLEdBQUNQLENBQUM7TUFBQ1csQ0FBQyxHQUFDSixDQUFDLENBQUNNLEdBQUc7TUFBQ0QsQ0FBQyxHQUFDRCxDQUFDLENBQUNlLFNBQVM7TUFBQ1osQ0FBQyxHQUFDUCxDQUFDLENBQUNpQyxHQUFHO0lBQUMxQixDQUFDLENBQUNxRSxNQUFNLEdBQUM7TUFBQ3BELFNBQVMsRUFBQyxTQUFBQSxVQUFTL0IsQ0FBQyxFQUFDO1FBQUMsSUFBSUMsQ0FBQyxHQUFDRCxDQUFDLENBQUMyQixLQUFLO1VBQUNwQixDQUFDLEdBQUNQLENBQUMsQ0FBQzRCLFFBQVE7VUFBQ2pCLENBQUMsR0FBQyxJQUFJLENBQUN5RSxJQUFJO1FBQUNwRixDQUFDLENBQUNpQyxLQUFLLEVBQUU7UUFBQyxLQUFJLElBQUlyQixDQUFDLEdBQUMsRUFBRSxFQUFDRSxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUNQLENBQUMsRUFBQ08sQ0FBQyxJQUFFLENBQUMsRUFBQyxLQUFJLElBQUlXLENBQUMsR0FBQ3hCLENBQUMsQ0FBQ2EsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQ0EsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsR0FBRyxFQUFDd0IsQ0FBQyxHQUFDckMsQ0FBQyxDQUFDYSxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDQSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEdBQUMsR0FBRyxFQUFDZ0IsQ0FBQyxHQUFDN0IsQ0FBQyxDQUFDYSxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQyxDQUFDQSxDQUFDLEdBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQyxDQUFDLEdBQUMsR0FBRyxFQUFDZ0MsQ0FBQyxHQUFDckIsQ0FBQyxJQUFFLEVBQUUsR0FBQ2EsQ0FBQyxJQUFFLENBQUMsR0FBQ1IsQ0FBQyxFQUFDcUIsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLENBQUMsSUFBRXJDLENBQUMsR0FBQyxHQUFHLEdBQUNxQyxDQUFDLEdBQUM1QyxDQUFDLEVBQUM0QyxDQUFDLEVBQUUsRUFBQ3ZDLENBQUMsQ0FBQzJCLElBQUksQ0FBQzVCLENBQUMsQ0FBQzBFLE1BQU0sQ0FBQ3ZDLENBQUMsS0FBRyxDQUFDLElBQUUsQ0FBQyxHQUFDSyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUMsQ0FBQztRQUFDLElBQUlPLENBQUMsR0FBQy9DLENBQUMsQ0FBQzBFLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxJQUFHM0IsQ0FBQyxFQUFDLE9BQUs5QyxDQUFDLENBQUNpQixNQUFNLEdBQUMsQ0FBQyxHQUFFakIsQ0FBQyxDQUFDMkIsSUFBSSxDQUFDbUIsQ0FBQyxDQUFDO1FBQUMsT0FBTzlDLENBQUMsQ0FBQzhCLElBQUksQ0FBQyxFQUFFLENBQUM7TUFBQSxDQUFDO01BQUNDLEtBQUssRUFBQyxTQUFBQSxNQUFTM0MsQ0FBQyxFQUFDO1FBQUMsSUFBSU8sQ0FBQyxHQUFDUCxDQUFDLENBQUM2QixNQUFNO1VBQUNsQixDQUFDLEdBQUMsSUFBSSxDQUFDeUUsSUFBSTtVQUFDeEUsQ0FBQyxHQUFDLElBQUksQ0FBQzBFLFdBQVc7UUFBQyxJQUFHLENBQUMxRSxDQUFDLEVBQUM7VUFBQ0EsQ0FBQyxHQUFDLElBQUksQ0FBQzBFLFdBQVcsR0FBQyxFQUFFO1VBQUMsS0FBSSxJQUFJeEUsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDSCxDQUFDLENBQUNrQixNQUFNLEVBQUNmLENBQUMsRUFBRSxFQUFDRixDQUFDLENBQUNELENBQUMsQ0FBQ3VDLFVBQVUsQ0FBQ3BDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUM7UUFBQTtRQUFDLElBQUlXLENBQUMsR0FBQ2QsQ0FBQyxDQUFDMEUsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLElBQUc1RCxDQUFDLEVBQUM7VUFBQyxJQUFJYSxDQUFDLEdBQUN0QyxDQUFDLENBQUN1RixPQUFPLENBQUM5RCxDQUFDLENBQUM7VUFBQ2EsQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHL0IsQ0FBQyxHQUFDK0IsQ0FBQyxDQUFDO1FBQUE7UUFBQyxPQUFPckMsQ0FBQyxDQUFDRCxDQUFDLEVBQUNPLENBQUMsRUFBQ0ssQ0FBQyxDQUFDO01BQUEsQ0FBQztNQUFDd0UsSUFBSSxFQUFDO0lBQW1FLENBQUM7RUFBQSxDQUFDLEVBQUUsRUFBQyxVQUFTbkYsQ0FBQyxFQUFDO0lBQUMsU0FBU00sQ0FBQ0EsQ0FBQ1AsQ0FBQyxFQUFDQyxDQUFDLEVBQUNNLENBQUMsRUFBQ0ksQ0FBQyxFQUFDQyxDQUFDLEVBQUNFLENBQUMsRUFBQ1csQ0FBQyxFQUFDO01BQUMsSUFBSWEsQ0FBQyxHQUFDdEMsQ0FBQyxJQUFFQyxDQUFDLEdBQUNNLENBQUMsR0FBQyxDQUFDTixDQUFDLEdBQUNVLENBQUMsQ0FBQyxHQUFDQyxDQUFDLEdBQUNhLENBQUM7TUFBQyxPQUFNLENBQUNhLENBQUMsSUFBRXhCLENBQUMsR0FBQ3dCLENBQUMsS0FBRyxFQUFFLEdBQUN4QixDQUFDLElBQUViLENBQUM7SUFBQTtJQUFDLFNBQVNVLENBQUNBLENBQUNYLENBQUMsRUFBQ0MsQ0FBQyxFQUFDTSxDQUFDLEVBQUNJLENBQUMsRUFBQ0MsQ0FBQyxFQUFDRSxDQUFDLEVBQUNXLENBQUMsRUFBQztNQUFDLElBQUlhLENBQUMsR0FBQ3RDLENBQUMsSUFBRUMsQ0FBQyxHQUFDVSxDQUFDLEdBQUNKLENBQUMsR0FBQyxDQUFDSSxDQUFDLENBQUMsR0FBQ0MsQ0FBQyxHQUFDYSxDQUFDO01BQUMsT0FBTSxDQUFDYSxDQUFDLElBQUV4QixDQUFDLEdBQUN3QixDQUFDLEtBQUcsRUFBRSxHQUFDeEIsQ0FBQyxJQUFFYixDQUFDO0lBQUE7SUFBQyxTQUFTVyxDQUFDQSxDQUFDWixDQUFDLEVBQUNDLENBQUMsRUFBQ00sQ0FBQyxFQUFDSSxDQUFDLEVBQUNDLENBQUMsRUFBQ0UsQ0FBQyxFQUFDVyxDQUFDLEVBQUM7TUFBQyxJQUFJYSxDQUFDLEdBQUN0QyxDQUFDLElBQUVDLENBQUMsR0FBQ00sQ0FBQyxHQUFDSSxDQUFDLENBQUMsR0FBQ0MsQ0FBQyxHQUFDYSxDQUFDO01BQUMsT0FBTSxDQUFDYSxDQUFDLElBQUV4QixDQUFDLEdBQUN3QixDQUFDLEtBQUcsRUFBRSxHQUFDeEIsQ0FBQyxJQUFFYixDQUFDO0lBQUE7SUFBQyxTQUFTYSxDQUFDQSxDQUFDZCxDQUFDLEVBQUNDLENBQUMsRUFBQ00sQ0FBQyxFQUFDSSxDQUFDLEVBQUNDLENBQUMsRUFBQ0UsQ0FBQyxFQUFDVyxDQUFDLEVBQUM7TUFBQyxJQUFJYSxDQUFDLEdBQUN0QyxDQUFDLElBQUVPLENBQUMsSUFBRU4sQ0FBQyxHQUFDLENBQUNVLENBQUMsQ0FBQyxDQUFDLEdBQUNDLENBQUMsR0FBQ2EsQ0FBQztNQUFDLE9BQU0sQ0FBQ2EsQ0FBQyxJQUFFeEIsQ0FBQyxHQUFDd0IsQ0FBQyxLQUFHLEVBQUUsR0FBQ3hCLENBQUMsSUFBRWIsQ0FBQztJQUFBO0lBQUMsSUFBSXdCLENBQUMsR0FBQ3pCLENBQUM7TUFBQ3NDLENBQUMsR0FBQ2IsQ0FBQyxDQUFDWixHQUFHO01BQUNpQixDQUFDLEdBQUNRLENBQUMsQ0FBQ1osU0FBUztNQUFDb0IsQ0FBQyxHQUFDUixDQUFDLENBQUNrQyxNQUFNO01BQUNyQixDQUFDLEdBQUMxQixDQUFDLENBQUN3RCxJQUFJO01BQUN2QixDQUFDLEdBQUMsRUFBRTtJQUFDLENBQUMsWUFBVTtNQUFDLEtBQUksSUFBSTFELENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQyxFQUFFLEVBQUNBLENBQUMsRUFBRSxFQUFDMEQsQ0FBQyxDQUFDMUQsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDQyxDQUFDLENBQUN1RixHQUFHLENBQUN2RixDQUFDLENBQUN3RixHQUFHLENBQUN6RixDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDO0lBQUEsQ0FBQyxFQUFFO0lBQUMsSUFBSXNFLENBQUMsR0FBQ25CLENBQUMsQ0FBQ3VDLEdBQUcsR0FBQzVDLENBQUMsQ0FBQzlCLE1BQU0sQ0FBQztNQUFDMEQsUUFBUSxFQUFDLFNBQUFBLFNBQUEsRUFBVTtRQUFDLElBQUksQ0FBQ2lCLEtBQUssR0FBQyxJQUFJN0QsQ0FBQyxDQUFDWCxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsQ0FBQztNQUFBLENBQUM7TUFBQ2tELGVBQWUsRUFBQyxTQUFBQSxnQkFBU3JFLENBQUMsRUFBQ0MsQ0FBQyxFQUFDO1FBQUMsS0FBSSxJQUFJd0IsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLEVBQUUsRUFBQ0EsQ0FBQyxFQUFFLEVBQUM7VUFBQyxJQUFJYSxDQUFDLEdBQUNyQyxDQUFDLEdBQUN3QixDQUFDO1lBQUNLLENBQUMsR0FBQzlCLENBQUMsQ0FBQ3NDLENBQUMsQ0FBQztVQUFDdEMsQ0FBQyxDQUFDc0MsQ0FBQyxDQUFDLEdBQUMsUUFBUSxJQUFFUixDQUFDLElBQUUsQ0FBQyxHQUFDQSxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxJQUFFQSxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLEtBQUcsQ0FBQyxDQUFDO1FBQUE7UUFBQyxJQUFJZ0IsQ0FBQyxHQUFDLElBQUksQ0FBQzZDLEtBQUssQ0FBQ2hFLEtBQUs7VUFBQ3dCLENBQUMsR0FBQ25ELENBQUMsQ0FBQ0MsQ0FBQyxHQUFDLENBQUMsQ0FBQztVQUFDcUUsQ0FBQyxHQUFDdEUsQ0FBQyxDQUFDQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO1VBQUMyRixDQUFDLEdBQUM1RixDQUFDLENBQUNDLENBQUMsR0FBQyxDQUFDLENBQUM7VUFBQzRGLENBQUMsR0FBQzdGLENBQUMsQ0FBQ0MsQ0FBQyxHQUFDLENBQUMsQ0FBQztVQUFDNkYsQ0FBQyxHQUFDOUYsQ0FBQyxDQUFDQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO1VBQUM4RixDQUFDLEdBQUMvRixDQUFDLENBQUNDLENBQUMsR0FBQyxDQUFDLENBQUM7VUFBQytGLENBQUMsR0FBQ2hHLENBQUMsQ0FBQ0MsQ0FBQyxHQUFDLENBQUMsQ0FBQztVQUFDZ0csQ0FBQyxHQUFDakcsQ0FBQyxDQUFDQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO1VBQUNpRyxDQUFDLEdBQUNsRyxDQUFDLENBQUNDLENBQUMsR0FBQyxDQUFDLENBQUM7VUFBQ2tHLENBQUMsR0FBQ25HLENBQUMsQ0FBQ0MsQ0FBQyxHQUFDLENBQUMsQ0FBQztVQUFDbUcsQ0FBQyxHQUFDcEcsQ0FBQyxDQUFDQyxDQUFDLEdBQUMsRUFBRSxDQUFDO1VBQUNvRyxDQUFDLEdBQUNyRyxDQUFDLENBQUNDLENBQUMsR0FBQyxFQUFFLENBQUM7VUFBQ3FHLENBQUMsR0FBQ3RHLENBQUMsQ0FBQ0MsQ0FBQyxHQUFDLEVBQUUsQ0FBQztVQUFDc0csQ0FBQyxHQUFDdkcsQ0FBQyxDQUFDQyxDQUFDLEdBQUMsRUFBRSxDQUFDO1VBQUN1RyxDQUFDLEdBQUN4RyxDQUFDLENBQUNDLENBQUMsR0FBQyxFQUFFLENBQUM7VUFBQ3dHLENBQUMsR0FBQ3pHLENBQUMsQ0FBQ0MsQ0FBQyxHQUFDLEVBQUUsQ0FBQztVQUFDeUcsQ0FBQyxHQUFDNUQsQ0FBQyxDQUFDLENBQUMsQ0FBQztVQUFDNkQsQ0FBQyxHQUFDN0QsQ0FBQyxDQUFDLENBQUMsQ0FBQztVQUFDOEQsQ0FBQyxHQUFDOUQsQ0FBQyxDQUFDLENBQUMsQ0FBQztVQUFDK0QsQ0FBQyxHQUFDL0QsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUFDNEQsQ0FBQyxHQUFDbkcsQ0FBQyxDQUFDbUcsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDMUQsQ0FBQyxFQUFDLENBQUMsRUFBQ08sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNtRCxDQUFDLEdBQUN0RyxDQUFDLENBQUNzRyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUN0QyxDQUFDLEVBQUMsRUFBRSxFQUFDWixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ2tELENBQUMsR0FBQ3JHLENBQUMsQ0FBQ3FHLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ2YsQ0FBQyxFQUFDLEVBQUUsRUFBQ2xDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDaUQsQ0FBQyxHQUFDcEcsQ0FBQyxDQUFDb0csQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDYixDQUFDLEVBQUMsRUFBRSxFQUFDbkMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNnRCxDQUFDLEdBQUNuRyxDQUFDLENBQUNtRyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNmLENBQUMsRUFBQyxDQUFDLEVBQUNwQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ21ELENBQUMsR0FBQ3RHLENBQUMsQ0FBQ3NHLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ2IsQ0FBQyxFQUFDLEVBQUUsRUFBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDa0QsQ0FBQyxHQUFDckcsQ0FBQyxDQUFDcUcsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDWCxDQUFDLEVBQUMsRUFBRSxFQUFDdEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNpRCxDQUFDLEdBQUNwRyxDQUFDLENBQUNvRyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNULENBQUMsRUFBQyxFQUFFLEVBQUN2QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ2dELENBQUMsR0FBQ25HLENBQUMsQ0FBQ21HLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ1gsQ0FBQyxFQUFDLENBQUMsRUFBQ3hDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDbUQsQ0FBQyxHQUFDdEcsQ0FBQyxDQUFDc0csQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDVCxDQUFDLEVBQUMsRUFBRSxFQUFDekMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNrRCxDQUFDLEdBQUNyRyxDQUFDLENBQUNxRyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNQLENBQUMsRUFBQyxFQUFFLEVBQUMxQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2lELENBQUMsR0FBQ3BHLENBQUMsQ0FBQ29HLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ0wsQ0FBQyxFQUFDLEVBQUUsRUFBQzNDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDZ0QsQ0FBQyxHQUFDbkcsQ0FBQyxDQUFDbUcsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDUCxDQUFDLEVBQUMsQ0FBQyxFQUFDNUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNtRCxDQUFDLEdBQUN0RyxDQUFDLENBQUNzRyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNMLENBQUMsRUFBQyxFQUFFLEVBQUM3QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2tELENBQUMsR0FBQ3JHLENBQUMsQ0FBQ3FHLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDLEVBQUUsRUFBQzlDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDaUQsQ0FBQyxHQUFDcEcsQ0FBQyxDQUFDb0csQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDRCxDQUFDLEVBQUMsRUFBRSxFQUFDL0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNnRCxDQUFDLEdBQUMvRixDQUFDLENBQUMrRixDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUN2QyxDQUFDLEVBQUMsQ0FBQyxFQUFDWixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ21ELENBQUMsR0FBQ2xHLENBQUMsQ0FBQ2tHLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ1osQ0FBQyxFQUFDLENBQUMsRUFBQ3RDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDa0QsQ0FBQyxHQUFDakcsQ0FBQyxDQUFDaUcsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDTixDQUFDLEVBQUMsRUFBRSxFQUFDM0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNpRCxDQUFDLEdBQUNoRyxDQUFDLENBQUNnRyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUN2RCxDQUFDLEVBQUMsRUFBRSxFQUFDTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2dELENBQUMsR0FBQy9GLENBQUMsQ0FBQytGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ2QsQ0FBQyxFQUFDLENBQUMsRUFBQ3JDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDbUQsQ0FBQyxHQUFDbEcsQ0FBQyxDQUFDa0csQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDUixDQUFDLEVBQUMsQ0FBQyxFQUFDMUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNrRCxDQUFDLEdBQUNqRyxDQUFDLENBQUNpRyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNGLENBQUMsRUFBQyxFQUFFLEVBQUMvQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2lELENBQUMsR0FBQ2hHLENBQUMsQ0FBQ2dHLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ1osQ0FBQyxFQUFDLEVBQUUsRUFBQ3BDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDZ0QsQ0FBQyxHQUFDL0YsQ0FBQyxDQUFDK0YsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDVixDQUFDLEVBQUMsQ0FBQyxFQUFDekMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNtRCxDQUFDLEdBQUNsRyxDQUFDLENBQUNrRyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNKLENBQUMsRUFBQyxDQUFDLEVBQUM5QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2tELENBQUMsR0FBQ2pHLENBQUMsQ0FBQ2lHLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ2QsQ0FBQyxFQUFDLEVBQUUsRUFBQ25DLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDaUQsQ0FBQyxHQUFDaEcsQ0FBQyxDQUFDZ0csQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDUixDQUFDLEVBQUMsRUFBRSxFQUFDeEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNnRCxDQUFDLEdBQUMvRixDQUFDLENBQUMrRixDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNOLENBQUMsRUFBQyxDQUFDLEVBQUM3QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ21ELENBQUMsR0FBQ2xHLENBQUMsQ0FBQ2tHLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ2hCLENBQUMsRUFBQyxDQUFDLEVBQUNsQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2tELENBQUMsR0FBQ2pHLENBQUMsQ0FBQ2lHLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ1YsQ0FBQyxFQUFDLEVBQUUsRUFBQ3ZDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDaUQsQ0FBQyxHQUFDaEcsQ0FBQyxDQUFDZ0csQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDSixDQUFDLEVBQUMsRUFBRSxFQUFDNUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNnRCxDQUFDLEdBQUM5RixDQUFDLENBQUM4RixDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNkLENBQUMsRUFBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ21ELENBQUMsR0FBQ2pHLENBQUMsQ0FBQ2lHLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ1YsQ0FBQyxFQUFDLEVBQUUsRUFBQ3hDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDa0QsQ0FBQyxHQUFDaEcsQ0FBQyxDQUFDZ0csQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDTixDQUFDLEVBQUMsRUFBRSxFQUFDM0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNpRCxDQUFDLEdBQUMvRixDQUFDLENBQUMrRixDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNGLENBQUMsRUFBQyxFQUFFLEVBQUM5QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2dELENBQUMsR0FBQzlGLENBQUMsQ0FBQzhGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ3ZDLENBQUMsRUFBQyxDQUFDLEVBQUNaLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDbUQsQ0FBQyxHQUFDakcsQ0FBQyxDQUFDaUcsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDZCxDQUFDLEVBQUMsRUFBRSxFQUFDcEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNrRCxDQUFDLEdBQUNoRyxDQUFDLENBQUNnRyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNWLENBQUMsRUFBQyxFQUFFLEVBQUN2QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2lELENBQUMsR0FBQy9GLENBQUMsQ0FBQytGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ04sQ0FBQyxFQUFDLEVBQUUsRUFBQzFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDZ0QsQ0FBQyxHQUFDOUYsQ0FBQyxDQUFDOEYsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDTixDQUFDLEVBQUMsQ0FBQyxFQUFDN0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNtRCxDQUFDLEdBQUNqRyxDQUFDLENBQUNpRyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUN6RCxDQUFDLEVBQUMsRUFBRSxFQUFDTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2tELENBQUMsR0FBQ2hHLENBQUMsQ0FBQ2dHLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ2QsQ0FBQyxFQUFDLEVBQUUsRUFBQ25DLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDaUQsQ0FBQyxHQUFDL0YsQ0FBQyxDQUFDK0YsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDVixDQUFDLEVBQUMsRUFBRSxFQUFDdEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNnRCxDQUFDLEdBQUM5RixDQUFDLENBQUM4RixDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNWLENBQUMsRUFBQyxDQUFDLEVBQUN6QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ21ELENBQUMsR0FBQ2pHLENBQUMsQ0FBQ2lHLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ04sQ0FBQyxFQUFDLEVBQUUsRUFBQzVDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDa0QsQ0FBQyxHQUFDaEcsQ0FBQyxDQUFDZ0csQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDRixDQUFDLEVBQUMsRUFBRSxFQUFDL0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNpRCxDQUFDLEdBQUMvRixDQUFDLENBQUMrRixDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNkLENBQUMsRUFBQyxFQUFFLEVBQUNsQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2dELENBQUMsR0FBQzVGLENBQUMsQ0FBQzRGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQzFELENBQUMsRUFBQyxDQUFDLEVBQUNPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDbUQsQ0FBQyxHQUFDL0YsQ0FBQyxDQUFDK0YsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDWCxDQUFDLEVBQUMsRUFBRSxFQUFDdkMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNrRCxDQUFDLEdBQUM5RixDQUFDLENBQUM4RixDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQyxFQUFFLEVBQUM5QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2lELENBQUMsR0FBQzdGLENBQUMsQ0FBQzZGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ1gsQ0FBQyxFQUFDLEVBQUUsRUFBQ3JDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDZ0QsQ0FBQyxHQUFDNUYsQ0FBQyxDQUFDNEYsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDUCxDQUFDLEVBQUMsQ0FBQyxFQUFDNUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNtRCxDQUFDLEdBQUMvRixDQUFDLENBQUMrRixDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNmLENBQUMsRUFBQyxFQUFFLEVBQUNuQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2tELENBQUMsR0FBQzlGLENBQUMsQ0FBQzhGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ1AsQ0FBQyxFQUFDLEVBQUUsRUFBQzFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDaUQsQ0FBQyxHQUFDN0YsQ0FBQyxDQUFDNkYsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDcEMsQ0FBQyxFQUFDLEVBQUUsRUFBQ1osQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNnRCxDQUFDLEdBQUM1RixDQUFDLENBQUM0RixDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNYLENBQUMsRUFBQyxDQUFDLEVBQUN4QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ21ELENBQUMsR0FBQy9GLENBQUMsQ0FBQytGLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDLEVBQUUsRUFBQy9DLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDa0QsQ0FBQyxHQUFDOUYsQ0FBQyxDQUFDOEYsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDWCxDQUFDLEVBQUMsRUFBRSxFQUFDdEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNpRCxDQUFDLEdBQUM3RixDQUFDLENBQUM2RixDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNILENBQUMsRUFBQyxFQUFFLEVBQUM3QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2dELENBQUMsR0FBQzVGLENBQUMsQ0FBQzRGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ2YsQ0FBQyxFQUFDLENBQUMsRUFBQ3BDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDbUQsQ0FBQyxHQUFDL0YsQ0FBQyxDQUFDK0YsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDUCxDQUFDLEVBQUMsRUFBRSxFQUFDM0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNrRCxDQUFDLEdBQUM5RixDQUFDLENBQUM4RixDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNmLENBQUMsRUFBQyxFQUFFLEVBQUNsQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2lELENBQUMsR0FBQzdGLENBQUMsQ0FBQzZGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ1AsQ0FBQyxFQUFDLEVBQUUsRUFBQ3pDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDWixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzRELENBQUMsR0FBQyxDQUFDLEVBQUM1RCxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzZELENBQUMsR0FBQyxDQUFDLEVBQUM3RCxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhELENBQUMsR0FBQyxDQUFDLEVBQUM5RCxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQytELENBQUMsR0FBQyxDQUFDO01BQUEsQ0FBQztNQUFDaEMsV0FBVyxFQUFDLFNBQUFBLFlBQUEsRUFBVTtRQUFDLElBQUk3RSxDQUFDLEdBQUMsSUFBSSxDQUFDNkQsS0FBSztVQUFDdEQsQ0FBQyxHQUFDUCxDQUFDLENBQUMyQixLQUFLO1VBQUNoQixDQUFDLEdBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQ21ELFdBQVc7VUFBQ2xELENBQUMsR0FBQyxDQUFDLEdBQUNaLENBQUMsQ0FBQzRCLFFBQVE7UUFBQ3JCLENBQUMsQ0FBQ0ssQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLEdBQUcsSUFBRSxFQUFFLEdBQUNBLENBQUMsR0FBQyxFQUFFO1FBQUMsSUFBSUUsQ0FBQyxHQUFDYixDQUFDLENBQUM2RyxLQUFLLENBQUNuRyxDQUFDLEdBQUMsVUFBVSxDQUFDO1VBQUNjLENBQUMsR0FBQ2QsQ0FBQztRQUFDSixDQUFDLENBQUMsQ0FBQ0ssQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLFFBQVEsSUFBRUUsQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsSUFBRUEsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDUCxDQUFDLENBQUMsQ0FBQ0ssQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDLFFBQVEsSUFBRWEsQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsSUFBRUEsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxLQUFHLENBQUMsQ0FBQyxFQUFDekIsQ0FBQyxDQUFDNEIsUUFBUSxHQUFDLENBQUMsSUFBRXJCLENBQUMsQ0FBQ3NCLE1BQU0sR0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLENBQUNtQyxRQUFRLEVBQUU7UUFBQyxLQUFJLElBQUkxQixDQUFDLEdBQUMsSUFBSSxDQUFDcUQsS0FBSyxFQUFDN0QsQ0FBQyxHQUFDUSxDQUFDLENBQUNYLEtBQUssRUFBQ21CLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsRUFBRSxFQUFDO1VBQUMsSUFBSUssQ0FBQyxHQUFDckIsQ0FBQyxDQUFDZ0IsQ0FBQyxDQUFDO1VBQUNoQixDQUFDLENBQUNnQixDQUFDLENBQUMsR0FBQyxRQUFRLElBQUVLLENBQUMsSUFBRSxDQUFDLEdBQUNBLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsS0FBRyxDQUFDLENBQUM7UUFBQTtRQUFDLE9BQU9iLENBQUM7TUFBQSxDQUFDO01BQUNkLEtBQUssRUFBQyxTQUFBQSxNQUFBLEVBQVU7UUFBQyxJQUFJeEIsQ0FBQyxHQUFDOEMsQ0FBQyxDQUFDdEIsS0FBSyxDQUFDVyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQUMsT0FBT25DLENBQUMsQ0FBQzJGLEtBQUssR0FBQyxJQUFJLENBQUNBLEtBQUssQ0FBQ25FLEtBQUssRUFBRSxFQUFDeEIsQ0FBQztNQUFBO0lBQUMsQ0FBQyxDQUFDO0lBQUN5QixDQUFDLENBQUNpRSxHQUFHLEdBQUM1QyxDQUFDLENBQUNnQyxhQUFhLENBQUNSLENBQUMsQ0FBQyxFQUFDN0MsQ0FBQyxDQUFDc0YsT0FBTyxHQUFDakUsQ0FBQyxDQUFDaUMsaUJBQWlCLENBQUNULENBQUMsQ0FBQztFQUFBLENBQUMsQ0FBQ1ksSUFBSSxDQUFDLEVBQUMsWUFBVTtJQUFDLElBQUlqRixDQUFDLEdBQUNELENBQUM7TUFBQ08sQ0FBQyxHQUFDTixDQUFDLENBQUNZLEdBQUc7TUFBQ0YsQ0FBQyxHQUFDSixDQUFDLENBQUNtQixTQUFTO01BQUNkLENBQUMsR0FBQ0wsQ0FBQyxDQUFDaUUsTUFBTTtNQUFDMUQsQ0FBQyxHQUFDYixDQUFDLENBQUNnRixJQUFJO01BQUN4RCxDQUFDLEdBQUMsRUFBRTtNQUFDYSxDQUFDLEdBQUN4QixDQUFDLENBQUNrRyxJQUFJLEdBQUNwRyxDQUFDLENBQUNJLE1BQU0sQ0FBQztRQUFDMEQsUUFBUSxFQUFDLFNBQUFBLFNBQUEsRUFBVTtVQUFDLElBQUksQ0FBQ2lCLEtBQUssR0FBQyxJQUFJaEYsQ0FBQyxDQUFDUSxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLENBQUM7UUFBQSxDQUFDO1FBQUNrRCxlQUFlLEVBQUMsU0FBQUEsZ0JBQVNyRSxDQUFDLEVBQUNDLENBQUMsRUFBQztVQUFDLEtBQUksSUFBSU0sQ0FBQyxHQUFDLElBQUksQ0FBQ29GLEtBQUssQ0FBQ2hFLEtBQUssRUFBQ2hCLENBQUMsR0FBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDSyxDQUFDLEdBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ08sQ0FBQyxHQUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMrQixDQUFDLEdBQUMvQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUN1QixDQUFDLEdBQUN2QixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUN1QyxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUMsRUFBRSxFQUFDQSxDQUFDLEVBQUUsRUFBQztZQUFDLElBQUdBLENBQUMsR0FBQyxFQUFFLEVBQUNyQixDQUFDLENBQUNxQixDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUM5QyxDQUFDLENBQUNDLENBQUMsR0FBQzZDLENBQUMsQ0FBQyxDQUFDLEtBQUk7Y0FBQyxJQUFJSyxDQUFDLEdBQUMxQixDQUFDLENBQUNxQixDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUNyQixDQUFDLENBQUNxQixDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUNyQixDQUFDLENBQUNxQixDQUFDLEdBQUMsRUFBRSxDQUFDLEdBQUNyQixDQUFDLENBQUNxQixDQUFDLEdBQUMsRUFBRSxDQUFDO2NBQUNyQixDQUFDLENBQUNxQixDQUFDLENBQUMsR0FBQ0ssQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxLQUFHLEVBQUU7WUFBQTtZQUFDLElBQUlPLENBQUMsR0FBQyxDQUFDL0MsQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxLQUFHLEVBQUUsSUFBRW1CLENBQUMsR0FBQ0wsQ0FBQyxDQUFDcUIsQ0FBQyxDQUFDO1lBQUNZLENBQUMsSUFBRVosQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDbEMsQ0FBQyxHQUFDRSxDQUFDLEdBQUMsQ0FBQ0YsQ0FBQyxHQUFDMEIsQ0FBQyxJQUFFLFVBQVUsR0FBQ1EsQ0FBQyxHQUFDLEVBQUUsR0FBQyxDQUFDbEMsQ0FBQyxHQUFDRSxDQUFDLEdBQUN3QixDQUFDLElBQUUsVUFBVSxHQUFDUSxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUNsQyxDQUFDLEdBQUNFLENBQUMsR0FBQ0YsQ0FBQyxHQUFDMEIsQ0FBQyxHQUFDeEIsQ0FBQyxHQUFDd0IsQ0FBQyxJQUFFLFVBQVUsR0FBQyxDQUFDMUIsQ0FBQyxHQUFDRSxDQUFDLEdBQUN3QixDQUFDLElBQUUsU0FBUyxFQUFDUixDQUFDLEdBQUNRLENBQUMsRUFBQ0EsQ0FBQyxHQUFDeEIsQ0FBQyxFQUFDQSxDQUFDLEdBQUNGLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsS0FBRyxDQUFDLEVBQUNBLENBQUMsR0FBQ0QsQ0FBQyxFQUFDQSxDQUFDLEdBQUMrQyxDQUFDO1VBQUE7VUFBQ25ELENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDSSxDQUFDLEdBQUMsQ0FBQyxFQUFDSixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0ssQ0FBQyxHQUFDLENBQUMsRUFBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNPLENBQUMsR0FBQyxDQUFDLEVBQUNQLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDK0IsQ0FBQyxHQUFDLENBQUMsRUFBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDdUIsQ0FBQyxHQUFDLENBQUM7UUFBQSxDQUFDO1FBQUMrQyxXQUFXLEVBQUMsU0FBQUEsWUFBQSxFQUFVO1VBQUMsSUFBSTdFLENBQUMsR0FBQyxJQUFJLENBQUM2RCxLQUFLO1lBQUM1RCxDQUFDLEdBQUNELENBQUMsQ0FBQzJCLEtBQUs7WUFBQ3BCLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDdUQsV0FBVztZQUFDbkQsQ0FBQyxHQUFDLENBQUMsR0FBQ1gsQ0FBQyxDQUFDNEIsUUFBUTtVQUFDLE9BQU8zQixDQUFDLENBQUNVLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxHQUFHLElBQUUsRUFBRSxHQUFDQSxDQUFDLEdBQUMsRUFBRSxFQUFDVixDQUFDLENBQUMsQ0FBQ1UsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDdUUsSUFBSSxDQUFDNEIsS0FBSyxDQUFDdkcsQ0FBQyxHQUFDLFVBQVUsQ0FBQyxFQUFDTixDQUFDLENBQUMsQ0FBQ1UsQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDSixDQUFDLEVBQUNQLENBQUMsQ0FBQzRCLFFBQVEsR0FBQyxDQUFDLEdBQUMzQixDQUFDLENBQUM0QixNQUFNLEVBQUMsSUFBSSxDQUFDbUMsUUFBUSxFQUFFLEVBQUMsSUFBSSxDQUFDMkIsS0FBSztRQUFBLENBQUM7UUFBQ25FLEtBQUssRUFBQyxTQUFBQSxNQUFBLEVBQVU7VUFBQyxJQUFJeEIsQ0FBQyxHQUFDWSxDQUFDLENBQUNZLEtBQUssQ0FBQ1csSUFBSSxDQUFDLElBQUksQ0FBQztVQUFDLE9BQU9uQyxDQUFDLENBQUMyRixLQUFLLEdBQUMsSUFBSSxDQUFDQSxLQUFLLENBQUNuRSxLQUFLLEVBQUUsRUFBQ3hCLENBQUM7UUFBQTtNQUFDLENBQUMsQ0FBQztJQUFDQyxDQUFDLENBQUMrRyxJQUFJLEdBQUNwRyxDQUFDLENBQUNrRSxhQUFhLENBQUN4QyxDQUFDLENBQUMsRUFBQ3JDLENBQUMsQ0FBQ2dILFFBQVEsR0FBQ3JHLENBQUMsQ0FBQ21FLGlCQUFpQixDQUFDekMsQ0FBQyxDQUFDO0VBQUEsQ0FBQyxFQUFFLEVBQUMsVUFBU3JDLENBQUMsRUFBQztJQUFDLElBQUlNLENBQUMsR0FBQ1AsQ0FBQztNQUFDVyxDQUFDLEdBQUNKLENBQUMsQ0FBQ00sR0FBRztNQUFDRCxDQUFDLEdBQUNELENBQUMsQ0FBQ2UsU0FBUztNQUFDWixDQUFDLEdBQUNILENBQUMsQ0FBQzZELE1BQU07TUFBQy9DLENBQUMsR0FBQ2xCLENBQUMsQ0FBQzBFLElBQUk7TUFBQzNDLENBQUMsR0FBQyxFQUFFO01BQUNSLENBQUMsR0FBQyxFQUFFO0lBQUMsQ0FBQyxZQUFVO01BQUMsU0FBUzlCLENBQUNBLENBQUNBLENBQUMsRUFBQztRQUFDLEtBQUksSUFBSU8sQ0FBQyxHQUFDTixDQUFDLENBQUNpSCxJQUFJLENBQUNsSCxDQUFDLENBQUMsRUFBQ1csQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxJQUFFSixDQUFDLEVBQUNJLENBQUMsRUFBRSxFQUFDLElBQUcsRUFBRVgsQ0FBQyxHQUFDVyxDQUFDLENBQUMsRUFBQyxPQUFNLENBQUMsQ0FBQztRQUFDLE9BQU0sQ0FBQyxDQUFDO01BQUE7TUFBQyxTQUFTSixDQUFDQSxDQUFDUCxDQUFDLEVBQUM7UUFBQyxPQUFPLFVBQVUsSUFBRUEsQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDO01BQUE7TUFBQyxLQUFJLElBQUlXLENBQUMsR0FBQyxDQUFDLEVBQUNDLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQyxFQUFFLEdBQUVaLENBQUMsQ0FBQ1csQ0FBQyxDQUFDLEtBQUdDLENBQUMsR0FBQyxDQUFDLEtBQUcwQixDQUFDLENBQUMxQixDQUFDLENBQUMsR0FBQ0wsQ0FBQyxDQUFDTixDQUFDLENBQUNrSCxHQUFHLENBQUN4RyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDbUIsQ0FBQyxDQUFDbEIsQ0FBQyxDQUFDLEdBQUNMLENBQUMsQ0FBQ04sQ0FBQyxDQUFDa0gsR0FBRyxDQUFDeEcsQ0FBQyxFQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDQyxDQUFDLEVBQUUsQ0FBQyxFQUFDRCxDQUFDLEVBQUU7SUFBQSxDQUFDLEVBQUU7SUFBQyxJQUFJbUMsQ0FBQyxHQUFDLEVBQUU7TUFBQ0ssQ0FBQyxHQUFDMUIsQ0FBQyxDQUFDMkYsTUFBTSxHQUFDdEcsQ0FBQyxDQUFDRSxNQUFNLENBQUM7UUFBQzBELFFBQVEsRUFBQyxTQUFBQSxTQUFBLEVBQVU7VUFBQyxJQUFJLENBQUNpQixLQUFLLEdBQUMsSUFBSS9FLENBQUMsQ0FBQ08sSUFBSSxDQUFDbUIsQ0FBQyxDQUFDRixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFBQSxDQUFDO1FBQUNpQyxlQUFlLEVBQUMsU0FBQUEsZ0JBQVNyRSxDQUFDLEVBQUNDLENBQUMsRUFBQztVQUFDLEtBQUksSUFBSU0sQ0FBQyxHQUFDLElBQUksQ0FBQ29GLEtBQUssQ0FBQ2hFLEtBQUssRUFBQ2hCLENBQUMsR0FBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDSyxDQUFDLEdBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ08sQ0FBQyxHQUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNrQixDQUFDLEdBQUNsQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMrQixDQUFDLEdBQUMvQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUM0QyxDQUFDLEdBQUM1QyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNtRCxDQUFDLEdBQUNuRCxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMrRCxDQUFDLEdBQUMvRCxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNxRixDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUMsRUFBRSxFQUFDQSxDQUFDLEVBQUUsRUFBQztZQUFDLElBQUdBLENBQUMsR0FBQyxFQUFFLEVBQUM5QyxDQUFDLENBQUM4QyxDQUFDLENBQUMsR0FBQyxDQUFDLEdBQUM1RixDQUFDLENBQUNDLENBQUMsR0FBQzJGLENBQUMsQ0FBQyxDQUFDLEtBQUk7Y0FBQyxJQUFJQyxDQUFDLEdBQUMvQyxDQUFDLENBQUM4QyxDQUFDLEdBQUMsRUFBRSxDQUFDO2dCQUFDRSxDQUFDLEdBQUMsQ0FBQ0QsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxLQUFHLENBQUMsS0FBR0EsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDQSxDQUFDLEtBQUcsQ0FBQztnQkFBQ0UsQ0FBQyxHQUFDakQsQ0FBQyxDQUFDOEMsQ0FBQyxHQUFDLENBQUMsQ0FBQztnQkFBQ0ksQ0FBQyxHQUFDLENBQUNELENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsS0FBRyxFQUFFLEtBQUdBLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQ0EsQ0FBQyxLQUFHLEVBQUU7Y0FBQ2pELENBQUMsQ0FBQzhDLENBQUMsQ0FBQyxHQUFDRSxDQUFDLEdBQUNoRCxDQUFDLENBQUM4QyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUNJLENBQUMsR0FBQ2xELENBQUMsQ0FBQzhDLENBQUMsR0FBQyxFQUFFLENBQUM7WUFBQTtZQUFDLElBQUlLLENBQUMsR0FBQzNELENBQUMsR0FBQ2EsQ0FBQyxHQUFDLENBQUNiLENBQUMsR0FBQ29CLENBQUM7Y0FBQ3dDLENBQUMsR0FBQ3ZGLENBQUMsR0FBQ0MsQ0FBQyxHQUFDRCxDQUFDLEdBQUNHLENBQUMsR0FBQ0YsQ0FBQyxHQUFDRSxDQUFDO2NBQUNxRixDQUFDLEdBQUMsQ0FBQ3hGLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsS0FBRyxDQUFDLEtBQUdBLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRUEsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxLQUFHLEVBQUUsQ0FBQztjQUFDeUYsQ0FBQyxHQUFDLENBQUM5RCxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLEtBQUcsQ0FBQyxLQUFHQSxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLEtBQUcsRUFBRSxDQUFDLElBQUVBLENBQUMsSUFBRSxDQUFDLEdBQUNBLENBQUMsS0FBRyxFQUFFLENBQUM7Y0FBQytELENBQUMsR0FBQy9CLENBQUMsR0FBQzhCLENBQUMsR0FBQ0gsQ0FBQyxHQUFDbkUsQ0FBQyxDQUFDOEQsQ0FBQyxDQUFDLEdBQUM5QyxDQUFDLENBQUM4QyxDQUFDLENBQUM7Y0FBQ1UsQ0FBQyxHQUFDSCxDQUFDLEdBQUNELENBQUM7WUFBQzVCLENBQUMsR0FBQ1osQ0FBQyxFQUFDQSxDQUFDLEdBQUNQLENBQUMsRUFBQ0EsQ0FBQyxHQUFDYixDQUFDLEVBQUNBLENBQUMsR0FBQ2IsQ0FBQyxHQUFDNEUsQ0FBQyxHQUFDLENBQUMsRUFBQzVFLENBQUMsR0FBQ1gsQ0FBQyxFQUFDQSxDQUFDLEdBQUNGLENBQUMsRUFBQ0EsQ0FBQyxHQUFDRCxDQUFDLEVBQUNBLENBQUMsR0FBQzBGLENBQUMsR0FBQ0MsQ0FBQyxHQUFDLENBQUM7VUFBQTtVQUFDL0YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNJLENBQUMsR0FBQyxDQUFDLEVBQUNKLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDSyxDQUFDLEdBQUMsQ0FBQyxFQUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ08sQ0FBQyxHQUFDLENBQUMsRUFBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNrQixDQUFDLEdBQUMsQ0FBQyxFQUFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMrQixDQUFDLEdBQUMsQ0FBQyxFQUFDL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM0QyxDQUFDLEdBQUMsQ0FBQyxFQUFDNUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNtRCxDQUFDLEdBQUMsQ0FBQyxFQUFDbkQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMrRCxDQUFDLEdBQUMsQ0FBQztRQUFBLENBQUM7UUFBQ08sV0FBVyxFQUFDLFNBQUFBLFlBQUEsRUFBVTtVQUFDLElBQUk3RSxDQUFDLEdBQUMsSUFBSSxDQUFDNkQsS0FBSztZQUFDdEQsQ0FBQyxHQUFDUCxDQUFDLENBQUMyQixLQUFLO1lBQUNoQixDQUFDLEdBQUMsQ0FBQyxHQUFDLElBQUksQ0FBQ21ELFdBQVc7WUFBQ2xELENBQUMsR0FBQyxDQUFDLEdBQUNaLENBQUMsQ0FBQzRCLFFBQVE7VUFBQyxPQUFPckIsQ0FBQyxDQUFDSyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxHQUFDLEVBQUUsRUFBQ0wsQ0FBQyxDQUFDLENBQUNLLENBQUMsR0FBQyxFQUFFLEtBQUcsQ0FBQyxJQUFFLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQ1gsQ0FBQyxDQUFDNkcsS0FBSyxDQUFDbkcsQ0FBQyxHQUFDLFVBQVUsQ0FBQyxFQUFDSixDQUFDLENBQUMsQ0FBQ0ssQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDRCxDQUFDLEVBQUNYLENBQUMsQ0FBQzRCLFFBQVEsR0FBQyxDQUFDLEdBQUNyQixDQUFDLENBQUNzQixNQUFNLEVBQUMsSUFBSSxDQUFDbUMsUUFBUSxFQUFFLEVBQUMsSUFBSSxDQUFDMkIsS0FBSztRQUFBLENBQUM7UUFBQ25FLEtBQUssRUFBQyxTQUFBQSxNQUFBLEVBQVU7VUFBQyxJQUFJeEIsQ0FBQyxHQUFDYyxDQUFDLENBQUNVLEtBQUssQ0FBQ1csSUFBSSxDQUFDLElBQUksQ0FBQztVQUFDLE9BQU9uQyxDQUFDLENBQUMyRixLQUFLLEdBQUMsSUFBSSxDQUFDQSxLQUFLLENBQUNuRSxLQUFLLEVBQUUsRUFBQ3hCLENBQUM7UUFBQTtNQUFDLENBQUMsQ0FBQztJQUFDTyxDQUFDLENBQUM2RyxNQUFNLEdBQUN0RyxDQUFDLENBQUNnRSxhQUFhLENBQUMzQixDQUFDLENBQUMsRUFBQzVDLENBQUMsQ0FBQzhHLFVBQVUsR0FBQ3ZHLENBQUMsQ0FBQ2lFLGlCQUFpQixDQUFDNUIsQ0FBQyxDQUFDO0VBQUEsQ0FBQyxDQUFDK0IsSUFBSSxDQUFDLEVBQUMsWUFBVTtJQUFDLFNBQVNqRixDQUFDQSxDQUFDRCxDQUFDLEVBQUM7TUFBQyxPQUFPQSxDQUFDLElBQUUsQ0FBQyxHQUFDLFVBQVUsR0FBQ0EsQ0FBQyxLQUFHLENBQUMsR0FBQyxRQUFRO0lBQUE7SUFBQyxJQUFJTyxDQUFDLEdBQUNQLENBQUM7TUFBQ1csQ0FBQyxHQUFDSixDQUFDLENBQUNNLEdBQUc7TUFBQ0QsQ0FBQyxHQUFDRCxDQUFDLENBQUNlLFNBQVM7TUFBQ1osQ0FBQyxHQUFDUCxDQUFDLENBQUNpQyxHQUFHO0lBQUMxQixDQUFDLENBQUN3RyxLQUFLLEdBQUN4RyxDQUFDLENBQUN5RyxPQUFPLEdBQUM7TUFBQ3hGLFNBQVMsRUFBQyxTQUFBQSxVQUFTL0IsQ0FBQyxFQUFDO1FBQUMsS0FBSSxJQUFJQyxDQUFDLEdBQUNELENBQUMsQ0FBQzJCLEtBQUssRUFBQ3BCLENBQUMsR0FBQ1AsQ0FBQyxDQUFDNEIsUUFBUSxFQUFDakIsQ0FBQyxHQUFDLEVBQUUsRUFBQ0MsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDTCxDQUFDLEVBQUNLLENBQUMsSUFBRSxDQUFDLEVBQUM7VUFBQyxJQUFJRSxDQUFDLEdBQUNiLENBQUMsQ0FBQ1csQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQ0EsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsS0FBSztVQUFDRCxDQUFDLENBQUM0QixJQUFJLENBQUNTLE1BQU0sQ0FBQ0MsWUFBWSxDQUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFBQTtRQUFDLE9BQU9ILENBQUMsQ0FBQytCLElBQUksQ0FBQyxFQUFFLENBQUM7TUFBQSxDQUFDO01BQUNDLEtBQUssRUFBQyxTQUFBQSxNQUFTM0MsQ0FBQyxFQUFDO1FBQUMsS0FBSSxJQUFJQyxDQUFDLEdBQUNELENBQUMsQ0FBQzZCLE1BQU0sRUFBQ3RCLENBQUMsR0FBQyxFQUFFLEVBQUNJLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQ1YsQ0FBQyxFQUFDVSxDQUFDLEVBQUUsRUFBQ0osQ0FBQyxDQUFDSSxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUVYLENBQUMsQ0FBQ2tELFVBQVUsQ0FBQ3ZDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxHQUFDLENBQUMsR0FBQyxFQUFFO1FBQUMsT0FBT0MsQ0FBQyxDQUFDSCxNQUFNLENBQUNGLENBQUMsRUFBQyxDQUFDLEdBQUNOLENBQUMsQ0FBQztNQUFBO0lBQUMsQ0FBQztJQUFDYSxDQUFDLENBQUMwRyxPQUFPLEdBQUM7TUFBQ3pGLFNBQVMsRUFBQyxTQUFBQSxVQUFTL0IsQ0FBQyxFQUFDO1FBQUMsS0FBSSxJQUFJTyxDQUFDLEdBQUNQLENBQUMsQ0FBQzJCLEtBQUssRUFBQ2hCLENBQUMsR0FBQ1gsQ0FBQyxDQUFDNEIsUUFBUSxFQUFDaEIsQ0FBQyxHQUFDLEVBQUUsRUFBQ0UsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDSCxDQUFDLEVBQUNHLENBQUMsSUFBRSxDQUFDLEVBQUM7VUFBQyxJQUFJVyxDQUFDLEdBQUN4QixDQUFDLENBQUNNLENBQUMsQ0FBQ08sQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQ0EsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsS0FBSyxDQUFDO1VBQUNGLENBQUMsQ0FBQzJCLElBQUksQ0FBQ1MsTUFBTSxDQUFDQyxZQUFZLENBQUN4QixDQUFDLENBQUMsQ0FBQztRQUFBO1FBQUMsT0FBT2IsQ0FBQyxDQUFDOEIsSUFBSSxDQUFDLEVBQUUsQ0FBQztNQUFBLENBQUM7TUFBQ0MsS0FBSyxFQUFDLFNBQUFBLE1BQVMzQyxDQUFDLEVBQUM7UUFBQyxLQUFJLElBQUlPLENBQUMsR0FBQ1AsQ0FBQyxDQUFDNkIsTUFBTSxFQUFDbEIsQ0FBQyxHQUFDLEVBQUUsRUFBQ0csQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDUCxDQUFDLEVBQUNPLENBQUMsRUFBRSxFQUFDSCxDQUFDLENBQUNHLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRWIsQ0FBQyxDQUFDRCxDQUFDLENBQUNrRCxVQUFVLENBQUNwQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsR0FBQyxDQUFDLEdBQUMsRUFBRSxDQUFDO1FBQUMsT0FBT0YsQ0FBQyxDQUFDSCxNQUFNLENBQUNFLENBQUMsRUFBQyxDQUFDLEdBQUNKLENBQUMsQ0FBQztNQUFBO0lBQUMsQ0FBQztFQUFBLENBQUMsRUFBRSxFQUFDLFlBQVU7SUFBQyxJQUFHLFVBQVUsSUFBRSxPQUFPa0gsV0FBVyxFQUFDO01BQUMsSUFBSXhILENBQUMsR0FBQ0QsQ0FBQztRQUFDTyxDQUFDLEdBQUNOLENBQUMsQ0FBQ1ksR0FBRztRQUFDRixDQUFDLEdBQUNKLENBQUMsQ0FBQ21CLFNBQVM7UUFBQ2QsQ0FBQyxHQUFDRCxDQUFDLENBQUNRLElBQUk7UUFBQ0wsQ0FBQyxHQUFDSCxDQUFDLENBQUNRLElBQUksR0FBQyxVQUFTbkIsQ0FBQyxFQUFDO1VBQUMsSUFBR0EsQ0FBQyxZQUFZeUgsV0FBVyxLQUFHekgsQ0FBQyxHQUFDLElBQUkwSCxVQUFVLENBQUMxSCxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUNBLENBQUMsWUFBWTJILFNBQVMsSUFBRSxXQUFXLElBQUUsT0FBT0MsaUJBQWlCLElBQUU1SCxDQUFDLFlBQVk0SCxpQkFBaUIsSUFBRTVILENBQUMsWUFBWTZILFVBQVUsSUFBRTdILENBQUMsWUFBWThILFdBQVcsSUFBRTlILENBQUMsWUFBWStILFVBQVUsSUFBRS9ILENBQUMsWUFBWWdJLFdBQVcsSUFBRWhJLENBQUMsWUFBWWlJLFlBQVksSUFBRWpJLENBQUMsWUFBWWtJLFlBQVksTUFBSWxJLENBQUMsR0FBQyxJQUFJMEgsVUFBVSxDQUFDMUgsQ0FBQyxDQUFDbUksTUFBTSxFQUFDbkksQ0FBQyxDQUFDb0ksVUFBVSxFQUFDcEksQ0FBQyxDQUFDcUksVUFBVSxDQUFDLENBQUMsRUFBQ3JJLENBQUMsWUFBWTBILFVBQVUsRUFBQztZQUFDLEtBQUksSUFBSXpILENBQUMsR0FBQ0QsQ0FBQyxDQUFDcUksVUFBVSxFQUFDOUgsQ0FBQyxHQUFDLEVBQUUsRUFBQ0ksQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDVixDQUFDLEVBQUNVLENBQUMsRUFBRSxFQUFDSixDQUFDLENBQUNJLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRVgsQ0FBQyxDQUFDVyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQztZQUFDQyxDQUFDLENBQUN1QixJQUFJLENBQUMsSUFBSSxFQUFDNUIsQ0FBQyxFQUFDTixDQUFDLENBQUM7VUFBQSxDQUFDLE1BQUtXLENBQUMsQ0FBQ1MsS0FBSyxDQUFDLElBQUksRUFBQ0MsU0FBUyxDQUFDO1FBQUEsQ0FBQztNQUFDUixDQUFDLENBQUNKLFNBQVMsR0FBQ0MsQ0FBQztJQUFBO0VBQUMsQ0FBQyxFQUFFLEVBQUMsVUFBU1YsQ0FBQyxFQUFDO0lBQUMsU0FBU00sQ0FBQ0EsQ0FBQ1AsQ0FBQyxFQUFDQyxDQUFDLEVBQUNNLENBQUMsRUFBQztNQUFDLE9BQU9QLENBQUMsR0FBQ0MsQ0FBQyxHQUFDTSxDQUFDO0lBQUE7SUFBQyxTQUFTSSxDQUFDQSxDQUFDWCxDQUFDLEVBQUNDLENBQUMsRUFBQ00sQ0FBQyxFQUFDO01BQUMsT0FBT1AsQ0FBQyxHQUFDQyxDQUFDLEdBQUMsQ0FBQ0QsQ0FBQyxHQUFDTyxDQUFDO0lBQUE7SUFBQyxTQUFTSyxDQUFDQSxDQUFDWixDQUFDLEVBQUNDLENBQUMsRUFBQ00sQ0FBQyxFQUFDO01BQUMsT0FBTSxDQUFDUCxDQUFDLEdBQUMsQ0FBQ0MsQ0FBQyxJQUFFTSxDQUFDO0lBQUE7SUFBQyxTQUFTTyxDQUFDQSxDQUFDZCxDQUFDLEVBQUNDLENBQUMsRUFBQ00sQ0FBQyxFQUFDO01BQUMsT0FBT1AsQ0FBQyxHQUFDTyxDQUFDLEdBQUNOLENBQUMsR0FBQyxDQUFDTSxDQUFDO0lBQUE7SUFBQyxTQUFTa0IsQ0FBQ0EsQ0FBQ3pCLENBQUMsRUFBQ0MsQ0FBQyxFQUFDTSxDQUFDLEVBQUM7TUFBQyxPQUFPUCxDQUFDLElBQUVDLENBQUMsR0FBQyxDQUFDTSxDQUFDLENBQUM7SUFBQTtJQUFDLFNBQVMrQixDQUFDQSxDQUFDdEMsQ0FBQyxFQUFDQyxDQUFDLEVBQUM7TUFBQyxPQUFPRCxDQUFDLElBQUVDLENBQUMsR0FBQ0QsQ0FBQyxLQUFHLEVBQUUsR0FBQ0MsQ0FBQztJQUFBO0lBQUMsSUFBSTZCLENBQUMsR0FBQzlCLENBQUM7TUFBQzhDLENBQUMsR0FBQ2hCLENBQUMsQ0FBQ2pCLEdBQUc7TUFBQ3NDLENBQUMsR0FBQ0wsQ0FBQyxDQUFDcEIsU0FBUztNQUFDZ0MsQ0FBQyxHQUFDWixDQUFDLENBQUMwQixNQUFNO01BQUNGLENBQUMsR0FBQ3hDLENBQUMsQ0FBQ21ELElBQUk7TUFBQ1csQ0FBQyxHQUFDekMsQ0FBQyxDQUFDMUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDO01BQUNvRixDQUFDLEdBQUMxQyxDQUFDLENBQUMxQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUM7TUFBQ3FGLENBQUMsR0FBQzNDLENBQUMsQ0FBQzFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztNQUFDc0YsQ0FBQyxHQUFDNUMsQ0FBQyxDQUFDMUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDO01BQUN1RixDQUFDLEdBQUM3QyxDQUFDLENBQUMxQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsVUFBVSxFQUFDLFVBQVUs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QUMsR0FBQ1AsQ0FBQztNQUFDVyxDQUFDLEdBQUNKLENBQUMsQ0FBQ00sR0FBRztNQUFDRCxDQUFDLEdBQUNELENBQUMsQ0FBQzZELE1BQU07TUFBQzFELENBQUMsR0FBQ1AsQ0FBQyxDQUFDZ0osR0FBRztNQUFDOUgsQ0FBQyxHQUFDWCxDQUFDLENBQUMwSSxJQUFJO01BQUNsSCxDQUFDLEdBQUN4QixDQUFDLENBQUNZLFNBQVM7TUFBQ0ksQ0FBQyxHQUFDdkIsQ0FBQyxDQUFDMEUsSUFBSTtNQUFDbkMsQ0FBQyxHQUFDLENBQUM3QyxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxDQUFDO01BQUNrRCxDQUFDLEdBQUMsRUFBRTtJQUFDLENBQUMsWUFBVTtNQUFDLEtBQUksSUFBSW5ELENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQyxFQUFFLEVBQUNBLENBQUMsRUFBRSxFQUFDbUQsQ0FBQyxDQUFDbkQsQ0FBQyxDQUFDLEdBQUNDLENBQUMsRUFBRTtJQUFBLENBQUMsRUFBRTtJQUFDLElBQUl5RCxDQUFDLEdBQUM1QixDQUFDLENBQUNrSSxNQUFNLEdBQUNwSixDQUFDLENBQUNJLE1BQU0sQ0FBQztNQUFDMEQsUUFBUSxFQUFDLFNBQUFBLFNBQUEsRUFBVTtRQUFDLElBQUksQ0FBQ2lCLEtBQUssR0FBQyxJQUFJckQsQ0FBQyxDQUFDbkIsSUFBSSxDQUFDLENBQUMsSUFBSU0sQ0FBQyxDQUFDTixJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUlNLENBQUMsQ0FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxJQUFJTSxDQUFDLENBQUNOLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSU0sQ0FBQyxDQUFDTixJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUlNLENBQUMsQ0FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxJQUFJTSxDQUFDLENBQUNOLElBQUksQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUMsSUFBSU0sQ0FBQyxDQUFDTixJQUFJLENBQUMsU0FBUyxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUlNLENBQUMsQ0FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO01BQUEsQ0FBQztNQUFDa0QsZUFBZSxFQUFDLFNBQUFBLGdCQUFTckUsQ0FBQyxFQUFDQyxDQUFDLEVBQUM7UUFBQyxLQUFJLElBQUlNLENBQUMsR0FBQyxJQUFJLENBQUNvRixLQUFLLENBQUNoRSxLQUFLLEVBQUNoQixDQUFDLEdBQUNKLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ0ssQ0FBQyxHQUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNPLENBQUMsR0FBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDa0IsQ0FBQyxHQUFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDK0IsQ0FBQyxHQUFDL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDdUIsQ0FBQyxHQUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDbUQsQ0FBQyxHQUFDbkQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDK0QsQ0FBQyxHQUFDL0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDcUYsQ0FBQyxHQUFDakYsQ0FBQyxDQUFDOEksSUFBSSxFQUFDNUQsQ0FBQyxHQUFDbEYsQ0FBQyxDQUFDK0ksR0FBRyxFQUFDNUQsQ0FBQyxHQUFDbEYsQ0FBQyxDQUFDNkksSUFBSSxFQUFDMUQsQ0FBQyxHQUFDbkYsQ0FBQyxDQUFDOEksR0FBRyxFQUFDMUQsQ0FBQyxHQUFDbEYsQ0FBQyxDQUFDMkksSUFBSSxFQUFDeEQsQ0FBQyxHQUFDbkYsQ0FBQyxDQUFDNEksR0FBRyxFQUFDeEQsQ0FBQyxHQUFDekUsQ0FBQyxDQUFDZ0ksSUFBSSxFQUFDdEQsQ0FBQyxHQUFDMUUsQ0FBQyxDQUFDaUksR0FBRyxFQUFDdEQsQ0FBQyxHQUFDOUQsQ0FBQyxDQUFDbUgsSUFBSSxFQUFDcEQsQ0FBQyxHQUFDL0QsQ0FBQyxDQUFDb0gsR0FBRyxFQUFDcEQsQ0FBQyxHQUFDeEUsQ0FBQyxDQUFDMkgsSUFBSSxFQUFDbEQsQ0FBQyxHQUFDekUsQ0FBQyxDQUFDNEgsR0FBRyxFQUFDbEQsQ0FBQyxHQUFDOUMsQ0FBQyxDQUFDK0YsSUFBSSxFQUFDaEQsQ0FBQyxHQUFDL0MsQ0FBQyxDQUFDZ0csR0FBRyxFQUFDaEQsQ0FBQyxHQUFDcEMsQ0FBQyxDQUFDbUYsSUFBSSxFQUFDOUMsQ0FBQyxHQUFDckMsQ0FBQyxDQUFDb0YsR0FBRyxFQUFDOUMsQ0FBQyxHQUFDaEIsQ0FBQyxFQUFDaUIsQ0FBQyxHQUFDaEIsQ0FBQyxFQUFDMEMsQ0FBQyxHQUFDekMsQ0FBQyxFQUFDMEMsQ0FBQyxHQUFDekMsQ0FBQyxFQUFDMEMsQ0FBQyxHQUFDekMsQ0FBQyxFQUFDMEMsQ0FBQyxHQUFDekMsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDL0QsQ0FBQyxFQUFDZ0UsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLEVBQUUsRUFBQ0EsQ0FBQyxFQUFFLEVBQUM7VUFBQyxJQUFJQyxDQUFDLEdBQUN6SCxDQUFDLENBQUN3SCxDQUFDLENBQUM7VUFBQyxJQUFHQSxDQUFDLEdBQUMsRUFBRSxFQUFDLElBQUlFLENBQUMsR0FBQ0QsQ0FBQyxDQUFDbkIsSUFBSSxHQUFDLENBQUMsR0FBQ3pKLENBQUMsQ0FBQ0MsQ0FBQyxHQUFDLENBQUMsR0FBQzBLLENBQUMsQ0FBQztZQUFDRyxDQUFDLEdBQUNGLENBQUMsQ0FBQ2xCLEdBQUcsR0FBQyxDQUFDLEdBQUMxSixDQUFDLENBQUNDLENBQUMsR0FBQyxDQUFDLEdBQUMwSyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSTtZQUFDLElBQUlJLENBQUMsR0FBQzVILENBQUMsQ0FBQ3dILENBQUMsR0FBQyxFQUFFLENBQUM7Y0FBQ0ssQ0FBQyxHQUFDRCxDQUFDLENBQUN0QixJQUFJO2NBQUN3QixDQUFDLEdBQUNGLENBQUMsQ0FBQ3JCLEdBQUc7Y0FBQ3dCLENBQUMsR0FBQyxDQUFDRixDQUFDLEtBQUcsQ0FBQyxHQUFDQyxDQUFDLElBQUUsRUFBRSxLQUFHRCxDQUFDLEtBQUcsQ0FBQyxHQUFDQyxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUNELENBQUMsS0FBRyxDQUFDO2NBQUNHLENBQUMsR0FBQyxDQUFDRixDQUFDLEtBQUcsQ0FBQyxHQUFDRCxDQUFDLElBQUUsRUFBRSxLQUFHQyxDQUFDLEtBQUcsQ0FBQyxHQUFDRCxDQUFDLElBQUUsRUFBRSxDQUFDLElBQUVDLENBQUMsS0FBRyxDQUFDLEdBQUNELENBQUMsSUFBRSxFQUFFLENBQUM7Y0FBQ0ksRUFBRSxHQUFDakksQ0FBQyxDQUFDd0gsQ0FBQyxHQUFDLENBQUMsQ0FBQztjQUFDVSxFQUFFLEdBQUNELEVBQUUsQ0FBQzNCLElBQUk7Y0FBQzZCLEVBQUUsR0FBQ0YsRUFBRSxDQUFDMUIsR0FBRztjQUFDNkIsRUFBRSxHQUFDLENBQUNGLEVBQUUsS0FBRyxFQUFFLEdBQUNDLEVBQUUsSUFBRSxFQUFFLEtBQUdELEVBQUUsSUFBRSxDQUFDLEdBQUNDLEVBQUUsS0FBRyxFQUFFLENBQUMsR0FBQ0QsRUFBRSxLQUFHLENBQUM7Y0FBQ0csRUFBRSxHQUFDLENBQUNGLEVBQUUsS0FBRyxFQUFFLEdBQUNELEVBQUUsSUFBRSxFQUFFLEtBQUdDLEVBQUUsSUFBRSxDQUFDLEdBQUNELEVBQUUsS0FBRyxFQUFFLENBQUMsSUFBRUMsRUFBRSxLQUFHLENBQUMsR0FBQ0QsRUFBRSxJQUFFLEVBQUUsQ0FBQztjQUFDSSxFQUFFLEdBQUN0SSxDQUFDLENBQUN3SCxDQUFDLEdBQUMsQ0FBQyxDQUFDO2NBQUNlLEVBQUUsR0FBQ0QsRUFBRSxDQUFDaEMsSUFBSTtjQUFDa0MsRUFBRSxHQUFDRixFQUFFLENBQUMvQixHQUFHO2NBQUNrQyxFQUFFLEdBQUN6SSxDQUFDLENBQUN3SCxDQUFDLEdBQUMsRUFBRSxDQUFDO2NBQUNrQixFQUFFLEdBQUNELEVBQUUsQ0FBQ25DLElBQUk7Y0FBQ3FDLEVBQUUsR0FBQ0YsRUFBRSxDQUFDbEMsR0FBRztjQUFDb0IsQ0FBQyxHQUFDSyxDQUFDLEdBQUNRLEVBQUU7Y0FBQ2QsQ0FBQyxHQUFDSyxDQUFDLEdBQUNRLEVBQUUsSUFBRVosQ0FBQyxLQUFHLENBQUMsR0FBQ0ssQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO2NBQUNMLENBQUMsR0FBQ0EsQ0FBQyxHQUFDVSxFQUFFO2NBQUNYLENBQUMsR0FBQ0EsQ0FBQyxHQUFDVSxFQUFFLElBQUVULENBQUMsS0FBRyxDQUFDLEdBQUNVLEVBQUUsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztjQUFDVixDQUFDLEdBQUNBLENBQUMsR0FBQ2dCLEVBQUU7Y0FBQ2pCLENBQUMsR0FBQ0EsQ0FBQyxHQUFDZ0IsRUFBRSxJQUFFZixDQUFDLEtBQUcsQ0FBQyxHQUFDZ0IsRUFBRSxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO1lBQUNsQixDQUFDLENBQUNuQixJQUFJLEdBQUNvQixDQUFDLEVBQUNELENBQUMsQ0FBQ2xCLEdBQUcsR0FBQ29CLENBQUM7VUFBQTtVQUFDLElBQUlpQixFQUFFLEdBQUM1QixDQUFDLEdBQUNFLENBQUMsR0FBQyxDQUFDRixDQUFDLEdBQUNJLENBQUM7WUFBQ3lCLEVBQUUsR0FBQzVCLENBQUMsR0FBQ0UsQ0FBQyxHQUFDLENBQUNGLENBQUMsR0FBQ0ksQ0FBQztZQUFDeUIsRUFBRSxHQUFDckYsQ0FBQyxHQUFDMkIsQ0FBQyxHQUFDM0IsQ0FBQyxHQUFDNkIsQ0FBQyxHQUFDRixDQUFDLEdBQUNFLENBQUM7WUFBQ3lELEVBQUUsR0FBQ3JGLENBQUMsR0FBQzJCLENBQUMsR0FBQzNCLENBQUMsR0FBQzZCLENBQUMsR0FBQ0YsQ0FBQyxHQUFDRSxDQUFDO1lBQUN5RCxFQUFFLEdBQUMsQ0FBQ3ZGLENBQUMsS0FBRyxFQUFFLEdBQUNDLENBQUMsSUFBRSxDQUFDLEtBQUdELENBQUMsSUFBRSxFQUFFLEdBQUNDLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRUQsQ0FBQyxJQUFFLEVBQUUsR0FBQ0MsQ0FBQyxLQUFHLENBQUMsQ0FBQztZQUFDdUYsRUFBRSxHQUFDLENBQUN2RixDQUFDLEtBQUcsRUFBRSxHQUFDRCxDQUFDLElBQUUsQ0FBQyxLQUFHQyxDQUFDLElBQUUsRUFBRSxHQUFDRCxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUVDLENBQUMsSUFBRSxFQUFFLEdBQUNELENBQUMsS0FBRyxDQUFDLENBQUM7WUFBQ3lGLEVBQUUsR0FBQyxDQUFDbEMsQ0FBQyxLQUFHLEVBQUUsR0FBQ0MsQ0FBQyxJQUFFLEVBQUUsS0FBR0QsQ0FBQyxLQUFHLEVBQUUsR0FBQ0MsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxJQUFFRCxDQUFDLElBQUUsRUFBRSxHQUFDQyxDQUFDLEtBQUcsQ0FBQyxDQUFDO1lBQUNrQyxFQUFFLEdBQUMsQ0FBQ2xDLENBQUMsS0FBRyxFQUFFLEdBQUNELENBQUMsSUFBRSxFQUFFLEtBQUdDLENBQUMsS0FBRyxFQUFFLEdBQUNELENBQUMsSUFBRSxFQUFFLENBQUMsSUFBRUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0QsQ0FBQyxLQUFHLENBQUMsQ0FBQztZQUFDb0MsRUFBRSxHQUFDekosQ0FBQyxDQUFDNkgsQ0FBQyxDQUFDO1lBQUM2QixFQUFFLEdBQUNELEVBQUUsQ0FBQzlDLElBQUk7WUFBQ2dELEVBQUUsR0FBQ0YsRUFBRSxDQUFDN0MsR0FBRztZQUFDZ0QsRUFBRSxHQUFDaEMsQ0FBQyxHQUFDNEIsRUFBRTtZQUFDSyxFQUFFLEdBQUNsQyxDQUFDLEdBQUM0QixFQUFFLElBQUVLLEVBQUUsS0FBRyxDQUFDLEdBQUNoQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7WUFBQ2dDLEVBQUUsR0FBQ0EsRUFBRSxHQUFDVixFQUFFO1lBQUNXLEVBQUUsR0FBQ0EsRUFBRSxHQUFDWixFQUFFLElBQUVXLEVBQUUsS0FBRyxDQUFDLEdBQUNWLEVBQUUsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztZQUFDVSxFQUFFLEdBQUNBLEVBQUUsR0FBQ0QsRUFBRTtZQUFDRSxFQUFFLEdBQUNBLEVBQUUsR0FBQ0gsRUFBRSxJQUFFRSxFQUFFLEtBQUcsQ0FBQyxHQUFDRCxFQUFFLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7WUFBQ0MsRUFBRSxHQUFDQSxFQUFFLEdBQUM1QixDQUFDO1lBQUM2QixFQUFFLEdBQUNBLEVBQUUsR0FBQzlCLENBQUMsSUFBRTZCLEVBQUUsS0FBRyxDQUFDLEdBQUM1QixDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7WUFBQzhCLEVBQUUsR0FBQ1IsRUFBRSxHQUFDRixFQUFFO1lBQUNXLEVBQUUsR0FBQ1YsRUFBRSxHQUFDRixFQUFFLElBQUVXLEVBQUUsS0FBRyxDQUFDLEdBQUNSLEVBQUUsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztVQUFDM0IsQ0FBQyxHQUFDRixDQUFDLEVBQUNHLENBQUMsR0FBQ0YsQ0FBQyxFQUFDRCxDQUFDLEdBQUNGLENBQUMsRUFBQ0csQ0FBQyxHQUFDRixDQUFDLEVBQUNELENBQUMsR0FBQ0YsQ0FBQyxFQUFDRyxDQUFDLEdBQUNGLENBQUMsRUFBQ0EsQ0FBQyxHQUFDRixDQUFDLEdBQUN3QyxFQUFFLEdBQUMsQ0FBQyxFQUFDdkMsQ0FBQyxHQUFDRixDQUFDLEdBQUMwQyxFQUFFLElBQUV2QyxDQUFDLEtBQUcsQ0FBQyxHQUFDRixDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNELENBQUMsR0FBQ3hCLENBQUMsRUFBQ3lCLENBQUMsR0FBQ3hCLENBQUMsRUFBQ0QsQ0FBQyxHQUFDRixDQUFDLEVBQUNHLENBQUMsR0FBQ0YsQ0FBQyxFQUFDRCxDQUFDLEdBQUMzQixDQUFDLEVBQUM0QixDQUFDLEdBQUMzQixDQUFDLEVBQUNBLENBQUMsR0FBQzZGLEVBQUUsR0FBQ0UsRUFBRSxHQUFDLENBQUMsRUFBQ2hHLENBQUMsR0FBQytGLEVBQUUsR0FBQ0UsRUFBRSxJQUFFaEcsQ0FBQyxLQUFHLENBQUMsR0FBQzZGLEVBQUUsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUM7UUFBQTtRQUFDN0csQ0FBQyxHQUFDbEYsQ0FBQyxDQUFDK0ksR0FBRyxHQUFDN0QsQ0FBQyxHQUFDZ0IsQ0FBQyxFQUFDbEcsQ0FBQyxDQUFDOEksSUFBSSxHQUFDN0QsQ0FBQyxHQUFDZ0IsQ0FBQyxJQUFFZixDQUFDLEtBQUcsQ0FBQyxHQUFDZ0IsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUNkLENBQUMsR0FBQ25GLENBQUMsQ0FBQzhJLEdBQUcsR0FBQzNELENBQUMsR0FBQ3lDLENBQUMsRUFBQzVILENBQUMsQ0FBQzZJLElBQUksR0FBQzNELENBQUMsR0FBQ3lDLENBQUMsSUFBRXhDLENBQUMsS0FBRyxDQUFDLEdBQUN5QyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQ3ZDLENBQUMsR0FBQ25GLENBQUMsQ0FBQzRJLEdBQUcsR0FBQ3pELENBQUMsR0FBQ3lDLENBQUMsRUFBQzVILENBQUMsQ0FBQzJJLElBQUksR0FBQ3pELENBQUMsR0FBQ3lDLENBQUMsSUFBRXhDLENBQUMsS0FBRyxDQUFDLEdBQUN5QyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQ3ZDLENBQUMsR0FBQzFFLENBQUMsQ0FBQ2lJLEdBQUcsR0FBQ3ZELENBQUMsR0FBQytELENBQUMsRUFBQ3pJLENBQUMsQ0FBQ2dJLElBQUksR0FBQ3ZELENBQUMsR0FBQytELENBQUMsSUFBRTlELENBQUMsS0FBRyxDQUFDLEdBQUMrRCxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQzdELENBQUMsR0FBQy9ELENBQUMsQ0FBQ29ILEdBQUcsR0FBQ3JELENBQUMsR0FBQytELENBQUMsRUFBQzlILENBQUMsQ0FBQ21ILElBQUksR0FBQ3JELENBQUMsR0FBQytELENBQUMsSUFBRTlELENBQUMsS0FBRyxDQUFDLEdBQUMrRCxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQzdELENBQUMsR0FBQ3pFLENBQUMsQ0FBQzRILEdBQUcsR0FBQ25ELENBQUMsR0FBQytELENBQUMsRUFBQ3hJLENBQUMsQ0FBQzJILElBQUksR0FBQ25ELENBQUMsR0FBQytELENBQUMsSUFBRTlELENBQUMsS0FBRyxDQUFDLEdBQUMrRCxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQzdELENBQUMsR0FBQy9DLENBQUMsQ0FBQ2dHLEdBQUcsR0FBQ2pELENBQUMsR0FBQytELENBQUMsRUFBQzlHLENBQUMsQ0FBQytGLElBQUksR0FBQ2pELENBQUMsR0FBQytELENBQUMsSUFBRTlELENBQUMsS0FBRyxDQUFDLEdBQUMrRCxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQzdELENBQUMsR0FBQ3JDLENBQUMsQ0FBQ29GLEdBQUcsR0FBQy9DLENBQUMsR0FBQytELENBQUMsRUFBQ3BHLENBQUMsQ0FBQ21GLElBQUksR0FBQy9DLENBQUMsR0FBQytELENBQUMsSUFBRTlELENBQUMsS0FBRyxDQUFDLEdBQUMrRCxDQUFDLEtBQUcs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QUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQztNQUFDZ0IsQ0FBQyxHQUFDLENBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLENBQUM7TUFBQ0ssQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxDQUFDO01BQUNPLENBQUMsR0FBQyxDQUFDO1FBQUMsQ0FBQyxFQUFDLE9BQU87UUFBQyxTQUFTLEVBQUMsS0FBSztRQUFDLFNBQVMsRUFBQyxPQUFPO1FBQUMsU0FBUyxFQUFDLENBQUM7UUFBQyxVQUFVLEVBQUMsR0FBRztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxHQUFHO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLEtBQUs7UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxDQUFDO1FBQUMsVUFBVSxFQUFDLEtBQUs7UUFBQyxTQUFTLEVBQUMsQ0FBQztRQUFDLFNBQVMsRUFBQyxPQUFPO1FBQUMsU0FBUyxFQUFDLEtBQUs7UUFBQyxTQUFTLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLEdBQUc7UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxDQUFDO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLEdBQUc7UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLENBQUMsRUFBQyxLQUFLO1FBQUMsU0FBUyxFQUFDLENBQUM7UUFBQyxTQUFTLEVBQUMsT0FBTztRQUFDLFNBQVMsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxHQUFHO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxHQUFHO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxDQUFDO1FBQUMsU0FBUyxFQUFDLE9BQU87UUFBQyxTQUFTLEVBQUMsT0FBTztRQUFDLFNBQVMsRUFBQyxPQUFPO1FBQUMsU0FBUyxFQUFDLEdBQUc7UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLENBQUM7UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsR0FBRztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsQ0FBQztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDO01BQU8sQ0FBQyxFQUFDO1FBQUMsQ0FBQyxFQUFDLFVBQVU7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxNQUFNO1FBQUMsUUFBUSxFQUFDLFVBQVU7UUFBQyxRQUFRLEVBQUMsVUFBVTtRQUFDLFFBQVEsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsRUFBRTtRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsQ0FBQztRQUFDLFNBQVMsRUFBQyxLQUFLO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLFFBQVEsRUFBQyxNQUFNO1FBQUMsUUFBUSxFQUFDLEVBQUU7UUFBQyxRQUFRLEVBQUMsVUFBVTtRQUFDLFFBQVEsRUFBQyxVQUFVO1FBQUMsUUFBUSxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsTUFBTTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsQ0FBQztRQUFDLFNBQVMsRUFBQyxLQUFLO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsS0FBSztRQUFDLFNBQVMsRUFBQyxDQUFDO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsRUFBRTtRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLEtBQUs7UUFBQyxTQUFTLEVBQUMsS0FBSztRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsTUFBTTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLEtBQUs7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLEVBQUU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLENBQUM7UUFBQyxTQUFTLEVBQUMsS0FBSztRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDO01BQU0sQ0FBQyxFQUFDO1FBQUMsQ0FBQyxFQUFDLEdBQUc7UUFBQyxPQUFPLEVBQUMsQ0FBQztRQUFDLE9BQU8sRUFBQyxRQUFRO1FBQUMsT0FBTyxFQUFDLEtBQUs7UUFBQyxPQUFPLEVBQUMsS0FBSztRQUFDLE9BQU8sRUFBQyxRQUFRO1FBQUMsT0FBTyxFQUFDLFFBQVE7UUFBQyxPQUFPLEVBQUMsUUFBUTtRQUFDLE9BQU8sRUFBQyxRQUFRO1FBQUMsT0FBTyxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxDQUFDO1FBQUMsUUFBUSxFQUFDLEdBQUc7UUFBQyxNQUFNLEVBQUMsUUFBUTtRQUFDLE9BQU8sRUFBQyxRQUFRO1FBQUMsT0FBTyxFQUFDLENBQUM7UUFBQyxPQUFPLEVBQUMsUUFBUTtRQUFDLE9BQU8sRUFBQyxRQUFRO1FBQUMsT0FBTyxFQUFDLEtBQUs7UUFBQyxPQUFPLEVBQUMsS0FBSztRQUFDLE9BQU8sRUFBQyxHQUFHO1FBQUMsT0FBTyxFQUFDLENBQUM7UUFBQyxPQUFPLEVBQUMsR0FBRztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLEtBQUs7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLEtBQUs7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLEdBQUc7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLENBQUM7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLENBQUM7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLEdBQUc7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsR0FBRztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLENBQUM7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLEdBQUc7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxDQUFDO1FBQUMsUUFBUSxFQUFDO01BQUssQ0FBQyxFQUFDO1FBQUMsQ0FBQyxFQUFDLFVBQVU7UUFBQyxLQUFLLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxPQUFPO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxNQUFNLEVBQUMsQ0FBQztRQUFDLE1BQU0sRUFBQyxPQUFPO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxNQUFNLEVBQUMsT0FBTztRQUFDLE1BQU0sRUFBQyxVQUFVO1FBQUMsTUFBTSxFQUFDLE9BQU87UUFBQyxNQUFNLEVBQUMsRUFBRTtRQUFDLE1BQU0sRUFBQyxVQUFVO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxNQUFNLEVBQUMsSUFBSTtRQUFDLE1BQU0sRUFBQyxJQUFJO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxLQUFLLEVBQUMsVUFBVTtRQUFDLEtBQUssRUFBQyxFQUFFO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxPQUFPO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxNQUFNLEVBQUMsQ0FBQztRQUFDLE1BQU0sRUFBQyxVQUFVO1FBQUMsTUFBTSxFQUFDLElBQUk7UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxPQUFPO1FBQUMsTUFBTSxFQUFDLElBQUk7UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxPQUFPO1FBQUMsTUFBTSxFQUFDLE9BQU87UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxPQUFPO1FBQUMsT0FBTyxFQUFDLE9BQU87UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxDQUFDO1FBQUMsT0FBTyxFQUFDLElBQUk7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsT0FBTztRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLE9BQU87UUFBQyxPQUFPLEVBQUMsRUFBRTtRQUFDLE9BQU8sRUFBQyxJQUFJO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxDQUFDO1FBQUMsT0FBTyxFQUFDLE9BQU87UUFBQyxPQUFPLEVBQUMsT0FBTztRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsRUFBRTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLElBQUk7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLElBQUk7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxPQUFPO1FBQUMsT0FBTyxFQUFDO01BQU8sQ0FBQyxFQUFDO1FBQUMsQ0FBQyxFQUFDLEdBQUc7UUFBQyxJQUFJLEVBQUMsUUFBUTtRQUFDLElBQUksRUFBQyxNQUFNO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxRQUFRO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsTUFBTTtRQUFDLEtBQUssRUFBQyxRQUFRO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsQ0FBQztRQUFDLEtBQUssRUFBQyxRQUFRO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsUUFBUTtRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLEdBQUc7UUFBQyxLQUFLLEVBQUMsUUFBUTtRQUFDLEtBQUssRUFBQyxNQUFNO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsQ0FBQztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsTUFBTTtRQUFDLEtBQUssRUFBQyxNQUFNO1FBQUMsS0FBSyxFQUFDLEdBQUc7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLE1BQU0sRUFBQyxTQUFTO1FBQUMsTUFBTSxFQUFDLFFBQVE7UUFBQyxNQUFNLEVBQUMsU0FBUztRQUFDLE1BQU0sRUFBQyxNQUFNO1FBQUMsTUFBTSxFQUFDLFNBQVM7UUFBQyxNQUFNLEVBQUMsQ0FBQztRQUFDLE1BQU0sRUFBQyxRQUFRO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsUUFBUTtRQUFDLEtBQUssRUFBQyxRQUFRO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxRQUFRO1FBQUMsS0FBSyxFQUFDLEdBQUc7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLE1BQU0sRUFBQyxNQUFNO1FBQUMsTUFBTSxFQUFDLFNBQVM7UUFBQyxNQUFNLEVBQUMsQ0FBQztRQUFDLE1BQU0sRUFBQyxTQUFTO1FBQUMsTUFBTSxFQUFDLFFBQVE7UUFBQyxNQUFNLEVBQUMsTUFBTTtRQUFDLE1BQU0sRUFBQyxTQUFTO1FBQUMsTUFBTSxFQUFDO01BQVMsQ0FBQyxFQUFDO1FBQUMsQ0FBQyxFQUFDLFNBQVM7UUFBQyxHQUFHLEVBQUMsSUFBSTtRQUFDLEdBQUcsRUFBQyxTQUFTO1FBQUMsR0FBRyxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxDQUFDO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxDQUFDO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxJQUFJO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxHQUFHLEVBQUMsU0FBUztRQUFDLEdBQUcsRUFBQyxTQUFTO1FBQUMsR0FBRyxFQUFDLENBQUM7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxJQUFJO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsSUFBSTtRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsQ0FBQztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxJQUFJO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxDQUFDO1FBQUMsSUFBSSxFQUFDLENBQUM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxJQUFJO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLENBQUM7UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxJQUFJO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsSUFBSTtRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsQ0FBQztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDO01BQVMsQ0FBQyxFQUFDO1FBQUMsQ0FBQyxFQUFDLE9BQU87UUFBQyxFQUFFLEVBQUMsUUFBUTtRQUFDLEVBQUUsRUFBQyxJQUFJO1FBQUMsRUFBRSxFQUFDLE9BQU87UUFBQyxFQUFFLEVBQUMsUUFBUTtRQUFDLEVBQUUsRUFBQyxDQUFDO1FBQUMsRUFBRSxFQUFDLENBQUM7UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsSUFBSTtRQUFDLEdBQUcsRUFBQyxPQUFPO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxDQUFDLEVBQUMsUUFBUTtRQUFDLEVBQUUsRUFBQyxDQUFDO1FBQUMsRUFBRSxFQUFDLFFBQVE7UUFBQyxFQUFFLEVBQUMsUUFBUTtRQUFDLEVBQUUsRUFBQyxPQUFPO1FBQUMsRUFBRSxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxJQUFJO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsSUFBSTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLENBQUM7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsSUFBSTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsQ0FBQztRQUFDLEdBQUcsRUFBQyxDQUFDO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxJQUFJO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLENBQUM7UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxPQUFPO1FBQUMsR0FBRyxFQUFDLElBQUk7UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsQ0FBQztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsSUFBSTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDO01BQU8sQ0FBQyxFQUFDO1FBQUMsQ0FBQyxFQUFDLFNBQVM7UUFBQyxDQUFDLEVBQUMsTUFBTTtRQUFDLENBQUMsRUFBQyxTQUFTO1FBQUMsQ0FBQyxFQUFDLEVBQUU7UUFBQyxDQUFDLEVBQUMsTUFBTTtRQUFDLENBQUMsRUFBQyxTQUFTO1FBQUMsQ0FBQyxFQUFDLFNBQVM7UUFBQyxDQUFDLEVBQUMsSUFBSTtRQUFDLENBQUMsRUFBQyxTQUFTO1FBQUMsQ0FBQyxFQUFDLFNBQVM7UUFBQyxFQUFFLEVBQUMsTUFBTTtRQUFDLEVBQUUsRUFBQyxTQUFTO1FBQUMsRUFBRSxFQUFDLElBQUk7UUFBQyxFQUFFLEVBQUMsQ0FBQztRQUFDLEVBQUUsRUFBQyxTQUFTO1FBQUMsRUFBRSxFQUFDLE1BQU07UUFBQyxVQUFVLEVBQUMsSUFBSTtRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLE1BQU07UUFBQyxVQUFVLEVBQUMsTUFBTTtRQUFDLFVBQVUsRUFBQyxFQUFFO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsSUFBSTtRQUFDLFVBQVUsRUFBQyxNQUFNO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsQ0FBQztRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsTUFBTTtRQUFDLEVBQUUsRUFBQyxNQUFNO1FBQUMsRUFBRSxFQUFDLFNBQVM7UUFBQyxFQUFFLEVBQUMsRUFBRTtRQUFDLEVBQUUsRUFBQyxJQUFJO1FBQUMsRUFBRSxFQUFDLFNBQVM7UUFBQyxFQUFFLEVBQUMsU0FBUztRQUFDLEVBQUUsRUFBQyxTQUFTO1FBQUMsRUFBRSxFQUFDLE1BQU07UUFBQyxFQUFFLEVBQUMsQ0FBQztRQUFDLEVBQUUsRUFBQyxNQUFNO1FBQUMsRUFBRSxFQUFDLFNBQVM7UUFBQyxFQUFFLEVBQUMsU0FBUztRQUFDLEVBQUUsRUFBQyxTQUFTO1FBQUMsRUFBRSxFQUFDLE1BQU07UUFBQyxFQUFFLEVBQUMsSUFBSTtRQUFDLEVBQUUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLE1BQU07UUFBQyxVQUFVLEVBQUMsSUFBSTtRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLE1BQU07UUFBQyxVQUFVLEVBQUMsRUFBRTtRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxDQUFDO1FBQUMsVUFBVSxFQUFDLE1BQU07UUFBQyxVQUFVLEVBQUMsSUFBSTtRQUFDLFVBQVUsRUFBQyxNQUFNO1FBQUMsVUFBVSxFQUFDO01BQVMsQ0FBQyxDQUFDO01BQUNZLENBQUMsR0FBQyxDQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLEdBQUcsRUFBQyxVQUFVLENBQUM7TUFBQ3NCLENBQUMsR0FBQ3RELENBQUMsQ0FBQ3dPLEdBQUcsR0FBQ3JQLENBQUMsQ0FB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QUksQ0FBQzhSLEVBQUUsR0FBQyxDQUFDLEVBQUM5UixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxTQUFTLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxTQUFTLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDeVAsRUFBRSxHQUFDOVIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUM7TUFBQyxLQUFJLElBQUkvQixDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEVBQUUsRUFBQztRQUFDLElBQUlJLENBQUMsR0FBQ1gsQ0FBQyxDQUFDTyxDQUFDLENBQUMsR0FBQ04sQ0FBQyxDQUFDTSxDQUFDLENBQUM7VUFBQ0ssQ0FBQyxHQUFDLEtBQUssR0FBQ0QsQ0FBQztVQUFDRyxDQUFDLEdBQUNILENBQUMsS0FBRyxFQUFFO1VBQUNjLENBQUMsR0FBQyxDQUFDLENBQUNiLENBQUMsR0FBQ0EsQ0FBQyxLQUFHLEVBQUUsSUFBRUEsQ0FBQyxHQUFDRSxDQUFDLEtBQUcsRUFBRSxJQUFFQSxDQUFDLEdBQUNBLENBQUM7VUFBQ2dDLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxHQUFDbkMsQ0FBQyxJQUFFQSxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsS0FBSyxHQUFDQSxDQUFDLElBQUVBLENBQUMsR0FBQyxDQUFDLENBQUM7UUFBQ21CLENBQUMsQ0FBQ3ZCLENBQUMsQ0FBQyxHQUFDa0IsQ0FBQyxHQUFDcUIsQ0FBQztNQUFBO01BQUM5QyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxD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QUFFLEdBQUMsQ0FBQzlSLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7VUFBQyxJQUFJLENBQUMrUixFQUFFLEdBQUMsQ0FBQztVQUFDLEtBQUksSUFBSXBSLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsRUFBRSxFQUFDVixDQUFDLENBQUNrQyxJQUFJLENBQUMsSUFBSSxDQUFDO1VBQUMsS0FBSSxJQUFJeEIsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxFQUFFLEVBQUNHLENBQUMsQ0FBQ0gsQ0FBQyxDQUFDLElBQUVDLENBQUMsQ0FBQ0QsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUM7VUFBQyxJQUFHSixDQUFDLEVBQUM7WUFBQyxJQUFJa0IsQ0FBQyxHQUFDbEIsQ0FBQyxDQUFDb0IsS0FBSztjQUFDVyxDQUFDLEdBQUNiLENBQUMsQ0FBQyxDQUFDLENBQUM7Y0FBQ0ssQ0FBQyxHQUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDO2NBQUNxQixDQUFDLEdBQUMsUUFBUSxJQUFFUixDQUFDLElBQUUsQ0FBQyxHQUFDQSxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxJQUFFQSxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLEtBQUcsQ0FBQyxDQUFDO2NBQUNhLENBQUMsR0FBQyxRQUFRLElBQUVyQixDQUFDLElBQUUsQ0FBQyxHQUFDQSxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxJQUFFQSxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLEtBQUcsQ0FBQyxDQUFDO2NBQUM0QixDQUFDLEdBQUNaLENBQUMsS0FBRyxFQUFFLEdBQUMsVUFBVSxHQUFDSyxDQUFDO2NBQUNtQixDQUFDLEdBQUNuQixDQUFDLElBQUUsRUFBRSxHQUFDLEtBQUssR0FBQ0wsQ0FBQztZQUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFZ0MsQ0FBQyxFQUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFNEMsQ0FBQyxFQUFDNUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFcUMsQ0FBQyxFQUFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFd0QsQ0FBQyxFQUFDeEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFZ0MsQ0FBQyxFQUFDaEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFNEMsQ0FBQyxFQUFDNUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFcUMsQ0FBQyxFQUFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFd0QsQ0FBQztZQUFDLEtBQUksSUFBSTNELENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsRUFBRSxFQUFDVixDQUFDLENBQUNrQyxJQUFJLENBQUMsSUFBSSxDQUFDO1VBQUE7UUFBQyxDQUFDO1FBQUNrQyxlQUFlLEVBQUMsU0FBQUEsZ0JBQVNyRSxDQUFDLEVBQUNPLENBQUMsRUFBQztVQUFDLElBQUlJLENBQUMsR0FBQyxJQUFJLENBQUNrUixFQUFFO1VBQUM1UixDQUFDLENBQUNrQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUNWLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxFQUFDYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNkLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsRUFBQ2MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDZCxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEVBQUNjLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRTtVQUFDLEtBQUksSUFBSUMsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxFQUFFLEVBQUNhLENBQUMsQ0FBQ2IsQ0FBQyxDQUFDLEdBQUMsUUFBUSxJQUFFYSxDQUFDLENBQUNiLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQ2EsQ0FBQyxDQUFDYixDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLElBQUVhLENBQUMsQ0FBQ2IsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDYSxDQUFDLENBQUNiLENBQUMsQ0FBQyxLQUFHLENBQUMsQ0FB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ckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsU0FBUyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQ3lQLEVBQUUsR0FBQzlSLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDO01BQUMsS0FBSSxJQUFJL0IsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxFQUFFLEVBQUM7UUFBQyxJQUFJSSxDQUFDLEdBQUNYLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLEdBQUNOLENBQUMsQ0FBQ00sQ0FBQyxDQUFDO1VBQUNLLENBQUMsR0FBQyxLQUFLLEdBQUNELENBQUM7VUFBQ0csQ0FBQyxHQUFDSCxDQUFDLEtBQUcsRUFBRTtVQUFDYyxDQUFDLEdBQUMsQ0FBQyxDQUFDYixDQUFDLEdBQUNBLENBQUMsS0FBRyxFQUFFLElBQUVBLENBQUMsR0FBQ0UsQ0FBQyxLQUFHLEVBQUUsSUFBRUEsQ0FBQyxHQUFDQSxDQUFDO1VBQUNnQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBQ25DLENBQUMsSUFBRUEsQ0FBQyxHQUFDLENBQUMsS0FBRyxDQUFDLEtBQUssR0FBQ0EsQ0FBQyxJQUFFQSxDQUFDLEdBQUMsQ0FBQyxDQUFDO1FBQUNtQixDQUFDLENBQUN2QixDQUFDLENBQUMsR0FBQ2tCLENBQUMsR0FBQ3FCLENBQUM7TUFBQTtNQUFDOUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUM7SUFBQTtJQUFDLElBQUl2QixDQUFDLEdBQUNQLENBQUM7TUFBQ1csQ0FBQyxHQUFDSixDQUFDLENBQUNNLEdBQUc7TUFBQ0QsQ0FBQyxHQUFDRCxDQUFDLENBQUNpTixZQUFZO01BQUM5TSxDQUFDLEdBQUNQLENBQUMsQ0FBQzBFLElBQUk7TUFBQ3hELENBQUMsR0FBQyxFQUFFO01BQUNhLENBQUMsR0FBQyxFQUFFO01BQUNSLENBQUMsR0FBQyxFQUFFO01BQUNnQixDQUFDLEdBQUNoQyxDQUFDLENBQUNvUixZQUFZLEdBQUN0UixDQUFDLENBQUNJLE1BQU0sQ0FBQztRQUFDMEQsUUFBUSxFQUFDLFNBQUFBLFNBQUEsRUFBVTtVQUFDLElBQUkxRSxDQUFDLEdBQUMsSUFBSSxDQUFDdU4sSUFBSSxDQUFDNUwsS0FBSztZQUFDcEIsQ0FBQyxHQUFDLElBQUksQ0FBQ2tFLEdBQUcsQ0FBQ29LLEVBQUU7WUFBQ2xPLENBQUMsR0FBQyxJQUFJLENBQUNrUixFQUFFLEdBQUMsQ0FBQzdSLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQztZQUFDWSxDQUFDLEdBQUMsSUFBSSxDQUFDa1IsRUFBRSxHQUFDLENBQUM5UixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDLFVBQVUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLEtBQUssR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1VBQUMsSUFBSSxDQUFDK1IsRUFBRSxHQUFDLENBQUM7VUFBQyxLQUFJLElBQUlqUixDQUFD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QUUsR0FBQ0EsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsR0FBRyxDQUFDLEdBQUVBLENBQUMsRUFBRTtNQUFDUCxDQUFDLENBQUM0QixRQUFRLEdBQUNyQixDQUFDLEdBQUMsQ0FBQztJQUFBO0VBQUMsQ0FBQyxFQUFDUCxDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBQ25oZiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiIWZ1bmN0aW9uKHQscil7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZXhwb3J0cz1yKCk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXSxyKTp0LkNyeXB0b0pTPXIoKX0odGhpcyxmdW5jdGlvbigpe3ZhciB0PXR8fGZ1bmN0aW9uKHQscil7dmFyIGU9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiBmdW5jdGlvbihyKXt2YXIgZTtyZXR1cm4gdC5wcm90b3R5cGU9cixlPW5ldyB0LHQucHJvdG90eXBlPW51bGwsZX19KCksaT17fSxuPWkubGliPXt9LG89bi5CYXNlPWZ1bmN0aW9uKCl7cmV0dXJue2V4dGVuZDpmdW5jdGlvbih0KXt2YXIgcj1lKHRoaXMpO3JldHVybiB0JiZyLm1peEluKHQpLHIuaGFzT3duUHJvcGVydHkoXCJpbml0XCIpJiZ0aGlzLmluaXQhPT1yLmluaXR8fChyLmluaXQ9ZnVuY3Rpb24oKXtyLiRzdXBlci5pbml0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLHIuaW5pdC5wcm90b3R5cGU9cixyLiRzdXBlcj10aGlzLHJ9LGNyZWF0ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZXh0ZW5kKCk7cmV0dXJuIHQuaW5pdC5hcHBseSh0LGFyZ3VtZW50cyksdH0saW5pdDpmdW5jdGlvbigpe30sbWl4SW46ZnVuY3Rpb24odCl7Zm9yKHZhciByIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShyKSYmKHRoaXNbcl09dFtyXSk7dC5oYXNPd25Qcm9wZXJ0eShcInRvU3RyaW5nXCIpJiYodGhpcy50b1N0cmluZz10LnRvU3RyaW5nKX0sY2xvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbml0LnByb3RvdHlwZS5leHRlbmQodGhpcyl9fX0oKSxzPW4uV29yZEFycmF5PW8uZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQsZSl7dD10aGlzLndvcmRzPXR8fFtdLGUhPXI/dGhpcy5zaWdCeXRlcz1lOnRoaXMuc2lnQnl0ZXM9NCp0Lmxlbmd0aH0sdG9TdHJpbmc6ZnVuY3Rpb24odCl7cmV0dXJuKHR8fGMpLnN0cmluZ2lmeSh0aGlzKX0sY29uY2F0OmZ1bmN0aW9uKHQpe3ZhciByPXRoaXMud29yZHMsZT10LndvcmRzLGk9dGhpcy5zaWdCeXRlcyxuPXQuc2lnQnl0ZXM7aWYodGhpcy5jbGFtcCgpLGklNClmb3IodmFyIG89MDtvPG47bysrKXt2YXIgcz1lW28+Pj4yXT4+PjI0LW8lNCo4JjI1NTtyW2krbz4+PjJdfD1zPDwyNC0oaStvKSU0Kjh9ZWxzZSBmb3IodmFyIG89MDtvPG47bys9NClyW2krbz4+PjJdPWVbbz4+PjJdO3JldHVybiB0aGlzLnNpZ0J5dGVzKz1uLHRoaXN9LGNsYW1wOmZ1bmN0aW9uKCl7dmFyIHI9dGhpcy53b3JkcyxlPXRoaXMuc2lnQnl0ZXM7cltlPj4+Ml0mPTQyOTQ5NjcyOTU8PDMyLWUlNCo4LHIubGVuZ3RoPXQuY2VpbChlLzQpfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PW8uY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC53b3Jkcz10aGlzLndvcmRzLnNsaWNlKDApLHR9LHJhbmRvbTpmdW5jdGlvbihyKXtmb3IodmFyIGUsaT1bXSxuPWZ1bmN0aW9uKHIpe3ZhciByPXIsZT05ODc2NTQzMjEsaT00Mjk0OTY3Mjk1O3JldHVybiBmdW5jdGlvbigpe2U9MzY5NjkqKDY1NTM1JmUpKyhlPj4xNikmaSxyPTE4ZTMqKDY1NTM1JnIpKyhyPj4xNikmaTt2YXIgbj0oZTw8MTYpK3ImaTtyZXR1cm4gbi89NDI5NDk2NzI5NixuKz0uNSxuKih0LnJhbmRvbSgpPi41PzE6LTEpfX0sbz0wO288cjtvKz00KXt2YXIgYT1uKDQyOTQ5NjcyOTYqKGV8fHQucmFuZG9tKCkpKTtlPTk4NzY1NDA3MSphKCksaS5wdXNoKDQyOTQ5NjcyOTYqYSgpfDApfXJldHVybiBuZXcgcy5pbml0KGkscil9fSksYT1pLmVuYz17fSxjPWEuSGV4PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQud29yZHMsZT10LnNpZ0J5dGVzLGk9W10sbj0wO248ZTtuKyspe3ZhciBvPXJbbj4+PjJdPj4+MjQtbiU0KjgmMjU1O2kucHVzaCgobz4+PjQpLnRvU3RyaW5nKDE2KSksaS5wdXNoKCgxNSZvKS50b1N0cmluZygxNikpfXJldHVybiBpLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aCxlPVtdLGk9MDtpPHI7aSs9MillW2k+Pj4zXXw9cGFyc2VJbnQodC5zdWJzdHIoaSwyKSwxNik8PDI0LWklOCo0O3JldHVybiBuZXcgcy5pbml0KGUsci8yKX19LGg9YS5MYXRpbjE9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC53b3JkcyxlPXQuc2lnQnl0ZXMsaT1bXSxuPTA7bjxlO24rKyl7dmFyIG89cltuPj4+Ml0+Pj4yNC1uJTQqOCYyNTU7aS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUobykpfXJldHVybiBpLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aCxlPVtdLGk9MDtpPHI7aSsrKWVbaT4+PjJdfD0oMjU1JnQuY2hhckNvZGVBdChpKSk8PDI0LWklNCo4O3JldHVybiBuZXcgcy5pbml0KGUscil9fSxsPWEuVXRmOD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZShoLnN0cmluZ2lmeSh0KSkpfWNhdGNoKHQpe3Rocm93IG5ldyBFcnJvcihcIk1hbGZvcm1lZCBVVEYtOCBkYXRhXCIpfX0scGFyc2U6ZnVuY3Rpb24odCl7cmV0dXJuIGgucGFyc2UodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHQpKSl9fSxmPW4uQnVmZmVyZWRCbG9ja0FsZ29yaXRobT1vLmV4dGVuZCh7cmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9kYXRhPW5ldyBzLmluaXQsdGhpcy5fbkRhdGFCeXRlcz0wfSxfYXBwZW5kOmZ1bmN0aW9uKHQpe1wic3RyaW5nXCI9PXR5cGVvZiB0JiYodD1sLnBhcnNlKHQpKSx0aGlzLl9kYXRhLmNvbmNhdCh0KSx0aGlzLl9uRGF0YUJ5dGVzKz10LnNpZ0J5dGVzfSxfcHJvY2VzczpmdW5jdGlvbihyKXt2YXIgZT10aGlzLl9kYXRhLGk9ZS53b3JkcyxuPWUuc2lnQnl0ZXMsbz10aGlzLmJsb2NrU2l6ZSxhPTQqbyxjPW4vYTtjPXI/dC5jZWlsKGMpOnQubWF4KCgwfGMpLXRoaXMuX21pbkJ1ZmZlclNpemUsMCk7dmFyIGg9YypvLGw9dC5taW4oNCpoLG4pO2lmKGgpe2Zvcih2YXIgZj0wO2Y8aDtmKz1vKXRoaXMuX2RvUHJvY2Vzc0Jsb2NrKGksZik7dmFyIHU9aS5zcGxpY2UoMCxoKTtlLnNpZ0J5dGVzLT1sfXJldHVybiBuZXcgcy5pbml0KHUsbCl9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9by5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9kYXRhPXRoaXMuX2RhdGEuY2xvbmUoKSx0fSxfbWluQnVmZmVyU2l6ZTowfSksdT0obi5IYXNoZXI9Zi5leHRlbmQoe2NmZzpvLmV4dGVuZCgpLGluaXQ6ZnVuY3Rpb24odCl7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHQpLHRoaXMucmVzZXQoKX0scmVzZXQ6ZnVuY3Rpb24oKXtmLnJlc2V0LmNhbGwodGhpcyksdGhpcy5fZG9SZXNldCgpfSx1cGRhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FwcGVuZCh0KSx0aGlzLl9wcm9jZXNzKCksdGhpc30sZmluYWxpemU6ZnVuY3Rpb24odCl7dCYmdGhpcy5fYXBwZW5kKHQpO3ZhciByPXRoaXMuX2RvRmluYWxpemUoKTtyZXR1cm4gcn0sYmxvY2tTaXplOjE2LF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHIsZSl7cmV0dXJuIG5ldyB0LmluaXQoZSkuZmluYWxpemUocil9fSxfY3JlYXRlSG1hY0hlbHBlcjpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24ocixlKXtyZXR1cm4gbmV3IHUuSE1BQy5pbml0KHQsZSkuZmluYWxpemUocil9fX0pLGkuYWxnbz17fSk7cmV0dXJuIGl9KE1hdGgpO3JldHVybiBmdW5jdGlvbigpe2Z1bmN0aW9uIHIodCxyLGUpe2Zvcih2YXIgaT1bXSxvPTAscz0wO3M8cjtzKyspaWYocyU0KXt2YXIgYT1lW3QuY2hhckNvZGVBdChzLTEpXTw8cyU0KjIsYz1lW3QuY2hhckNvZGVBdChzKV0+Pj42LXMlNCoyO2lbbz4+PjJdfD0oYXxjKTw8MjQtbyU0KjgsbysrfXJldHVybiBuLmNyZWF0ZShpLG8pfXZhciBlPXQsaT1lLmxpYixuPWkuV29yZEFycmF5LG89ZS5lbmM7by5CYXNlNjQ9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXt2YXIgcj10LndvcmRzLGU9dC5zaWdCeXRlcyxpPXRoaXMuX21hcDt0LmNsYW1wKCk7Zm9yKHZhciBuPVtdLG89MDtvPGU7bys9Mylmb3IodmFyIHM9cltvPj4+Ml0+Pj4yNC1vJTQqOCYyNTUsYT1yW28rMT4+PjJdPj4+MjQtKG8rMSklNCo4JjI1NSxjPXJbbysyPj4+Ml0+Pj4yNC0obysyKSU0KjgmMjU1LGg9czw8MTZ8YTw8OHxjLGw9MDtsPDQmJm8rLjc1Kmw8ZTtsKyspbi5wdXNoKGkuY2hhckF0KGg+Pj42KigzLWwpJjYzKSk7dmFyIGY9aS5jaGFyQXQoNjQpO2lmKGYpZm9yKDtuLmxlbmd0aCU0OyluLnB1c2goZik7cmV0dXJuIG4uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGgsaT10aGlzLl9tYXAsbj10aGlzLl9yZXZlcnNlTWFwO2lmKCFuKXtuPXRoaXMuX3JldmVyc2VNYXA9W107Zm9yKHZhciBvPTA7bzxpLmxlbmd0aDtvKyspbltpLmNoYXJDb2RlQXQobyldPW99dmFyIHM9aS5jaGFyQXQoNjQpO2lmKHMpe3ZhciBhPXQuaW5kZXhPZihzKTthIT09LTEmJihlPWEpfXJldHVybiByKHQsZSxuKX0sX21hcDpcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89XCJ9fSgpLGZ1bmN0aW9uKHIpe2Z1bmN0aW9uIGUodCxyLGUsaSxuLG8scyl7dmFyIGE9dCsociZlfH5yJmkpK24rcztyZXR1cm4oYTw8b3xhPj4+MzItbykrcn1mdW5jdGlvbiBpKHQscixlLGksbixvLHMpe3ZhciBhPXQrKHImaXxlJn5pKStuK3M7cmV0dXJuKGE8PG98YT4+PjMyLW8pK3J9ZnVuY3Rpb24gbih0LHIsZSxpLG4sbyxzKXt2YXIgYT10KyhyXmVeaSkrbitzO3JldHVybihhPDxvfGE+Pj4zMi1vKStyfWZ1bmN0aW9uIG8odCxyLGUsaSxuLG8scyl7dmFyIGE9dCsoZV4ocnx+aSkpK24rcztyZXR1cm4oYTw8b3xhPj4+MzItbykrcn12YXIgcz10LGE9cy5saWIsYz1hLldvcmRBcnJheSxoPWEuSGFzaGVyLGw9cy5hbGdvLGY9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDw2NDt0KyspZlt0XT00Mjk0OTY3Mjk2KnIuYWJzKHIuc2luKHQrMSkpfDB9KCk7dmFyIHU9bC5NRDU9aC5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgYy5pbml0KFsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzhdKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBzPTA7czwxNjtzKyspe3ZhciBhPXIrcyxjPXRbYV07dFthXT0xNjcxMTkzNSYoYzw8OHxjPj4+MjQpfDQyNzgyNTUzNjAmKGM8PDI0fGM+Pj44KX12YXIgaD10aGlzLl9oYXNoLndvcmRzLGw9dFtyKzBdLHU9dFtyKzFdLGQ9dFtyKzJdLHY9dFtyKzNdLHA9dFtyKzRdLF89dFtyKzVdLHk9dFtyKzZdLGc9dFtyKzddLEI9dFtyKzhdLHc9dFtyKzldLGs9dFtyKzEwXSxTPXRbcisxMV0sbT10W3IrMTJdLHg9dFtyKzEzXSxiPXRbcisxNF0sSD10W3IrMTVdLHo9aFswXSxBPWhbMV0sQz1oWzJdLEQ9aFszXTt6PWUoeixBLEMsRCxsLDcsZlswXSksRD1lKEQseixBLEMsdSwxMixmWzFdKSxDPWUoQyxELHosQSxkLDE3LGZbMl0pLEE9ZShBLEMsRCx6LHYsMjIsZlszXSksej1lKHosQSxDLEQscCw3LGZbNF0pLEQ9ZShELHosQSxDLF8sMTIsZls1XSksQz1lKEMsRCx6LEEseSwxNyxmWzZdKSxBPWUoQSxDLEQseixnLDIyLGZbN10pLHo9ZSh6LEEsQyxELEIsNyxmWzhdKSxEPWUoRCx6LEEsQyx3LDEyLGZbOV0pLEM9ZShDLEQseixBLGssMTcsZlsxMF0pLEE9ZShBLEMsRCx6LFMsMjIsZlsxMV0pLHo9ZSh6LEEsQyxELG0sNyxmWzEyXSksRD1lKEQseixBLEMseCwxMixmWzEzXSksQz1lKEMsRCx6LEEsYiwxNyxmWzE0XSksQT1lKEEsQyxELHosSCwyMixmWzE1XSksej1pKHosQSxDLEQsdSw1LGZbMTZdKSxEPWkoRCx6LEEsQyx5LDksZlsxN10pLEM9aShDLEQseixBLFMsMTQsZlsxOF0pLEE9aShBLEMsRCx6LGwsMjAsZlsxOV0pLHo9aSh6LEEsQyxELF8sNSxmWzIwXSksRD1pKEQseixBLEMsayw5LGZbMjFdKSxDPWkoQyxELHosQSxILDE0LGZbMjJdKSxBPWkoQSxDLEQseixwLDIwLGZbMjNdKSx6PWkoeixBLEMsRCx3LDUsZlsyNF0pLEQ9aShELHosQSxDLGIsOSxmWzI1XSksQz1pKEMsRCx6LEEsdiwxNCxmWzI2XSksQT1pKEEsQyxELHosQiwyMCxmWzI3XSksej1pKHosQSxDLEQseCw1LGZbMjhdKSxEPWkoRCx6LEEsQyxkLDksZlsyOV0pLEM9aShDLEQseixBLGcsMTQsZlszMF0pLEE9aShBLEMsRCx6LG0sMjAsZlszMV0pLHo9bih6LEEsQyxELF8sNCxmWzMyXSksRD1uKEQseixBLEMsQiwxMSxmWzMzXSksQz1uKEMsRCx6LEEsUywxNixmWzM0XSksQT1uKEEsQyxELHosYiwyMyxmWzM1XSksej1uKHosQSxDLEQsdSw0LGZbMzZdKSxEPW4oRCx6LEEsQyxwLDExLGZbMzddKSxDPW4oQyxELHosQSxnLDE2LGZbMzhdKSxBPW4oQSxDLEQseixrLDIzLGZbMzldKSx6PW4oeixBLEMsRCx4LDQsZls0MF0pLEQ9bihELHosQSxDLGwsMTEsZls0MV0pLEM9bihDLEQseixBLHYsMTYsZls0Ml0pLEE9bihBLEMsRCx6LHksMjMsZls0M10pLHo9bih6LEEsQyxELHcsNCxmWzQ0XSksRD1uKEQseixBLEMsbSwxMSxmWzQ1XSksQz1uKEMsRCx6LEEsSCwxNixmWzQ2XSksQT1uKEEsQyxELHosZCwyMyxmWzQ3XSksej1vKHosQSxDLEQsbCw2LGZbNDhdKSxEPW8oRCx6LEEsQyxnLDEwLGZbNDldKSxDPW8oQyxELHosQSxiLDE1LGZbNTBdKSxBPW8oQSxDLEQseixfLDIxLGZbNTFdKSx6PW8oeixBLEMsRCxtLDYsZls1Ml0pLEQ9byhELHosQSxDLHYsMTAsZls1M10pLEM9byhDLEQseixBLGssMTUsZls1NF0pLEE9byhBLEMsRCx6LHUsMjEsZls1NV0pLHo9byh6LEEsQyxELEIsNixmWzU2XSksRD1vKEQseixBLEMsSCwxMCxmWzU3XSksQz1vKEMsRCx6LEEseSwxNSxmWzU4XSksQT1vKEEsQyxELHoseCwyMSxmWzU5XSksej1vKHosQSxDLEQscCw2LGZbNjBdKSxEPW8oRCx6LEEsQyxTLDEwLGZbNjFdKSxDPW8oQyxELHosQSxkLDE1LGZbNjJdKSxBPW8oQSxDLEQseix3LDIxLGZbNjNdKSxoWzBdPWhbMF0renwwLGhbMV09aFsxXStBfDAsaFsyXT1oWzJdK0N8MCxoWzNdPWhbM10rRHwwfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEsZT10LndvcmRzLGk9OCp0aGlzLl9uRGF0YUJ5dGVzLG49OCp0LnNpZ0J5dGVzO2Vbbj4+PjVdfD0xMjg8PDI0LW4lMzI7dmFyIG89ci5mbG9vcihpLzQyOTQ5NjcyOTYpLHM9aTtlWyhuKzY0Pj4+OTw8NCkrMTVdPTE2NzExOTM1JihvPDw4fG8+Pj4yNCl8NDI3ODI1NTM2MCYobzw8MjR8bz4+PjgpLGVbKG4rNjQ+Pj45PDw0KSsxNF09MTY3MTE5MzUmKHM8PDh8cz4+PjI0KXw0Mjc4MjU1MzYwJihzPDwyNHxzPj4+OCksdC5zaWdCeXRlcz00KihlLmxlbmd0aCsxKSx0aGlzLl9wcm9jZXNzKCk7Zm9yKHZhciBhPXRoaXMuX2hhc2gsYz1hLndvcmRzLGg9MDtoPDQ7aCsrKXt2YXIgbD1jW2hdO2NbaF09MTY3MTE5MzUmKGw8PDh8bD4+PjI0KXw0Mjc4MjU1MzYwJihsPDwyNHxsPj4+OCl9cmV0dXJuIGF9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9aC5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fX0pO3MuTUQ1PWguX2NyZWF0ZUhlbHBlcih1KSxzLkhtYWNNRDU9aC5fY3JlYXRlSG1hY0hlbHBlcih1KX0oTWF0aCksZnVuY3Rpb24oKXt2YXIgcj10LGU9ci5saWIsaT1lLldvcmRBcnJheSxuPWUuSGFzaGVyLG89ci5hbGdvLHM9W10sYT1vLlNIQTE9bi5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgaS5pbml0KFsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzgsMzI4NTM3NzUyMF0pfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dGhpcy5faGFzaC53b3JkcyxpPWVbMF0sbj1lWzFdLG89ZVsyXSxhPWVbM10sYz1lWzRdLGg9MDtoPDgwO2grKyl7aWYoaDwxNilzW2hdPTB8dFtyK2hdO2Vsc2V7dmFyIGw9c1toLTNdXnNbaC04XV5zW2gtMTRdXnNbaC0xNl07c1toXT1sPDwxfGw+Pj4zMX12YXIgZj0oaTw8NXxpPj4+MjcpK2Mrc1toXTtmKz1oPDIwPyhuJm98fm4mYSkrMTUxODUwMDI0OTpoPDQwPyhuXm9eYSkrMTg1OTc3NTM5MzpoPDYwPyhuJm98biZhfG8mYSktMTg5NDAwNzU4ODoobl5vXmEpLTg5OTQ5NzUxNCxjPWEsYT1vLG89bjw8MzB8bj4+PjIsbj1pLGk9Zn1lWzBdPWVbMF0raXwwLGVbMV09ZVsxXStufDAsZVsyXT1lWzJdK298MCxlWzNdPWVbM10rYXwwLGVbNF09ZVs0XStjfDB9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxyPXQud29yZHMsZT04KnRoaXMuX25EYXRhQnl0ZXMsaT04KnQuc2lnQnl0ZXM7cmV0dXJuIHJbaT4+PjVdfD0xMjg8PDI0LWklMzIsclsoaSs2ND4+Pjk8PDQpKzE0XT1NYXRoLmZsb29yKGUvNDI5NDk2NzI5NiksclsoaSs2ND4+Pjk8PDQpKzE1XT1lLHQuc2lnQnl0ZXM9NCpyLmxlbmd0aCx0aGlzLl9wcm9jZXNzKCksdGhpcy5faGFzaH0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1uLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9fSk7ci5TSEExPW4uX2NyZWF0ZUhlbHBlcihhKSxyLkhtYWNTSEExPW4uX2NyZWF0ZUhtYWNIZWxwZXIoYSl9KCksZnVuY3Rpb24ocil7dmFyIGU9dCxpPWUubGliLG49aS5Xb3JkQXJyYXksbz1pLkhhc2hlcixzPWUuYWxnbyxhPVtdLGM9W107IWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXtmb3IodmFyIGU9ci5zcXJ0KHQpLGk9MjtpPD1lO2krKylpZighKHQlaSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gZSh0KXtyZXR1cm4gNDI5NDk2NzI5NioodC0oMHx0KSl8MH1mb3IodmFyIGk9MixuPTA7bjw2NDspdChpKSYmKG48OCYmKGFbbl09ZShyLnBvdyhpLC41KSkpLGNbbl09ZShyLnBvdyhpLDEvMykpLG4rKyksaSsrfSgpO3ZhciBoPVtdLGw9cy5TSEEyNTY9by5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgbi5pbml0KGEuc2xpY2UoMCkpfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dGhpcy5faGFzaC53b3JkcyxpPWVbMF0sbj1lWzFdLG89ZVsyXSxzPWVbM10sYT1lWzRdLGw9ZVs1XSxmPWVbNl0sdT1lWzddLGQ9MDtkPDY0O2QrKyl7aWYoZDwxNiloW2RdPTB8dFtyK2RdO2Vsc2V7dmFyIHY9aFtkLTE1XSxwPSh2PDwyNXx2Pj4+NyleKHY8PDE0fHY+Pj4xOCledj4+PjMsXz1oW2QtMl0seT0oXzw8MTV8Xz4+PjE3KV4oXzw8MTN8Xz4+PjE5KV5fPj4+MTA7aFtkXT1wK2hbZC03XSt5K2hbZC0xNl19dmFyIGc9YSZsXn5hJmYsQj1pJm5eaSZvXm4mbyx3PShpPDwzMHxpPj4+MileKGk8PDE5fGk+Pj4xMyleKGk8PDEwfGk+Pj4yMiksaz0oYTw8MjZ8YT4+PjYpXihhPDwyMXxhPj4+MTEpXihhPDw3fGE+Pj4yNSksUz11K2srZytjW2RdK2hbZF0sbT13K0I7dT1mLGY9bCxsPWEsYT1zK1N8MCxzPW8sbz1uLG49aSxpPVMrbXwwfWVbMF09ZVswXStpfDAsZVsxXT1lWzFdK258MCxlWzJdPWVbMl0rb3wwLGVbM109ZVszXStzfDAsZVs0XT1lWzRdK2F8MCxlWzVdPWVbNV0rbHwwLGVbNl09ZVs2XStmfDAsZVs3XT1lWzddK3V8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLGU9dC53b3JkcyxpPTgqdGhpcy5fbkRhdGFCeXRlcyxuPTgqdC5zaWdCeXRlcztyZXR1cm4gZVtuPj4+NV18PTEyODw8MjQtbiUzMixlWyhuKzY0Pj4+OTw8NCkrMTRdPXIuZmxvb3IoaS80Mjk0OTY3Mjk2KSxlWyhuKzY0Pj4+OTw8NCkrMTVdPWksdC5zaWdCeXRlcz00KmUubGVuZ3RoLHRoaXMuX3Byb2Nlc3MoKSx0aGlzLl9oYXNofSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PW8uY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KTtlLlNIQTI1Nj1vLl9jcmVhdGVIZWxwZXIobCksZS5IbWFjU0hBMjU2PW8uX2NyZWF0ZUhtYWNIZWxwZXIobCl9KE1hdGgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdDw8OCY0Mjc4MjU1MzYwfHQ+Pj44JjE2NzExOTM1fXZhciBlPXQsaT1lLmxpYixuPWkuV29yZEFycmF5LG89ZS5lbmM7by5VdGYxNj1vLlV0ZjE2QkU9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC53b3JkcyxlPXQuc2lnQnl0ZXMsaT1bXSxuPTA7bjxlO24rPTIpe3ZhciBvPXJbbj4+PjJdPj4+MTYtbiU0KjgmNjU1MzU7aS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUobykpfXJldHVybiBpLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aCxlPVtdLGk9MDtpPHI7aSsrKWVbaT4+PjFdfD10LmNoYXJDb2RlQXQoaSk8PDE2LWklMioxNjtyZXR1cm4gbi5jcmVhdGUoZSwyKnIpfX07by5VdGYxNkxFPXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQud29yZHMsaT10LnNpZ0J5dGVzLG49W10sbz0wO288aTtvKz0yKXt2YXIgcz1yKGVbbz4+PjJdPj4+MTYtbyU0KjgmNjU1MzUpO24ucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKHMpKX1yZXR1cm4gbi5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgsaT1bXSxvPTA7bzxlO28rKylpW28+Pj4xXXw9cih0LmNoYXJDb2RlQXQobyk8PDE2LW8lMioxNik7cmV0dXJuIG4uY3JlYXRlKGksMiplKX19fSgpLGZ1bmN0aW9uKCl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgQXJyYXlCdWZmZXIpe3ZhciByPXQsZT1yLmxpYixpPWUuV29yZEFycmF5LG49aS5pbml0LG89aS5pbml0PWZ1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmKHQ9bmV3IFVpbnQ4QXJyYXkodCkpLCh0IGluc3RhbmNlb2YgSW50OEFycmF5fHxcInVuZGVmaW5lZFwiIT10eXBlb2YgVWludDhDbGFtcGVkQXJyYXkmJnQgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheXx8dCBpbnN0YW5jZW9mIEludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8dCBpbnN0YW5jZW9mIEludDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8dCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheXx8dCBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSkmJih0PW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpKSx0IGluc3RhbmNlb2YgVWludDhBcnJheSl7Zm9yKHZhciByPXQuYnl0ZUxlbmd0aCxlPVtdLGk9MDtpPHI7aSsrKWVbaT4+PjJdfD10W2ldPDwyNC1pJTQqODtuLmNhbGwodGhpcyxlLHIpfWVsc2Ugbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O28ucHJvdG90eXBlPWl9fSgpLGZ1bmN0aW9uKHIpe2Z1bmN0aW9uIGUodCxyLGUpe3JldHVybiB0XnJeZX1mdW5jdGlvbiBpKHQscixlKXtyZXR1cm4gdCZyfH50JmV9ZnVuY3Rpb24gbih0LHIsZSl7cmV0dXJuKHR8fnIpXmV9ZnVuY3Rpb24gbyh0LHIsZSl7cmV0dXJuIHQmZXxyJn5lfWZ1bmN0aW9uIHModCxyLGUpe3JldHVybiB0XihyfH5lKX1mdW5jdGlvbiBhKHQscil7cmV0dXJuIHQ8PHJ8dD4+PjMyLXJ9dmFyIGM9dCxoPWMubGliLGw9aC5Xb3JkQXJyYXksZj1oLkhhc2hlcix1PWMuYWxnbyxkPWwuY3JlYXRlKFswLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDcsNCwxMywxLDEwLDYsMTUsMywxMiwwLDksNSwyLDE0LDExLDgsMywxMCwxNCw0LDksMTUsOCwxLDIsNywwLDYsMTMsMTEsNSwxMiwxLDksMTEsMTAsMCw4LDEyLDQsMTMsMyw3LDE1LDE0LDUsNiwyLDQsMCw1LDksNywxMiwyLDEwLDE0LDEsMyw4LDExLDYsMTUsMTNdKSx2PWwuY3JlYXRlKFs1LDE0LDcsMCw5LDIsMTEsNCwxMyw2LDE1LDgsMSwxMCwzLDEyLDYsMTEsMyw3LDAsMTMsNSwxMCwxNCwxNSw4LDEyLDQsOSwxLDIsMTUsNSwxLDMsNywxNCw2LDksMTEsOCwxMiwyLDEwLDAsNCwxMyw4LDYsNCwxLDMsMTEsMTUsMCw1LDEyLDIsMTMsOSw3LDEwLDE0LDEyLDE1LDEwLDQsMSw1LDgsNyw2LDIsMTMsMTQsMCwzLDksMTFdKSxwPWwuY3JlYXRlKFsxMSwxNCwxNSwxMiw1LDgsNyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIsMTUsOSwxMSw3LDEzLDEyLDExLDEzLDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwxNCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDExLDYsOCwxMywxMiw1LDEyLDEzLDE0LDExLDgsNSw2XSksXz1sLmNyZWF0ZShbOCw5LDksMTEsMTMsMTUsMTUsNSw3LDcsOCwxMSwxNCwxNCwxMiw2LDksMTMsMTUsNywxMiw4LDksMTEsNyw3LDEyLDcsNiwxNSwxMywxMSw5LDcsMTUsMTEsOCw2LDYsMTQsMTIsMTMsNSwxNCwxMywxMyw3LDUsMTUsNSw4LDExLDE0LDE0LDYsMTQsNiw5LDEyLDksMTIsNSwxNSw4LDgsNSwxMiw5LDEyLDUsMTQsNiw4LDEzLDYsNSwxNSwxMywxMSwxMV0pLHk9bC5jcmVhdGUoWzAsMTUxODUwMDI0OSwxODU5Nzc1MzkzLDI0MDA5NTk3MDgsMjg0MDg1MzgzOF0pLGc9bC5jcmVhdGUoWzEzNTI4Mjk5MjYsMTU0ODYwMzY4NCwxODM2MDcyNjkxLDIwNTM5OTQyMTcsMF0pLEI9dS5SSVBFTUQxNjA9Zi5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1sLmNyZWF0ZShbMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBjPTA7YzwxNjtjKyspe3ZhciBoPXIrYyxsPXRbaF07dFtoXT0xNjcxMTkzNSYobDw8OHxsPj4+MjQpfDQyNzgyNTUzNjAmKGw8PDI0fGw+Pj44KX12YXIgZix1LEIsdyxrLFMsbSx4LGIsSCx6PXRoaXMuX2hhc2gud29yZHMsQT15LndvcmRzLEM9Zy53b3JkcyxEPWQud29yZHMsUj12LndvcmRzLEU9cC53b3JkcyxNPV8ud29yZHM7Uz1mPXpbMF0sbT11PXpbMV0seD1CPXpbMl0sYj13PXpbM10sSD1rPXpbNF07Zm9yKHZhciBGLGM9MDtjPDgwO2MrPTEpRj1mK3RbcitEW2NdXXwwLEYrPWM8MTY/ZSh1LEIsdykrQVswXTpjPDMyP2kodSxCLHcpK0FbMV06Yzw0OD9uKHUsQix3KStBWzJdOmM8NjQ/byh1LEIsdykrQVszXTpzKHUsQix3KStBWzRdLEZ8PTAsRj1hKEYsRVtjXSksRj1GK2t8MCxmPWssaz13LHc9YShCLDEwKSxCPXUsdT1GLEY9Uyt0W3IrUltjXV18MCxGKz1jPDE2P3MobSx4LGIpK0NbMF06YzwzMj9vKG0seCxiKStDWzFdOmM8NDg/bihtLHgsYikrQ1syXTpjPDY0P2kobSx4LGIpK0NbM106ZShtLHgsYikrQ1s0XSxGfD0wLEY9YShGLE1bY10pLEY9RitIfDAsUz1ILEg9YixiPWEoeCwxMCkseD1tLG09RjtGPXpbMV0rQitifDAselsxXT16WzJdK3crSHwwLHpbMl09elszXStrK1N8MCx6WzNdPXpbNF0rZittfDAsels0XT16WzBdK3UreHwwLHpbMF09Rn0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLHI9dC53b3JkcyxlPTgqdGhpcy5fbkRhdGFCeXRlcyxpPTgqdC5zaWdCeXRlcztyW2k+Pj41XXw9MTI4PDwyNC1pJTMyLHJbKGkrNjQ+Pj45PDw0KSsxNF09MTY3MTE5MzUmKGU8PDh8ZT4+PjI0KXw0Mjc4MjU1MzYwJihlPDwyNHxlPj4+OCksdC5zaWdCeXRlcz00KihyLmxlbmd0aCsxKSx0aGlzLl9wcm9jZXNzKCk7Zm9yKHZhciBuPXRoaXMuX2hhc2gsbz1uLndvcmRzLHM9MDtzPDU7cysrKXt2YXIgYT1vW3NdO29bc109MTY3MTE5MzUmKGE8PDh8YT4+PjI0KXw0Mjc4MjU1MzYwJihhPDwyNHxhPj4+OCl9cmV0dXJuIG59LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9Zi5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fX0pO2MuUklQRU1EMTYwPWYuX2NyZWF0ZUhlbHBlcihCKSxjLkhtYWNSSVBFTUQxNjA9Zi5fY3JlYXRlSG1hY0hlbHBlcihCKX0oTWF0aCksZnVuY3Rpb24oKXt2YXIgcj10LGU9ci5saWIsaT1lLkJhc2Usbj1yLmVuYyxvPW4uVXRmOCxzPXIuYWxnbztzLkhNQUM9aS5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCxyKXt0PXRoaXMuX2hhc2hlcj1uZXcgdC5pbml0LFwic3RyaW5nXCI9PXR5cGVvZiByJiYocj1vLnBhcnNlKHIpKTt2YXIgZT10LmJsb2NrU2l6ZSxpPTQqZTtyLnNpZ0J5dGVzPmkmJihyPXQuZmluYWxpemUocikpLHIuY2xhbXAoKTtmb3IodmFyIG49dGhpcy5fb0tleT1yLmNsb25lKCkscz10aGlzLl9pS2V5PXIuY2xvbmUoKSxhPW4ud29yZHMsYz1zLndvcmRzLGg9MDtoPGU7aCsrKWFbaF1ePTE1NDk1NTY4MjgsY1toXV49OTA5NTIyNDg2O24uc2lnQnl0ZXM9cy5zaWdCeXRlcz1pLHRoaXMucmVzZXQoKX0scmVzZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9oYXNoZXI7dC5yZXNldCgpLHQudXBkYXRlKHRoaXMuX2lLZXkpfSx1cGRhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2hhc2hlci51cGRhdGUodCksdGhpc30sZmluYWxpemU6ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5faGFzaGVyLGU9ci5maW5hbGl6ZSh0KTtyLnJlc2V0KCk7dmFyIGk9ci5maW5hbGl6ZSh0aGlzLl9vS2V5LmNsb25lKCkuY29uY2F0KGUpKTtyZXR1cm4gaX19KX0oKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLmxpYixpPWUuQmFzZSxuPWUuV29yZEFycmF5LG89ci5hbGdvLHM9by5TSEExLGE9by5ITUFDLGM9by5QQktERjI9aS5leHRlbmQoe2NmZzppLmV4dGVuZCh7a2V5U2l6ZTo0LGhhc2hlcjpzLGl0ZXJhdGlvbnM6MX0pLGluaXQ6ZnVuY3Rpb24odCl7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHQpfSxjb21wdXRlOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuY2ZnLGk9YS5jcmVhdGUoZS5oYXNoZXIsdCksbz1uLmNyZWF0ZSgpLHM9bi5jcmVhdGUoWzFdKSxjPW8ud29yZHMsaD1zLndvcmRzLGw9ZS5rZXlTaXplLGY9ZS5pdGVyYXRpb25zO2MubGVuZ3RoPGw7KXt2YXIgdT1pLnVwZGF0ZShyKS5maW5hbGl6ZShzKTtpLnJlc2V0KCk7Zm9yKHZhciBkPXUud29yZHMsdj1kLmxlbmd0aCxwPXUsXz0xO188ZjtfKyspe3A9aS5maW5hbGl6ZShwKSxpLnJlc2V0KCk7Zm9yKHZhciB5PXAud29yZHMsZz0wO2c8djtnKyspZFtnXV49eVtnXX1vLmNvbmNhdCh1KSxoWzBdKyt9cmV0dXJuIG8uc2lnQnl0ZXM9NCpsLG99fSk7ci5QQktERjI9ZnVuY3Rpb24odCxyLGUpe3JldHVybiBjLmNyZWF0ZShlKS5jb21wdXRlKHQscil9fSgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5CYXNlLG49ZS5Xb3JkQXJyYXksbz1yLmFsZ28scz1vLk1ENSxhPW8uRXZwS0RGPWkuZXh0ZW5kKHtjZmc6aS5leHRlbmQoe2tleVNpemU6NCxoYXNoZXI6cyxpdGVyYXRpb25zOjF9KSxpbml0OmZ1bmN0aW9uKHQpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZCh0KX0sY29tcHV0ZTpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10aGlzLmNmZyxpPWUuaGFzaGVyLmNyZWF0ZSgpLG89bi5jcmVhdGUoKSxzPW8ud29yZHMsYT1lLmtleVNpemUsYz1lLml0ZXJhdGlvbnM7cy5sZW5ndGg8YTspe2gmJmkudXBkYXRlKGgpO3ZhciBoPWkudXBkYXRlKHQpLmZpbmFsaXplKHIpO2kucmVzZXQoKTtmb3IodmFyIGw9MTtsPGM7bCsrKWg9aS5maW5hbGl6ZShoKSxpLnJlc2V0KCk7by5jb25jYXQoaCl9cmV0dXJuIG8uc2lnQnl0ZXM9NCphLG99fSk7ci5FdnBLREY9ZnVuY3Rpb24odCxyLGUpe3JldHVybiBhLmNyZWF0ZShlKS5jb21wdXRlKHQscil9fSgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5Xb3JkQXJyYXksbj1yLmFsZ28sbz1uLlNIQTI1NixzPW4uU0hBMjI0PW8uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IGkuaW5pdChbMzIzODM3MTAzMiw5MTQxNTA2NjMsODEyNzAyOTk5LDQxNDQ5MTI2OTcsNDI5MDc3NTg1NywxNzUwNjAzMDI1LDE2OTQwNzY4MzksMzIwNDA3NTQyOF0pfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PW8uX2RvRmluYWxpemUuY2FsbCh0aGlzKTtyZXR1cm4gdC5zaWdCeXRlcy09NCx0fX0pO3IuU0hBMjI0PW8uX2NyZWF0ZUhlbHBlcihzKSxyLkhtYWNTSEEyMjQ9by5fY3JlYXRlSG1hY0hlbHBlcihzKX0oKSxmdW5jdGlvbihyKXt2YXIgZT10LGk9ZS5saWIsbj1pLkJhc2Usbz1pLldvcmRBcnJheSxzPWUueDY0PXt9O3MuV29yZD1uLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LHIpe3RoaXMuaGlnaD10LHRoaXMubG93PXJ9fSkscy5Xb3JkQXJyYXk9bi5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCxlKXt0PXRoaXMud29yZHM9dHx8W10sZSE9cj90aGlzLnNpZ0J5dGVzPWU6dGhpcy5zaWdCeXRlcz04KnQubGVuZ3RofSx0b1gzMjpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLndvcmRzLHI9dC5sZW5ndGgsZT1bXSxpPTA7aTxyO2krKyl7dmFyIG49dFtpXTtlLnB1c2gobi5oaWdoKSxlLnB1c2gobi5sb3cpfXJldHVybiBvLmNyZWF0ZShlLHRoaXMuc2lnQnl0ZXMpfSxjbG9uZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1uLmNsb25lLmNhbGwodGhpcykscj10LndvcmRzPXRoaXMud29yZHMuc2xpY2UoMCksZT1yLmxlbmd0aCxpPTA7aTxlO2krKylyW2ldPXJbaV0uY2xvbmUoKTtyZXR1cm4gdH19KX0oKSxmdW5jdGlvbihyKXt2YXIgZT10LGk9ZS5saWIsbj1pLldvcmRBcnJheSxvPWkuSGFzaGVyLHM9ZS54NjQsYT1zLldvcmQsYz1lLmFsZ28saD1bXSxsPVtdLGY9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTEscj0wLGU9MDtlPDI0O2UrKyl7aFt0KzUqcl09KGUrMSkqKGUrMikvMiU2NDt2YXIgaT1yJTUsbj0oMip0KzMqciklNTt0PWkscj1ufWZvcih2YXIgdD0wO3Q8NTt0KyspZm9yKHZhciByPTA7cjw1O3IrKylsW3QrNSpyXT1yKygyKnQrMypyKSU1KjU7Zm9yKHZhciBvPTEscz0wO3M8MjQ7cysrKXtmb3IodmFyIGM9MCx1PTAsZD0wO2Q8NztkKyspe2lmKDEmbyl7dmFyIHY9KDE8PGQpLTE7djwzMj91Xj0xPDx2OmNePTE8PHYtMzJ9MTI4Jm8/bz1vPDwxXjExMzpvPDw9MX1mW3NdPWEuY3JlYXRlKGMsdSl9fSgpO3ZhciB1PVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8MjU7dCsrKXVbdF09YS5jcmVhdGUoKX0oKTt2YXIgZD1jLlNIQTM9by5leHRlbmQoe2NmZzpvLmNmZy5leHRlbmQoe291dHB1dExlbmd0aDo1MTJ9KSxfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9zdGF0ZT1bXSxyPTA7cjwyNTtyKyspdFtyXT1uZXcgYS5pbml0O3RoaXMuYmxvY2tTaXplPSgxNjAwLTIqdGhpcy5jZmcub3V0cHV0TGVuZ3RoKS8zMn0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuX3N0YXRlLGk9dGhpcy5ibG9ja1NpemUvMixuPTA7bjxpO24rKyl7dmFyIG89dFtyKzIqbl0scz10W3IrMipuKzFdO289MTY3MTE5MzUmKG88PDh8bz4+PjI0KXw0Mjc4MjU1MzYwJihvPDwyNHxvPj4+OCkscz0xNjcxMTkzNSYoczw8OHxzPj4+MjQpfDQyNzgyNTUzNjAmKHM8PDI0fHM+Pj44KTt2YXIgYT1lW25dO2EuaGlnaF49cyxhLmxvd149b31mb3IodmFyIGM9MDtjPDI0O2MrKyl7Zm9yKHZhciBkPTA7ZDw1O2QrKyl7Zm9yKHZhciB2PTAscD0wLF89MDtfPDU7XysrKXt2YXIgYT1lW2QrNSpfXTt2Xj1hLmhpZ2gscF49YS5sb3d9dmFyIHk9dVtkXTt5LmhpZ2g9dix5Lmxvdz1wfWZvcih2YXIgZD0wO2Q8NTtkKyspZm9yKHZhciBnPXVbKGQrNCklNV0sQj11WyhkKzEpJTVdLHc9Qi5oaWdoLGs9Qi5sb3csdj1nLmhpZ2heKHc8PDF8az4+PjMxKSxwPWcubG93XihrPDwxfHc+Pj4zMSksXz0wO188NTtfKyspe3ZhciBhPWVbZCs1Kl9dO2EuaGlnaF49dixhLmxvd149cH1mb3IodmFyIFM9MTtTPDI1O1MrKyl7dmFyIGE9ZVtTXSxtPWEuaGlnaCx4PWEubG93LGI9aFtTXTtpZihiPDMyKXZhciB2PW08PGJ8eD4+PjMyLWIscD14PDxifG0+Pj4zMi1iO2Vsc2UgdmFyIHY9eDw8Yi0zMnxtPj4+NjQtYixwPW08PGItMzJ8eD4+PjY0LWI7dmFyIEg9dVtsW1NdXTtILmhpZ2g9dixILmxvdz1wfXZhciB6PXVbMF0sQT1lWzBdO3ouaGlnaD1BLmhpZ2gsei5sb3c9QS5sb3c7Zm9yKHZhciBkPTA7ZDw1O2QrKylmb3IodmFyIF89MDtfPDU7XysrKXt2YXIgUz1kKzUqXyxhPWVbU10sQz11W1NdLEQ9dVsoZCsxKSU1KzUqX10sUj11WyhkKzIpJTUrNSpfXTthLmhpZ2g9Qy5oaWdoXn5ELmhpZ2gmUi5oaWdoLGEubG93PUMubG93Xn5ELmxvdyZSLmxvd312YXIgYT1lWzBdLEU9ZltjXTthLmhpZ2hePUUuaGlnaCxhLmxvd149RS5sb3d9fSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEsZT10LndvcmRzLGk9KDgqdGhpcy5fbkRhdGFCeXRlcyw4KnQuc2lnQnl0ZXMpLG89MzIqdGhpcy5ibG9ja1NpemU7ZVtpPj4+NV18PTE8PDI0LWklMzIsZVsoci5jZWlsKChpKzEpL28pKm8+Pj41KS0xXXw9MTI4LHQuc2lnQnl0ZXM9NCplLmxlbmd0aCx0aGlzLl9wcm9jZXNzKCk7Zm9yKHZhciBzPXRoaXMuX3N0YXRlLGE9dGhpcy5jZmcub3V0cHV0TGVuZ3RoLzgsYz1hLzgsaD1bXSxsPTA7bDxjO2wrKyl7dmFyIGY9c1tsXSx1PWYuaGlnaCxkPWYubG93O3U9MTY3MTE5MzUmKHU8PDh8dT4+PjI0KXw0Mjc4MjU1MzYwJih1PDwyNHx1Pj4+OCksZD0xNjcxMTkzNSYoZDw8OHxkPj4+MjQpfDQyNzgyNTUzNjAmKGQ8PDI0fGQ+Pj44KSxoLnB1c2goZCksaC5wdXNoKHUpfXJldHVybiBuZXcgbi5pbml0KGgsYSl9LGNsb25lOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PW8uY2xvbmUuY2FsbCh0aGlzKSxyPXQuX3N0YXRlPXRoaXMuX3N0YXRlLnNsaWNlKDApLGU9MDtlPDI1O2UrKylyW2VdPXJbZV0uY2xvbmUoKTtyZXR1cm4gdH19KTtlLlNIQTM9by5fY3JlYXRlSGVscGVyKGQpLGUuSG1hY1NIQTM9by5fY3JlYXRlSG1hY0hlbHBlcihkKX0oTWF0aCksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7cmV0dXJuIHMuY3JlYXRlLmFwcGx5KHMsYXJndW1lbnRzKX12YXIgZT10LGk9ZS5saWIsbj1pLkhhc2hlcixvPWUueDY0LHM9by5Xb3JkLGE9by5Xb3JkQXJyYXksYz1lLmFsZ28saD1bcigxMTE2MzUyNDA4LDM2MDk3Njc0NTgpLHIoMTg5OTQ0NzQ0MSw2MDI4OTE3MjUpLHIoMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5KSxyKDM5MjEwMDk1NzMsMjE3MzI5NTU0OCkscig5NjE5ODcxNjMsNDA4MTYyODQ3MikscigxNTA4OTcwOTkzLDMwNTM4MzQyNjUpLHIoMjQ1MzYzNTc0OCwyOTM3NjcxNTc5KSxyKDI4NzA3NjMyMjEsMzY2NDYwOTU2MCkscigzNjI0MzgxMDgwLDI3MzQ4ODMzOTQpLHIoMzEwNTk4NDAxLDExNjQ5OTY1NDIpLHIoNjA3MjI1Mjc4LDEzMjM2MTA3NjQpLHIoMTQyNjg4MTk4NywzNTkwMzA0OTk0KSxyKDE5MjUwNzgzODgsNDA2ODE4MjM4MykscigyMTYyMDc4MjA2LDk5MTMzNjExMykscigyNjE0ODg4MTAzLDYzMzgwMzMxNykscigzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgpLHIoMzgzNTM5MDQwMSwyNjY2NjEzNDU4KSxyKDQwMjIyMjQ3NzQsOTQ0NzExMTM5KSxyKDI2NDM0NzA3OCwyMzQxMjYyNzczKSxyKDYwNDgwNzYyOCwyMDA3ODAwOTMzKSxyKDc3MDI1NTk4MywxNDk1OTkwOTAxKSxyKDEyNDkxNTAxMjIsMTg1NjQzMTIzNSkscigxNTU1MDgxNjkyLDMxNzUyMTgxMzIpLHIoMTk5NjA2NDk4NiwyMTk4OTUwODM3KSxyKDI1NTQyMjA4ODIsMzk5OTcxOTMzOSkscigyODIxODM0MzQ5LDc2Njc4NDAxNikscigyOTUyOTk2ODA4LDI1NjY1OTQ4NzkpLHIoMzIxMDMxMzY3MSwzMjAzMzM3OTU2KSxyKDMzMzY1NzE4OTEsMTAzNDQ1NzAyNikscigzNTg0NTI4NzExLDI0NjY5NDg5MDEpLHIoMTEzOTI2OTkzLDM3NTgzMjYzODMpLHIoMzM4MjQxODk1LDE2ODcxNzkzNikscig2NjYzMDcyMDUsMTE4ODE3OTk2NCkscig3NzM1Mjk5MTIsMTU0NjA0NTczNCkscigxMjk0NzU3MzcyLDE1MjI4MDU0ODUpLHIoMTM5NjE4MjI5MSwyNjQzODMzODIzKSxyKDE2OTUxODM3MDAsMjM0MzUyNzM5MCkscigxOTg2NjYxMDUxLDEwMTQ0Nzc0ODApLHIoMjE3NzAyNjM1MCwxMjA2NzU5MTQyKSxyKDI0NTY5NTYwMzcsMzQ0MDc3NjI3KSxyKDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCkscigyODIwMzAyNDExLDMxNTg0NTQyNzMpLHIoMzI1OTczMDgwMCwzNTA1OTUyNjU3KSxyKDMzNDU3NjQ3NzEsMTA2MjE3MDA4KSxyKDM1MTYwNjU4MTcsMzYwNjAwODM0NCkscigzNjAwMzUyODA0LDE0MzI3MjU3NzYpLHIoNDA5NDU3MTkwOSwxNDY3MDMxNTk0KSxyKDI3NTQyMzM0NCw4NTExNjk3MjApLHIoNDMwMjI3NzM0LDMxMDA4MjM3NTIpLHIoNTA2OTQ4NjE2LDEzNjMyNTgxOTUpLHIoNjU5MDYwNTU2LDM3NTA2ODU1OTMpLHIoODgzOTk3ODc3LDM3ODUwNTAyODApLHIoOTU4MTM5NTcxLDMzMTgzMDc0MjcpLHIoMTMyMjgyMjIxOCwzODEyNzIzNDAzKSxyKDE1MzcwMDIwNjMsMjAwMzAzNDk5NSkscigxNzQ3ODczNzc5LDM2MDIwMzY4OTkpLHIoMTk1NTU2MjIyMiwxNTc1OTkwMDEyKSxyKDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCkscigyMjI3NzMwNDUyLDI3MTY5MDQzMDYpLHIoMjM2MTg1MjQyNCw0NDI3NzYwNDQpLHIoMjQyODQzNjQ3NCw1OTM2OTgzNDQpLHIoMjc1NjczNDE4NywzNzMzMTEwMjQ5KSxyKDMyMDQwMzE0NzksMjk5OTM1MTU3MykscigzMzI5MzI1Mjk4LDM4MTU5MjA0MjcpLHIoMzM5MTU2OTYxNCwzOTI4MzgzOTAwKSxyKDM1MTUyNjcyNzEsNTY2MjgwNzExKSxyKDM5NDAxODc2MDYsMzQ1NDA2OTUzNCkscig0MTE4NjMwMjcxLDQwMDAyMzk5OTIpLHIoMTE2NDE4NDc0LDE5MTQxMzg1NTQpLHIoMTc0MjkyNDIxLDI3MzEwNTUyNzApLHIoMjg5MzgwMzU2LDMyMDM5OTMwMDYpLHIoNDYwMzkzMjY5LDMyMDYyMDMxNSkscig2ODU0NzE3MzMsNTg3NDk2ODM2KSxyKDg1MjE0Mjk3MSwxMDg2NzkyODUxKSxyKDEwMTcwMzYyOTgsMzY1NTQzMTAwKSxyKDExMjYwMDA1ODAsMjYxODI5NzY3NikscigxMjg4MDMzNDcwLDM0MDk4NTUxNTgpLHIoMTUwMTUwNTk0OCw0MjM0NTA5ODY2KSxyKDE2MDcxNjc5MTUsOTg3MTY3NDY4KSxyKDE4MTY0MDIzMTYsMTI0NjE4OTU5MSldLGw9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDw4MDt0KyspbFt0XT1yKCl9KCk7dmFyIGY9Yy5TSEE1MTI9bi5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgYS5pbml0KFtuZXcgcy5pbml0KDE3NzkwMzM3MDMsNDA4OTIzNTcyMCksbmV3IHMuaW5pdCgzMTQ0MTM0Mjc3LDIyMjc4NzM1OTUpLG5ldyBzLmluaXQoMTAxMzkwNDI0Miw0MjcxMTc1NzIzKSxuZXcgcy5pbml0KDI3NzM0ODA3NjIsMTU5NTc1MDEyOSksbmV3IHMuaW5pdCgxMzU5ODkzMTE5LDI5MTc1NjUxMzcpLG5ldyBzLmluaXQoMjYwMDgyMjkyNCw3MjU1MTExOTkpLG5ldyBzLmluaXQoNTI4NzM0NjM1LDQyMTUzODk1NDcpLG5ldyBzLmluaXQoMTU0MTQ1OTIyNSwzMjcwMzMyMDkpXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10aGlzLl9oYXNoLndvcmRzLGk9ZVswXSxuPWVbMV0sbz1lWzJdLHM9ZVszXSxhPWVbNF0sYz1lWzVdLGY9ZVs2XSx1PWVbN10sZD1pLmhpZ2gsdj1pLmxvdyxwPW4uaGlnaCxfPW4ubG93LHk9by5oaWdoLGc9by5sb3csQj1zLmhpZ2gsdz1zLmxvdyxrPWEuaGlnaCxTPWEubG93LG09Yy5oaWdoLHg9Yy5sb3csYj1mLmhpZ2gsSD1mLmxvdyx6PXUuaGlnaCxBPXUubG93LEM9ZCxEPXYsUj1wLEU9XyxNPXksRj1nLFA9QixXPXcsTz1rLFU9UyxJPW0sSz14LFg9YixMPUgsaj16LE49QSxUPTA7VDw4MDtUKyspe3ZhciBaPWxbVF07aWYoVDwxNil2YXIgcT1aLmhpZ2g9MHx0W3IrMipUXSxHPVoubG93PTB8dFtyKzIqVCsxXTtlbHNle3ZhciBKPWxbVC0xNV0sJD1KLmhpZ2gsUT1KLmxvdyxWPSgkPj4+MXxRPDwzMSleKCQ+Pj44fFE8PDI0KV4kPj4+NyxZPShRPj4+MXwkPDwzMSleKFE+Pj44fCQ8PDI0KV4oUT4+Pjd8JDw8MjUpLHR0PWxbVC0yXSxydD10dC5oaWdoLGV0PXR0LmxvdyxpdD0ocnQ+Pj4xOXxldDw8MTMpXihydDw8M3xldD4+PjI5KV5ydD4+PjYsbnQ9KGV0Pj4+MTl8cnQ8PDEzKV4oZXQ8PDN8cnQ+Pj4yOSleKGV0Pj4+NnxydDw8MjYpLG90PWxbVC03XSxzdD1vdC5oaWdoLGF0PW90LmxvdyxjdD1sW1QtMTZdLGh0PWN0LmhpZ2gsbHQ9Y3QubG93LEc9WSthdCxxPVYrc3QrKEc+Pj4wPFk+Pj4wPzE6MCksRz1HK250LHE9cStpdCsoRz4+PjA8bnQ+Pj4wPzE6MCksRz1HK2x0LHE9cStodCsoRz4+PjA8bHQ+Pj4wPzE6MCk7Wi5oaWdoPXEsWi5sb3c9R312YXIgZnQ9TyZJXn5PJlgsdXQ9VSZLXn5VJkwsZHQ9QyZSXkMmTV5SJk0sdnQ9RCZFXkQmRl5FJkYscHQ9KEM+Pj4yOHxEPDw0KV4oQzw8MzB8RD4+PjIpXihDPDwyNXxEPj4+NyksX3Q9KEQ+Pj4yOHxDPDw0KV4oRDw8MzB8Qz4+PjIpXihEPDwyNXxDPj4+NykseXQ9KE8+Pj4xNHxVPDwxOCleKE8+Pj4xOHxVPDwxNCleKE88PDIzfFU+Pj45KSxndD0oVT4+PjE0fE88PDE4KV4oVT4+PjE4fE88PDE0KV4oVTw8MjN8Tz4+PjkpLEJ0PWhbVF0sd3Q9QnQuaGlnaCxrdD1CdC5sb3csU3Q9TitndCxtdD1qK3l0KyhTdD4+PjA8Tj4+PjA/MTowKSxTdD1TdCt1dCxtdD1tdCtmdCsoU3Q+Pj4wPHV0Pj4+MD8xOjApLFN0PVN0K2t0LG10PW10K3d0KyhTdD4+PjA8a3Q+Pj4wPzE6MCksU3Q9U3QrRyxtdD1tdCtxKyhTdD4+PjA8Rz4+PjA/MTowKSx4dD1fdCt2dCxidD1wdCtkdCsoeHQ+Pj4wPF90Pj4+MD8xOjApO2o9WCxOPUwsWD1JLEw9SyxJPU8sSz1VLFU9VytTdHwwLE89UCttdCsoVT4+PjA8Vz4+PjA/MTowKXwwLFA9TSxXPUYsTT1SLEY9RSxSPUMsRT1ELEQ9U3QreHR8MCxDPW10K2J0KyhEPj4+MDxTdD4+PjA/MTowKXwwfXY9aS5sb3c9ditELGkuaGlnaD1kK0MrKHY+Pj4wPEQ+Pj4wPzE6MCksXz1uLmxvdz1fK0Usbi5oaWdoPXArUisoXz4+PjA8RT4+PjA/MTowKSxnPW8ubG93PWcrRixvLmhpZ2g9eStNKyhnPj4+MDxGPj4+MD8xOjApLHc9cy5sb3c9dytXLHMuaGlnaD1CK1ArKHc+Pj4wPFc+Pj4wPzE6MCksUz1hLmxvdz1TK1UsYS5oaWdoPWsrTysoUz4+PjA8VT4+PjA/MTowKSx4PWMubG93PXgrSyxjLmhpZ2g9bStJKyh4Pj4+MDxLPj4+MD8xOjApLEg9Zi5sb3c9SCtMLGYuaGlnaD1iK1grKEg+Pj4wPEw+Pj4wPzE6MCksQT11Lmxvdz1BK04sdS5oaWdoPXoraisoQT4+PjA8Tj4+PjA/MTowKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLHI9dC53b3JkcyxlPTgqdGhpcy5fbkRhdGFCeXRlcyxpPTgqdC5zaWdCeXRlcztyW2k+Pj41XXw9MTI4PDwyNC1pJTMyLHJbKGkrMTI4Pj4+MTA8PDUpKzMwXT1NYXRoLmZsb29yKGUvNDI5NDk2NzI5NiksclsoaSsxMjg+Pj4xMDw8NSkrMzFdPWUsdC5zaWdCeXRlcz00KnIubGVuZ3RoLHRoaXMuX3Byb2Nlc3MoKTt2YXIgbj10aGlzLl9oYXNoLnRvWDMyKCk7cmV0dXJuIG59LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9bi5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fSxibG9ja1NpemU6MzJ9KTtlLlNIQTUxMj1uLl9jcmVhdGVIZWxwZXIoZiksZS5IbWFjU0hBNTEyPW4uX2NyZWF0ZUhtYWNIZWxwZXIoZil9KCksZnVuY3Rpb24oKXt2YXIgcj10LGU9ci54NjQsaT1lLldvcmQsbj1lLldvcmRBcnJheSxvPXIuYWxnbyxzPW8uU0hBNTEyLGE9by5TSEEzODQ9cy5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgbi5pbml0KFtuZXcgaS5pbml0KDM0MTgwNzAzNjUsMzIzODM3MTAzMiksbmV3IGkuaW5pdCgxNjU0MjcwMjUwLDkxNDE1MDY2MyksbmV3IGkuaW5pdCgyNDM4NTI5MzcwLDgxMjcwMjk5OSksbmV3IGkuaW5pdCgzNTU0NjIzNjAsNDE0NDkxMjY5NyksbmV3IGkuaW5pdCgxNzMxNDA1NDE1LDQyOTA3NzU4NTcpLG5ldyBpLmluaXQoMjM5NDE4MDIzMSwxNzUwNjAzMDI1KSxuZXcgaS5pbml0KDM2NzUwMDg1MjUsMTY5NDA3NjgzOSksbmV3IGkuaW5pdCgxMjAzMDYyODEzLDMyMDQwNzU0MjgpXSl9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9cy5fZG9GaW5hbGl6ZS5jYWxsKHRoaXMpO3JldHVybiB0LnNpZ0J5dGVzLT0xNix0fX0pO3IuU0hBMzg0PXMuX2NyZWF0ZUhlbHBlcihhKSxyLkhtYWNTSEEzODQ9cy5fY3JlYXRlSG1hY0hlbHBlcihhKX0oKSx0LmxpYi5DaXBoZXJ8fGZ1bmN0aW9uKHIpe3ZhciBlPXQsaT1lLmxpYixuPWkuQmFzZSxvPWkuV29yZEFycmF5LHM9aS5CdWZmZXJlZEJsb2NrQWxnb3JpdGhtLGE9ZS5lbmMsYz0oYS5VdGY4LGEuQmFzZTY0KSxoPWUuYWxnbyxsPWguRXZwS0RGLGY9aS5DaXBoZXI9cy5leHRlbmQoe2NmZzpuLmV4dGVuZCgpLGNyZWF0ZUVuY3J5cHRvcjpmdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLmNyZWF0ZSh0aGlzLl9FTkNfWEZPUk1fTU9ERSx0LHIpfSxjcmVhdGVEZWNyeXB0b3I6ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fREVDX1hGT1JNX01PREUsdCxyKX0saW5pdDpmdW5jdGlvbih0LHIsZSl7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKGUpLHRoaXMuX3hmb3JtTW9kZT10LHRoaXMuX2tleT1yLHRoaXMucmVzZXQoKX0scmVzZXQ6ZnVuY3Rpb24oKXtzLnJlc2V0LmNhbGwodGhpcyksdGhpcy5fZG9SZXNldCgpfSxwcm9jZXNzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hcHBlbmQodCksdGhpcy5fcHJvY2VzcygpfSxmaW5hbGl6ZTpmdW5jdGlvbih0KXt0JiZ0aGlzLl9hcHBlbmQodCk7dmFyIHI9dGhpcy5fZG9GaW5hbGl6ZSgpO3JldHVybiByfSxrZXlTaXplOjQsaXZTaXplOjQsX0VOQ19YRk9STV9NT0RFOjEsX0RFQ19YRk9STV9NT0RFOjIsX2NyZWF0ZUhlbHBlcjpmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/bTp3fXJldHVybiBmdW5jdGlvbihyKXtyZXR1cm57ZW5jcnlwdDpmdW5jdGlvbihlLGksbil7cmV0dXJuIHQoaSkuZW5jcnlwdChyLGUsaSxuKX0sZGVjcnlwdDpmdW5jdGlvbihlLGksbil7cmV0dXJuIHQoaSkuZGVjcnlwdChyLGUsaSxuKX19fX0oKX0pLHU9KGkuU3RyZWFtQ2lwaGVyPWYuZXh0ZW5kKHtfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3Byb2Nlc3MoITApO3JldHVybiB0fSxibG9ja1NpemU6MX0pLGUubW9kZT17fSksZD1pLkJsb2NrQ2lwaGVyTW9kZT1uLmV4dGVuZCh7Y3JlYXRlRW5jcnlwdG9yOmZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMuRW5jcnlwdG9yLmNyZWF0ZSh0LHIpfSxjcmVhdGVEZWNyeXB0b3I6ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5EZWNyeXB0b3IuY3JlYXRlKHQscil9LGluaXQ6ZnVuY3Rpb24odCxyKXt0aGlzLl9jaXBoZXI9dCx0aGlzLl9pdj1yfX0pLHY9dS5DQkM9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxpKXt2YXIgbj10aGlzLl9pdjtpZihuKXt2YXIgbz1uO3RoaXMuX2l2PXJ9ZWxzZSB2YXIgbz10aGlzLl9wcmV2QmxvY2s7Zm9yKHZhciBzPTA7czxpO3MrKyl0W2Urc11ePW9bc119dmFyIGU9ZC5leHRlbmQoKTtyZXR1cm4gZS5FbmNyeXB0b3I9ZS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbihyLGUpe3ZhciBpPXRoaXMuX2NpcGhlcixuPWkuYmxvY2tTaXplO3QuY2FsbCh0aGlzLHIsZSxuKSxpLmVuY3J5cHRCbG9jayhyLGUpLHRoaXMuX3ByZXZCbG9jaz1yLnNsaWNlKGUsZStuKX19KSxlLkRlY3J5cHRvcj1lLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHIsZSl7dmFyIGk9dGhpcy5fY2lwaGVyLG49aS5ibG9ja1NpemUsbz1yLnNsaWNlKGUsZStuKTtpLmRlY3J5cHRCbG9jayhyLGUpLHQuY2FsbCh0aGlzLHIsZSxuKSx0aGlzLl9wcmV2QmxvY2s9b319KSxlfSgpLHA9ZS5wYWQ9e30sXz1wLlBrY3M3PXtwYWQ6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9NCpyLGk9ZS10LnNpZ0J5dGVzJWUsbj1pPDwyNHxpPDwxNnxpPDw4fGkscz1bXSxhPTA7YTxpO2ErPTQpcy5wdXNoKG4pO3ZhciBjPW8uY3JlYXRlKHMsaSk7dC5jb25jYXQoYyl9LHVucGFkOmZ1bmN0aW9uKHQpe3ZhciByPTI1NSZ0LndvcmRzW3Quc2lnQnl0ZXMtMT4+PjJdO3Quc2lnQnl0ZXMtPXJ9fSx5PShpLkJsb2NrQ2lwaGVyPWYuZXh0ZW5kKHtjZmc6Zi5jZmcuZXh0ZW5kKHttb2RlOnYscGFkZGluZzpffSkscmVzZXQ6ZnVuY3Rpb24oKXtmLnJlc2V0LmNhbGwodGhpcyk7dmFyIHQ9dGhpcy5jZmcscj10Lml2LGU9dC5tb2RlO2lmKHRoaXMuX3hmb3JtTW9kZT09dGhpcy5fRU5DX1hGT1JNX01PREUpdmFyIGk9ZS5jcmVhdGVFbmNyeXB0b3I7ZWxzZXt2YXIgaT1lLmNyZWF0ZURlY3J5cHRvcjt0aGlzLl9taW5CdWZmZXJTaXplPTF9dGhpcy5fbW9kZSYmdGhpcy5fbW9kZS5fX2NyZWF0b3I9PWk/dGhpcy5fbW9kZS5pbml0KHRoaXMsciYmci53b3Jkcyk6KHRoaXMuX21vZGU9aS5jYWxsKGUsdGhpcyxyJiZyLndvcmRzKSx0aGlzLl9tb2RlLl9fY3JlYXRvcj1pKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fbW9kZS5wcm9jZXNzQmxvY2sodCxyKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNmZy5wYWRkaW5nO2lmKHRoaXMuX3hmb3JtTW9kZT09dGhpcy5fRU5DX1hGT1JNX01PREUpe3QucGFkKHRoaXMuX2RhdGEsdGhpcy5ibG9ja1NpemUpO3ZhciByPXRoaXMuX3Byb2Nlc3MoITApfWVsc2V7dmFyIHI9dGhpcy5fcHJvY2VzcyghMCk7dC51bnBhZChyKX1yZXR1cm4gcn0sYmxvY2tTaXplOjR9KSxpLkNpcGhlclBhcmFtcz1uLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0KXt0aGlzLm1peEluKHQpfSx0b1N0cmluZzpmdW5jdGlvbih0KXtyZXR1cm4odHx8dGhpcy5mb3JtYXR0ZXIpLnN0cmluZ2lmeSh0aGlzKX19KSksZz1lLmZvcm1hdD17fSxCPWcuT3BlblNTTD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe3ZhciByPXQuY2lwaGVydGV4dCxlPXQuc2FsdDtpZihlKXZhciBpPW8uY3JlYXRlKFsxMzk4ODkzNjg0LDE3MDEwNzY4MzFdKS5jb25jYXQoZSkuY29uY2F0KHIpO2Vsc2UgdmFyIGk9cjtyZXR1cm4gaS50b1N0cmluZyhjKX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIHI9Yy5wYXJzZSh0KSxlPXIud29yZHM7aWYoMTM5ODg5MzY4ND09ZVswXSYmMTcwMTA3NjgzMT09ZVsxXSl7dmFyIGk9by5jcmVhdGUoZS5zbGljZSgyLDQpKTtlLnNwbGljZSgwLDQpLHIuc2lnQnl0ZXMtPTE2fXJldHVybiB5LmNyZWF0ZSh7Y2lwaGVydGV4dDpyLHNhbHQ6aX0pfX0sdz1pLlNlcmlhbGl6YWJsZUNpcGhlcj1uLmV4dGVuZCh7Y2ZnOm4uZXh0ZW5kKHtmb3JtYXQ6Qn0pLGVuY3J5cHQ6ZnVuY3Rpb24odCxyLGUsaSl7aT10aGlzLmNmZy5leHRlbmQoaSk7dmFyIG49dC5jcmVhdGVFbmNyeXB0b3IoZSxpKSxvPW4uZmluYWxpemUocikscz1uLmNmZztyZXR1cm4geS5jcmVhdGUoe2NpcGhlcnRleHQ6byxrZXk6ZSxpdjpzLml2LGFsZ29yaXRobTp0LG1vZGU6cy5tb2RlLHBhZGRpbmc6cy5wYWRkaW5nLGJsb2NrU2l6ZTp0LmJsb2NrU2l6ZSxmb3JtYXR0ZXI6aS5mb3JtYXR9KX0sZGVjcnlwdDpmdW5jdGlvbih0LHIsZSxpKXtpPXRoaXMuY2ZnLmV4dGVuZChpKSxyPXRoaXMuX3BhcnNlKHIsaS5mb3JtYXQpO3ZhciBuPXQuY3JlYXRlRGVjcnlwdG9yKGUsaSkuZmluYWxpemUoci5jaXBoZXJ0ZXh0KTtyZXR1cm4gbn0sX3BhcnNlOmZ1bmN0aW9uKHQscil7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/ci5wYXJzZSh0LHRoaXMpOnR9fSksaz1lLmtkZj17fSxTPWsuT3BlblNTTD17ZXhlY3V0ZTpmdW5jdGlvbih0LHIsZSxpKXtpfHwoaT1vLnJhbmRvbSg4KSk7dmFyIG49bC5jcmVhdGUoe2tleVNpemU6citlfSkuY29tcHV0ZSh0LGkpLHM9by5jcmVhdGUobi53b3Jkcy5zbGljZShyKSw0KmUpO3JldHVybiBuLnNpZ0J5dGVzPTQqcix5LmNyZWF0ZSh7a2V5Om4saXY6cyxzYWx0Oml9KX19LG09aS5QYXNzd29yZEJhc2VkQ2lwaGVyPXcuZXh0ZW5kKHtjZmc6dy5jZmcuZXh0ZW5kKHtrZGY6U30pLGVuY3J5cHQ6ZnVuY3Rpb24odCxyLGUsaSl7aT10aGlzLmNmZy5leHRlbmQoaSk7dmFyIG49aS5rZGYuZXhlY3V0ZShlLHQua2V5U2l6ZSx0Lml2U2l6ZSk7aS5pdj1uLml2O3ZhciBvPXcuZW5jcnlwdC5jYWxsKHRoaXMsdCxyLG4ua2V5LGkpO3JldHVybiBvLm1peEluKG4pLG99LGRlY3J5cHQ6ZnVuY3Rpb24odCxyLGUsaSl7aT10aGlzLmNmZy5leHRlbmQoaSkscj10aGlzLl9wYXJzZShyLGkuZm9ybWF0KTt2YXIgbj1pLmtkZi5leGVjdXRlKGUsdC5rZXlTaXplLHQuaXZTaXplLHIuc2FsdCk7aS5pdj1uLml2O3ZhciBvPXcuZGVjcnlwdC5jYWxsKHRoaXMsdCxyLG4ua2V5LGkpO3JldHVybiBvfX0pfSgpLHQubW9kZS5DRkI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQscixlLGkpe3ZhciBuPXRoaXMuX2l2O2lmKG4pe3ZhciBvPW4uc2xpY2UoMCk7dGhpcy5faXY9dm9pZCAwfWVsc2UgdmFyIG89dGhpcy5fcHJldkJsb2NrO2kuZW5jcnlwdEJsb2NrKG8sMCk7Zm9yKHZhciBzPTA7czxlO3MrKyl0W3Irc11ePW9bc119dmFyIGU9dC5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpO3JldHVybiBlLkVuY3J5cHRvcj1lLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5fY2lwaGVyLG49aS5ibG9ja1NpemU7ci5jYWxsKHRoaXMsdCxlLG4saSksdGhpcy5fcHJldkJsb2NrPXQuc2xpY2UoZSxlK24pfX0pLGUuRGVjcnlwdG9yPWUuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl9jaXBoZXIsbj1pLmJsb2NrU2l6ZSxvPXQuc2xpY2UoZSxlK24pO3IuY2FsbCh0aGlzLHQsZSxuLGkpLHRoaXMuX3ByZXZCbG9jaz1vfX0pLGV9KCksdC5tb2RlLkVDQj1mdW5jdGlvbigpe3ZhciByPXQubGliLkJsb2NrQ2lwaGVyTW9kZS5leHRlbmQoKTtyZXR1cm4gci5FbmNyeXB0b3I9ci5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2sodCxyKX19KSxyLkRlY3J5cHRvcj1yLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fY2lwaGVyLmRlY3J5cHRCbG9jayh0LHIpfX0pLHJ9KCksdC5wYWQuQW5zaVg5MjM9e3BhZDpmdW5jdGlvbih0LHIpe3ZhciBlPXQuc2lnQnl0ZXMsaT00KnIsbj1pLWUlaSxvPWUrbi0xO3QuY2xhbXAoKSx0LndvcmRzW28+Pj4yXXw9bjw8MjQtbyU0KjgsdC5zaWdCeXRlcys9bn0sdW5wYWQ6ZnVuY3Rpb24odCl7dmFyIHI9MjU1JnQud29yZHNbdC5zaWdCeXRlcy0xPj4+Ml07dC5zaWdCeXRlcy09cn19LHQucGFkLklzbzEwMTI2PXtwYWQ6ZnVuY3Rpb24ocixlKXt2YXIgaT00KmUsbj1pLXIuc2lnQnl0ZXMlaTtyLmNvbmNhdCh0LmxpYi5Xb3JkQXJyYXkucmFuZG9tKG4tMSkpLmNvbmNhdCh0LmxpYi5Xb3JkQXJyYXkuY3JlYXRlKFtuPDwyNF0sMSkpfSx1bnBhZDpmdW5jdGlvbih0KXt2YXIgcj0yNTUmdC53b3Jkc1t0LnNpZ0J5dGVzLTE+Pj4yXTt0LnNpZ0J5dGVzLT1yfX0sdC5wYWQuSXNvOTc5NzE9e3BhZDpmdW5jdGlvbihyLGUpe3IuY29uY2F0KHQubGliLldvcmRBcnJheS5jcmVhdGUoWzIxNDc0ODM2NDhdLDEpKSx0LnBhZC5aZXJvUGFkZGluZy5wYWQocixlKX0sdW5wYWQ6ZnVuY3Rpb24ocil7dC5wYWQuWmVyb1BhZGRpbmcudW5wYWQociksci5zaWdCeXRlcy0tfX0sdC5tb2RlLk9GQj1mdW5jdGlvbigpe3ZhciByPXQubGliLkJsb2NrQ2lwaGVyTW9kZS5leHRlbmQoKSxlPXIuRW5jcnlwdG9yPXIuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9jaXBoZXIsaT1lLmJsb2NrU2l6ZSxuPXRoaXMuX2l2LG89dGhpcy5fa2V5c3RyZWFtO24mJihvPXRoaXMuX2tleXN0cmVhbT1uLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCksZS5lbmNyeXB0QmxvY2sobywwKTtmb3IodmFyIHM9MDtzPGk7cysrKXRbcitzXV49b1tzXX19KTtyZXR1cm4gci5EZWNyeXB0b3I9ZSxyfSgpLHQucGFkLk5vUGFkZGluZz17cGFkOmZ1bmN0aW9uKCl7fSx1bnBhZDpmdW5jdGlvbigpe319LGZ1bmN0aW9uKHIpe3ZhciBlPXQsaT1lLmxpYixuPWkuQ2lwaGVyUGFyYW1zLG89ZS5lbmMscz1vLkhleCxhPWUuZm9ybWF0O2EuSGV4PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY2lwaGVydGV4dC50b1N0cmluZyhzKX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIHI9cy5wYXJzZSh0KTtyZXR1cm4gbi5jcmVhdGUoe2NpcGhlcnRleHQ6cn0pfX19KCksZnVuY3Rpb24oKXt2YXIgcj10LGU9ci5saWIsaT1lLkJsb2NrQ2lwaGVyLG49ci5hbGdvLG89W10scz1bXSxhPVtdLGM9W10saD1bXSxsPVtdLGY9W10sdT1bXSxkPVtdLHY9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLHI9MDtyPDI1NjtyKyspcjwxMjg/dFtyXT1yPDwxOnRbcl09cjw8MV4yODM7Zm9yKHZhciBlPTAsaT0wLHI9MDtyPDI1NjtyKyspe3ZhciBuPWleaTw8MV5pPDwyXmk8PDNeaTw8NDtuPW4+Pj44XjI1NSZuXjk5LG9bZV09bixzW25dPWU7dmFyIHA9dFtlXSxfPXRbcF0seT10W19dLGc9MjU3KnRbbl1eMTY4NDMwMDgqbjthW2VdPWc8PDI0fGc+Pj44LGNbZV09Zzw8MTZ8Zz4+PjE2LGhbZV09Zzw8OHxnPj4+MjQsbFtlXT1nO3ZhciBnPTE2ODQzMDA5KnleNjU1MzcqX14yNTcqcF4xNjg0MzAwOCplO2Zbbl09Zzw8MjR8Zz4+PjgsdVtuXT1nPDwxNnxnPj4+MTYsZFtuXT1nPDw4fGc+Pj4yNCx2W25dPWcsZT8oZT1wXnRbdFt0W3lecF1dXSxpXj10W3RbaV1dKTplPWk9MX19KCk7dmFyIHA9WzAsMSwyLDQsOCwxNiwzMiw2NCwxMjgsMjcsNTRdLF89bi5BRVM9aS5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7aWYoIXRoaXMuX25Sb3VuZHN8fHRoaXMuX2tleVByaW9yUmVzZXQhPT10aGlzLl9rZXkpe2Zvcih2YXIgdD10aGlzLl9rZXlQcmlvclJlc2V0PXRoaXMuX2tleSxyPXQud29yZHMsZT10LnNpZ0J5dGVzLzQsaT10aGlzLl9uUm91bmRzPWUrNixuPTQqKGkrMSkscz10aGlzLl9rZXlTY2hlZHVsZT1bXSxhPTA7YTxuO2ErKylpZihhPGUpc1thXT1yW2FdO2Vsc2V7dmFyIGM9c1thLTFdO2ElZT9lPjYmJmElZT09NCYmKGM9b1tjPj4+MjRdPDwyNHxvW2M+Pj4xNiYyNTVdPDwxNnxvW2M+Pj44JjI1NV08PDh8b1syNTUmY10pOihjPWM8PDh8Yz4+PjI0LGM9b1tjPj4+MjRdPDwyNHxvW2M+Pj4xNiYyNTVdPDwxNnxvW2M+Pj44JjI1NV08PDh8b1syNTUmY10sY149cFthL2V8MF08PDI0KSxzW2FdPXNbYS1lXV5jfWZvcih2YXIgaD10aGlzLl9pbnZLZXlTY2hlZHVsZT1bXSxsPTA7bDxuO2wrKyl7dmFyIGE9bi1sO2lmKGwlNCl2YXIgYz1zW2FdO2Vsc2UgdmFyIGM9c1thLTRdO2w8NHx8YTw9ND9oW2xdPWM6aFtsXT1mW29bYz4+PjI0XV1edVtvW2M+Pj4xNiYyNTVdXV5kW29bYz4+PjgmMjU1XV1edltvWzI1NSZjXV19fX0sZW5jcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9rZXlTY2hlZHVsZSxhLGMsaCxsLG8pfSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxyKXt2YXIgZT10W3IrMV07dFtyKzFdPXRbciszXSx0W3IrM109ZSx0aGlzLl9kb0NyeXB0QmxvY2sodCxyLHRoaXMuX2ludktleVNjaGVkdWxlLGYsdSxkLHYscyk7dmFyIGU9dFtyKzFdO3RbcisxXT10W3IrM10sdFtyKzNdPWV9LF9kb0NyeXB0QmxvY2s6ZnVuY3Rpb24odCxyLGUsaSxuLG8scyxhKXtmb3IodmFyIGM9dGhpcy5fblJvdW5kcyxoPXRbcl1eZVswXSxsPXRbcisxXV5lWzFdLGY9dFtyKzJdXmVbMl0sdT10W3IrM11eZVszXSxkPTQsdj0xO3Y8Yzt2Kyspe3ZhciBwPWlbaD4+PjI0XV5uW2w+Pj4xNiYyNTVdXm9bZj4+PjgmMjU1XV5zWzI1NSZ1XV5lW2QrK10sXz1pW2w+Pj4yNF1ebltmPj4+MTYmMjU1XV5vW3U+Pj44JjI1NV1ec1syNTUmaF1eZVtkKytdLHk9aVtmPj4+MjRdXm5bdT4+PjE2JjI1NV1eb1toPj4+OCYyNTVdXnNbMjU1JmxdXmVbZCsrXSxnPWlbdT4+PjI0XV5uW2g+Pj4xNiYyNTVdXm9bbD4+PjgmMjU1XV5zWzI1NSZmXV5lW2QrK107aD1wLGw9XyxmPXksdT1nfXZhciBwPShhW2g+Pj4yNF08PDI0fGFbbD4+PjE2JjI1NV08PDE2fGFbZj4+PjgmMjU1XTw8OHxhWzI1NSZ1XSleZVtkKytdLF89KGFbbD4+PjI0XTw8MjR8YVtmPj4+MTYmMjU1XTw8MTZ8YVt1Pj4+OCYyNTVdPDw4fGFbMjU1JmhdKV5lW2QrK10seT0oYVtmPj4+MjRdPDwyNHxhW3U+Pj4xNiYyNTVdPDwxNnxhW2g+Pj44JjI1NV08PDh8YVsyNTUmbF0pXmVbZCsrXSxnPShhW3U+Pj4yNF08PDI0fGFbaD4+PjE2JjI1NV08PDE2fGFbbD4+PjgmMjU1XTw8OHxhWzI1NSZmXSleZVtkKytdO3Rbcl09cCx0W3IrMV09Xyx0W3IrMl09eSx0W3IrM109Z30sa2V5U2l6ZTo4fSk7ci5BRVM9aS5fY3JlYXRlSGVscGVyKF8pfSgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0LHIpe3ZhciBlPSh0aGlzLl9sQmxvY2s+Pj50XnRoaXMuX3JCbG9jaykmcjt0aGlzLl9yQmxvY2tePWUsdGhpcy5fbEJsb2NrXj1lPDx0fWZ1bmN0aW9uIGUodCxyKXt2YXIgZT0odGhpcy5fckJsb2NrPj4+dF50aGlzLl9sQmxvY2spJnI7dGhpcy5fbEJsb2NrXj1lLHRoaXMuX3JCbG9ja149ZTw8dDtcclxufXZhciBpPXQsbj1pLmxpYixvPW4uV29yZEFycmF5LHM9bi5CbG9ja0NpcGhlcixhPWkuYWxnbyxjPVs1Nyw0OSw0MSwzMywyNSwxNyw5LDEsNTgsNTAsNDIsMzQsMjYsMTgsMTAsMiw1OSw1MSw0MywzNSwyNywxOSwxMSwzLDYwLDUyLDQ0LDM2LDYzLDU1LDQ3LDM5LDMxLDIzLDE1LDcsNjIsNTQsNDYsMzgsMzAsMjIsMTQsNiw2MSw1Myw0NSwzNywyOSwyMSwxMyw1LDI4LDIwLDEyLDRdLGg9WzE0LDE3LDExLDI0LDEsNSwzLDI4LDE1LDYsMjEsMTAsMjMsMTksMTIsNCwyNiw4LDE2LDcsMjcsMjAsMTMsMiw0MSw1MiwzMSwzNyw0Nyw1NSwzMCw0MCw1MSw0NSwzMyw0OCw0NCw0OSwzOSw1NiwzNCw1Myw0Niw0Miw1MCwzNiwyOSwzMl0sbD1bMSwyLDQsNiw4LDEwLDEyLDE0LDE1LDE3LDE5LDIxLDIzLDI1LDI3LDI4XSxmPVt7MDo4NDIxODg4LDI2ODQzNTQ1NjozMjc2OCw1MzY4NzA5MTI6ODQyMTM3OCw4MDUzMDYzNjg6MiwxMDczNzQxODI0OjUxMiwxMzQyMTc3MjgwOjg0MjE4OTAsMTYxMDYxMjczNjo4Mzg5MTIyLDE4NzkwNDgxOTI6ODM4ODYwOCwyMTQ3NDgzNjQ4OjUxNCwyNDE1OTE5MTA0OjgzODkxMjAsMjY4NDM1NDU2MDozMzI4MCwyOTUyNzkwMDE2Ojg0MjEzNzYsMzIyMTIyNTQ3MjozMjc3MCwzNDg5NjYwOTI4OjgzODg2MTAsMzc1ODA5NjM4NDowLDQwMjY1MzE4NDA6MzMyODIsMTM0MjE3NzI4OjAsNDAyNjUzMTg0Ojg0MjE4OTAsNjcxMDg4NjQwOjMzMjgyLDkzOTUyNDA5NjozMjc2OCwxMjA3OTU5NTUyOjg0MjE4ODgsMTQ3NjM5NTAwODo1MTIsMTc0NDgzMDQ2NDo4NDIxMzc4LDIwMTMyNjU5MjA6MiwyMjgxNzAxMzc2OjgzODkxMjAsMjU1MDEzNjgzMjozMzI4MCwyODE4NTcyMjg4Ojg0MjEzNzYsMzA4NzAwNzc0NDo4Mzg5MTIyLDMzNTU0NDMyMDA6ODM4ODYxMCwzNjIzODc4NjU2OjMyNzcwLDM4OTIzMTQxMTI6NTE0LDQxNjA3NDk1Njg6ODM4ODYwOCwxOjMyNzY4LDI2ODQzNTQ1NzoyLDUzNjg3MDkxMzo4NDIxODg4LDgwNTMwNjM2OTo4Mzg4NjA4LDEwNzM3NDE4MjU6ODQyMTM3OCwxMzQyMTc3MjgxOjMzMjgwLDE2MTA2MTI3Mzc6NTEyLDE4NzkwNDgxOTM6ODM4OTEyMiwyMTQ3NDgzNjQ5Ojg0MjE4OTAsMjQxNTkxOTEwNTo4NDIxMzc2LDI2ODQzNTQ1NjE6ODM4ODYxMCwyOTUyNzkwMDE3OjMzMjgyLDMyMjEyMjU0NzM6NTE0LDM0ODk2NjA5Mjk6ODM4OTEyMCwzNzU4MDk2Mzg1OjMyNzcwLDQwMjY1MzE4NDE6MCwxMzQyMTc3Mjk6ODQyMTg5MCw0MDI2NTMxODU6ODQyMTM3Niw2NzEwODg2NDE6ODM4ODYwOCw5Mzk1MjQwOTc6NTEyLDEyMDc5NTk1NTM6MzI3NjgsMTQ3NjM5NTAwOTo4Mzg4NjEwLDE3NDQ4MzA0NjU6MiwyMDEzMjY1OTIxOjMzMjgyLDIyODE3MDEzNzc6MzI3NzAsMjU1MDEzNjgzMzo4Mzg5MTIyLDI4MTg1NzIyODk6NTE0LDMwODcwMDc3NDU6ODQyMTg4OCwzMzU1NDQzMjAxOjgzODkxMjAsMzYyMzg3ODY1NzowLDM4OTIzMTQxMTM6MzMyODAsNDE2MDc0OTU2OTo4NDIxMzc4fSx7MDoxMDc0MjgyNTEyLDE2Nzc3MjE2OjE2Mzg0LDMzNTU0NDMyOjUyNDI4OCw1MDMzMTY0ODoxMDc0MjY2MTI4LDY3MTA4ODY0OjEwNzM3NDE4NDAsODM4ODYwODA6MTA3NDI4MjQ5NiwxMDA2NjMyOTY6MTA3Mzc1ODIwOCwxMTc0NDA1MTI6MTYsMTM0MjE3NzI4OjU0MDY3MiwxNTA5OTQ5NDQ6MTA3Mzc1ODIyNCwxNjc3NzIxNjA6MTA3Mzc0MTgyNCwxODQ1NDkzNzY6NTQwNjg4LDIwMTMyNjU5Mjo1MjQzMDQsMjE4MTAzODA4OjAsMjM0ODgxMDI0OjE2NDAwLDI1MTY1ODI0MDoxMDc0MjY2MTEyLDgzODg2MDg6MTA3Mzc1ODIwOCwyNTE2NTgyNDo1NDA2ODgsNDE5NDMwNDA6MTYsNTg3MjAyNTY6MTA3Mzc1ODIyNCw3NTQ5NzQ3MjoxMDc0MjgyNTEyLDkyMjc0Njg4OjEwNzM3NDE4MjQsMTA5MDUxOTA0OjUyNDI4OCwxMjU4MjkxMjA6MTA3NDI2NjEyOCwxNDI2MDYzMzY6NTI0MzA0LDE1OTM4MzU1MjowLDE3NjE2MDc2ODoxNjM4NCwxOTI5Mzc5ODQ6MTA3NDI2NjExMiwyMDk3MTUyMDA6MTA3Mzc0MTg0MCwyMjY0OTI0MTY6NTQwNjcyLDI0MzI2OTYzMjoxMDc0MjgyNDk2LDI2MDA0Njg0ODoxNjQwMCwyNjg0MzU0NTY6MCwyODUyMTI2NzI6MTA3NDI2NjEyOCwzMDE5ODk4ODg6MTA3Mzc1ODIyNCwzMTg3NjcxMDQ6MTA3NDI4MjQ5NiwzMzU1NDQzMjA6MTA3NDI2NjExMiwzNTIzMjE1MzY6MTYsMzY5MDk4NzUyOjU0MDY4OCwzODU4NzU5Njg6MTYzODQsNDAyNjUzMTg0OjE2NDAwLDQxOTQzMDQwMDo1MjQyODgsNDM2MjA3NjE2OjUyNDMwNCw0NTI5ODQ4MzI6MTA3Mzc0MTg0MCw0Njk3NjIwNDg6NTQwNjcyLDQ4NjUzOTI2NDoxMDczNzU4MjA4LDUwMzMxNjQ4MDoxMDczNzQxODI0LDUyMDA5MzY5NjoxMDc0MjgyNTEyLDI3NjgyNDA2NDo1NDA2ODgsMjkzNjAxMjgwOjUyNDI4OCwzMTAzNzg0OTY6MTA3NDI2NjExMiwzMjcxNTU3MTI6MTYzODQsMzQzOTMyOTI4OjEwNzM3NTgyMDgsMzYwNzEwMTQ0OjEwNzQyODI1MTIsMzc3NDg3MzYwOjE2LDM5NDI2NDU3NjoxMDczNzQxODI0LDQxMTA0MTc5MjoxMDc0MjgyNDk2LDQyNzgxOTAwODoxMDczNzQxODQwLDQ0NDU5NjIyNDoxMDczNzU4MjI0LDQ2MTM3MzQ0MDo1MjQzMDQsNDc4MTUwNjU2OjAsNDk0OTI3ODcyOjE2NDAwLDUxMTcwNTA4ODoxMDc0MjY2MTI4LDUyODQ4MjMwNDo1NDA2NzJ9LHswOjI2MCwxMDQ4NTc2OjAsMjA5NzE1Mjo2NzEwOTEyMCwzMTQ1NzI4OjY1Nzk2LDQxOTQzMDQ6NjU1NDAsNTI0Mjg4MDo2NzEwODg2OCw2MjkxNDU2OjY3MTc0NjYwLDczNDAwMzI6NjcxNzQ0MDAsODM4ODYwODo2NzEwODg2NCw5NDM3MTg0OjY3MTc0NjU2LDEwNDg1NzYwOjY1NzkyLDExNTM0MzM2OjY3MTc0NDA0LDEyNTgyOTEyOjY3MTA5MTI0LDEzNjMxNDg4OjY1NTM2LDE0NjgwMDY0OjQsMTU3Mjg2NDA6MjU2LDUyNDI4ODo2NzE3NDY1NiwxNTcyODY0OjY3MTc0NDA0LDI2MjE0NDA6MCwzNjcwMDE2OjY3MTA5MTIwLDQ3MTg1OTI6NjcxMDg4NjgsNTc2NzE2ODo2NTUzNiw2ODE1NzQ0OjY1NTQwLDc4NjQzMjA6MjYwLDg5MTI4OTY6NCw5OTYxNDcyOjI1NiwxMTAxMDA0ODo2NzE3NDQwMCwxMjA1ODYyNDo2NTc5NiwxMzEwNzIwMDo2NTc5MiwxNDE1NTc3Njo2NzEwOTEyNCwxNTIwNDM1Mjo2NzE3NDY2MCwxNjI1MjkyODo2NzEwODg2NCwxNjc3NzIxNjo2NzE3NDY1NiwxNzgyNTc5Mjo2NTU0MCwxODg3NDM2ODo2NTUzNiwxOTkyMjk0NDo2NzEwOTEyMCwyMDk3MTUyMDoyNTYsMjIwMjAwOTY6NjcxNzQ2NjAsMjMwNjg2NzI6NjcxMDg4NjgsMjQxMTcyNDg6MCwyNTE2NTgyNDo2NzEwOTEyNCwyNjIxNDQwMDo2NzEwODg2NCwyNzI2Mjk3Njo0LDI4MzExNTUyOjY1NzkyLDI5MzYwMTI4OjY3MTc0NDAwLDMwNDA4NzA0OjI2MCwzMTQ1NzI4MDo2NTc5NiwzMjUwNTg1Njo2NzE3NDQwNCwxNzMwMTUwNDo2NzEwODg2NCwxODM1MDA4MDoyNjAsMTkzOTg2NTY6NjcxNzQ2NTYsMjA0NDcyMzI6MCwyMTQ5NTgwODo2NTU0MCwyMjU0NDM4NDo2NzEwOTEyMCwyMzU5Mjk2MDoyNTYsMjQ2NDE1MzY6NjcxNzQ0MDQsMjU2OTAxMTI6NjU1MzYsMjY3Mzg2ODg6NjcxNzQ2NjAsMjc3ODcyNjQ6NjU3OTYsMjg4MzU4NDA6NjcxMDg4NjgsMjk4ODQ0MTY6NjcxMDkxMjQsMzA5MzI5OTI6NjcxNzQ0MDAsMzE5ODE1Njg6NCwzMzAzMDE0NDo2NTc5Mn0sezA6MjE1MTY4MjA0OCw2NTUzNjoyMTQ3NDg3ODA4LDEzMTA3Mjo0MTk4NDY0LDE5NjYwODoyMTUxNjc3OTUyLDI2MjE0NDowLDMyNzY4MDo0MTk4NDAwLDM5MzIxNjoyMTQ3NDgzNzEyLDQ1ODc1Mjo0MTk0MzY4LDUyNDI4ODoyMTQ3NDgzNjQ4LDU4OTgyNDo0MTk0MzA0LDY1NTM2MDo2NCw3MjA4OTY6MjE0NzQ4Nzc0NCw3ODY0MzI6MjE1MTY3ODAxNiw4NTE5Njg6NDE2MCw5MTc1MDQ6NDA5Niw5ODMwNDA6MjE1MTY4MjExMiwzMjc2ODoyMTQ3NDg3ODA4LDk4MzA0OjY0LDE2Mzg0MDoyMTUxNjc4MDE2LDIyOTM3NjoyMTQ3NDg3NzQ0LDI5NDkxMjo0MTk4NDAwLDM2MDQ0ODoyMTUxNjgyMTEyLDQyNTk4NDowLDQ5MTUyMDoyMTUxNjc3OTUyLDU1NzA1Njo0MDk2LDYyMjU5MjoyMTUxNjgyMDQ4LDY4ODEyODo0MTk0MzA0LDc1MzY2NDo0MTYwLDgxOTIwMDoyMTQ3NDgzNjQ4LDg4NDczNjo0MTk0MzY4LDk1MDI3Mjo0MTk4NDY0LDEwMTU4MDg6MjE0NzQ4MzcxMiwxMDQ4NTc2OjQxOTQzNjgsMTExNDExMjo0MTk4NDAwLDExNzk2NDg6MjE0NzQ4MzcxMiwxMjQ1MTg0OjAsMTMxMDcyMDo0MTYwLDEzNzYyNTY6MjE1MTY3ODAxNiwxNDQxNzkyOjIxNTE2ODIwNDgsMTUwNzMyODoyMTQ3NDg3ODA4LDE1NzI4NjQ6MjE1MTY4MjExMiwxNjM4NDAwOjIxNDc0ODM2NDgsMTcwMzkzNjoyMTUxNjc3OTUyLDE3Njk0NzI6NDE5ODQ2NCwxODM1MDA4OjIxNDc0ODc3NDQsMTkwMDU0NDo0MTk0MzA0LDE5NjYwODA6NjQsMjAzMTYxNjo0MDk2LDEwODEzNDQ6MjE1MTY3Nzk1MiwxMTQ2ODgwOjIxNTE2ODIxMTIsMTIxMjQxNjowLDEyNzc5NTI6NDE5ODQwMCwxMzQzNDg4OjQxOTQzNjgsMTQwOTAyNDoyMTQ3NDgzNjQ4LDE0NzQ1NjA6MjE0NzQ4NzgwOCwxNTQwMDk2OjY0LDE2MDU2MzI6MjE0NzQ4MzcxMiwxNjcxMTY4OjQwOTYsMTczNjcwNDoyMTQ3NDg3NzQ0LDE4MDIyNDA6MjE1MTY3ODAxNiwxODY3Nzc2OjQxNjAsMTkzMzMxMjoyMTUxNjgyMDQ4LDE5OTg4NDg6NDE5NDMwNCwyMDY0Mzg0OjQxOTg0NjR9LHswOjEyOCw0MDk2OjE3MDM5MzYwLDgxOTI6MjYyMTQ0LDEyMjg4OjUzNjg3MDkxMiwxNjM4NDo1MzcxMzMxODQsMjA0ODA6MTY3NzczNDQsMjQ1NzY6NTUzNjQ4MjU2LDI4NjcyOjI2MjI3MiwzMjc2ODoxNjc3NzIxNiwzNjg2NDo1MzcxMzMwNTYsNDA5NjA6NTM2ODcxMDQwLDQ1MDU2OjU1MzkxMDQwMCw0OTE1Mjo1NTM5MTAyNzIsNTMyNDg6MCw1NzM0NDoxNzAzOTQ4OCw2MTQ0MDo1NTM2NDgxMjgsMjA0ODoxNzAzOTQ4OCw2MTQ0OjU1MzY0ODI1NiwxMDI0MDoxMjgsMTQzMzY6MTcwMzkzNjAsMTg0MzI6MjYyMTQ0LDIyNTI4OjUzNzEzMzE4NCwyNjYyNDo1NTM5MTAyNzIsMzA3MjA6NTM2ODcwOTEyLDM0ODE2OjUzNzEzMzA1NiwzODkxMjowLDQzMDA4OjU1MzkxMDQwMCw0NzEwNDoxNjc3NzM0NCw1MTIwMDo1MzY4NzEwNDAsNTUyOTY6NTUzNjQ4MTI4LDU5MzkyOjE2Nzc3MjE2LDYzNDg4OjI2MjI3Miw2NTUzNjoyNjIxNDQsNjk2MzI6MTI4LDczNzI4OjUzNjg3MDkxMiw3NzgyNDo1NTM2NDgyNTYsODE5MjA6MTY3NzczNDQsODYwMTY6NTUzOTEwMjcyLDkwMTEyOjUzNzEzMzE4NCw5NDIwODoxNjc3NzIxNiw5ODMwNDo1NTM5MTA0MDAsMTAyNDAwOjU1MzY0ODEyOCwxMDY0OTY6MTcwMzkzNjAsMTEwNTkyOjUzNzEzMzA1NiwxMTQ2ODg6MjYyMjcyLDExODc4NDo1MzY4NzEwNDAsMTIyODgwOjAsMTI2OTc2OjE3MDM5NDg4LDY3NTg0OjU1MzY0ODI1Niw3MTY4MDoxNjc3NzIxNiw3NTc3NjoxNzAzOTM2MCw3OTg3Mjo1MzcxMzMxODQsODM5Njg6NTM2ODcwOTEyLDg4MDY0OjE3MDM5NDg4LDkyMTYwOjEyOCw5NjI1Njo1NTM5MTAyNzIsMTAwMzUyOjI2MjI3MiwxMDQ0NDg6NTUzOTEwNDAwLDEwODU0NDowLDExMjY0MDo1NTM2NDgxMjgsMTE2NzM2OjE2Nzc3MzQ0LDEyMDgzMjoyNjIxNDQsMTI0OTI4OjUzNzEzMzA1NiwxMjkwMjQ6NTM2ODcxMDQwfSx7MDoyNjg0MzU0NjQsMjU2OjgxOTIsNTEyOjI3MDUzMjYwOCw3Njg6MjcwNTQwODA4LDEwMjQ6MjY4NDQzNjQ4LDEyODA6MjA5NzE1MiwxNTM2OjIwOTcxNjAsMTc5MjoyNjg0MzU0NTYsMjA0ODowLDIzMDQ6MjY4NDQzNjU2LDI1NjA6MjEwNTM0NCwyODE2OjgsMzA3MjoyNzA1MzI2MTYsMzMyODoyMTA1MzUyLDM1ODQ6ODIwMCwzODQwOjI3MDU0MDgwMCwxMjg6MjcwNTMyNjA4LDM4NDoyNzA1NDA4MDgsNjQwOjgsODk2OjIwOTcxNTIsMTE1MjoyMTA1MzUyLDE0MDg6MjY4NDM1NDY0LDE2NjQ6MjY4NDQzNjQ4LDE5MjA6ODIwMCwyMTc2OjIwOTcxNjAsMjQzMjo4MTkyLDI2ODg6MjY4NDQzNjU2LDI5NDQ6MjcwNTMyNjE2LDMyMDA6MCwzNDU2OjI3MDU0MDgwMCwzNzEyOjIxMDUzNDQsMzk2ODoyNjg0MzU0NTYsNDA5NjoyNjg0NDM2NDgsNDM1MjoyNzA1MzI2MTYsNDYwODoyNzA1NDA4MDgsNDg2NDo4MjAwLDUxMjA6MjA5NzE1Miw1Mzc2OjI2ODQzNTQ1Niw1NjMyOjI2ODQzNTQ2NCw1ODg4OjIxMDUzNDQsNjE0NDoyMTA1MzUyLDY0MDA6MCw2NjU2OjgsNjkxMjoyNzA1MzI2MDgsNzE2ODo4MTkyLDc0MjQ6MjY4NDQzNjU2LDc2ODA6MjcwNTQwODAwLDc5MzY6MjA5NzE2MCw0MjI0OjgsNDQ4MDoyMTA1MzQ0LDQ3MzY6MjA5NzE1Miw0OTkyOjI2ODQzNTQ2NCw1MjQ4OjI2ODQ0MzY0OCw1NTA0OjgyMDAsNTc2MDoyNzA1NDA4MDgsNjAxNjoyNzA1MzI2MDgsNjI3MjoyNzA1NDA4MDAsNjUyODoyNzA1MzI2MTYsNjc4NDo4MTkyLDcwNDA6MjEwNTM1Miw3Mjk2OjIwOTcxNjAsNzU1MjowLDc4MDg6MjY4NDM1NDU2LDgwNjQ6MjY4NDQzNjU2fSx7MDoxMDQ4NTc2LDE2OjMzNTU1NDU3LDMyOjEwMjQsNDg6MTA0OTYwMSw2NDozNDYwNDAzMyw4MDowLDk2OjEsMTEyOjM0NjAzMDA5LDEyODozMzU1NTQ1NiwxNDQ6MTA0ODU3NywxNjA6MzM1NTQ0MzMsMTc2OjM0NjA0MDMyLDE5MjozNDYwMzAwOCwyMDg6MTAyNSwyMjQ6MTA0OTYwMCwyNDA6MzM1NTQ0MzIsODozNDYwMzAwOSwyNDowLDQwOjMzNTU1NDU3LDU2OjM0NjA0MDMyLDcyOjEwNDg1NzYsODg6MzM1NTQ0MzMsMTA0OjMzNTU0NDMyLDEyMDoxMDI1LDEzNjoxMDQ5NjAxLDE1MjozMzU1NTQ1NiwxNjg6MzQ2MDMwMDgsMTg0OjEwNDg1NzcsMjAwOjEwMjQsMjE2OjM0NjA0MDMzLDIzMjoxLDI0ODoxMDQ5NjAwLDI1NjozMzU1NDQzMiwyNzI6MTA0ODU3NiwyODg6MzM1NTU0NTcsMzA0OjM0NjAzMDA5LDMyMDoxMDQ4NTc3LDMzNjozMzU1NTQ1NiwzNTI6MzQ2MDQwMzIsMzY4OjEwNDk2MDEsMzg0OjEwMjUsNDAwOjM0NjA0MDMzLDQxNjoxMDQ5NjAwLDQzMjoxLDQ0ODowLDQ2NDozNDYwMzAwOCw0ODA6MzM1NTQ0MzMsNDk2OjEwMjQsMjY0OjEwNDk2MDAsMjgwOjMzNTU1NDU3LDI5NjozNDYwMzAwOSwzMTI6MSwzMjg6MzM1NTQ0MzIsMzQ0OjEwNDg1NzYsMzYwOjEwMjUsMzc2OjM0NjA0MDMyLDM5MjozMzU1NDQzMyw0MDg6MzQ2MDMwMDgsNDI0OjAsNDQwOjM0NjA0MDMzLDQ1NjoxMDQ5NjAxLDQ3MjoxMDI0LDQ4ODozMzU1NTQ1Niw1MDQ6MTA0ODU3N30sezA6MTM0MjE5ODA4LDE6MTMxMDcyLDI6MTM0MjE3NzI4LDM6MzIsNDoxMzExMDQsNToxMzQzNTA4ODAsNjoxMzQzNTA4NDgsNzoyMDQ4LDg6MTM0MzQ4ODAwLDk6MTM0MjE5Nzc2LDEwOjEzMzEyMCwxMToxMzQzNDg4MzIsMTI6MjA4MCwxMzowLDE0OjEzNDIxNzc2MCwxNToxMzMxNTIsMjE0NzQ4MzY0ODoyMDQ4LDIxNDc0ODM2NDk6MTM0MzUwODgwLDIxNDc0ODM2NTA6MTM0MjE5ODA4LDIxNDc0ODM2NTE6MTM0MjE3NzI4LDIxNDc0ODM2NTI6MTM0MzQ4ODAwLDIxNDc0ODM2NTM6MTMzMTIwLDIxNDc0ODM2NTQ6MTMzMTUyLDIxNDc0ODM2NTU6MzIsMjE0NzQ4MzY1NjoxMzQyMTc3NjAsMjE0NzQ4MzY1NzoyMDgwLDIxNDc0ODM2NTg6MTMxMTA0LDIxNDc0ODM2NTk6MTM0MzUwODQ4LDIxNDc0ODM2NjA6MCwyMTQ3NDgzNjYxOjEzNDM0ODgzMiwyMTQ3NDgzNjYyOjEzNDIxOTc3NiwyMTQ3NDgzNjYzOjEzMTA3MiwxNjoxMzMxNTIsMTc6MTM0MzUwODQ4LDE4OjMyLDE5OjIwNDgsMjA6MTM0MjE5Nzc2LDIxOjEzNDIxNzc2MCwyMjoxMzQzNDg4MzIsMjM6MTMxMDcyLDI0OjAsMjU6MTMxMTA0LDI2OjEzNDM0ODgwMCwyNzoxMzQyMTk4MDgsMjg6MTM0MzUwODgwLDI5OjEzMzEyMCwzMDoyMDgwLDMxOjEzNDIxNzcyOCwyMTQ3NDgzNjY0OjEzMTA3MiwyMTQ3NDgzNjY1OjIwNDgsMjE0NzQ4MzY2NjoxMzQzNDg4MzIsMjE0NzQ4MzY2NzoxMzMxNTIsMjE0NzQ4MzY2ODozMiwyMTQ3NDgzNjY5OjEzNDM0ODgwMCwyMTQ3NDgzNjcwOjEzNDIxNzcyOCwyMTQ3NDgzNjcxOjEzNDIxOTgwOCwyMTQ3NDgzNjcyOjEzNDM1MDg4MCwyMTQ3NDgzNjczOjEzNDIxNzc2MCwyMTQ3NDgzNjc0OjEzNDIxOTc3NiwyMTQ3NDgzNjc1OjAsMjE0NzQ4MzY3NjoxMzMxMjAsMjE0NzQ4MzY3NzoyMDgwLDIxNDc0ODM2Nzg6MTMxMTA0LDIxNDc0ODM2Nzk6MTM0MzUwODQ4fV0sdT1bNDE2MDc0OTU2OSw1Mjg0ODIzMDQsMzMwMzAxNDQsMjA2NDM4NCwxMjkwMjQsODA2NCw1MDQsMjE0NzQ4MzY3OV0sZD1hLkRFUz1zLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LHI9dC53b3JkcyxlPVtdLGk9MDtpPDU2O2krKyl7dmFyIG49Y1tpXS0xO2VbaV09cltuPj4+NV0+Pj4zMS1uJTMyJjF9Zm9yKHZhciBvPXRoaXMuX3N1YktleXM9W10scz0wO3M8MTY7cysrKXtmb3IodmFyIGE9b1tzXT1bXSxmPWxbc10saT0wO2k8MjQ7aSsrKWFbaS82fDBdfD1lWyhoW2ldLTErZiklMjhdPDwzMS1pJTYsYVs0KyhpLzZ8MCldfD1lWzI4KyhoW2krMjRdLTErZiklMjhdPDwzMS1pJTY7YVswXT1hWzBdPDwxfGFbMF0+Pj4zMTtmb3IodmFyIGk9MTtpPDc7aSsrKWFbaV09YVtpXT4+PjQqKGktMSkrMzthWzddPWFbN108PDV8YVs3XT4+PjI3fWZvcih2YXIgdT10aGlzLl9pbnZTdWJLZXlzPVtdLGk9MDtpPDE2O2krKyl1W2ldPW9bMTUtaV19LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2RvQ3J5cHRCbG9jayh0LHIsdGhpcy5fc3ViS2V5cyl9LGRlY3J5cHRCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2RvQ3J5cHRCbG9jayh0LHIsdGhpcy5faW52U3ViS2V5cyl9LF9kb0NyeXB0QmxvY2s6ZnVuY3Rpb24odCxpLG4pe3RoaXMuX2xCbG9jaz10W2ldLHRoaXMuX3JCbG9jaz10W2krMV0sci5jYWxsKHRoaXMsNCwyNTI2NDUxMzUpLHIuY2FsbCh0aGlzLDE2LDY1NTM1KSxlLmNhbGwodGhpcywyLDg1ODk5MzQ1OSksZS5jYWxsKHRoaXMsOCwxNjcxMTkzNSksci5jYWxsKHRoaXMsMSwxNDMxNjU1NzY1KTtmb3IodmFyIG89MDtvPDE2O28rKyl7Zm9yKHZhciBzPW5bb10sYT10aGlzLl9sQmxvY2ssYz10aGlzLl9yQmxvY2ssaD0wLGw9MDtsPDg7bCsrKWh8PWZbbF1bKChjXnNbbF0pJnVbbF0pPj4+MF07dGhpcy5fbEJsb2NrPWMsdGhpcy5fckJsb2NrPWFeaH12YXIgZD10aGlzLl9sQmxvY2s7dGhpcy5fbEJsb2NrPXRoaXMuX3JCbG9jayx0aGlzLl9yQmxvY2s9ZCxyLmNhbGwodGhpcywxLDE0MzE2NTU3NjUpLGUuY2FsbCh0aGlzLDgsMTY3MTE5MzUpLGUuY2FsbCh0aGlzLDIsODU4OTkzNDU5KSxyLmNhbGwodGhpcywxNiw2NTUzNSksci5jYWxsKHRoaXMsNCwyNTI2NDUxMzUpLHRbaV09dGhpcy5fbEJsb2NrLHRbaSsxXT10aGlzLl9yQmxvY2t9LGtleVNpemU6MixpdlNpemU6MixibG9ja1NpemU6Mn0pO2kuREVTPXMuX2NyZWF0ZUhlbHBlcihkKTt2YXIgdj1hLlRyaXBsZURFUz1zLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9rZXkscj10LndvcmRzO3RoaXMuX2RlczE9ZC5jcmVhdGVFbmNyeXB0b3Ioby5jcmVhdGUoci5zbGljZSgwLDIpKSksdGhpcy5fZGVzMj1kLmNyZWF0ZUVuY3J5cHRvcihvLmNyZWF0ZShyLnNsaWNlKDIsNCkpKSx0aGlzLl9kZXMzPWQuY3JlYXRlRW5jcnlwdG9yKG8uY3JlYXRlKHIuc2xpY2UoNCw2KSkpfSxlbmNyeXB0QmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9kZXMxLmVuY3J5cHRCbG9jayh0LHIpLHRoaXMuX2RlczIuZGVjcnlwdEJsb2NrKHQsciksdGhpcy5fZGVzMy5lbmNyeXB0QmxvY2sodCxyKX0sZGVjcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fZGVzMy5kZWNyeXB0QmxvY2sodCxyKSx0aGlzLl9kZXMyLmVuY3J5cHRCbG9jayh0LHIpLHRoaXMuX2RlczEuZGVjcnlwdEJsb2NrKHQscil9LGtleVNpemU6NixpdlNpemU6MixibG9ja1NpemU6Mn0pO2kuVHJpcGxlREVTPXMuX2NyZWF0ZUhlbHBlcih2KX0oKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIoKXtmb3IodmFyIHQ9dGhpcy5fUyxyPXRoaXMuX2ksZT10aGlzLl9qLGk9MCxuPTA7bjw0O24rKyl7cj0ocisxKSUyNTYsZT0oZSt0W3JdKSUyNTY7dmFyIG89dFtyXTt0W3JdPXRbZV0sdFtlXT1vLGl8PXRbKHRbcl0rdFtlXSklMjU2XTw8MjQtOCpufXJldHVybiB0aGlzLl9pPXIsdGhpcy5faj1lLGl9dmFyIGU9dCxpPWUubGliLG49aS5TdHJlYW1DaXBoZXIsbz1lLmFsZ28scz1vLlJDND1uLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LHI9dC53b3JkcyxlPXQuc2lnQnl0ZXMsaT10aGlzLl9TPVtdLG49MDtuPDI1NjtuKyspaVtuXT1uO2Zvcih2YXIgbj0wLG89MDtuPDI1NjtuKyspe3ZhciBzPW4lZSxhPXJbcz4+PjJdPj4+MjQtcyU0KjgmMjU1O289KG8raVtuXSthKSUyNTY7dmFyIGM9aVtuXTtpW25dPWlbb10saVtvXT1jfXRoaXMuX2k9dGhpcy5faj0wfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt0W2VdXj1yLmNhbGwodGhpcyl9LGtleVNpemU6OCxpdlNpemU6MH0pO2UuUkM0PW4uX2NyZWF0ZUhlbHBlcihzKTt2YXIgYT1vLlJDNERyb3A9cy5leHRlbmQoe2NmZzpzLmNmZy5leHRlbmQoe2Ryb3A6MTkyfSksX2RvUmVzZXQ6ZnVuY3Rpb24oKXtzLl9kb1Jlc2V0LmNhbGwodGhpcyk7Zm9yKHZhciB0PXRoaXMuY2ZnLmRyb3A7dD4wO3QtLSlyLmNhbGwodGhpcyl9fSk7ZS5SQzREcm9wPW4uX2NyZWF0ZUhlbHBlcihhKX0oKSx0Lm1vZGUuQ1RSR2xhZG1hbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIodCl7aWYoMjU1PT09KHQ+PjI0JjI1NSkpe3ZhciByPXQ+PjE2JjI1NSxlPXQ+PjgmMjU1LGk9MjU1JnQ7MjU1PT09cj8ocj0wLDI1NT09PWU/KGU9MCwyNTU9PT1pP2k9MDorK2kpOisrZSk6KytyLHQ9MCx0Kz1yPDwxNix0Kz1lPDw4LHQrPWl9ZWxzZSB0Kz0xPDwyNDtyZXR1cm4gdH1mdW5jdGlvbiBlKHQpe3JldHVybiAwPT09KHRbMF09cih0WzBdKSkmJih0WzFdPXIodFsxXSkpLHR9dmFyIGk9dC5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpLG49aS5FbmNyeXB0b3I9aS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3ZhciBpPXRoaXMuX2NpcGhlcixuPWkuYmxvY2tTaXplLG89dGhpcy5faXYscz10aGlzLl9jb3VudGVyO28mJihzPXRoaXMuX2NvdW50ZXI9by5zbGljZSgwKSx0aGlzLl9pdj12b2lkIDApLGUocyk7dmFyIGE9cy5zbGljZSgwKTtpLmVuY3J5cHRCbG9jayhhLDApO2Zvcih2YXIgYz0wO2M8bjtjKyspdFtyK2NdXj1hW2NdfX0pO3JldHVybiBpLkRlY3J5cHRvcj1uLGl9KCksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7Zm9yKHZhciB0PXRoaXMuX1gscj10aGlzLl9DLGU9MDtlPDg7ZSsrKWFbZV09cltlXTtyWzBdPXJbMF0rMTI5NTMwNzU5Nyt0aGlzLl9ifDAsclsxXT1yWzFdKzM1NDUwNTIzNzErKHJbMF0+Pj4wPGFbMF0+Pj4wPzE6MCl8MCxyWzJdPXJbMl0rODg2MjYzMDkyKyhyWzFdPj4+MDxhWzFdPj4+MD8xOjApfDAsclszXT1yWzNdKzEyOTUzMDc1OTcrKHJbMl0+Pj4wPGFbMl0+Pj4wPzE6MCl8MCxyWzRdPXJbNF0rMzU0NTA1MjM3MSsoclszXT4+PjA8YVszXT4+PjA/MTowKXwwLHJbNV09cls1XSs4ODYyNjMwOTIrKHJbNF0+Pj4wPGFbNF0+Pj4wPzE6MCl8MCxyWzZdPXJbNl0rMTI5NTMwNzU5Nysocls1XT4+PjA8YVs1XT4+PjA/MTowKXwwLHJbN109cls3XSszNTQ1MDUyMzcxKyhyWzZdPj4+MDxhWzZdPj4+MD8xOjApfDAsdGhpcy5fYj1yWzddPj4+MDxhWzddPj4+MD8xOjA7Zm9yKHZhciBlPTA7ZTw4O2UrKyl7dmFyIGk9dFtlXStyW2VdLG49NjU1MzUmaSxvPWk+Pj4xNixzPSgobipuPj4+MTcpK24qbz4+PjE1KStvKm8saD0oKDQyOTQ5MDE3NjAmaSkqaXwwKSsoKDY1NTM1JmkpKml8MCk7Y1tlXT1zXmh9dFswXT1jWzBdKyhjWzddPDwxNnxjWzddPj4+MTYpKyhjWzZdPDwxNnxjWzZdPj4+MTYpfDAsdFsxXT1jWzFdKyhjWzBdPDw4fGNbMF0+Pj4yNCkrY1s3XXwwLHRbMl09Y1syXSsoY1sxXTw8MTZ8Y1sxXT4+PjE2KSsoY1swXTw8MTZ8Y1swXT4+PjE2KXwwLHRbM109Y1szXSsoY1syXTw8OHxjWzJdPj4+MjQpK2NbMV18MCx0WzRdPWNbNF0rKGNbM108PDE2fGNbM10+Pj4xNikrKGNbMl08PDE2fGNbMl0+Pj4xNil8MCx0WzVdPWNbNV0rKGNbNF08PDh8Y1s0XT4+PjI0KStjWzNdfDAsdFs2XT1jWzZdKyhjWzVdPDwxNnxjWzVdPj4+MTYpKyhjWzRdPDwxNnxjWzRdPj4+MTYpfDAsdFs3XT1jWzddKyhjWzZdPDw4fGNbNl0+Pj4yNCkrY1s1XXwwfXZhciBlPXQsaT1lLmxpYixuPWkuU3RyZWFtQ2lwaGVyLG89ZS5hbGdvLHM9W10sYT1bXSxjPVtdLGg9by5SYWJiaXQ9bi5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2tleS53b3JkcyxlPXRoaXMuY2ZnLml2LGk9MDtpPDQ7aSsrKXRbaV09MTY3MTE5MzUmKHRbaV08PDh8dFtpXT4+PjI0KXw0Mjc4MjU1MzYwJih0W2ldPDwyNHx0W2ldPj4+OCk7dmFyIG49dGhpcy5fWD1bdFswXSx0WzNdPDwxNnx0WzJdPj4+MTYsdFsxXSx0WzBdPDwxNnx0WzNdPj4+MTYsdFsyXSx0WzFdPDwxNnx0WzBdPj4+MTYsdFszXSx0WzJdPDwxNnx0WzFdPj4+MTZdLG89dGhpcy5fQz1bdFsyXTw8MTZ8dFsyXT4+PjE2LDQyOTQ5MDE3NjAmdFswXXw2NTUzNSZ0WzFdLHRbM108PDE2fHRbM10+Pj4xNiw0Mjk0OTAxNzYwJnRbMV18NjU1MzUmdFsyXSx0WzBdPDwxNnx0WzBdPj4+MTYsNDI5NDkwMTc2MCZ0WzJdfDY1NTM1JnRbM10sdFsxXTw8MTZ8dFsxXT4+PjE2LDQyOTQ5MDE3NjAmdFszXXw2NTUzNSZ0WzBdXTt0aGlzLl9iPTA7Zm9yKHZhciBpPTA7aTw0O2krKylyLmNhbGwodGhpcyk7Zm9yKHZhciBpPTA7aTw4O2krKylvW2ldXj1uW2krNCY3XTtpZihlKXt2YXIgcz1lLndvcmRzLGE9c1swXSxjPXNbMV0saD0xNjcxMTkzNSYoYTw8OHxhPj4+MjQpfDQyNzgyNTUzNjAmKGE8PDI0fGE+Pj44KSxsPTE2NzExOTM1JihjPDw4fGM+Pj4yNCl8NDI3ODI1NTM2MCYoYzw8MjR8Yz4+PjgpLGY9aD4+PjE2fDQyOTQ5MDE3NjAmbCx1PWw8PDE2fDY1NTM1Jmg7b1swXV49aCxvWzFdXj1mLG9bMl1ePWwsb1szXV49dSxvWzRdXj1oLG9bNV1ePWYsb1s2XV49bCxvWzddXj11O2Zvcih2YXIgaT0wO2k8NDtpKyspci5jYWxsKHRoaXMpfX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5fWDtyLmNhbGwodGhpcyksc1swXT1pWzBdXmlbNV0+Pj4xNl5pWzNdPDwxNixzWzFdPWlbMl1eaVs3XT4+PjE2XmlbNV08PDE2LHNbMl09aVs0XV5pWzFdPj4+MTZeaVs3XTw8MTYsc1szXT1pWzZdXmlbM10+Pj4xNl5pWzFdPDwxNjtmb3IodmFyIG49MDtuPDQ7bisrKXNbbl09MTY3MTE5MzUmKHNbbl08PDh8c1tuXT4+PjI0KXw0Mjc4MjU1MzYwJihzW25dPDwyNHxzW25dPj4+OCksdFtlK25dXj1zW25dfSxibG9ja1NpemU6NCxpdlNpemU6Mn0pO2UuUmFiYml0PW4uX2NyZWF0ZUhlbHBlcihoKX0oKSx0Lm1vZGUuQ1RSPWZ1bmN0aW9uKCl7dmFyIHI9dC5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpLGU9ci5FbmNyeXB0b3I9ci5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX2NpcGhlcixpPWUuYmxvY2tTaXplLG49dGhpcy5faXYsbz10aGlzLl9jb3VudGVyO24mJihvPXRoaXMuX2NvdW50ZXI9bi5zbGljZSgwKSx0aGlzLl9pdj12b2lkIDApO3ZhciBzPW8uc2xpY2UoMCk7ZS5lbmNyeXB0QmxvY2socywwKSxvW2ktMV09b1tpLTFdKzF8MDtmb3IodmFyIGE9MDthPGk7YSsrKXRbcithXV49c1thXX19KTtyZXR1cm4gci5EZWNyeXB0b3I9ZSxyfSgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcigpe2Zvcih2YXIgdD10aGlzLl9YLHI9dGhpcy5fQyxlPTA7ZTw4O2UrKylhW2VdPXJbZV07clswXT1yWzBdKzEyOTUzMDc1OTcrdGhpcy5fYnwwLHJbMV09clsxXSszNTQ1MDUyMzcxKyhyWzBdPj4+MDxhWzBdPj4+MD8xOjApfDAsclsyXT1yWzJdKzg4NjI2MzA5MisoclsxXT4+PjA8YVsxXT4+PjA/MTowKXwwLHJbM109clszXSsxMjk1MzA3NTk3KyhyWzJdPj4+MDxhWzJdPj4+MD8xOjApfDAscls0XT1yWzRdKzM1NDUwNTIzNzErKHJbM10+Pj4wPGFbM10+Pj4wPzE6MCl8MCxyWzVdPXJbNV0rODg2MjYzMDkyKyhyWzRdPj4+MDxhWzRdPj4+MD8xOjApfDAscls2XT1yWzZdKzEyOTUzMDc1OTcrKHJbNV0+Pj4wPGFbNV0+Pj4wPzE6MCl8MCxyWzddPXJbN10rMzU0NTA1MjM3MSsocls2XT4+PjA8YVs2XT4+PjA/MTowKXwwLHRoaXMuX2I9cls3XT4+PjA8YVs3XT4+PjA/MTowO2Zvcih2YXIgZT0wO2U8ODtlKyspe3ZhciBpPXRbZV0rcltlXSxuPTY1NTM1Jmksbz1pPj4+MTYscz0oKG4qbj4+PjE3KStuKm8+Pj4xNSkrbypvLGg9KCg0Mjk0OTAxNzYwJmkpKml8MCkrKCg2NTUzNSZpKSppfDApO2NbZV09c15ofXRbMF09Y1swXSsoY1s3XTw8MTZ8Y1s3XT4+PjE2KSsoY1s2XTw8MTZ8Y1s2XT4+PjE2KXwwLHRbMV09Y1sxXSsoY1swXTw8OHxjWzBdPj4+MjQpK2NbN118MCx0WzJdPWNbMl0rKGNbMV08PDE2fGNbMV0+Pj4xNikrKGNbMF08PDE2fGNbMF0+Pj4xNil8MCx0WzNdPWNbM10rKGNbMl08PDh8Y1syXT4+PjI0KStjWzFdfDAsdFs0XT1jWzRdKyhjWzNdPDwxNnxjWzNdPj4+MTYpKyhjWzJdPDwxNnxjWzJdPj4+MTYpfDAsdFs1XT1jWzVdKyhjWzRdPDw4fGNbNF0+Pj4yNCkrY1szXXwwLHRbNl09Y1s2XSsoY1s1XTw8MTZ8Y1s1XT4+PjE2KSsoY1s0XTw8MTZ8Y1s0XT4+PjE2KXwwLHRbN109Y1s3XSsoY1s2XTw8OHxjWzZdPj4+MjQpK2NbNV18MH12YXIgZT10LGk9ZS5saWIsbj1pLlN0cmVhbUNpcGhlcixvPWUuYWxnbyxzPVtdLGE9W10sYz1bXSxoPW8uUmFiYml0TGVnYWN5PW4uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2tleS53b3JkcyxlPXRoaXMuY2ZnLml2LGk9dGhpcy5fWD1bdFswXSx0WzNdPDwxNnx0WzJdPj4+MTYsdFsxXSx0WzBdPDwxNnx0WzNdPj4+MTYsdFsyXSx0WzFdPDwxNnx0WzBdPj4+MTYsdFszXSx0WzJdPDwxNnx0WzFdPj4+MTZdLG49dGhpcy5fQz1bdFsyXTw8MTZ8dFsyXT4+PjE2LDQyOTQ5MDE3NjAmdFswXXw2NTUzNSZ0WzFdLHRbM108PDE2fHRbM10+Pj4xNiw0Mjk0OTAxNzYwJnRbMV18NjU1MzUmdFsyXSx0WzBdPDwxNnx0WzBdPj4+MTYsNDI5NDkwMTc2MCZ0WzJdfDY1NTM1JnRbM10sdFsxXTw8MTZ8dFsxXT4+PjE2LDQyOTQ5MDE3NjAmdFszXXw2NTUzNSZ0WzBdXTt0aGlzLl9iPTA7Zm9yKHZhciBvPTA7bzw0O28rKylyLmNhbGwodGhpcyk7Zm9yKHZhciBvPTA7bzw4O28rKyluW29dXj1pW28rNCY3XTtpZihlKXt2YXIgcz1lLndvcmRzLGE9c1swXSxjPXNbMV0saD0xNjcxMTkzNSYoYTw8OHxhPj4+MjQpfDQyNzgyNTUzNjAmKGE8PDI0fGE+Pj44KSxsPTE2NzExOTM1JihjPDw4fGM+Pj4yNCl8NDI3ODI1NTM2MCYoYzw8MjR8Yz4+PjgpLGY9aD4+PjE2fDQyOTQ5MDE3NjAmbCx1PWw8PDE2fDY1NTM1Jmg7blswXV49aCxuWzFdXj1mLG5bMl1ePWwsblszXV49dSxuWzRdXj1oLG5bNV1ePWYsbls2XV49bCxuWzddXj11O2Zvcih2YXIgbz0wO288NDtvKyspci5jYWxsKHRoaXMpfX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5fWDtyLmNhbGwodGhpcyksc1swXT1pWzBdXmlbNV0+Pj4xNl5pWzNdPDwxNixzWzFdPWlbMl1eaVs3XT4+PjE2XmlbNV08PDE2LHNbMl09aVs0XV5pWzFdPj4+MTZeaVs3XTw8MTYsc1szXT1pWzZdXmlbM10+Pj4xNl5pWzFdPDwxNjtmb3IodmFyIG49MDtuPDQ7bisrKXNbbl09MTY3MTE5MzUmKHNbbl08PDh8c1tuXT4+PjI0KXw0Mjc4MjU1MzYwJihzW25dPDwyNHxzW25dPj4+OCksdFtlK25dXj1zW25dfSxibG9ja1NpemU6NCxpdlNpemU6Mn0pO2UuUmFiYml0TGVnYWN5PW4uX2NyZWF0ZUhlbHBlcihoKX0oKSx0LnBhZC5aZXJvUGFkZGluZz17cGFkOmZ1bmN0aW9uKHQscil7dmFyIGU9NCpyO3QuY2xhbXAoKSx0LnNpZ0J5dGVzKz1lLSh0LnNpZ0J5dGVzJWV8fGUpfSx1bnBhZDpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC53b3JkcyxlPXQuc2lnQnl0ZXMtMTshKHJbZT4+PjJdPj4+MjQtZSU0KjgmMjU1KTspZS0tO3Quc2lnQnl0ZXM9ZSsxfX0sdH0pO1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcnlwdG8tanMubWluLmpzLm1hcCJdfQ== } if (nodeEnv) { __define(__module.exports, __require, __module); @@ -2347,4 +2082,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENyeXB0b1xcY3J5cHRvLWpzLm1pbi5qcyJdLCJuYW1lcyI6WyJ0IiwiciIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJDcnlwdG9KUyIsImUiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm90b3R5cGUiLCJpIiwibiIsImxpYiIsIm8iLCJCYXNlIiwiZXh0ZW5kIiwibWl4SW4iLCJoYXNPd25Qcm9wZXJ0eSIsImluaXQiLCIkc3VwZXIiLCJhcHBseSIsImFyZ3VtZW50cyIsInRvU3RyaW5nIiwiY2xvbmUiLCJzIiwiV29yZEFycmF5Iiwid29yZHMiLCJzaWdCeXRlcyIsImxlbmd0aCIsImMiLCJzdHJpbmdpZnkiLCJjb25jYXQiLCJjbGFtcCIsImNlaWwiLCJjYWxsIiwic2xpY2UiLCJyYW5kb20iLCJhIiwicHVzaCIsImVuYyIsIkhleCIsImpvaW4iLCJwYXJzZSIsInBhcnNlSW50Iiwic3Vic3RyIiwiaCIsIkxhdGluMSIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsImNoYXJDb2RlQXQiLCJsIiwiVXRmOCIsImRlY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsIkVycm9yIiwidW5lc2NhcGUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJmIiwiQnVmZmVyZWRCbG9ja0FsZ29yaXRobSIsInJlc2V0IiwiX2RhdGEiLCJfbkRhdGFCeXRlcyIsIl9hcHBlbmQiLCJfcHJvY2VzcyIsImJsb2NrU2l6ZSIsIm1heCIsIl9taW5CdWZmZXJTaXplIiwibWluIiwiX2RvUHJvY2Vzc0Jsb2NrIiwidSIsInNwbGljZSIsIkhhc2hlciIsImNmZyIsIl9kb1Jlc2V0IiwidXBkYXRlIiwiZmluYWxpemUiLCJfZG9GaW5hbGl6ZSIsIl9jcmVhdGVIZWxwZXIiLCJfY3JlYXRlSG1hY0hlbHBlciIsIkhNQUMiLCJhbGdvIiwiTWF0aCIsIkJhc2U2NCIsIl9tYXAiLCJjaGFyQXQiLCJfcmV2ZXJzZU1hcCIsImluZGV4T2YiLCJhYnMiLCJzaW4iLCJNRDUiLCJfaGFzaCIsImQiLCJ2IiwicCIsIl8iLCJ5IiwiZyIsIkIiLCJ3IiwiayIsIlMiLCJtIiwieCIsImIiLCJIIiwieiIsIkEiLCJDIiwiRCIsImZsb29yIiwiSG1hY01ENSIsIlNIQTEiLCJIbWFjU0hBMSIsInNxcnQiLCJwb3ciLCJTSEEyNTYiLCJIbWFjU0hBMjU2IiwiVXRmMTYiLCJVdGYxNkJFIiwiVXRmMTZMRSIsIkFycmF5QnVmZmVyIiwiVWludDhBcnJheSIsIkludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiSW50MTZBcnJheSIsIlVpbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIlVpbnQzMkFycmF5IiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiYnVmZmVyIiwiYnl0ZU9mZnNldCIsImJ5dGVMZW5ndGgiLCJSSVBFTUQxNjAiLCJSIiwiRSIsIk0iLCJGIiwiSG1hY1JJUEVNRDE2MCIsIl9oYXNoZXIiLCJfb0tleSIsIl9pS2V5IiwiUEJLREYyIiwia2V5U2l6ZSIsImhhc2hlciIsIml0ZXJhdGlvbnMiLCJjb21wdXRlIiwiRXZwS0RGIiwiU0hBMjI0IiwiSG1hY1NIQTIyNCIsIng2NCIsIldvcmQiLCJoaWdoIiwibG93IiwidG9YMzIiLCJTSEEzIiwib3V0cHV0TGVuZ3RoIiwiX3N0YXRlIiwiSG1hY1NIQTMiLCJTSEE1MTIiLCJQIiwiVyIsIk8iLCJVIiwiSSIsIksiLCJYIiwiTCIsImoiLCJOIiwiVCIsIloiLCJxIiwiRyIsIkoiLCIkIiwiUSIsIlYiLCJZIiwidHQiLCJydCIsImV0IiwiaXQiLCJudCIsIm90Iiwic3QiLCJhdCIsImN0IiwiaHQiLCJsdCIsImZ0IiwidXQiLCJkdCIsInZ0IiwicHQiLCJfdCIsInl0IiwiZ3QiLCJCdCIsInd0Iiwia3QiLCJTdCIsIm10IiwieHQiLCJidCIsIkhtYWNTSEE1MTIiLCJTSEEzODQiLCJIbWFjU0hBMzg0IiwiQ2lwaGVyIiwiY3JlYXRlRW5jcnlwdG9yIiwiX0VOQ19YRk9STV9NT0RFIiwiY3JlYXRlRGVjcnlwdG9yIiwiX0RFQ19YRk9STV9NT0RFIiwiX3hmb3JtTW9kZSIsIl9rZXkiLCJwcm9jZXNzIiwiaXZTaXplIiwiZW5jcnlwdCIsImRlY3J5cHQiLCJTdHJlYW1DaXBoZXIiLCJtb2RlIiwiQmxvY2tDaXBoZXJNb2RlIiwiRW5jcnlwdG9yIiwiRGVjcnlwdG9yIiwiX2NpcGhlciIsIl9pdiIsIkNCQyIsIl9wcmV2QmxvY2siLCJwcm9jZXNzQmxvY2siLCJlbmNyeXB0QmxvY2siLCJkZWNyeXB0QmxvY2siLCJwYWQiLCJQa2NzNyIsInVucGFkIiwiQmxvY2tDaXBoZXIiLCJwYWRkaW5nIiwiaXYiLCJfbW9kZSIsIl9fY3JlYXRvciIsIkNpcGhlclBhcmFtcyIsImZvcm1hdHRlciIsImZvcm1hdCIsIk9wZW5TU0wiLCJjaXBoZXJ0ZXh0Iiwic2FsdCIsIlNlcmlhbGl6YWJsZUNpcGhlciIsImtleSIsImFsZ29yaXRobSIsIl9wYXJzZSIsImtkZiIsImV4ZWN1dGUiLCJQYXNzd29yZEJhc2VkQ2lwaGVyIiwiQ0ZCIiwiRUNCIiwiQW5zaVg5MjMiLCJJc28xMDEyNiIsIklzbzk3OTcxIiwiWmVyb1BhZGRpbmciLCJPRkIiLCJfa2V5c3RyZWFtIiwiTm9QYWRkaW5nIiwiQUVTIiwiX25Sb3VuZHMiLCJfa2V5UHJpb3JSZXNldCIsIl9rZXlTY2hlZHVsZSIsIl9pbnZLZXlTY2hlZHVsZSIsIl9kb0NyeXB0QmxvY2siLCJfbEJsb2NrIiwiX3JCbG9jayIsIkRFUyIsIl9zdWJLZXlzIiwiX2ludlN1YktleXMiLCJUcmlwbGVERVMiLCJfZGVzMSIsIl9kZXMyIiwiX2RlczMiLCJfUyIsIl9pIiwiX2oiLCJSQzQiLCJSQzREcm9wIiwiZHJvcCIsIkNUUkdsYWRtYW4iLCJfY291bnRlciIsIl9YIiwiX0MiLCJfYiIsIlJhYmJpdCIsIkNUUiIsIlJhYmJpdExlZ2FjeSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxDQUFDLFVBQVNBLENBQVQsRUFBV0MsQ0FBWCxFQUFhO0FBQUMs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RUFBYSxDQUFiLEVBQWUsQ0FBZixFQUFpQixDQUFqQixFQUFtQixDQUFuQixFQUFxQixFQUFyQixFQUF3QixFQUF4QixFQUEyQixFQUEzQixFQUE4QixFQUE5QixFQUFpQyxDQUFqQyxFQUFtQyxDQUFuQyxFQUFxQyxDQUFyQyxFQUF1QyxDQUF2QyxFQUF5QyxDQUF6QyxFQUEyQyxDQUEzQyxFQUE2QyxDQUE3QyxFQUErQyxFQUEvQyxFQUFrRCxFQUFsRCxFQUFxRCxDQUFyRCxFQUF1RCxDQUF2RCxFQUF5RCxFQUF6RCxFQUE0RCxDQUE1RCxFQUE4RCxFQUE5RCxFQUFpRSxFQUFqRSxFQUFvRSxDQUFwRSxFQUFzRSxFQUF0RSxFQUF5RSxDQUF6RSxFQUEyRSxFQUEzRSxFQUE4RSxFQUE5RSxFQUFpRixFQUFqRixFQUFvRixFQUFwRixFQUF1RixDQUF2RixFQUF5RixDQUF6RixFQUEyRixFQUEzRixFQUE4RixDQUE5RixFQUFnRyxFQUFoRyxFQUFtRyxFQUFuRyxFQUFzRyxFQUF0RyxFQUF5RyxDQUF6RyxFQUEyRyxFQUEzRyxFQUE4RyxDQUE5RyxFQUFnSCxDQUFoSCxFQUFrSCxFQUFsSCxFQUFxSCxDQUFySCxFQUF1SCxDQUF2SCxFQUF5SCxFQUF6SCxFQUE0SCxFQUE1SCxFQUErSCxFQUEvSCxFQUFrSSxFQUFsSSxFQUFxSSxFQUFySSxFQUF3SSxFQUF4SSxFQUEySSxDQUEzSSxFQUE2SSxDQUE3SSxFQUErSSxDQUEvSSxFQUFpSixFQUFqSixFQUFvSixDQUFwSixFQUFzSixDQUF0SixFQUF3SixDQUF4SixFQUEwSixDQUExSixFQUE0SixDQUE1SixFQUE4SixFQUE5SixFQUFpSyxDQUFqSyxFQUFtSyxFQUFuSyxFQUFzSyxDQUF0SyxFQUF3SyxFQUF4SyxFQUEySyxDQUEzSyxFQUE2SyxDQUE3SyxFQUErSyxFQUEvSyxFQUFrTCxFQUFsTCxFQUFxTCxDQUFyTCxFQUF1TCxFQUF2TCxFQUEwTCxFQUExTCxFQUE2TCxFQUE3TCxFQUFnTSxFQUFoTSxFQUFtTSxDQUFuTSxFQUFxTSxDQUFyTSxFQUF1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ckIsQ0FBQyxHQUFDLENBQWI7QUFBZTtBQUExSyxHQURueVgsRUFDKzhYUCxDQUR0OVg7QUFDdzlYLENBRGpoZixDQUFELEVBRUEiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIiFmdW5jdGlvbih0LHIpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWV4cG9ydHM9cigpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10scik6dC5DcnlwdG9KUz1yKCl9KHRoaXMsZnVuY3Rpb24oKXt2YXIgdD10fHxmdW5jdGlvbih0LHIpe3ZhciBlPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gZnVuY3Rpb24ocil7dmFyIGU7cmV0dXJuIHQucHJvdG90eXBlPXIsZT1uZXcgdCx0LnByb3RvdHlwZT1udWxsLGV9fSgpLGk9e30sbj1pLmxpYj17fSxvPW4uQmFzZT1mdW5jdGlvbigpe3JldHVybntleHRlbmQ6ZnVuY3Rpb24odCl7dmFyIHI9ZSh0aGlzKTtyZXR1cm4gdCYmci5taXhJbih0KSxyLmhhc093blByb3BlcnR5KFwiaW5pdFwiKSYmdGhpcy5pbml0IT09ci5pbml0fHwoci5pbml0PWZ1bmN0aW9uKCl7ci4kc3VwZXIuaW5pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxyLmluaXQucHJvdG90eXBlPXIsci4kc3VwZXI9dGhpcyxyfSxjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmV4dGVuZCgpO3JldHVybiB0LmluaXQuYXBwbHkodCxhcmd1bWVudHMpLHR9LGluaXQ6ZnVuY3Rpb24oKXt9LG1peEluOmZ1bmN0aW9uKHQpe2Zvcih2YXIgciBpbiB0KXQuaGFzT3duUHJvcGVydHkocikmJih0aGlzW3JdPXRbcl0pO3QuaGFzT3duUHJvcGVydHkoXCJ0b1N0cmluZ1wiKSYmKHRoaXMudG9TdHJpbmc9dC50b1N0cmluZyl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5pdC5wcm90b3R5cGUuZXh0ZW5kKHRoaXMpfX19KCkscz1uLldvcmRBcnJheT1vLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LGUpe3Q9dGhpcy53b3Jkcz10fHxbXSxlIT1yP3RoaXMuc2lnQnl0ZXM9ZTp0aGlzLnNpZ0J5dGVzPTQqdC5sZW5ndGh9LHRvU3RyaW5nOmZ1bmN0aW9uKHQpe3JldHVybih0fHxjKS5zdHJpbmdpZnkodGhpcyl9LGNvbmNhdDpmdW5jdGlvbih0KXt2YXIgcj10aGlzLndvcmRzLGU9dC53b3JkcyxpPXRoaXMuc2lnQnl0ZXMsbj10LnNpZ0J5dGVzO2lmKHRoaXMuY2xhbXAoKSxpJTQpZm9yKHZhciBvPTA7bzxuO28rKyl7dmFyIHM9ZVtvPj4+Ml0+Pj4yNC1vJTQqOCYyNTU7cltpK28+Pj4yXXw9czw8MjQtKGkrbyklNCo4fWVsc2UgZm9yKHZhciBvPTA7bzxuO28rPTQpcltpK28+Pj4yXT1lW28+Pj4yXTtyZXR1cm4gdGhpcy5zaWdCeXRlcys9bix0aGlzfSxjbGFtcDpmdW5jdGlvbigpe3ZhciByPXRoaXMud29yZHMsZT10aGlzLnNpZ0J5dGVzO3JbZT4+PjJdJj00Mjk0OTY3Mjk1PDwzMi1lJTQqOCxyLmxlbmd0aD10LmNlaWwoZS80KX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1vLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQud29yZHM9dGhpcy53b3Jkcy5zbGljZSgwKSx0fSxyYW5kb206ZnVuY3Rpb24ocil7Zm9yKHZhciBlLGk9W10sbj1mdW5jdGlvbihyKXt2YXIgcj1yLGU9OTg3NjU0MzIxLGk9NDI5NDk2NzI5NTtyZXR1cm4gZnVuY3Rpb24oKXtlPTM2OTY5Kig2NTUzNSZlKSsoZT4+MTYpJmkscj0xOGUzKig2NTUzNSZyKSsocj4+MTYpJmk7dmFyIG49KGU8PDE2KStyJmk7cmV0dXJuIG4vPTQyOTQ5NjcyOTYsbis9LjUsbioodC5yYW5kb20oKT4uNT8xOi0xKX19LG89MDtvPHI7bys9NCl7dmFyIGE9big0Mjk0OTY3Mjk2KihlfHx0LnJhbmRvbSgpKSk7ZT05ODc2NTQwNzEqYSgpLGkucHVzaCg0Mjk0OTY3Mjk2KmEoKXwwKX1yZXR1cm4gbmV3IHMuaW5pdChpLHIpfX0pLGE9aS5lbmM9e30sYz1hLkhleD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10LndvcmRzLGU9dC5zaWdCeXRlcyxpPVtdLG49MDtuPGU7bisrKXt2YXIgbz1yW24+Pj4yXT4+PjI0LW4lNCo4JjI1NTtpLnB1c2goKG8+Pj40KS50b1N0cmluZygxNikpLGkucHVzaCgoMTUmbykudG9TdHJpbmcoMTYpKX1yZXR1cm4gaS5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGgsZT1bXSxpPTA7aTxyO2krPTIpZVtpPj4+M118PXBhcnNlSW50KHQuc3Vic3RyKGksMiksMTYpPDwyNC1pJTgqNDtyZXR1cm4gbmV3IHMuaW5pdChlLHIvMil9fSxoPWEuTGF0aW4xPXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQud29yZHMsZT10LnNpZ0J5dGVzLGk9W10sbj0wO248ZTtuKyspe3ZhciBvPXJbbj4+PjJdPj4+MjQtbiU0KjgmMjU1O2kucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKG8pKX1yZXR1cm4gaS5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGgsZT1bXSxpPTA7aTxyO2krKyllW2k+Pj4yXXw9KDI1NSZ0LmNoYXJDb2RlQXQoaSkpPDwyNC1pJTQqODtyZXR1cm4gbmV3IHMuaW5pdChlLHIpfX0sbD1hLlV0Zjg9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoaC5zdHJpbmdpZnkodCkpKX1jYXRjaCh0KXt0aHJvdyBuZXcgRXJyb3IoXCJNYWxmb3JtZWQgVVRGLTggZGF0YVwiKX19LHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBoLnBhcnNlKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudCh0KSkpfX0sZj1uLkJ1ZmZlcmVkQmxvY2tBbGdvcml0aG09by5leHRlbmQoe3Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5fZGF0YT1uZXcgcy5pbml0LHRoaXMuX25EYXRhQnl0ZXM9MH0sX2FwcGVuZDpmdW5jdGlvbih0KXtcInN0cmluZ1wiPT10eXBlb2YgdCYmKHQ9bC5wYXJzZSh0KSksdGhpcy5fZGF0YS5jb25jYXQodCksdGhpcy5fbkRhdGFCeXRlcys9dC5zaWdCeXRlc30sX3Byb2Nlc3M6ZnVuY3Rpb24ocil7dmFyIGU9dGhpcy5fZGF0YSxpPWUud29yZHMsbj1lLnNpZ0J5dGVzLG89dGhpcy5ibG9ja1NpemUsYT00Km8sYz1uL2E7Yz1yP3QuY2VpbChjKTp0Lm1heCgoMHxjKS10aGlzLl9taW5CdWZmZXJTaXplLDApO3ZhciBoPWMqbyxsPXQubWluKDQqaCxuKTtpZihoKXtmb3IodmFyIGY9MDtmPGg7Zis9byl0aGlzLl9kb1Byb2Nlc3NCbG9jayhpLGYpO3ZhciB1PWkuc3BsaWNlKDAsaCk7ZS5zaWdCeXRlcy09bH1yZXR1cm4gbmV3IHMuaW5pdCh1LGwpfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PW8uY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5fZGF0YT10aGlzLl9kYXRhLmNsb25lKCksdH0sX21pbkJ1ZmZlclNpemU6MH0pLHU9KG4uSGFzaGVyPWYuZXh0ZW5kKHtjZmc6by5leHRlbmQoKSxpbml0OmZ1bmN0aW9uKHQpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZCh0KSx0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7Zi5yZXNldC5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX0sdXBkYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hcHBlbmQodCksdGhpcy5fcHJvY2VzcygpLHRoaXN9LGZpbmFsaXplOmZ1bmN0aW9uKHQpe3QmJnRoaXMuX2FwcGVuZCh0KTt2YXIgcj10aGlzLl9kb0ZpbmFsaXplKCk7cmV0dXJuIHJ9LGJsb2NrU2l6ZToxNixfY3JlYXRlSGVscGVyOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihyLGUpe3JldHVybiBuZXcgdC5pbml0KGUpLmZpbmFsaXplKHIpfX0sX2NyZWF0ZUhtYWNIZWxwZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHIsZSl7cmV0dXJuIG5ldyB1LkhNQUMuaW5pdCh0LGUpLmZpbmFsaXplKHIpfX19KSxpLmFsZ289e30pO3JldHVybiBpfShNYXRoKTtyZXR1cm4gZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQscixlKXtmb3IodmFyIGk9W10sbz0wLHM9MDtzPHI7cysrKWlmKHMlNCl7dmFyIGE9ZVt0LmNoYXJDb2RlQXQocy0xKV08PHMlNCoyLGM9ZVt0LmNoYXJDb2RlQXQocyldPj4+Ni1zJTQqMjtpW28+Pj4yXXw9KGF8Yyk8PDI0LW8lNCo4LG8rK31yZXR1cm4gbi5jcmVhdGUoaSxvKX12YXIgZT10LGk9ZS5saWIsbj1pLldvcmRBcnJheSxvPWUuZW5jO28uQmFzZTY0PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7dmFyIHI9dC53b3JkcyxlPXQuc2lnQnl0ZXMsaT10aGlzLl9tYXA7dC5jbGFtcCgpO2Zvcih2YXIgbj1bXSxvPTA7bzxlO28rPTMpZm9yKHZhciBzPXJbbz4+PjJdPj4+MjQtbyU0KjgmMjU1LGE9cltvKzE+Pj4yXT4+PjI0LShvKzEpJTQqOCYyNTUsYz1yW28rMj4+PjJdPj4+MjQtKG8rMiklNCo4JjI1NSxoPXM8PDE2fGE8PDh8YyxsPTA7bDw0JiZvKy43NSpsPGU7bCsrKW4ucHVzaChpLmNoYXJBdChoPj4+NiooMy1sKSY2MykpO3ZhciBmPWkuY2hhckF0KDY0KTtpZihmKWZvcig7bi5sZW5ndGglNDspbi5wdXNoKGYpO3JldHVybiBuLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoLGk9dGhpcy5fbWFwLG49dGhpcy5fcmV2ZXJzZU1hcDtpZighbil7bj10aGlzLl9yZXZlcnNlTWFwPVtdO2Zvcih2YXIgbz0wO288aS5sZW5ndGg7bysrKW5baS5jaGFyQ29kZUF0KG8pXT1vfXZhciBzPWkuY2hhckF0KDY0KTtpZihzKXt2YXIgYT10LmluZGV4T2Yocyk7YSE9PS0xJiYoZT1hKX1yZXR1cm4gcih0LGUsbil9LF9tYXA6XCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVwifX0oKSxmdW5jdGlvbihyKXtmdW5jdGlvbiBlKHQscixlLGksbixvLHMpe3ZhciBhPXQrKHImZXx+ciZpKStuK3M7cmV0dXJuKGE8PG98YT4+PjMyLW8pK3J9ZnVuY3Rpb24gaSh0LHIsZSxpLG4sbyxzKXt2YXIgYT10KyhyJml8ZSZ+aSkrbitzO3JldHVybihhPDxvfGE+Pj4zMi1vKStyfWZ1bmN0aW9uIG4odCxyLGUsaSxuLG8scyl7dmFyIGE9dCsocl5lXmkpK24rcztyZXR1cm4oYTw8b3xhPj4+MzItbykrcn1mdW5jdGlvbiBvKHQscixlLGksbixvLHMpe3ZhciBhPXQrKGVeKHJ8fmkpKStuK3M7cmV0dXJuKGE8PG98YT4+PjMyLW8pK3J9dmFyIHM9dCxhPXMubGliLGM9YS5Xb3JkQXJyYXksaD1hLkhhc2hlcixsPXMuYWxnbyxmPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8NjQ7dCsrKWZbdF09NDI5NDk2NzI5NipyLmFicyhyLnNpbih0KzEpKXwwfSgpO3ZhciB1PWwuTUQ1PWguZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IGMuaW5pdChbMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4XSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgcz0wO3M8MTY7cysrKXt2YXIgYT1yK3MsYz10W2FdO3RbYV09MTY3MTE5MzUmKGM8PDh8Yz4+PjI0KXw0Mjc4MjU1MzYwJihjPDwyNHxjPj4+OCl9dmFyIGg9dGhpcy5faGFzaC53b3JkcyxsPXRbciswXSx1PXRbcisxXSxkPXRbcisyXSx2PXRbciszXSxwPXRbcis0XSxfPXRbcis1XSx5PXRbcis2XSxnPXRbcis3XSxCPXRbcis4XSx3PXRbcis5XSxrPXRbcisxMF0sUz10W3IrMTFdLG09dFtyKzEyXSx4PXRbcisxM10sYj10W3IrMTRdLEg9dFtyKzE1XSx6PWhbMF0sQT1oWzFdLEM9aFsyXSxEPWhbM107ej1lKHosQSxDLEQsbCw3LGZbMF0pLEQ9ZShELHosQSxDLHUsMTIsZlsxXSksQz1lKEMsRCx6LEEsZCwxNyxmWzJdKSxBPWUoQSxDLEQseix2LDIyLGZbM10pLHo9ZSh6LEEsQyxELHAsNyxmWzRdKSxEPWUoRCx6LEEsQyxfLDEyLGZbNV0pLEM9ZShDLEQseixBLHksMTcsZls2XSksQT1lKEEsQyxELHosZywyMixmWzddKSx6PWUoeixBLEMsRCxCLDcsZls4XSksRD1lKEQseixBLEMsdywxMixmWzldKSxDPWUoQyxELHosQSxrLDE3LGZbMTBdKSxBPWUoQSxDLEQseixTLDIyLGZbMTFdKSx6PWUoeixBLEMsRCxtLDcsZlsxMl0pLEQ9ZShELHosQSxDLHgsMTIsZlsxM10pLEM9ZShDLEQseixBLGIsMTcsZlsxNF0pLEE9ZShBLEMsRCx6LEgsMjIsZlsxNV0pLHo9aSh6LEEsQyxELHUsNSxmWzE2XSksRD1pKEQseixBLEMseSw5LGZbMTddKSxDPWkoQyxELHosQSxTLDE0LGZbMThdKSxBPWkoQSxDLEQseixsLDIwLGZbMTldKSx6PWkoeixBLEMsRCxfLDUsZlsyMF0pLEQ9aShELHosQSxDLGssOSxmWzIxXSksQz1pKEMsRCx6LEEsSCwxNCxmWzIyXSksQT1pKEEsQyxELHoscCwyMCxmWzIzXSksej1pKHosQSxDLEQsdyw1LGZbMjRdKSxEPWkoRCx6LEEsQyxiLDksZlsyNV0pLEM9aShDLEQseixBLHYsMTQsZlsyNl0pLEE9aShBLEMsRCx6LEIsMjAsZlsyN10pLHo9aSh6LEEsQyxELHgsNSxmWzI4XSksRD1pKEQseixBLEMsZCw5LGZbMjldKSxDPWkoQyxELHosQSxnLDE0LGZbMzBdKSxBPWkoQSxDLEQseixtLDIwLGZbMzFdKSx6PW4oeixBLEMsRCxfLDQsZlszMl0pLEQ9bihELHosQSxDLEIsMTEsZlszM10pLEM9bihDLEQseixBLFMsMTYsZlszNF0pLEE9bihBLEMsRCx6LGIsMjMsZlszNV0pLHo9bih6LEEsQyxELHUsNCxmWzM2XSksRD1uKEQseixBLEMscCwxMSxmWzM3XSksQz1uKEMsRCx6LEEsZywxNixmWzM4XSksQT1uKEEsQyxELHosaywyMyxmWzM5XSksej1uKHosQSxDLEQseCw0LGZbNDBdKSxEPW4oRCx6LEEsQyxsLDExLGZbNDFdKSxDPW4oQyxELHosQSx2LDE2LGZbNDJdKSxBPW4oQSxDLEQseix5LDIzLGZbNDNdKSx6PW4oeixBLEMsRCx3LDQsZls0NF0pLEQ9bihELHosQSxDLG0sMTEsZls0NV0pLEM9bihDLEQseixBLEgsMTYsZls0Nl0pLEE9bihBLEMsRCx6LGQsMjMsZls0N10pLHo9byh6LEEsQyxELGwsNixmWzQ4XSksRD1vKEQseixBLEMsZywxMCxmWzQ5XSksQz1vKEMsRCx6LEEsYiwxNSxmWzUwXSksQT1vKEEsQyxELHosXywyMSxmWzUxXSksej1vKHosQSxDLEQsbSw2LGZbNTJdKSxEPW8oRCx6LEEsQyx2LDEwLGZbNTNdKSxDPW8oQyxELHosQSxrLDE1LGZbNTRdKSxBPW8oQSxDLEQseix1LDIxLGZbNTVdKSx6PW8oeixBLEMsRCxCLDYsZls1Nl0pLEQ9byhELHosQSxDLEgsMTAsZls1N10pLEM9byhDLEQseixBLHksMTUsZls1OF0pLEE9byhBLEMsRCx6LHgsMjEsZls1OV0pLHo9byh6LEEsQyxELHAsNixmWzYwXSksRD1vKEQseixBLEMsUywxMCxmWzYxXSksQz1vKEMsRCx6LEEsZCwxNSxmWzYyXSksQT1vKEEsQyxELHosdywyMSxmWzYzXSksaFswXT1oWzBdK3p8MCxoWzFdPWhbMV0rQXwwLGhbMl09aFsyXStDfDAsaFszXT1oWzNdK0R8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLGU9dC53b3JkcyxpPTgqdGhpcy5fbkRhdGFCeXRlcyxuPTgqdC5zaWdCeXRlcztlW24+Pj41XXw9MTI4PDwyNC1uJTMyO3ZhciBvPXIuZmxvb3IoaS80Mjk0OTY3Mjk2KSxzPWk7ZVsobis2ND4+Pjk8PDQpKzE1XT0xNjcxMTkzNSYobzw8OHxvPj4+MjQpfDQyNzgyNTUzNjAmKG88PDI0fG8+Pj44KSxlWyhuKzY0Pj4+OTw8NCkrMTRdPTE2NzExOTM1JihzPDw4fHM+Pj4yNCl8NDI3ODI1NTM2MCYoczw8MjR8cz4+PjgpLHQuc2lnQnl0ZXM9NCooZS5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgYT10aGlzLl9oYXNoLGM9YS53b3JkcyxoPTA7aDw0O2grKyl7dmFyIGw9Y1toXTtjW2hdPTE2NzExOTM1JihsPDw4fGw+Pj4yNCl8NDI3ODI1NTM2MCYobDw8MjR8bD4+PjgpfXJldHVybiBhfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWguY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KTtzLk1ENT1oLl9jcmVhdGVIZWxwZXIodSkscy5IbWFjTUQ1PWguX2NyZWF0ZUhtYWNIZWxwZXIodSl9KE1hdGgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5Xb3JkQXJyYXksbj1lLkhhc2hlcixvPXIuYWxnbyxzPVtdLGE9by5TSEExPW4uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IGkuaW5pdChbMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuX2hhc2gud29yZHMsaT1lWzBdLG49ZVsxXSxvPWVbMl0sYT1lWzNdLGM9ZVs0XSxoPTA7aDw4MDtoKyspe2lmKGg8MTYpc1toXT0wfHRbcitoXTtlbHNle3ZhciBsPXNbaC0zXV5zW2gtOF1ec1toLTE0XV5zW2gtMTZdO3NbaF09bDw8MXxsPj4+MzF9dmFyIGY9KGk8PDV8aT4+PjI3KStjK3NbaF07Zis9aDwyMD8obiZvfH5uJmEpKzE1MTg1MDAyNDk6aDw0MD8obl5vXmEpKzE4NTk3NzUzOTM6aDw2MD8obiZvfG4mYXxvJmEpLTE4OTQwMDc1ODg6KG5eb15hKS04OTk0OTc1MTQsYz1hLGE9byxvPW48PDMwfG4+Pj4yLG49aSxpPWZ9ZVswXT1lWzBdK2l8MCxlWzFdPWVbMV0rbnwwLGVbMl09ZVsyXStvfDAsZVszXT1lWzNdK2F8MCxlWzRdPWVbNF0rY3wwfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEscj10LndvcmRzLGU9OCp0aGlzLl9uRGF0YUJ5dGVzLGk9OCp0LnNpZ0J5dGVzO3JldHVybiByW2k+Pj41XXw9MTI4PDwyNC1pJTMyLHJbKGkrNjQ+Pj45PDw0KSsxNF09TWF0aC5mbG9vcihlLzQyOTQ5NjcyOTYpLHJbKGkrNjQ+Pj45PDw0KSsxNV09ZSx0LnNpZ0J5dGVzPTQqci5sZW5ndGgsdGhpcy5fcHJvY2VzcygpLHRoaXMuX2hhc2h9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9bi5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fX0pO3IuU0hBMT1uLl9jcmVhdGVIZWxwZXIoYSksci5IbWFjU0hBMT1uLl9jcmVhdGVIbWFjSGVscGVyKGEpfSgpLGZ1bmN0aW9uKHIpe3ZhciBlPXQsaT1lLmxpYixuPWkuV29yZEFycmF5LG89aS5IYXNoZXIscz1lLmFsZ28sYT1bXSxjPVtdOyFmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7Zm9yKHZhciBlPXIuc3FydCh0KSxpPTI7aTw9ZTtpKyspaWYoISh0JWkpKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGUodCl7cmV0dXJuIDQyOTQ5NjcyOTYqKHQtKDB8dCkpfDB9Zm9yKHZhciBpPTIsbj0wO248NjQ7KXQoaSkmJihuPDgmJihhW25dPWUoci5wb3coaSwuNSkpKSxjW25dPWUoci5wb3coaSwxLzMpKSxuKyspLGkrK30oKTt2YXIgaD1bXSxsPXMuU0hBMjU2PW8uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IG4uaW5pdChhLnNsaWNlKDApKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuX2hhc2gud29yZHMsaT1lWzBdLG49ZVsxXSxvPWVbMl0scz1lWzNdLGE9ZVs0XSxsPWVbNV0sZj1lWzZdLHU9ZVs3XSxkPTA7ZDw2NDtkKyspe2lmKGQ8MTYpaFtkXT0wfHRbcitkXTtlbHNle3ZhciB2PWhbZC0xNV0scD0odjw8MjV8dj4+PjcpXih2PDwxNHx2Pj4+MTgpXnY+Pj4zLF89aFtkLTJdLHk9KF88PDE1fF8+Pj4xNyleKF88PDEzfF8+Pj4xOSleXz4+PjEwO2hbZF09cCtoW2QtN10reStoW2QtMTZdfXZhciBnPWEmbF5+YSZmLEI9aSZuXmkmb15uJm8sdz0oaTw8MzB8aT4+PjIpXihpPDwxOXxpPj4+MTMpXihpPDwxMHxpPj4+MjIpLGs9KGE8PDI2fGE+Pj42KV4oYTw8MjF8YT4+PjExKV4oYTw8N3xhPj4+MjUpLFM9dStrK2crY1tkXStoW2RdLG09dytCO3U9ZixmPWwsbD1hLGE9cytTfDAscz1vLG89bixuPWksaT1TK218MH1lWzBdPWVbMF0raXwwLGVbMV09ZVsxXStufDAsZVsyXT1lWzJdK298MCxlWzNdPWVbM10rc3wwLGVbNF09ZVs0XSthfDAsZVs1XT1lWzVdK2x8MCxlWzZdPWVbNl0rZnwwLGVbN109ZVs3XSt1fDB9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxlPXQud29yZHMsaT04KnRoaXMuX25EYXRhQnl0ZXMsbj04KnQuc2lnQnl0ZXM7cmV0dXJuIGVbbj4+PjVdfD0xMjg8PDI0LW4lMzIsZVsobis2ND4+Pjk8PDQpKzE0XT1yLmZsb29yKGkvNDI5NDk2NzI5NiksZVsobis2ND4+Pjk8PDQpKzE1XT1pLHQuc2lnQnl0ZXM9NCplLmxlbmd0aCx0aGlzLl9wcm9jZXNzKCksdGhpcy5faGFzaH0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1vLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9fSk7ZS5TSEEyNTY9by5fY3JlYXRlSGVscGVyKGwpLGUuSG1hY1NIQTI1Nj1vLl9jcmVhdGVIbWFjSGVscGVyKGwpfShNYXRoKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQ8PDgmNDI3ODI1NTM2MHx0Pj4+OCYxNjcxMTkzNX12YXIgZT10LGk9ZS5saWIsbj1pLldvcmRBcnJheSxvPWUuZW5jO28uVXRmMTY9by5VdGYxNkJFPXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQud29yZHMsZT10LnNpZ0J5dGVzLGk9W10sbj0wO248ZTtuKz0yKXt2YXIgbz1yW24+Pj4yXT4+PjE2LW4lNCo4JjY1NTM1O2kucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKG8pKX1yZXR1cm4gaS5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGgsZT1bXSxpPTA7aTxyO2krKyllW2k+Pj4xXXw9dC5jaGFyQ29kZUF0KGkpPDwxNi1pJTIqMTY7cmV0dXJuIG4uY3JlYXRlKGUsMipyKX19O28uVXRmMTZMRT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLGk9dC5zaWdCeXRlcyxuPVtdLG89MDtvPGk7bys9Mil7dmFyIHM9cihlW28+Pj4yXT4+PjE2LW8lNCo4JjY1NTM1KTtuLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShzKSl9cmV0dXJuIG4uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLGk9W10sbz0wO288ZTtvKyspaVtvPj4+MV18PXIodC5jaGFyQ29kZUF0KG8pPDwxNi1vJTIqMTYpO3JldHVybiBuLmNyZWF0ZShpLDIqZSl9fX0oKSxmdW5jdGlvbigpe2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIEFycmF5QnVmZmVyKXt2YXIgcj10LGU9ci5saWIsaT1lLldvcmRBcnJheSxuPWkuaW5pdCxvPWkuaW5pdD1mdW5jdGlvbih0KXtpZih0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXImJih0PW5ldyBVaW50OEFycmF5KHQpKSwodCBpbnN0YW5jZW9mIEludDhBcnJheXx8XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5JiZ0IGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXl8fHQgaW5zdGFuY2VvZiBJbnQxNkFycmF5fHx0IGluc3RhbmNlb2YgVWludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBJbnQzMkFycmF5fHx0IGluc3RhbmNlb2YgVWludDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBGbG9hdDY0QXJyYXkpJiYodD1uZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKSksdCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpe2Zvcih2YXIgcj10LmJ5dGVMZW5ndGgsZT1bXSxpPTA7aTxyO2krKyllW2k+Pj4yXXw9dFtpXTw8MjQtaSU0Kjg7bi5jYWxsKHRoaXMsZSxyKX1lbHNlIG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfTtvLnByb3RvdHlwZT1pfX0oKSxmdW5jdGlvbihyKXtmdW5jdGlvbiBlKHQscixlKXtyZXR1cm4gdF5yXmV9ZnVuY3Rpb24gaSh0LHIsZSl7cmV0dXJuIHQmcnx+dCZlfWZ1bmN0aW9uIG4odCxyLGUpe3JldHVybih0fH5yKV5lfWZ1bmN0aW9uIG8odCxyLGUpe3JldHVybiB0JmV8ciZ+ZX1mdW5jdGlvbiBzKHQscixlKXtyZXR1cm4gdF4ocnx+ZSl9ZnVuY3Rpb24gYSh0LHIpe3JldHVybiB0PDxyfHQ+Pj4zMi1yfXZhciBjPXQsaD1jLmxpYixsPWguV29yZEFycmF5LGY9aC5IYXNoZXIsdT1jLmFsZ28sZD1sLmNyZWF0ZShbMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSw3LDQsMTMsMSwxMCw2LDE1LDMsMTIsMCw5LDUsMiwxNCwxMSw4LDMsMTAsMTQsNCw5LDE1LDgsMSwyLDcsMCw2LDEzLDExLDUsMTIsMSw5LDExLDEwLDAsOCwxMiw0LDEzLDMsNywxNSwxNCw1LDYsMiw0LDAsNSw5LDcsMTIsMiwxMCwxNCwxLDMsOCwxMSw2LDE1LDEzXSksdj1sLmNyZWF0ZShbNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSkscD1sLmNyZWF0ZShbMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcsMTQsOSwxMywxNSwxNCw4LDEzLDYsNSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0pLF89bC5jcmVhdGUoWzgsOSw5LDExLDEzLDE1LDE1LDUsNyw3LDgsMTEsMTQsMTQsMTIsNiw5LDEzLDE1LDcsMTIsOCw5LDExLDcsNywxMiw3LDYsMTUsMTMsMTEsOSw3LDE1LDExLDgsNiw2LDE0LDEyLDEzLDUsMTQsMTMsMTMsNyw1LDE1LDUsOCwxMSwxNCwxNCw2LDE0LDYsOSwxMiw5LDEyLDUsMTUsOCw4LDUsMTIsOSwxMiw1LDE0LDYsOCwxMyw2LDUsMTUsMTMsMTEsMTFdKSx5PWwuY3JlYXRlKFswLDE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDI4NDA4NTM4MzhdKSxnPWwuY3JlYXRlKFsxMzUyODI5OTI2LDE1NDg2MDM2ODQsMTgzNjA3MjY5MSwyMDUzOTk0MjE3LDBdKSxCPXUuUklQRU1EMTYwPWYuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bC5jcmVhdGUoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgYz0wO2M8MTY7YysrKXt2YXIgaD1yK2MsbD10W2hdO3RbaF09MTY3MTE5MzUmKGw8PDh8bD4+PjI0KXw0Mjc4MjU1MzYwJihsPDwyNHxsPj4+OCl9dmFyIGYsdSxCLHcsayxTLG0seCxiLEgsej10aGlzLl9oYXNoLndvcmRzLEE9eS53b3JkcyxDPWcud29yZHMsRD1kLndvcmRzLFI9di53b3JkcyxFPXAud29yZHMsTT1fLndvcmRzO1M9Zj16WzBdLG09dT16WzFdLHg9Qj16WzJdLGI9dz16WzNdLEg9az16WzRdO2Zvcih2YXIgRixjPTA7Yzw4MDtjKz0xKUY9Zit0W3IrRFtjXV18MCxGKz1jPDE2P2UodSxCLHcpK0FbMF06YzwzMj9pKHUsQix3KStBWzFdOmM8NDg/bih1LEIsdykrQVsyXTpjPDY0P28odSxCLHcpK0FbM106cyh1LEIsdykrQVs0XSxGfD0wLEY9YShGLEVbY10pLEY9RitrfDAsZj1rLGs9dyx3PWEoQiwxMCksQj11LHU9RixGPVMrdFtyK1JbY11dfDAsRis9YzwxNj9zKG0seCxiKStDWzBdOmM8MzI/byhtLHgsYikrQ1sxXTpjPDQ4P24obSx4LGIpK0NbMl06Yzw2ND9pKG0seCxiKStDWzNdOmUobSx4LGIpK0NbNF0sRnw9MCxGPWEoRixNW2NdKSxGPUYrSHwwLFM9SCxIPWIsYj1hKHgsMTApLHg9bSxtPUY7Rj16WzFdK0IrYnwwLHpbMV09elsyXSt3K0h8MCx6WzJdPXpbM10raytTfDAselszXT16WzRdK2YrbXwwLHpbNF09elswXSt1K3h8MCx6WzBdPUZ9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxyPXQud29yZHMsZT04KnRoaXMuX25EYXRhQnl0ZXMsaT04KnQuc2lnQnl0ZXM7cltpPj4+NV18PTEyODw8MjQtaSUzMixyWyhpKzY0Pj4+OTw8NCkrMTRdPTE2NzExOTM1JihlPDw4fGU+Pj4yNCl8NDI3ODI1NTM2MCYoZTw8MjR8ZT4+PjgpLHQuc2lnQnl0ZXM9NCooci5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgbj10aGlzLl9oYXNoLG89bi53b3JkcyxzPTA7czw1O3MrKyl7dmFyIGE9b1tzXTtvW3NdPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpfXJldHVybiBufSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWYuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KTtjLlJJUEVNRDE2MD1mLl9jcmVhdGVIZWxwZXIoQiksYy5IbWFjUklQRU1EMTYwPWYuX2NyZWF0ZUhtYWNIZWxwZXIoQil9KE1hdGgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5CYXNlLG49ci5lbmMsbz1uLlV0Zjgscz1yLmFsZ287cy5ITUFDPWkuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQscil7dD10aGlzLl9oYXNoZXI9bmV3IHQuaW5pdCxcInN0cmluZ1wiPT10eXBlb2YgciYmKHI9by5wYXJzZShyKSk7dmFyIGU9dC5ibG9ja1NpemUsaT00KmU7ci5zaWdCeXRlcz5pJiYocj10LmZpbmFsaXplKHIpKSxyLmNsYW1wKCk7Zm9yKHZhciBuPXRoaXMuX29LZXk9ci5jbG9uZSgpLHM9dGhpcy5faUtleT1yLmNsb25lKCksYT1uLndvcmRzLGM9cy53b3JkcyxoPTA7aDxlO2grKylhW2hdXj0xNTQ5NTU2ODI4LGNbaF1ePTkwOTUyMjQ4NjtuLnNpZ0J5dGVzPXMuc2lnQnl0ZXM9aSx0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5faGFzaGVyO3QucmVzZXQoKSx0LnVwZGF0ZSh0aGlzLl9pS2V5KX0sdXBkYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9oYXNoZXIudXBkYXRlKHQpLHRoaXN9LGZpbmFsaXplOmZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX2hhc2hlcixlPXIuZmluYWxpemUodCk7ci5yZXNldCgpO3ZhciBpPXIuZmluYWxpemUodGhpcy5fb0tleS5jbG9uZSgpLmNvbmNhdChlKSk7cmV0dXJuIGl9fSl9KCksZnVuY3Rpb24oKXt2YXIgcj10LGU9ci5saWIsaT1lLkJhc2Usbj1lLldvcmRBcnJheSxvPXIuYWxnbyxzPW8uU0hBMSxhPW8uSE1BQyxjPW8uUEJLREYyPWkuZXh0ZW5kKHtjZmc6aS5leHRlbmQoe2tleVNpemU6NCxoYXNoZXI6cyxpdGVyYXRpb25zOjF9KSxpbml0OmZ1bmN0aW9uKHQpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZCh0KX0sY29tcHV0ZTpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10aGlzLmNmZyxpPWEuY3JlYXRlKGUuaGFzaGVyLHQpLG89bi5jcmVhdGUoKSxzPW4uY3JlYXRlKFsxXSksYz1vLndvcmRzLGg9cy53b3JkcyxsPWUua2V5U2l6ZSxmPWUuaXRlcmF0aW9ucztjLmxlbmd0aDxsOyl7dmFyIHU9aS51cGRhdGUocikuZmluYWxpemUocyk7aS5yZXNldCgpO2Zvcih2YXIgZD11LndvcmRzLHY9ZC5sZW5ndGgscD11LF89MTtfPGY7XysrKXtwPWkuZmluYWxpemUocCksaS5yZXNldCgpO2Zvcih2YXIgeT1wLndvcmRzLGc9MDtnPHY7ZysrKWRbZ11ePXlbZ119by5jb25jYXQodSksaFswXSsrfXJldHVybiBvLnNpZ0J5dGVzPTQqbCxvfX0pO3IuUEJLREYyPWZ1bmN0aW9uKHQscixlKXtyZXR1cm4gYy5jcmVhdGUoZSkuY29tcHV0ZSh0LHIpfX0oKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLmxpYixpPWUuQmFzZSxuPWUuV29yZEFycmF5LG89ci5hbGdvLHM9by5NRDUsYT1vLkV2cEtERj1pLmV4dGVuZCh7Y2ZnOmkuZXh0ZW5kKHtrZXlTaXplOjQsaGFzaGVyOnMsaXRlcmF0aW9uczoxfSksaW5pdDpmdW5jdGlvbih0KXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQodCl9LGNvbXB1dGU6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dGhpcy5jZmcsaT1lLmhhc2hlci5jcmVhdGUoKSxvPW4uY3JlYXRlKCkscz1vLndvcmRzLGE9ZS5rZXlTaXplLGM9ZS5pdGVyYXRpb25zO3MubGVuZ3RoPGE7KXtoJiZpLnVwZGF0ZShoKTt2YXIgaD1pLnVwZGF0ZSh0KS5maW5hbGl6ZShyKTtpLnJlc2V0KCk7Zm9yKHZhciBsPTE7bDxjO2wrKyloPWkuZmluYWxpemUoaCksaS5yZXNldCgpO28uY29uY2F0KGgpfXJldHVybiBvLnNpZ0J5dGVzPTQqYSxvfX0pO3IuRXZwS0RGPWZ1bmN0aW9uKHQscixlKXtyZXR1cm4gYS5jcmVhdGUoZSkuY29tcHV0ZSh0LHIpfX0oKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLmxpYixpPWUuV29yZEFycmF5LG49ci5hbGdvLG89bi5TSEEyNTYscz1uLlNIQTIyND1vLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBpLmluaXQoWzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEyNjk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2ODM5LDMyMDQwNzU0MjhdKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD1vLl9kb0ZpbmFsaXplLmNhbGwodGhpcyk7cmV0dXJuIHQuc2lnQnl0ZXMtPTQsdH19KTtyLlNIQTIyND1vLl9jcmVhdGVIZWxwZXIocyksci5IbWFjU0hBMjI0PW8uX2NyZWF0ZUhtYWNIZWxwZXIocyl9KCksZnVuY3Rpb24ocil7dmFyIGU9dCxpPWUubGliLG49aS5CYXNlLG89aS5Xb3JkQXJyYXkscz1lLng2ND17fTtzLldvcmQ9bi5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCxyKXt0aGlzLmhpZ2g9dCx0aGlzLmxvdz1yfX0pLHMuV29yZEFycmF5PW4uZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQsZSl7dD10aGlzLndvcmRzPXR8fFtdLGUhPXI/dGhpcy5zaWdCeXRlcz1lOnRoaXMuc2lnQnl0ZXM9OCp0Lmxlbmd0aH0sdG9YMzI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy53b3JkcyxyPXQubGVuZ3RoLGU9W10saT0wO2k8cjtpKyspe3ZhciBuPXRbaV07ZS5wdXNoKG4uaGlnaCksZS5wdXNoKG4ubG93KX1yZXR1cm4gby5jcmVhdGUoZSx0aGlzLnNpZ0J5dGVzKX0sY2xvbmU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9bi5jbG9uZS5jYWxsKHRoaXMpLHI9dC53b3Jkcz10aGlzLndvcmRzLnNsaWNlKDApLGU9ci5sZW5ndGgsaT0wO2k8ZTtpKyspcltpXT1yW2ldLmNsb25lKCk7cmV0dXJuIHR9fSl9KCksZnVuY3Rpb24ocil7dmFyIGU9dCxpPWUubGliLG49aS5Xb3JkQXJyYXksbz1pLkhhc2hlcixzPWUueDY0LGE9cy5Xb3JkLGM9ZS5hbGdvLGg9W10sbD1bXSxmPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0xLHI9MCxlPTA7ZTwyNDtlKyspe2hbdCs1KnJdPShlKzEpKihlKzIpLzIlNjQ7dmFyIGk9ciU1LG49KDIqdCszKnIpJTU7dD1pLHI9bn1mb3IodmFyIHQ9MDt0PDU7dCsrKWZvcih2YXIgcj0wO3I8NTtyKyspbFt0KzUqcl09cisoMip0KzMqciklNSo1O2Zvcih2YXIgbz0xLHM9MDtzPDI0O3MrKyl7Zm9yKHZhciBjPTAsdT0wLGQ9MDtkPDc7ZCsrKXtpZigxJm8pe3ZhciB2PSgxPDxkKS0xO3Y8MzI/dV49MTw8djpjXj0xPDx2LTMyfTEyOCZvP289bzw8MV4xMTM6bzw8PTF9ZltzXT1hLmNyZWF0ZShjLHUpfX0oKTt2YXIgdT1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PDI1O3QrKyl1W3RdPWEuY3JlYXRlKCl9KCk7dmFyIGQ9Yy5TSEEzPW8uZXh0ZW5kKHtjZmc6by5jZmcuZXh0ZW5kKHtvdXRwdXRMZW5ndGg6NTEyfSksX2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fc3RhdGU9W10scj0wO3I8MjU7cisrKXRbcl09bmV3IGEuaW5pdDt0aGlzLmJsb2NrU2l6ZT0oMTYwMC0yKnRoaXMuY2ZnLm91dHB1dExlbmd0aCkvMzJ9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10aGlzLl9zdGF0ZSxpPXRoaXMuYmxvY2tTaXplLzIsbj0wO248aTtuKyspe3ZhciBvPXRbcisyKm5dLHM9dFtyKzIqbisxXTtvPTE2NzExOTM1JihvPDw4fG8+Pj4yNCl8NDI3ODI1NTM2MCYobzw8MjR8bz4+PjgpLHM9MTY3MTE5MzUmKHM8PDh8cz4+PjI0KXw0Mjc4MjU1MzYwJihzPDwyNHxzPj4+OCk7dmFyIGE9ZVtuXTthLmhpZ2hePXMsYS5sb3dePW99Zm9yKHZhciBjPTA7YzwyNDtjKyspe2Zvcih2YXIgZD0wO2Q8NTtkKyspe2Zvcih2YXIgdj0wLHA9MCxfPTA7Xzw1O18rKyl7dmFyIGE9ZVtkKzUqX107dl49YS5oaWdoLHBePWEubG93fXZhciB5PXVbZF07eS5oaWdoPXYseS5sb3c9cH1mb3IodmFyIGQ9MDtkPDU7ZCsrKWZvcih2YXIgZz11WyhkKzQpJTVdLEI9dVsoZCsxKSU1XSx3PUIuaGlnaCxrPUIubG93LHY9Zy5oaWdoXih3PDwxfGs+Pj4zMSkscD1nLmxvd14oazw8MXx3Pj4+MzEpLF89MDtfPDU7XysrKXt2YXIgYT1lW2QrNSpfXTthLmhpZ2hePXYsYS5sb3dePXB9Zm9yKHZhciBTPTE7UzwyNTtTKyspe3ZhciBhPWVbU10sbT1hLmhpZ2gseD1hLmxvdyxiPWhbU107aWYoYjwzMil2YXIgdj1tPDxifHg+Pj4zMi1iLHA9eDw8YnxtPj4+MzItYjtlbHNlIHZhciB2PXg8PGItMzJ8bT4+PjY0LWIscD1tPDxiLTMyfHg+Pj42NC1iO3ZhciBIPXVbbFtTXV07SC5oaWdoPXYsSC5sb3c9cH12YXIgej11WzBdLEE9ZVswXTt6LmhpZ2g9QS5oaWdoLHoubG93PUEubG93O2Zvcih2YXIgZD0wO2Q8NTtkKyspZm9yKHZhciBfPTA7Xzw1O18rKyl7dmFyIFM9ZCs1Kl8sYT1lW1NdLEM9dVtTXSxEPXVbKGQrMSklNSs1Kl9dLFI9dVsoZCsyKSU1KzUqX107YS5oaWdoPUMuaGlnaF5+RC5oaWdoJlIuaGlnaCxhLmxvdz1DLmxvd15+RC5sb3cmUi5sb3d9dmFyIGE9ZVswXSxFPWZbY107YS5oaWdoXj1FLmhpZ2gsYS5sb3dePUUubG93fX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLGU9dC53b3JkcyxpPSg4KnRoaXMuX25EYXRhQnl0ZXMsOCp0LnNpZ0J5dGVzKSxvPTMyKnRoaXMuYmxvY2tTaXplO2VbaT4+PjVdfD0xPDwyNC1pJTMyLGVbKHIuY2VpbCgoaSsxKS9vKSpvPj4+NSktMV18PTEyOCx0LnNpZ0J5dGVzPTQqZS5sZW5ndGgsdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgcz10aGlzLl9zdGF0ZSxhPXRoaXMuY2ZnLm91dHB1dExlbmd0aC84LGM9YS84LGg9W10sbD0wO2w8YztsKyspe3ZhciBmPXNbbF0sdT1mLmhpZ2gsZD1mLmxvdzt1PTE2NzExOTM1Jih1PDw4fHU+Pj4yNCl8NDI3ODI1NTM2MCYodTw8MjR8dT4+PjgpLGQ9MTY3MTE5MzUmKGQ8PDh8ZD4+PjI0KXw0Mjc4MjU1MzYwJihkPDwyNHxkPj4+OCksaC5wdXNoKGQpLGgucHVzaCh1KX1yZXR1cm4gbmV3IG4uaW5pdChoLGEpfSxjbG9uZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1vLmNsb25lLmNhbGwodGhpcykscj10Ll9zdGF0ZT10aGlzLl9zdGF0ZS5zbGljZSgwKSxlPTA7ZTwyNTtlKyspcltlXT1yW2VdLmNsb25lKCk7cmV0dXJuIHR9fSk7ZS5TSEEzPW8uX2NyZWF0ZUhlbHBlcihkKSxlLkhtYWNTSEEzPW8uX2NyZWF0ZUhtYWNIZWxwZXIoZCl9KE1hdGgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcigpe3JldHVybiBzLmNyZWF0ZS5hcHBseShzLGFyZ3VtZW50cyl9dmFyIGU9dCxpPWUubGliLG49aS5IYXNoZXIsbz1lLng2NCxzPW8uV29yZCxhPW8uV29yZEFycmF5LGM9ZS5hbGdvLGg9W3IoMTExNjM1MjQwOCwzNjA5NzY3NDU4KSxyKDE4OTk0NDc0NDEsNjAyODkxNzI1KSxyKDMwNDkzMjM0NzEsMzk2NDQ4NDM5OSkscigzOTIxMDA5NTczLDIxNzMyOTU1NDgpLHIoOTYxOTg3MTYzLDQwODE2Mjg0NzIpLHIoMTUwODk3MDk5MywzMDUzODM0MjY1KSxyKDI0NTM2MzU3NDgsMjkzNzY3MTU3OSkscigyODcwNzYzMjIxLDM2NjQ2MDk1NjApLHIoMzYyNDM4MTA4MCwyNzM0ODgzMzk0KSxyKDMxMDU5ODQwMSwxMTY0OTk2NTQyKSxyKDYwNzIyNTI3OCwxMzIzNjEwNzY0KSxyKDE0MjY4ODE5ODcsMzU5MDMwNDk5NCkscigxOTI1MDc4Mzg4LDQwNjgxODIzODMpLHIoMjE2MjA3ODIwNiw5OTEzMzYxMTMpLHIoMjYxNDg4ODEwMyw2MzM4MDMzMTcpLHIoMzI0ODIyMjU4MCwzNDc5Nzc0ODY4KSxyKDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCkscig0MDIyMjI0Nzc0LDk0NDcxMTEzOSkscigyNjQzNDcwNzgsMjM0MTI2Mjc3Mykscig2MDQ4MDc2MjgsMjAwNzgwMDkzMykscig3NzAyNTU5ODMsMTQ5NTk5MDkwMSkscigxMjQ5MTUwMTIyLDE4NTY0MzEyMzUpLHIoMTU1NTA4MTY5MiwzMTc1MjE4MTMyKSxyKDE5OTYwNjQ5ODYsMjE5ODk1MDgzNykscigyNTU0MjIwODgyLDM5OTk3MTkzMzkpLHIoMjgyMTgzNDM0OSw3NjY3ODQwMTYpLHIoMjk1Mjk5NjgwOCwyNTY2NTk0ODc5KSxyKDMyMTAzMTM2NzEsMzIwMzMzNzk1NikscigzMzM2NTcxODkxLDEwMzQ0NTcwMjYpLHIoMzU4NDUyODcxMSwyNDY2OTQ4OTAxKSxyKDExMzkyNjk5MywzNzU4MzI2MzgzKSxyKDMzODI0MTg5NSwxNjg3MTc5MzYpLHIoNjY2MzA3MjA1LDExODgxNzk5NjQpLHIoNzczNTI5OTEyLDE1NDYwNDU3MzQpLHIoMTI5NDc1NzM3MiwxNTIyODA1NDg1KSxyKDEzOTYxODIyOTEsMjY0MzgzMzgyMykscigxNjk1MTgzNzAwLDIzNDM1MjczOTApLHIoMTk4NjY2MTA1MSwxMDE0NDc3NDgwKSxyKDIxNzcwMjYzNTAsMTIwNjc1OTE0MikscigyNDU2OTU2MDM3LDM0NDA3NzYyNykscigyNzMwNDg1OTIxLDEyOTA4NjM0NjApLHIoMjgyMDMwMjQxMSwzMTU4NDU0MjczKSxyKDMyNTk3MzA4MDAsMzUwNTk1MjY1NykscigzMzQ1NzY0NzcxLDEwNjIxNzAwOCkscigzNTE2MDY1ODE3LDM2MDYwMDgzNDQpLHIoMzYwMDM1MjgwNCwxNDMyNzI1Nzc2KSxyKDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCkscigyNzU0MjMzNDQsODUxMTY5NzIwKSxyKDQzMDIyNzczNCwzMTAwODIzNzUyKSxyKDUwNjk0ODYxNiwxMzYzMjU4MTk1KSxyKDY1OTA2MDU1NiwzNzUwNjg1NTkzKSxyKDg4Mzk5Nzg3NywzNzg1MDUwMjgwKSxyKDk1ODEzOTU3MSwzMzE4MzA3NDI3KSxyKDEzMjI4MjIyMTgsMzgxMjcyMzQwMykscigxNTM3MDAyMDYzLDIwMDMwMzQ5OTUpLHIoMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5KSxyKDE5NTU1NjIyMjIsMTU3NTk5MDAxMikscigyMDI0MTA0ODE1LDExMjU1OTI5MjgpLHIoMjIyNzczMDQ1MiwyNzE2OTA0MzA2KSxyKDIzNjE4NTI0MjQsNDQyNzc2MDQ0KSxyKDI0Mjg0MzY0NzQsNTkzNjk4MzQ0KSxyKDI3NTY3MzQxODcsMzczMzExMDI0OSkscigzMjA0MDMxNDc5LDI5OTkzNTE1NzMpLHIoMzMyOTMyNTI5OCwzODE1OTIwNDI3KSxyKDMzOTE1Njk2MTQsMzkyODM4MzkwMCkscigzNTE1MjY3MjcxLDU2NjI4MDcxMSkscigzOTQwMTg3NjA2LDM0NTQwNjk1MzQpLHIoNDExODYzMDI3MSw0MDAwMjM5OTkyKSxyKDExNjQxODQ3NCwxOTE0MTM4NTU0KSxyKDE3NDI5MjQyMSwyNzMxMDU1MjcwKSxyKDI4OTM4MDM1NiwzMjAzOTkzMDA2KSxyKDQ2MDM5MzI2OSwzMjA2MjAzMTUpLHIoNjg1NDcxNzMzLDU4NzQ5NjgzNikscig4NTIxNDI5NzEsMTA4Njc5Mjg1MSkscigxMDE3MDM2Mjk4LDM2NTU0MzEwMCkscigxMTI2MDAwNTgwLDI2MTgyOTc2NzYpLHIoMTI4ODAzMzQ3MCwzNDA5ODU1MTU4KSxyKDE1MDE1MDU5NDgsNDIzNDUwOTg2NikscigxNjA3MTY3OTE1LDk4NzE2NzQ2OCkscigxODE2NDAyMzE2LDEyNDYxODk1OTEpXSxsPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8ODA7dCsrKWxbdF09cigpfSgpO3ZhciBmPWMuU0hBNTEyPW4uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IGEuaW5pdChbbmV3IHMuaW5pdCgxNzc5MDMzNzAzLDQwODkyMzU3MjApLG5ldyBzLmluaXQoMzE0NDEzNDI3NywyMjI3ODczNTk1KSxuZXcgcy5pbml0KDEwMTM5MDQyNDIsNDI3MTE3NTcyMyksbmV3IHMuaW5pdCgyNzczNDgwNzYyLDE1OTU3NTAxMjkpLG5ldyBzLmluaXQoMTM1OTg5MzExOSwyOTE3NTY1MTM3KSxuZXcgcy5pbml0KDI2MDA4MjI5MjQsNzI1NTExMTk5KSxuZXcgcy5pbml0KDUyODczNDYzNSw0MjE1Mzg5NTQ3KSxuZXcgcy5pbml0KDE1NDE0NTkyMjUsMzI3MDMzMjA5KV0pfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dGhpcy5faGFzaC53b3JkcyxpPWVbMF0sbj1lWzFdLG89ZVsyXSxzPWVbM10sYT1lWzRdLGM9ZVs1XSxmPWVbNl0sdT1lWzddLGQ9aS5oaWdoLHY9aS5sb3cscD1uLmhpZ2gsXz1uLmxvdyx5PW8uaGlnaCxnPW8ubG93LEI9cy5oaWdoLHc9cy5sb3csaz1hLmhpZ2gsUz1hLmxvdyxtPWMuaGlnaCx4PWMubG93LGI9Zi5oaWdoLEg9Zi5sb3csej11LmhpZ2gsQT11LmxvdyxDPWQsRD12LFI9cCxFPV8sTT15LEY9ZyxQPUIsVz13LE89ayxVPVMsST1tLEs9eCxYPWIsTD1ILGo9eixOPUEsVD0wO1Q8ODA7VCsrKXt2YXIgWj1sW1RdO2lmKFQ8MTYpdmFyIHE9Wi5oaWdoPTB8dFtyKzIqVF0sRz1aLmxvdz0wfHRbcisyKlQrMV07ZWxzZXt2YXIgSj1sW1QtMTVdLCQ9Si5oaWdoLFE9Si5sb3csVj0oJD4+PjF8UTw8MzEpXigkPj4+OHxRPDwyNCleJD4+PjcsWT0oUT4+PjF8JDw8MzEpXihRPj4+OHwkPDwyNCleKFE+Pj43fCQ8PDI1KSx0dD1sW1QtMl0scnQ9dHQuaGlnaCxldD10dC5sb3csaXQ9KHJ0Pj4+MTl8ZXQ8PDEzKV4ocnQ8PDN8ZXQ+Pj4yOSlecnQ+Pj42LG50PShldD4+PjE5fHJ0PDwxMyleKGV0PDwzfHJ0Pj4+MjkpXihldD4+PjZ8cnQ8PDI2KSxvdD1sW1QtN10sc3Q9b3QuaGlnaCxhdD1vdC5sb3csY3Q9bFtULTE2XSxodD1jdC5oaWdoLGx0PWN0LmxvdyxHPVkrYXQscT1WK3N0KyhHPj4+MDxZPj4+MD8xOjApLEc9RytudCxxPXEraXQrKEc+Pj4wPG50Pj4+MD8xOjApLEc9RytsdCxxPXEraHQrKEc+Pj4wPGx0Pj4+MD8xOjApO1ouaGlnaD1xLFoubG93PUd9dmFyIGZ0PU8mSV5+TyZYLHV0PVUmS15+VSZMLGR0PUMmUl5DJk1eUiZNLHZ0PUQmRV5EJkZeRSZGLHB0PShDPj4+Mjh8RDw8NCleKEM8PDMwfEQ+Pj4yKV4oQzw8MjV8RD4+PjcpLF90PShEPj4+Mjh8Qzw8NCleKEQ8PDMwfEM+Pj4yKV4oRDw8MjV8Qz4+PjcpLHl0PShPPj4+MTR8VTw8MTgpXihPPj4+MTh8VTw8MTQpXihPPDwyM3xVPj4+OSksZ3Q9KFU+Pj4xNHxPPDwxOCleKFU+Pj4xOHxPPDwxNCleKFU8PDIzfE8+Pj45KSxCdD1oW1RdLHd0PUJ0LmhpZ2gsa3Q9QnQubG93LFN0PU4rZ3QsbXQ9ait5dCsoU3Q+Pj4wPE4+Pj4wPzE6MCksU3Q9U3QrdXQsbXQ9bXQrZnQrKFN0Pj4+MDx1dD4+PjA/MTowKSxTdD1TdCtrdCxtdD1tdCt3dCsoU3Q+Pj4wPGt0Pj4+MD8xOjApLFN0PVN0K0csbXQ9bXQrcSsoU3Q+Pj4wPEc+Pj4wPzE6MCkseHQ9X3QrdnQsYnQ9cHQrZHQrKHh0Pj4+MDxfdD4+PjA/MTowKTtqPVgsTj1MLFg9SSxMPUssST1PLEs9VSxVPVcrU3R8MCxPPVArbXQrKFU+Pj4wPFc+Pj4wPzE6MCl8MCxQPU0sVz1GLE09UixGPUUsUj1DLEU9RCxEPVN0K3h0fDAsQz1tdCtidCsoRD4+PjA8U3Q+Pj4wPzE6MCl8MH12PWkubG93PXYrRCxpLmhpZ2g9ZCtDKyh2Pj4+MDxEPj4+MD8xOjApLF89bi5sb3c9XytFLG4uaGlnaD1wK1IrKF8+Pj4wPEU+Pj4wPzE6MCksZz1vLmxvdz1nK0Ysby5oaWdoPXkrTSsoZz4+PjA8Rj4+PjA/MTowKSx3PXMubG93PXcrVyxzLmhpZ2g9QitQKyh3Pj4+MDxXPj4+MD8xOjApLFM9YS5sb3c9UytVLGEuaGlnaD1rK08rKFM+Pj4wPFU+Pj4wPzE6MCkseD1jLmxvdz14K0ssYy5oaWdoPW0rSSsoeD4+PjA8Sz4+PjA/MTowKSxIPWYubG93PUgrTCxmLmhpZ2g9YitYKyhIPj4+MDxMPj4+MD8xOjApLEE9dS5sb3c9QStOLHUuaGlnaD16K2orKEE+Pj4wPE4+Pj4wPzE6MCl9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxyPXQud29yZHMsZT04KnRoaXMuX25EYXRhQnl0ZXMsaT04KnQuc2lnQnl0ZXM7cltpPj4+NV18PTEyODw8MjQtaSUzMixyWyhpKzEyOD4+PjEwPDw1KSszMF09TWF0aC5mbG9vcihlLzQyOTQ5NjcyOTYpLHJbKGkrMTI4Pj4+MTA8PDUpKzMxXT1lLHQuc2lnQnl0ZXM9NCpyLmxlbmd0aCx0aGlzLl9wcm9jZXNzKCk7dmFyIG49dGhpcy5faGFzaC50b1gzMigpO3JldHVybiBufSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PW4uY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH0sYmxvY2tTaXplOjMyfSk7ZS5TSEE1MTI9bi5fY3JlYXRlSGVscGVyKGYpLGUuSG1hY1NIQTUxMj1uLl9jcmVhdGVIbWFjSGVscGVyKGYpfSgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIueDY0LGk9ZS5Xb3JkLG49ZS5Xb3JkQXJyYXksbz1yLmFsZ28scz1vLlNIQTUxMixhPW8uU0hBMzg0PXMuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IG4uaW5pdChbbmV3IGkuaW5pdCgzNDE4MDcwMzY1LDMyMzgzNzEwMzIpLG5ldyBpLmluaXQoMTY1NDI3MDI1MCw5MTQxNTA2NjMpLG5ldyBpLmluaXQoMjQzODUyOTM3MCw4MTI3MDI5OTkpLG5ldyBpLmluaXQoMzU1NDYyMzYwLDQxNDQ5MTI2OTcpLG5ldyBpLmluaXQoMTczMTQwNTQxNSw0MjkwNzc1ODU3KSxuZXcgaS5pbml0KDIzOTQxODAyMzEsMTc1MDYwMzAyNSksbmV3IGkuaW5pdCgzNjc1MDA4NTI1LDE2OTQwNzY4MzkpLG5ldyBpLmluaXQoMTIwMzA2MjgxMywzMjA0MDc1NDI4KV0pfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXMuX2RvRmluYWxpemUuY2FsbCh0aGlzKTtyZXR1cm4gdC5zaWdCeXRlcy09MTYsdH19KTtyLlNIQTM4ND1zLl9jcmVhdGVIZWxwZXIoYSksci5IbWFjU0hBMzg0PXMuX2NyZWF0ZUhtYWNIZWxwZXIoYSl9KCksdC5saWIuQ2lwaGVyfHxmdW5jdGlvbihyKXt2YXIgZT10LGk9ZS5saWIsbj1pLkJhc2Usbz1pLldvcmRBcnJheSxzPWkuQnVmZmVyZWRCbG9ja0FsZ29yaXRobSxhPWUuZW5jLGM9KGEuVXRmOCxhLkJhc2U2NCksaD1lLmFsZ28sbD1oLkV2cEtERixmPWkuQ2lwaGVyPXMuZXh0ZW5kKHtjZmc6bi5leHRlbmQoKSxjcmVhdGVFbmNyeXB0b3I6ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fRU5DX1hGT1JNX01PREUsdCxyKX0sY3JlYXRlRGVjcnlwdG9yOmZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuX0RFQ19YRk9STV9NT0RFLHQscil9LGluaXQ6ZnVuY3Rpb24odCxyLGUpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZChlKSx0aGlzLl94Zm9ybU1vZGU9dCx0aGlzLl9rZXk9cix0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7cy5yZXNldC5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX0scHJvY2VzczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYXBwZW5kKHQpLHRoaXMuX3Byb2Nlc3MoKX0sZmluYWxpemU6ZnVuY3Rpb24odCl7dCYmdGhpcy5fYXBwZW5kKHQpO3ZhciByPXRoaXMuX2RvRmluYWxpemUoKTtyZXR1cm4gcn0sa2V5U2l6ZTo0LGl2U2l6ZTo0LF9FTkNfWEZPUk1fTU9ERToxLF9ERUNfWEZPUk1fTU9ERToyLF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P206d31yZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJue2VuY3J5cHQ6ZnVuY3Rpb24oZSxpLG4pe3JldHVybiB0KGkpLmVuY3J5cHQocixlLGksbil9LGRlY3J5cHQ6ZnVuY3Rpb24oZSxpLG4pe3JldHVybiB0KGkpLmRlY3J5cHQocixlLGksbil9fX19KCl9KSx1PShpLlN0cmVhbUNpcGhlcj1mLmV4dGVuZCh7X2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9wcm9jZXNzKCEwKTtyZXR1cm4gdH0sYmxvY2tTaXplOjF9KSxlLm1vZGU9e30pLGQ9aS5CbG9ja0NpcGhlck1vZGU9bi5leHRlbmQoe2NyZWF0ZUVuY3J5cHRvcjpmdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLkVuY3J5cHRvci5jcmVhdGUodCxyKX0sY3JlYXRlRGVjcnlwdG9yOmZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMuRGVjcnlwdG9yLmNyZWF0ZSh0LHIpfSxpbml0OmZ1bmN0aW9uKHQscil7dGhpcy5fY2lwaGVyPXQsdGhpcy5faXY9cn19KSx2PXUuQ0JDPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsaSl7dmFyIG49dGhpcy5faXY7aWYobil7dmFyIG89bjt0aGlzLl9pdj1yfWVsc2UgdmFyIG89dGhpcy5fcHJldkJsb2NrO2Zvcih2YXIgcz0wO3M8aTtzKyspdFtlK3NdXj1vW3NdfXZhciBlPWQuZXh0ZW5kKCk7cmV0dXJuIGUuRW5jcnlwdG9yPWUuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24ocixlKXt2YXIgaT10aGlzLl9jaXBoZXIsbj1pLmJsb2NrU2l6ZTt0LmNhbGwodGhpcyxyLGUsbiksaS5lbmNyeXB0QmxvY2socixlKSx0aGlzLl9wcmV2QmxvY2s9ci5zbGljZShlLGUrbil9fSksZS5EZWNyeXB0b3I9ZS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbihyLGUpe3ZhciBpPXRoaXMuX2NpcGhlcixuPWkuYmxvY2tTaXplLG89ci5zbGljZShlLGUrbik7aS5kZWNyeXB0QmxvY2socixlKSx0LmNhbGwodGhpcyxyLGUsbiksdGhpcy5fcHJldkJsb2NrPW99fSksZX0oKSxwPWUucGFkPXt9LF89cC5Qa2NzNz17cGFkOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPTQqcixpPWUtdC5zaWdCeXRlcyVlLG49aTw8MjR8aTw8MTZ8aTw8OHxpLHM9W10sYT0wO2E8aTthKz00KXMucHVzaChuKTt2YXIgYz1vLmNyZWF0ZShzLGkpO3QuY29uY2F0KGMpfSx1bnBhZDpmdW5jdGlvbih0KXt2YXIgcj0yNTUmdC53b3Jkc1t0LnNpZ0J5dGVzLTE+Pj4yXTt0LnNpZ0J5dGVzLT1yfX0seT0oaS5CbG9ja0NpcGhlcj1mLmV4dGVuZCh7Y2ZnOmYuY2ZnLmV4dGVuZCh7bW9kZTp2LHBhZGRpbmc6X30pLHJlc2V0OmZ1bmN0aW9uKCl7Zi5yZXNldC5jYWxsKHRoaXMpO3ZhciB0PXRoaXMuY2ZnLHI9dC5pdixlPXQubW9kZTtpZih0aGlzLl94Zm9ybU1vZGU9PXRoaXMuX0VOQ19YRk9STV9NT0RFKXZhciBpPWUuY3JlYXRlRW5jcnlwdG9yO2Vsc2V7dmFyIGk9ZS5jcmVhdGVEZWNyeXB0b3I7dGhpcy5fbWluQnVmZmVyU2l6ZT0xfXRoaXMuX21vZGUmJnRoaXMuX21vZGUuX19jcmVhdG9yPT1pP3RoaXMuX21vZGUuaW5pdCh0aGlzLHImJnIud29yZHMpOih0aGlzLl9tb2RlPWkuY2FsbChlLHRoaXMsciYmci53b3JkcyksdGhpcy5fbW9kZS5fX2NyZWF0b3I9aSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX21vZGUucHJvY2Vzc0Jsb2NrKHQscil9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jZmcucGFkZGluZztpZih0aGlzLl94Zm9ybU1vZGU9PXRoaXMuX0VOQ19YRk9STV9NT0RFKXt0LnBhZCh0aGlzLl9kYXRhLHRoaXMuYmxvY2tTaXplKTt2YXIgcj10aGlzLl9wcm9jZXNzKCEwKX1lbHNle3ZhciByPXRoaXMuX3Byb2Nlc3MoITApO3QudW5wYWQocil9cmV0dXJuIHJ9LGJsb2NrU2l6ZTo0fSksaS5DaXBoZXJQYXJhbXM9bi5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCl7dGhpcy5taXhJbih0KX0sdG9TdHJpbmc6ZnVuY3Rpb24odCl7cmV0dXJuKHR8fHRoaXMuZm9ybWF0dGVyKS5zdHJpbmdpZnkodGhpcyl9fSkpLGc9ZS5mb3JtYXQ9e30sQj1nLk9wZW5TU0w9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXt2YXIgcj10LmNpcGhlcnRleHQsZT10LnNhbHQ7aWYoZSl2YXIgaT1vLmNyZWF0ZShbMTM5ODg5MzY4NCwxNzAxMDc2ODMxXSkuY29uY2F0KGUpLmNvbmNhdChyKTtlbHNlIHZhciBpPXI7cmV0dXJuIGkudG9TdHJpbmcoYyl9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciByPWMucGFyc2UodCksZT1yLndvcmRzO2lmKDEzOTg4OTM2ODQ9PWVbMF0mJjE3MDEwNzY4MzE9PWVbMV0pe3ZhciBpPW8uY3JlYXRlKGUuc2xpY2UoMiw0KSk7ZS5zcGxpY2UoMCw0KSxyLnNpZ0J5dGVzLT0xNn1yZXR1cm4geS5jcmVhdGUoe2NpcGhlcnRleHQ6cixzYWx0Oml9KX19LHc9aS5TZXJpYWxpemFibGVDaXBoZXI9bi5leHRlbmQoe2NmZzpuLmV4dGVuZCh7Zm9ybWF0OkJ9KSxlbmNyeXB0OmZ1bmN0aW9uKHQscixlLGkpe2k9dGhpcy5jZmcuZXh0ZW5kKGkpO3ZhciBuPXQuY3JlYXRlRW5jcnlwdG9yKGUsaSksbz1uLmZpbmFsaXplKHIpLHM9bi5jZmc7cmV0dXJuIHkuY3JlYXRlKHtjaXBoZXJ0ZXh0Om8sa2V5OmUsaXY6cy5pdixhbGdvcml0aG06dCxtb2RlOnMubW9kZSxwYWRkaW5nOnMucGFkZGluZyxibG9ja1NpemU6dC5ibG9ja1NpemUsZm9ybWF0dGVyOmkuZm9ybWF0fSl9LGRlY3J5cHQ6ZnVuY3Rpb24odCxyLGUsaSl7aT10aGlzLmNmZy5leHRlbmQoaSkscj10aGlzLl9wYXJzZShyLGkuZm9ybWF0KTt2YXIgbj10LmNyZWF0ZURlY3J5cHRvcihlLGkpLmZpbmFsaXplKHIuY2lwaGVydGV4dCk7cmV0dXJuIG59LF9wYXJzZTpmdW5jdGlvbih0LHIpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P3IucGFyc2UodCx0aGlzKTp0fX0pLGs9ZS5rZGY9e30sUz1rLk9wZW5TU0w9e2V4ZWN1dGU6ZnVuY3Rpb24odCxyLGUsaSl7aXx8KGk9by5yYW5kb20oOCkpO3ZhciBuPWwuY3JlYXRlKHtrZXlTaXplOnIrZX0pLmNvbXB1dGUodCxpKSxzPW8uY3JlYXRlKG4ud29yZHMuc2xpY2UociksNCplKTtyZXR1cm4gbi5zaWdCeXRlcz00KnIseS5jcmVhdGUoe2tleTpuLGl2OnMsc2FsdDppfSl9fSxtPWkuUGFzc3dvcmRCYXNlZENpcGhlcj13LmV4dGVuZCh7Y2ZnOncuY2ZnLmV4dGVuZCh7a2RmOlN9KSxlbmNyeXB0OmZ1bmN0aW9uKHQscixlLGkpe2k9dGhpcy5jZmcuZXh0ZW5kKGkpO3ZhciBuPWkua2RmLmV4ZWN1dGUoZSx0LmtleVNpemUsdC5pdlNpemUpO2kuaXY9bi5pdjt2YXIgbz13LmVuY3J5cHQuY2FsbCh0aGlzLHQscixuLmtleSxpKTtyZXR1cm4gby5taXhJbihuKSxvfSxkZWNyeXB0OmZ1bmN0aW9uKHQscixlLGkpe2k9dGhpcy5jZmcuZXh0ZW5kKGkpLHI9dGhpcy5fcGFyc2UocixpLmZvcm1hdCk7dmFyIG49aS5rZGYuZXhlY3V0ZShlLHQua2V5U2l6ZSx0Lml2U2l6ZSxyLnNhbHQpO2kuaXY9bi5pdjt2YXIgbz13LmRlY3J5cHQuY2FsbCh0aGlzLHQscixuLmtleSxpKTtyZXR1cm4gb319KX0oKSx0Lm1vZGUuQ0ZCPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0LHIsZSxpKXt2YXIgbj10aGlzLl9pdjtpZihuKXt2YXIgbz1uLnNsaWNlKDApO3RoaXMuX2l2PXZvaWQgMH1lbHNlIHZhciBvPXRoaXMuX3ByZXZCbG9jaztpLmVuY3J5cHRCbG9jayhvLDApO2Zvcih2YXIgcz0wO3M8ZTtzKyspdFtyK3NdXj1vW3NdfXZhciBlPXQubGliLkJsb2NrQ2lwaGVyTW9kZS5leHRlbmQoKTtyZXR1cm4gZS5FbmNyeXB0b3I9ZS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuX2NpcGhlcixuPWkuYmxvY2tTaXplO3IuY2FsbCh0aGlzLHQsZSxuLGkpLHRoaXMuX3ByZXZCbG9jaz10LnNsaWNlKGUsZStuKX19KSxlLkRlY3J5cHRvcj1lLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5fY2lwaGVyLG49aS5ibG9ja1NpemUsbz10LnNsaWNlKGUsZStuKTtyLmNhbGwodGhpcyx0LGUsbixpKSx0aGlzLl9wcmV2QmxvY2s9b319KSxlfSgpLHQubW9kZS5FQ0I9ZnVuY3Rpb24oKXt2YXIgcj10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCk7cmV0dXJuIHIuRW5jcnlwdG9yPXIuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9jaXBoZXIuZW5jcnlwdEJsb2NrKHQscil9fSksci5EZWNyeXB0b3I9ci5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2NpcGhlci5kZWNyeXB0QmxvY2sodCxyKX19KSxyfSgpLHQucGFkLkFuc2lYOTIzPXtwYWQ6ZnVuY3Rpb24odCxyKXt2YXIgZT10LnNpZ0J5dGVzLGk9NCpyLG49aS1lJWksbz1lK24tMTt0LmNsYW1wKCksdC53b3Jkc1tvPj4+Ml18PW48PDI0LW8lNCo4LHQuc2lnQnl0ZXMrPW59LHVucGFkOmZ1bmN0aW9uKHQpe3ZhciByPTI1NSZ0LndvcmRzW3Quc2lnQnl0ZXMtMT4+PjJdO3Quc2lnQnl0ZXMtPXJ9fSx0LnBhZC5Jc28xMDEyNj17cGFkOmZ1bmN0aW9uKHIsZSl7dmFyIGk9NCplLG49aS1yLnNpZ0J5dGVzJWk7ci5jb25jYXQodC5saWIuV29yZEFycmF5LnJhbmRvbShuLTEpKS5jb25jYXQodC5saWIuV29yZEFycmF5LmNyZWF0ZShbbjw8MjRdLDEpKX0sdW5wYWQ6ZnVuY3Rpb24odCl7dmFyIHI9MjU1JnQud29yZHNbdC5zaWdCeXRlcy0xPj4+Ml07dC5zaWdCeXRlcy09cn19LHQucGFkLklzbzk3OTcxPXtwYWQ6ZnVuY3Rpb24ocixlKXtyLmNvbmNhdCh0LmxpYi5Xb3JkQXJyYXkuY3JlYXRlKFsyMTQ3NDgzNjQ4XSwxKSksdC5wYWQuWmVyb1BhZGRpbmcucGFkKHIsZSl9LHVucGFkOmZ1bmN0aW9uKHIpe3QucGFkLlplcm9QYWRkaW5nLnVucGFkKHIpLHIuc2lnQnl0ZXMtLX19LHQubW9kZS5PRkI9ZnVuY3Rpb24oKXt2YXIgcj10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksZT1yLkVuY3J5cHRvcj1yLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fY2lwaGVyLGk9ZS5ibG9ja1NpemUsbj10aGlzLl9pdixvPXRoaXMuX2tleXN0cmVhbTtuJiYobz10aGlzLl9rZXlzdHJlYW09bi5zbGljZSgwKSx0aGlzLl9pdj12b2lkIDApLGUuZW5jcnlwdEJsb2NrKG8sMCk7Zm9yKHZhciBzPTA7czxpO3MrKyl0W3Irc11ePW9bc119fSk7cmV0dXJuIHIuRGVjcnlwdG9yPWUscn0oKSx0LnBhZC5Ob1BhZGRpbmc9e3BhZDpmdW5jdGlvbigpe30sdW5wYWQ6ZnVuY3Rpb24oKXt9fSxmdW5jdGlvbihyKXt2YXIgZT10LGk9ZS5saWIsbj1pLkNpcGhlclBhcmFtcyxvPWUuZW5jLHM9by5IZXgsYT1lLmZvcm1hdDthLkhleD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe3JldHVybiB0LmNpcGhlcnRleHQudG9TdHJpbmcocyl9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciByPXMucGFyc2UodCk7cmV0dXJuIG4uY3JlYXRlKHtjaXBoZXJ0ZXh0OnJ9KX19fSgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5CbG9ja0NpcGhlcixuPXIuYWxnbyxvPVtdLHM9W10sYT1bXSxjPVtdLGg9W10sbD1bXSxmPVtdLHU9W10sZD1bXSx2PVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxyPTA7cjwyNTY7cisrKXI8MTI4P3Rbcl09cjw8MTp0W3JdPXI8PDFeMjgzO2Zvcih2YXIgZT0wLGk9MCxyPTA7cjwyNTY7cisrKXt2YXIgbj1pXmk8PDFeaTw8Ml5pPDwzXmk8PDQ7bj1uPj4+OF4yNTUmbl45OSxvW2VdPW4sc1tuXT1lO3ZhciBwPXRbZV0sXz10W3BdLHk9dFtfXSxnPTI1Nyp0W25dXjE2ODQzMDA4Km47YVtlXT1nPDwyNHxnPj4+OCxjW2VdPWc8PDE2fGc+Pj4xNixoW2VdPWc8PDh8Zz4+PjI0LGxbZV09Zzt2YXIgZz0xNjg0MzAwOSp5XjY1NTM3Kl9eMjU3KnBeMTY4NDMwMDgqZTtmW25dPWc8PDI0fGc+Pj44LHVbbl09Zzw8MTZ8Zz4+PjE2LGRbbl09Zzw8OHxnPj4+MjQsdltuXT1nLGU/KGU9cF50W3RbdFt5XnBdXV0saV49dFt0W2ldXSk6ZT1pPTF9fSgpO3ZhciBwPVswLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0XSxfPW4uQUVTPWkuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2lmKCF0aGlzLl9uUm91bmRzfHx0aGlzLl9rZXlQcmlvclJlc2V0IT09dGhpcy5fa2V5KXtmb3IodmFyIHQ9dGhpcy5fa2V5UHJpb3JSZXNldD10aGlzLl9rZXkscj10LndvcmRzLGU9dC5zaWdCeXRlcy80LGk9dGhpcy5fblJvdW5kcz1lKzYsbj00KihpKzEpLHM9dGhpcy5fa2V5U2NoZWR1bGU9W10sYT0wO2E8bjthKyspaWYoYTxlKXNbYV09clthXTtlbHNle3ZhciBjPXNbYS0xXTthJWU/ZT42JiZhJWU9PTQmJihjPW9bYz4+PjI0XTw8MjR8b1tjPj4+MTYmMjU1XTw8MTZ8b1tjPj4+OCYyNTVdPDw4fG9bMjU1JmNdKTooYz1jPDw4fGM+Pj4yNCxjPW9bYz4+PjI0XTw8MjR8b1tjPj4+MTYmMjU1XTw8MTZ8b1tjPj4+OCYyNTVdPDw4fG9bMjU1JmNdLGNePXBbYS9lfDBdPDwyNCksc1thXT1zW2EtZV1eY31mb3IodmFyIGg9dGhpcy5faW52S2V5U2NoZWR1bGU9W10sbD0wO2w8bjtsKyspe3ZhciBhPW4tbDtpZihsJTQpdmFyIGM9c1thXTtlbHNlIHZhciBjPXNbYS00XTtsPDR8fGE8PTQ/aFtsXT1jOmhbbF09ZltvW2M+Pj4yNF1dXnVbb1tjPj4+MTYmMjU1XV1eZFtvW2M+Pj44JjI1NV1dXnZbb1syNTUmY11dfX19LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2RvQ3J5cHRCbG9jayh0LHIsdGhpcy5fa2V5U2NoZWR1bGUsYSxjLGgsbCxvKX0sZGVjcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGU9dFtyKzFdO3RbcisxXT10W3IrM10sdFtyKzNdPWUsdGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9pbnZLZXlTY2hlZHVsZSxmLHUsZCx2LHMpO3ZhciBlPXRbcisxXTt0W3IrMV09dFtyKzNdLHRbciszXT1lfSxfZG9DcnlwdEJsb2NrOmZ1bmN0aW9uKHQscixlLGksbixvLHMsYSl7Zm9yKHZhciBjPXRoaXMuX25Sb3VuZHMsaD10W3JdXmVbMF0sbD10W3IrMV1eZVsxXSxmPXRbcisyXV5lWzJdLHU9dFtyKzNdXmVbM10sZD00LHY9MTt2PGM7disrKXt2YXIgcD1pW2g+Pj4yNF1ebltsPj4+MTYmMjU1XV5vW2Y+Pj44JjI1NV1ec1syNTUmdV1eZVtkKytdLF89aVtsPj4+MjRdXm5bZj4+PjE2JjI1NV1eb1t1Pj4+OCYyNTVdXnNbMjU1JmhdXmVbZCsrXSx5PWlbZj4+PjI0XV5uW3U+Pj4xNiYyNTVdXm9baD4+PjgmMjU1XV5zWzI1NSZsXV5lW2QrK10sZz1pW3U+Pj4yNF1ebltoPj4+MTYmMjU1XV5vW2w+Pj44JjI1NV1ec1syNTUmZl1eZVtkKytdO2g9cCxsPV8sZj15LHU9Z312YXIgcD0oYVtoPj4+MjRdPDwyNHxhW2w+Pj4xNiYyNTVdPDwxNnxhW2Y+Pj44JjI1NV08PDh8YVsyNTUmdV0pXmVbZCsrXSxfPShhW2w+Pj4yNF08PDI0fGFbZj4+PjE2JjI1NV08PDE2fGFbdT4+PjgmMjU1XTw8OHxhWzI1NSZoXSleZVtkKytdLHk9KGFbZj4+PjI0XTw8MjR8YVt1Pj4+MTYmMjU1XTw8MTZ8YVtoPj4+OCYyNTVdPDw4fGFbMjU1JmxdKV5lW2QrK10sZz0oYVt1Pj4+MjRdPDwyNHxhW2g+Pj4xNiYyNTVdPDwxNnxhW2w+Pj44JjI1NV08PDh8YVsyNTUmZl0pXmVbZCsrXTt0W3JdPXAsdFtyKzFdPV8sdFtyKzJdPXksdFtyKzNdPWd9LGtleVNpemU6OH0pO3IuQUVTPWkuX2NyZWF0ZUhlbHBlcihfKX0oKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIodCxyKXt2YXIgZT0odGhpcy5fbEJsb2NrPj4+dF50aGlzLl9yQmxvY2spJnI7dGhpcy5fckJsb2NrXj1lLHRoaXMuX2xCbG9ja149ZTw8dH1mdW5jdGlvbiBlKHQscil7dmFyIGU9KHRoaXMuX3JCbG9jaz4+PnRedGhpcy5fbEJsb2NrKSZyO3RoaXMuX2xCbG9ja149ZSx0aGlzLl9yQmxvY2tePWU8PHQ7XG59dmFyIGk9dCxuPWkubGliLG89bi5Xb3JkQXJyYXkscz1uLkJsb2NrQ2lwaGVyLGE9aS5hbGdvLGM9WzU3LDQ5LDQxLDMzLDI1LDE3LDksMSw1OCw1MCw0MiwzNCwyNiwxOCwxMCwyLDU5LDUxLDQzLDM1LDI3LDE5LDExLDMsNjAsNTIsNDQsMzYsNjMsNTUsNDcsMzksMzEsMjMsMTUsNyw2Miw1NCw0NiwzOCwzMCwyMiwxNCw2LDYxLDUzLDQ1LDM3LDI5LDIxLDEzLDUsMjgsMjAsMTIsNF0saD1bMTQsMTcsMTEsMjQsMSw1LDMsMjgsMTUsNiwyMSwxMCwyMywxOSwxMiw0LDI2LDgsMTYsNywyNywyMCwxMywyLDQxLDUyLDMxLDM3LDQ3LDU1LDMwLDQwLDUxLDQ1LDMzLDQ4LDQ0LDQ5LDM5LDU2LDM0LDUzLDQ2LDQyLDUwLDM2LDI5LDMyXSxsPVsxLDIsNCw2LDgsMTAsMTIsMTQsMTUsMTcsMTksMjEsMjMsMjUsMjcsMjhdLGY9W3swOjg0MjE4ODgsMjY4NDM1NDU2OjMyNzY4LDUzNjg3MDkxMjo4NDIxMzc4LDgwNTMwNjM2ODoyLDEwNzM3NDE4MjQ6NTEyLDEzNDIxNzcyODA6ODQyMTg5MCwxNjEwNjEyNzM2OjgzODkxMjIsMTg3OTA0ODE5Mjo4Mzg4NjA4LDIxNDc0ODM2NDg6NTE0LDI0MTU5MTkxMDQ6ODM4OTEyMCwyNjg0MzU0NTYwOjMzMjgwLDI5NTI3OTAwMTY6ODQyMTM3NiwzMjIxMjI1NDcyOjMyNzcwLDM0ODk2NjA5Mjg6ODM4ODYxMCwzNzU4MDk2Mzg0OjAsNDAyNjUzMTg0MDozMzI4MiwxMzQyMTc3Mjg6MCw0MDI2NTMxODQ6ODQyMTg5MCw2NzEwODg2NDA6MzMyODIsOTM5NTI0MDk2OjMyNzY4LDEyMDc5NTk1NTI6ODQyMTg4OCwxNDc2Mzk1MDA4OjUxMiwxNzQ0ODMwNDY0Ojg0MjEzNzgsMjAxMzI2NTkyMDoyLDIyODE3MDEzNzY6ODM4OTEyMCwyNTUwMTM2ODMyOjMzMjgwLDI4MTg1NzIyODg6ODQyMTM3NiwzMDg3MDA3NzQ0OjgzODkxMjIsMzM1NTQ0MzIwMDo4Mzg4NjEwLDM2MjM4Nzg2NTY6MzI3NzAsMzg5MjMxNDExMjo1MTQsNDE2MDc0OTU2ODo4Mzg4NjA4LDE6MzI3NjgsMjY4NDM1NDU3OjIsNTM2ODcwOTEzOjg0MjE4ODgsODA1MzA2MzY5OjgzODg2MDgsMTA3Mzc0MTgyNTo4NDIxMzc4LDEzNDIxNzcyODE6MzMyODAsMTYxMDYxMjczNzo1MTIsMTg3OTA0ODE5Mzo4Mzg5MTIyLDIxNDc0ODM2NDk6ODQyMTg5MCwyNDE1OTE5MTA1Ojg0MjEzNzYsMjY4NDM1NDU2MTo4Mzg4NjEwLDI5NTI3OTAwMTc6MzMyODIsMzIyMTIyNTQ3Mzo1MTQsMzQ4OTY2MDkyOTo4Mzg5MTIwLDM3NTgwOTYzODU6MzI3NzAsNDAyNjUzMTg0MTowLDEzNDIxNzcyOTo4NDIxODkwLDQwMjY1MzE4NTo4NDIxMzc2LDY3MTA4ODY0MTo4Mzg4NjA4LDkzOTUyNDA5Nzo1MTIsMTIwNzk1OTU1MzozMjc2OCwxNDc2Mzk1MDA5OjgzODg2MTAsMTc0NDgzMDQ2NToyLDIwMTMyNjU5MjE6MzMyODIsMjI4MTcwMTM3NzozMjc3MCwyNTUwMTM2ODMzOjgzODkxMjIsMjgxODU3MjI4OTo1MTQsMzA4NzAwNzc0NTo4NDIxODg4LDMzNTU0NDMyMDE6ODM4OTEyMCwzNjIzODc4NjU3OjAsMzg5MjMxNDExMzozMzI4MCw0MTYwNzQ5NTY5Ojg0MjEzNzh9LHswOjEwNzQyODI1MTIsMTY3NzcyMTY6MTYzODQsMzM1NTQ0MzI6NTI0Mjg4LDUwMzMxNjQ4OjEwNzQyNjYxMjgsNjcxMDg4NjQ6MTA3Mzc0MTg0MCw4Mzg4NjA4MDoxMDc0MjgyNDk2LDEwMDY2MzI5NjoxMDczNzU4MjA4LDExNzQ0MDUxMjoxNiwxMzQyMTc3Mjg6NTQwNjcyLDE1MDk5NDk0NDoxMDczNzU4MjI0LDE2Nzc3MjE2MDoxMDczNzQxODI0LDE4NDU0OTM3Njo1NDA2ODgsMjAxMzI2NTkyOjUyNDMwNCwyMTgxMDM4MDg6MCwyMzQ4ODEwMjQ6MTY0MDAsMjUxNjU4MjQwOjEwNzQyNjYxMTIsODM4ODYwODoxMDczNzU4MjA4LDI1MTY1ODI0OjU0MDY4OCw0MTk0MzA0MDoxNiw1ODcyMDI1NjoxMDczNzU4MjI0LDc1NDk3NDcyOjEwNzQyODI1MTIsOTIyNzQ2ODg6MTA3Mzc0MTgyNCwxMDkwNTE5MDQ6NTI0Mjg4LDEyNTgyOTEyMDoxMDc0MjY2MTI4LDE0MjYwNjMzNjo1MjQzMDQsMTU5MzgzNTUyOjAsMTc2MTYwNzY4OjE2Mzg0LDE5MjkzNzk4NDoxMDc0MjY2MTEyLDIwOTcxNTIwMDoxMDczNzQxODQwLDIyNjQ5MjQxNjo1NDA2NzIsMjQzMjY5NjMyOjEwNzQyODI0OTYsMjYwMDQ2ODQ4OjE2NDAwLDI2ODQzNTQ1NjowLDI4NTIxMjY3MjoxMDc0MjY2MTI4LDMwMTk4OTg4ODoxMDczNzU4MjI0LDMxODc2NzEwNDoxMDc0MjgyNDk2LDMzNTU0NDMyMDoxMDc0MjY2MTEyLDM1MjMyMTUzNjoxNiwzNjkwOTg3NTI6NTQwNjg4LDM4NTg3NTk2ODoxNjM4NCw0MDI2NTMxODQ6MTY0MDAsNDE5NDMwNDAwOjUyNDI4OCw0MzYyMDc2MTY6NTI0MzA0LDQ1Mjk4NDgzMjoxMDczNzQxODQwLDQ2OTc2MjA0ODo1NDA2NzIsNDg2NTM5MjY0OjEwNzM3NTgyMDgsNTAzMzE2NDgwOjEwNzM3NDE4MjQsNTIwMDkzNjk2OjEwNzQyODI1MTIsMjc2ODI0MDY0OjU0MDY4OCwyOTM2MDEyODA6NTI0Mjg4LDMxMDM3ODQ5NjoxMDc0MjY2MTEyLDMyNzE1NTcxMjoxNjM4NCwzNDM5MzI5Mjg6MTA3Mzc1ODIwOCwzNjA3MTAxNDQ6MTA3NDI4MjUxMiwzNzc0ODczNjA6MTYsMzk0MjY0NTc2OjEwNzM3NDE4MjQsNDExMDQxNzkyOjEwNzQyODI0OTYsNDI3ODE5MDA4OjEwNzM3NDE4NDAsNDQ0NTk2MjI0OjEwNzM3NTgyMjQsNDYxMzczNDQwOjUyNDMwNCw0NzgxNTA2NTY6MCw0OTQ5Mjc4NzI6MTY0MDAsNTExNzA1MDg4OjEwNzQyNjYxMjgsNTI4NDgyMzA0OjU0MDY3Mn0sezA6MjYwLDEwNDg1NzY6MCwyMDk3MTUyOjY3MTA5MTIwLDMxNDU3Mjg6NjU3OTYsNDE5NDMwNDo2NTU0MCw1MjQyODgwOjY3MTA4ODY4LDYyOTE0NTY6NjcxNzQ2NjAsNzM0MDAzMjo2NzE3NDQwMCw4Mzg4NjA4OjY3MTA4ODY0LDk0MzcxODQ6NjcxNzQ2NTYsMTA0ODU3NjA6NjU3OTIsMTE1MzQzMzY6NjcxNzQ0MDQsMTI1ODI5MTI6NjcxMDkxMjQsMTM2MzE0ODg6NjU1MzYsMTQ2ODAwNjQ6NCwxNTcyODY0MDoyNTYsNTI0Mjg4OjY3MTc0NjU2LDE1NzI4NjQ6NjcxNzQ0MDQsMjYyMTQ0MDowLDM2NzAwMTY6NjcxMDkxMjAsNDcxODU5Mjo2NzEwODg2OCw1NzY3MTY4OjY1NTM2LDY4MTU3NDQ6NjU1NDAsNzg2NDMyMDoyNjAsODkxMjg5Njo0LDk5NjE0NzI6MjU2LDExMDEwMDQ4OjY3MTc0NDAwLDEyMDU4NjI0OjY1Nzk2LDEzMTA3MjAwOjY1NzkyLDE0MTU1Nzc2OjY3MTA5MTI0LDE1MjA0MzUyOjY3MTc0NjYwLDE2MjUyOTI4OjY3MTA4ODY0LDE2Nzc3MjE2OjY3MTc0NjU2LDE3ODI1NzkyOjY1NTQwLDE4ODc0MzY4OjY1NTM2LDE5OTIyOTQ0OjY3MTA5MTIwLDIwOTcxNTIwOjI1NiwyMjAyMDA5Njo2NzE3NDY2MCwyMzA2ODY3Mjo2NzEwODg2OCwyNDExNzI0ODowLDI1MTY1ODI0OjY3MTA5MTI0LDI2MjE0NDAwOjY3MTA4ODY0LDI3MjYyOTc2OjQsMjgzMTE1NTI6NjU3OTIsMjkzNjAxMjg6NjcxNzQ0MDAsMzA0MDg3MDQ6MjYwLDMxNDU3MjgwOjY1Nzk2LDMyNTA1ODU2OjY3MTc0NDA0LDE3MzAxNTA0OjY3MTA4ODY0LDE4MzUwMDgwOjI2MCwxOTM5ODY1Njo2NzE3NDY1NiwyMDQ0NzIzMjowLDIxNDk1ODA4OjY1NTQwLDIyNTQ0Mzg0OjY3MTA5MTIwLDIzNTkyOTYwOjI1NiwyNDY0MTUzNjo2NzE3NDQwNCwyNTY5MDExMjo2NTUzNiwyNjczODY4ODo2NzE3NDY2MCwyNzc4NzI2NDo2NTc5NiwyODgzNTg0MDo2NzEwODg2OCwyOTg4NDQxNjo2NzEwOTEyNCwzMDkzMjk5Mjo2NzE3NDQwMCwzMTk4MTU2ODo0LDMzMDMwMTQ0OjY1NzkyfSx7MDoyMTUxNjgyMDQ4LDY1NTM2OjIxNDc0ODc4MDgsMTMxMDcyOjQxOTg0NjQsMTk2NjA4OjIxNTE2Nzc5NTIsMjYyMTQ0OjAsMzI3NjgwOjQxOTg0MDAsMzkzMjE2OjIxNDc0ODM3MTIsNDU4NzUyOjQxOTQzNjgsNTI0Mjg4OjIxNDc0ODM2NDgsNTg5ODI0OjQxOTQzMDQsNjU1MzYwOjY0LDcyMDg5NjoyMTQ3NDg3NzQ0LDc4NjQzMjoyMTUxNjc4MDE2LDg1MTk2ODo0MTYwLDkxNzUwNDo0MDk2LDk4MzA0MDoyMTUxNjgyMTEyLDMyNzY4OjIxNDc0ODc4MDgsOTgzMDQ6NjQsMTYzODQwOjIxNTE2NzgwMTYsMjI5Mzc2OjIxNDc0ODc3NDQsMjk0OTEyOjQxOTg0MDAsMzYwNDQ4OjIxNTE2ODIxMTIsNDI1OTg0OjAsNDkxNTIwOjIxNTE2Nzc5NTIsNTU3MDU2OjQwOTYsNjIyNTkyOjIxNTE2ODIwNDgsNjg4MTI4OjQxOTQzMDQsNzUzNjY0OjQxNjAsODE5MjAwOjIxNDc0ODM2NDgsODg0NzM2OjQxOTQzNjgsOTUwMjcyOjQxOTg0NjQsMTAxNTgwODoyMTQ3NDgzNzEyLDEwNDg1NzY6NDE5NDM2OCwxMTE0MTEyOjQxOTg0MDAsMTE3OTY0ODoyMTQ3NDgzNzEyLDEyNDUxODQ6MCwxMzEwNzIwOjQxNjAsMTM3NjI1NjoyMTUxNjc4MDE2LDE0NDE3OTI6MjE1MTY4MjA0OCwxNTA3MzI4OjIxNDc0ODc4MDgsMTU3Mjg2NDoyMTUxNjgyMTEyLDE2Mzg0MDA6MjE0NzQ4MzY0OCwxNzAzOTM2OjIxNTE2Nzc5NTIsMTc2OTQ3Mjo0MTk4NDY0LDE4MzUwMDg6MjE0NzQ4Nzc0NCwxOTAwNTQ0OjQxOTQzMDQsMTk2NjA4MDo2NCwyMDMxNjE2OjQwOTYsMTA4MTM0NDoyMTUxNjc3OTUyLDExNDY4ODA6MjE1MTY4MjExMiwxMjEyNDE2OjAsMTI3Nzk1Mjo0MTk4NDAwLDEzNDM0ODg6NDE5NDM2OCwxNDA5MDI0OjIxNDc0ODM2NDgsMTQ3NDU2MDoyMTQ3NDg3ODA4LDE1NDAwOTY6NjQsMTYwNTYzMjoyMTQ3NDgzNzEyLDE2NzExNjg6NDA5NiwxNzM2NzA0OjIxNDc0ODc3NDQsMTgwMjI0MDoyMTUxNjc4MDE2LDE4Njc3NzY6NDE2MCwxOTMzMzEyOjIxNTE2ODIwNDgsMTk5ODg0ODo0MTk0MzA0LDIwNjQzODQ6NDE5ODQ2NH0sezA6MTI4LDQwOTY6MTcwMzkzNjAsODE5MjoyNjIxNDQsMTIyODg6NTM2ODcwOTEyLDE2Mzg0OjUzNzEzMzE4NCwyMDQ4MDoxNjc3NzM0NCwyNDU3Njo1NTM2NDgyNTYsMjg2NzI6MjYyMjcyLDMyNzY4OjE2Nzc3MjE2LDM2ODY0OjUzNzEzMzA1Niw0MDk2MDo1MzY4NzEwNDAsNDUwNTY6NTUzOTEwNDAwLDQ5MTUyOjU1MzkxMDI3Miw1MzI0ODowLDU3MzQ0OjE3MDM5NDg4LDYxNDQwOjU1MzY0ODEyOCwyMDQ4OjE3MDM5NDg4LDYxNDQ6NTUzNjQ4MjU2LDEwMjQwOjEyOCwxNDMzNjoxNzAzOTM2MCwxODQzMjoyNjIxNDQsMjI1Mjg6NTM3MTMzMTg0LDI2NjI0OjU1MzkxMDI3MiwzMDcyMDo1MzY4NzA5MTIsMzQ4MTY6NTM3MTMzMDU2LDM4OTEyOjAsNDMwMDg6NTUzOTEwNDAwLDQ3MTA0OjE2Nzc3MzQ0LDUxMjAwOjUzNjg3MTA0MCw1NTI5Njo1NTM2NDgxMjgsNTkzOTI6MTY3NzcyMTYsNjM0ODg6MjYyMjcyLDY1NTM2OjI2MjE0NCw2OTYzMjoxMjgsNzM3Mjg6NTM2ODcwOTEyLDc3ODI0OjU1MzY0ODI1Niw4MTkyMDoxNjc3NzM0NCw4NjAxNjo1NTM5MTAyNzIsOTAxMTI6NTM3MTMzMTg0LDk0MjA4OjE2Nzc3MjE2LDk4MzA0OjU1MzkxMDQwMCwxMDI0MDA6NTUzNjQ4MTI4LDEwNjQ5NjoxNzAzOTM2MCwxMTA1OTI6NTM3MTMzMDU2LDExNDY4ODoyNjIyNzIsMTE4Nzg0OjUzNjg3MTA0MCwxMjI4ODA6MCwxMjY5NzY6MTcwMzk0ODgsNjc1ODQ6NTUzNjQ4MjU2LDcxNjgwOjE2Nzc3MjE2LDc1Nzc2OjE3MDM5MzYwLDc5ODcyOjUzNzEzMzE4NCw4Mzk2ODo1MzY4NzA5MTIsODgwNjQ6MTcwMzk0ODgsOTIxNjA6MTI4LDk2MjU2OjU1MzkxMDI3MiwxMDAzNTI6MjYyMjcyLDEwNDQ0ODo1NTM5MTA0MDAsMTA4NTQ0OjAsMTEyNjQwOjU1MzY0ODEyOCwxMTY3MzY6MTY3NzczNDQsMTIwODMyOjI2MjE0NCwxMjQ5Mjg6NTM3MTMzMDU2LDEyOTAyNDo1MzY4NzEwNDB9LHswOjI2ODQzNTQ2NCwyNTY6ODE5Miw1MTI6MjcwNTMyNjA4LDc2ODoyNzA1NDA4MDgsMTAyNDoyNjg0NDM2NDgsMTI4MDoyMDk3MTUyLDE1MzY6MjA5NzE2MCwxNzkyOjI2ODQzNTQ1NiwyMDQ4OjAsMjMwNDoyNjg0NDM2NTYsMjU2MDoyMTA1MzQ0LDI4MTY6OCwzMDcyOjI3MDUzMjYxNiwzMzI4OjIxMDUzNTIsMzU4NDo4MjAwLDM4NDA6MjcwNTQwODAwLDEyODoyNzA1MzI2MDgsMzg0OjI3MDU0MDgwOCw2NDA6OCw4OTY6MjA5NzE1MiwxMTUyOjIxMDUzNTIsMTQwODoyNjg0MzU0NjQsMTY2NDoyNjg0NDM2NDgsMTkyMDo4MjAwLDIxNzY6MjA5NzE2MCwyNDMyOjgxOTIsMjY4ODoyNjg0NDM2NTYsMjk0NDoyNzA1MzI2MTYsMzIwMDowLDM0NTY6MjcwNTQwODAwLDM3MTI6MjEwNTM0NCwzOTY4OjI2ODQzNTQ1Niw0MDk2OjI2ODQ0MzY0OCw0MzUyOjI3MDUzMjYxNiw0NjA4OjI3MDU0MDgwOCw0ODY0OjgyMDAsNTEyMDoyMDk3MTUyLDUzNzY6MjY4NDM1NDU2LDU2MzI6MjY4NDM1NDY0LDU4ODg6MjEwNTM0NCw2MTQ0OjIxMDUzNTIsNjQwMDowLDY2NTY6OCw2OTEyOjI3MDUzMjYwOCw3MTY4OjgxOTIsNzQyNDoyNjg0NDM2NTYsNzY4MDoyNzA1NDA4MDAsNzkzNjoyMDk3MTYwLDQyMjQ6OCw0NDgwOjIxMDUzNDQsNDczNjoyMDk3MTUyLDQ5OTI6MjY4NDM1NDY0LDUyNDg6MjY4NDQzNjQ4LDU1MDQ6ODIwMCw1NzYwOjI3MDU0MDgwOCw2MDE2OjI3MDUzMjYwOCw2MjcyOjI3MDU0MDgwMCw2NTI4OjI3MDUzMjYxNiw2Nzg0OjgxOTIsNzA0MDoyMTA1MzUyLDcyOTY6MjA5NzE2MCw3NTUyOjAsNzgwODoyNjg0MzU0NTYsODA2NDoyNjg0NDM2NTZ9LHswOjEwNDg1NzYsMTY6MzM1NTU0NTcsMzI6MTAyNCw0ODoxMDQ5NjAxLDY0OjM0NjA0MDMzLDgwOjAsOTY6MSwxMTI6MzQ2MDMwMDksMTI4OjMzNTU1NDU2LDE0NDoxMDQ4NTc3LDE2MDozMzU1NDQzMywxNzY6MzQ2MDQwMzIsMTkyOjM0NjAzMDA4LDIwODoxMDI1LDIyNDoxMDQ5NjAwLDI0MDozMzU1NDQzMiw4OjM0NjAzMDA5LDI0OjAsNDA6MzM1NTU0NTcsNTY6MzQ2MDQwMzIsNzI6MTA0ODU3Niw4ODozMzU1NDQzMywxMDQ6MzM1NTQ0MzIsMTIwOjEwMjUsMTM2OjEwNDk2MDEsMTUyOjMzNTU1NDU2LDE2ODozNDYwMzAwOCwxODQ6MTA0ODU3NywyMDA6MTAyNCwyMTY6MzQ2MDQwMzMsMjMyOjEsMjQ4OjEwNDk2MDAsMjU2OjMzNTU0NDMyLDI3MjoxMDQ4NTc2LDI4ODozMzU1NTQ1NywzMDQ6MzQ2MDMwMDksMzIwOjEwNDg1NzcsMzM2OjMzNTU1NDU2LDM1MjozNDYwNDAzMiwzNjg6MTA0OTYwMSwzODQ6MTAyNSw0MDA6MzQ2MDQwMzMsNDE2OjEwNDk2MDAsNDMyOjEsNDQ4OjAsNDY0OjM0NjAzMDA4LDQ4MDozMzU1NDQzMyw0OTY6MTAyNCwyNjQ6MTA0OTYwMCwyODA6MzM1NTU0NTcsMjk2OjM0NjAzMDA5LDMxMjoxLDMyODozMzU1NDQzMiwzNDQ6MTA0ODU3NiwzNjA6MTAyNSwzNzY6MzQ2MDQwMzIsMzkyOjMzNTU0NDMzLDQwODozNDYwMzAwOCw0MjQ6MCw0NDA6MzQ2MDQwMzMsNDU2OjEwNDk2MDEsNDcyOjEwMjQsNDg4OjMzNTU1NDU2LDUwNDoxMDQ4NTc3fSx7MDoxMzQyMTk4MDgsMToxMzEwNzIsMjoxMzQyMTc3MjgsMzozMiw0OjEzMTEwNCw1OjEzNDM1MDg4MCw2OjEzNDM1MDg0OCw3OjIwNDgsODoxMzQzNDg4MDAsOToxMzQyMTk3NzYsMTA6MTMzMTIwLDExOjEzNDM0ODgzMiwxMjoyMDgwLDEzOjAsMTQ6MTM0MjE3NzYwLDE1OjEzMzE1MiwyMTQ3NDgzNjQ4OjIwNDgsMjE0NzQ4MzY0OToxMzQzNTA4ODAsMjE0NzQ4MzY1MDoxMzQyMTk4MDgsMjE0NzQ4MzY1MToxMzQyMTc3MjgsMjE0NzQ4MzY1MjoxMzQzNDg4MDAsMjE0NzQ4MzY1MzoxMzMxMjAsMjE0NzQ4MzY1NDoxMzMxNTIsMjE0NzQ4MzY1NTozMiwyMTQ3NDgzNjU2OjEzNDIxNzc2MCwyMTQ3NDgzNjU3OjIwODAsMjE0NzQ4MzY1ODoxMzExMDQsMjE0NzQ4MzY1OToxMzQzNTA4NDgsMjE0NzQ4MzY2MDowLDIxNDc0ODM2NjE6MTM0MzQ4ODMyLDIxNDc0ODM2NjI6MTM0MjE5Nzc2LDIxNDc0ODM2NjM6MTMxMDcyLDE2OjEzMzE1MiwxNzoxMzQzNTA4NDgsMTg6MzIsMTk6MjA0OCwyMDoxMzQyMTk3NzYsMjE6MTM0MjE3NzYwLDIyOjEzNDM0ODgzMiwyMzoxMzEwNzIsMjQ6MCwyNToxMzExMDQsMjY6MTM0MzQ4ODAwLDI3OjEzNDIxOTgwOCwyODoxMzQzNTA4ODAsMjk6MTMzMTIwLDMwOjIwODAsMzE6MTM0MjE3NzI4LDIxNDc0ODM2NjQ6MTMxMDcyLDIxNDc0ODM2NjU6MjA0OCwyMTQ3NDgzNjY2OjEzNDM0ODgzMiwyMTQ3NDgzNjY3OjEzMzE1MiwyMTQ3NDgzNjY4OjMyLDIxNDc0ODM2Njk6MTM0MzQ4ODAwLDIxNDc0ODM2NzA6MTM0MjE3NzI4LDIxNDc0ODM2NzE6MTM0MjE5ODA4LDIxNDc0ODM2NzI6MTM0MzUwODgwLDIxNDc0ODM2NzM6MTM0MjE3NzYwLDIxNDc0ODM2NzQ6MTM0MjE5Nzc2LDIxNDc0ODM2NzU6MCwyMTQ3NDgzNjc2OjEzMzEyMCwyMTQ3NDgzNjc3OjIwODAsMjE0NzQ4MzY3ODoxMzExMDQsMjE0NzQ4MzY3OToxMzQzNTA4NDh9XSx1PVs0MTYwNzQ5NTY5LDUyODQ4MjMwNCwzMzAzMDE0NCwyMDY0Mzg0LDEyOTAyNCw4MDY0LDUwNCwyMTQ3NDgzNjc5XSxkPWEuREVTPXMuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkscj10LndvcmRzLGU9W10saT0wO2k8NTY7aSsrKXt2YXIgbj1jW2ldLTE7ZVtpXT1yW24+Pj41XT4+PjMxLW4lMzImMX1mb3IodmFyIG89dGhpcy5fc3ViS2V5cz1bXSxzPTA7czwxNjtzKyspe2Zvcih2YXIgYT1vW3NdPVtdLGY9bFtzXSxpPTA7aTwyNDtpKyspYVtpLzZ8MF18PWVbKGhbaV0tMStmKSUyOF08PDMxLWklNixhWzQrKGkvNnwwKV18PWVbMjgrKGhbaSsyNF0tMStmKSUyOF08PDMxLWklNjthWzBdPWFbMF08PDF8YVswXT4+PjMxO2Zvcih2YXIgaT0xO2k8NztpKyspYVtpXT1hW2ldPj4+NCooaS0xKSszO2FbN109YVs3XTw8NXxhWzddPj4+Mjd9Zm9yKHZhciB1PXRoaXMuX2ludlN1YktleXM9W10saT0wO2k8MTY7aSsrKXVbaV09b1sxNS1pXX0sZW5jcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9zdWJLZXlzKX0sZGVjcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9pbnZTdWJLZXlzKX0sX2RvQ3J5cHRCbG9jazpmdW5jdGlvbih0LGksbil7dGhpcy5fbEJsb2NrPXRbaV0sdGhpcy5fckJsb2NrPXRbaSsxXSxyLmNhbGwodGhpcyw0LDI1MjY0NTEzNSksci5jYWxsKHRoaXMsMTYsNjU1MzUpLGUuY2FsbCh0aGlzLDIsODU4OTkzNDU5KSxlLmNhbGwodGhpcyw4LDE2NzExOTM1KSxyLmNhbGwodGhpcywxLDE0MzE2NTU3NjUpO2Zvcih2YXIgbz0wO288MTY7bysrKXtmb3IodmFyIHM9bltvXSxhPXRoaXMuX2xCbG9jayxjPXRoaXMuX3JCbG9jayxoPTAsbD0wO2w8ODtsKyspaHw9ZltsXVsoKGNec1tsXSkmdVtsXSk+Pj4wXTt0aGlzLl9sQmxvY2s9Yyx0aGlzLl9yQmxvY2s9YV5ofXZhciBkPXRoaXMuX2xCbG9jazt0aGlzLl9sQmxvY2s9dGhpcy5fckJsb2NrLHRoaXMuX3JCbG9jaz1kLHIuY2FsbCh0aGlzLDEsMTQzMTY1NTc2NSksZS5jYWxsKHRoaXMsOCwxNjcxMTkzNSksZS5jYWxsKHRoaXMsMiw4NTg5OTM0NTkpLHIuY2FsbCh0aGlzLDE2LDY1NTM1KSxyLmNhbGwodGhpcyw0LDI1MjY0NTEzNSksdFtpXT10aGlzLl9sQmxvY2ssdFtpKzFdPXRoaXMuX3JCbG9ja30sa2V5U2l6ZToyLGl2U2l6ZToyLGJsb2NrU2l6ZToyfSk7aS5ERVM9cy5fY3JlYXRlSGVscGVyKGQpO3ZhciB2PWEuVHJpcGxlREVTPXMuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2tleSxyPXQud29yZHM7dGhpcy5fZGVzMT1kLmNyZWF0ZUVuY3J5cHRvcihvLmNyZWF0ZShyLnNsaWNlKDAsMikpKSx0aGlzLl9kZXMyPWQuY3JlYXRlRW5jcnlwdG9yKG8uY3JlYXRlKHIuc2xpY2UoMiw0KSkpLHRoaXMuX2RlczM9ZC5jcmVhdGVFbmNyeXB0b3Ioby5jcmVhdGUoci5zbGljZSg0LDYpKSl9LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2RlczEuZW5jcnlwdEJsb2NrKHQsciksdGhpcy5fZGVzMi5kZWNyeXB0QmxvY2sodCxyKSx0aGlzLl9kZXMzLmVuY3J5cHRCbG9jayh0LHIpfSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9kZXMzLmRlY3J5cHRCbG9jayh0LHIpLHRoaXMuX2RlczIuZW5jcnlwdEJsb2NrKHQsciksdGhpcy5fZGVzMS5kZWNyeXB0QmxvY2sodCxyKX0sa2V5U2l6ZTo2LGl2U2l6ZToyLGJsb2NrU2l6ZToyfSk7aS5UcmlwbGVERVM9cy5fY3JlYXRlSGVscGVyKHYpfSgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcigpe2Zvcih2YXIgdD10aGlzLl9TLHI9dGhpcy5faSxlPXRoaXMuX2osaT0wLG49MDtuPDQ7bisrKXtyPShyKzEpJTI1NixlPShlK3Rbcl0pJTI1Njt2YXIgbz10W3JdO3Rbcl09dFtlXSx0W2VdPW8saXw9dFsodFtyXSt0W2VdKSUyNTZdPDwyNC04Km59cmV0dXJuIHRoaXMuX2k9cix0aGlzLl9qPWUsaX12YXIgZT10LGk9ZS5saWIsbj1pLlN0cmVhbUNpcGhlcixvPWUuYWxnbyxzPW8uUkM0PW4uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkscj10LndvcmRzLGU9dC5zaWdCeXRlcyxpPXRoaXMuX1M9W10sbj0wO248MjU2O24rKylpW25dPW47Zm9yKHZhciBuPTAsbz0wO248MjU2O24rKyl7dmFyIHM9biVlLGE9cltzPj4+Ml0+Pj4yNC1zJTQqOCYyNTU7bz0obytpW25dK2EpJTI1Njt2YXIgYz1pW25dO2lbbl09aVtvXSxpW29dPWN9dGhpcy5faT10aGlzLl9qPTB9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3RbZV1ePXIuY2FsbCh0aGlzKX0sa2V5U2l6ZTo4LGl2U2l6ZTowfSk7ZS5SQzQ9bi5fY3JlYXRlSGVscGVyKHMpO3ZhciBhPW8uUkM0RHJvcD1zLmV4dGVuZCh7Y2ZnOnMuY2ZnLmV4dGVuZCh7ZHJvcDoxOTJ9KSxfZG9SZXNldDpmdW5jdGlvbigpe3MuX2RvUmVzZXQuY2FsbCh0aGlzKTtmb3IodmFyIHQ9dGhpcy5jZmcuZHJvcDt0PjA7dC0tKXIuY2FsbCh0aGlzKX19KTtlLlJDNERyb3A9bi5fY3JlYXRlSGVscGVyKGEpfSgpLHQubW9kZS5DVFJHbGFkbWFuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0KXtpZigyNTU9PT0odD4+MjQmMjU1KSl7dmFyIHI9dD4+MTYmMjU1LGU9dD4+OCYyNTUsaT0yNTUmdDsyNTU9PT1yPyhyPTAsMjU1PT09ZT8oZT0wLDI1NT09PWk/aT0wOisraSk6KytlKTorK3IsdD0wLHQrPXI8PDE2LHQrPWU8PDgsdCs9aX1lbHNlIHQrPTE8PDI0O3JldHVybiB0fWZ1bmN0aW9uIGUodCl7cmV0dXJuIDA9PT0odFswXT1yKHRbMF0pKSYmKHRbMV09cih0WzFdKSksdH12YXIgaT10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksbj1pLkVuY3J5cHRvcj1pLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGk9dGhpcy5fY2lwaGVyLG49aS5ibG9ja1NpemUsbz10aGlzLl9pdixzPXRoaXMuX2NvdW50ZXI7byYmKHM9dGhpcy5fY291bnRlcj1vLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCksZShzKTt2YXIgYT1zLnNsaWNlKDApO2kuZW5jcnlwdEJsb2NrKGEsMCk7Zm9yKHZhciBjPTA7YzxuO2MrKyl0W3IrY11ePWFbY119fSk7cmV0dXJuIGkuRGVjcnlwdG9yPW4saX0oKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIoKXtmb3IodmFyIHQ9dGhpcy5fWCxyPXRoaXMuX0MsZT0wO2U8ODtlKyspYVtlXT1yW2VdO3JbMF09clswXSsxMjk1MzA3NTk3K3RoaXMuX2J8MCxyWzFdPXJbMV0rMzU0NTA1MjM3MSsoclswXT4+PjA8YVswXT4+PjA/MTowKXwwLHJbMl09clsyXSs4ODYyNjMwOTIrKHJbMV0+Pj4wPGFbMV0+Pj4wPzE6MCl8MCxyWzNdPXJbM10rMTI5NTMwNzU5NysoclsyXT4+PjA8YVsyXT4+PjA/MTowKXwwLHJbNF09cls0XSszNTQ1MDUyMzcxKyhyWzNdPj4+MDxhWzNdPj4+MD8xOjApfDAscls1XT1yWzVdKzg4NjI2MzA5Misocls0XT4+PjA8YVs0XT4+PjA/MTowKXwwLHJbNl09cls2XSsxMjk1MzA3NTk3KyhyWzVdPj4+MDxhWzVdPj4+MD8xOjApfDAscls3XT1yWzddKzM1NDUwNTIzNzErKHJbNl0+Pj4wPGFbNl0+Pj4wPzE6MCl8MCx0aGlzLl9iPXJbN10+Pj4wPGFbN10+Pj4wPzE6MDtmb3IodmFyIGU9MDtlPDg7ZSsrKXt2YXIgaT10W2VdK3JbZV0sbj02NTUzNSZpLG89aT4+PjE2LHM9KChuKm4+Pj4xNykrbipvPj4+MTUpK28qbyxoPSgoNDI5NDkwMTc2MCZpKSppfDApKygoNjU1MzUmaSkqaXwwKTtjW2VdPXNeaH10WzBdPWNbMF0rKGNbN108PDE2fGNbN10+Pj4xNikrKGNbNl08PDE2fGNbNl0+Pj4xNil8MCx0WzFdPWNbMV0rKGNbMF08PDh8Y1swXT4+PjI0KStjWzddfDAsdFsyXT1jWzJdKyhjWzFdPDwxNnxjWzFdPj4+MTYpKyhjWzBdPDwxNnxjWzBdPj4+MTYpfDAsdFszXT1jWzNdKyhjWzJdPDw4fGNbMl0+Pj4yNCkrY1sxXXwwLHRbNF09Y1s0XSsoY1szXTw8MTZ8Y1szXT4+PjE2KSsoY1syXTw8MTZ8Y1syXT4+PjE2KXwwLHRbNV09Y1s1XSsoY1s0XTw8OHxjWzRdPj4+MjQpK2NbM118MCx0WzZdPWNbNl0rKGNbNV08PDE2fGNbNV0+Pj4xNikrKGNbNF08PDE2fGNbNF0+Pj4xNil8MCx0WzddPWNbN10rKGNbNl08PDh8Y1s2XT4+PjI0KStjWzVdfDB9dmFyIGU9dCxpPWUubGliLG49aS5TdHJlYW1DaXBoZXIsbz1lLmFsZ28scz1bXSxhPVtdLGM9W10saD1vLlJhYmJpdD1uLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9dGhpcy5jZmcuaXYsaT0wO2k8NDtpKyspdFtpXT0xNjcxMTkzNSYodFtpXTw8OHx0W2ldPj4+MjQpfDQyNzgyNTUzNjAmKHRbaV08PDI0fHRbaV0+Pj44KTt2YXIgbj10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbz10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dO3RoaXMuX2I9MDtmb3IodmFyIGk9MDtpPDQ7aSsrKXIuY2FsbCh0aGlzKTtmb3IodmFyIGk9MDtpPDg7aSsrKW9baV1ePW5baSs0JjddO2lmKGUpe3ZhciBzPWUud29yZHMsYT1zWzBdLGM9c1sxXSxoPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpLGw9MTY3MTE5MzUmKGM8PDh8Yz4+PjI0KXw0Mjc4MjU1MzYwJihjPDwyNHxjPj4+OCksZj1oPj4+MTZ8NDI5NDkwMTc2MCZsLHU9bDw8MTZ8NjU1MzUmaDtvWzBdXj1oLG9bMV1ePWYsb1syXV49bCxvWzNdXj11LG9bNF1ePWgsb1s1XV49ZixvWzZdXj1sLG9bN11ePXU7Zm9yKHZhciBpPTA7aTw0O2krKylyLmNhbGwodGhpcyl9fSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl9YO3IuY2FsbCh0aGlzKSxzWzBdPWlbMF1eaVs1XT4+PjE2XmlbM108PDE2LHNbMV09aVsyXV5pWzddPj4+MTZeaVs1XTw8MTYsc1syXT1pWzRdXmlbMV0+Pj4xNl5pWzddPDwxNixzWzNdPWlbNl1eaVszXT4+PjE2XmlbMV08PDE2O2Zvcih2YXIgbj0wO248NDtuKyspc1tuXT0xNjcxMTkzNSYoc1tuXTw8OHxzW25dPj4+MjQpfDQyNzgyNTUzNjAmKHNbbl08PDI0fHNbbl0+Pj44KSx0W2Urbl1ePXNbbl19LGJsb2NrU2l6ZTo0LGl2U2l6ZToyfSk7ZS5SYWJiaXQ9bi5fY3JlYXRlSGVscGVyKGgpfSgpLHQubW9kZS5DVFI9ZnVuY3Rpb24oKXt2YXIgcj10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksZT1yLkVuY3J5cHRvcj1yLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fY2lwaGVyLGk9ZS5ibG9ja1NpemUsbj10aGlzLl9pdixvPXRoaXMuX2NvdW50ZXI7biYmKG89dGhpcy5fY291bnRlcj1uLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCk7dmFyIHM9by5zbGljZSgwKTtlLmVuY3J5cHRCbG9jayhzLDApLG9baS0xXT1vW2ktMV0rMXwwO2Zvcih2YXIgYT0wO2E8aTthKyspdFtyK2FdXj1zW2FdfX0pO3JldHVybiByLkRlY3J5cHRvcj1lLHJ9KCksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7Zm9yKHZhciB0PXRoaXMuX1gscj10aGlzLl9DLGU9MDtlPDg7ZSsrKWFbZV09cltlXTtyWzBdPXJbMF0rMTI5NTMwNzU5Nyt0aGlzLl9ifDAsclsxXT1yWzFdKzM1NDUwNTIzNzErKHJbMF0+Pj4wPGFbMF0+Pj4wPzE6MCl8MCxyWzJdPXJbMl0rODg2MjYzMDkyKyhyWzFdPj4+MDxhWzFdPj4+MD8xOjApfDAsclszXT1yWzNdKzEyOTUzMDc1OTcrKHJbMl0+Pj4wPGFbMl0+Pj4wPzE6MCl8MCxyWzRdPXJbNF0rMzU0NTA1MjM3MSsoclszXT4+PjA8YVszXT4+PjA/MTowKXwwLHJbNV09cls1XSs4ODYyNjMwOTIrKHJbNF0+Pj4wPGFbNF0+Pj4wPzE6MCl8MCxyWzZdPXJbNl0rMTI5NTMwNzU5Nysocls1XT4+PjA8YVs1XT4+PjA/MTowKXwwLHJbN109cls3XSszNTQ1MDUyMzcxKyhyWzZdPj4+MDxhWzZdPj4+MD8xOjApfDAsdGhpcy5fYj1yWzddPj4+MDxhWzddPj4+MD8xOjA7Zm9yKHZhciBlPTA7ZTw4O2UrKyl7dmFyIGk9dFtlXStyW2VdLG49NjU1MzUmaSxvPWk+Pj4xNixzPSgobipuPj4+MTcpK24qbz4+PjE1KStvKm8saD0oKDQyOTQ5MDE3NjAmaSkqaXwwKSsoKDY1NTM1JmkpKml8MCk7Y1tlXT1zXmh9dFswXT1jWzBdKyhjWzddPDwxNnxjWzddPj4+MTYpKyhjWzZdPDwxNnxjWzZdPj4+MTYpfDAsdFsxXT1jWzFdKyhjWzBdPDw4fGNbMF0+Pj4yNCkrY1s3XXwwLHRbMl09Y1syXSsoY1sxXTw8MTZ8Y1sxXT4+PjE2KSsoY1swXTw8MTZ8Y1swXT4+PjE2KXwwLHRbM109Y1szXSsoY1syXTw8OHxjWzJdPj4+MjQpK2NbMV18MCx0WzRdPWNbNF0rKGNbM108PDE2fGNbM10+Pj4xNikrKGNbMl08PDE2fGNbMl0+Pj4xNil8MCx0WzVdPWNbNV0rKGNbNF08PDh8Y1s0XT4+PjI0KStjWzNdfDAsdFs2XT1jWzZdKyhjWzVdPDwxNnxjWzVdPj4+MTYpKyhjWzRdPDwxNnxjWzRdPj4+MTYpfDAsdFs3XT1jWzddKyhjWzZdPDw4fGNbNl0+Pj4yNCkrY1s1XXwwfXZhciBlPXQsaT1lLmxpYixuPWkuU3RyZWFtQ2lwaGVyLG89ZS5hbGdvLHM9W10sYT1bXSxjPVtdLGg9by5SYWJiaXRMZWdhY3k9bi5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9dGhpcy5jZmcuaXYsaT10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbj10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dO3RoaXMuX2I9MDtmb3IodmFyIG89MDtvPDQ7bysrKXIuY2FsbCh0aGlzKTtmb3IodmFyIG89MDtvPDg7bysrKW5bb11ePWlbbys0JjddO2lmKGUpe3ZhciBzPWUud29yZHMsYT1zWzBdLGM9c1sxXSxoPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpLGw9MTY3MTE5MzUmKGM8PDh8Yz4+PjI0KXw0Mjc4MjU1MzYwJihjPDwyNHxjPj4+OCksZj1oPj4+MTZ8NDI5NDkwMTc2MCZsLHU9bDw8MTZ8NjU1MzUmaDtuWzBdXj1oLG5bMV1ePWYsblsyXV49bCxuWzNdXj11LG5bNF1ePWgsbls1XV49ZixuWzZdXj1sLG5bN11ePXU7Zm9yKHZhciBvPTA7bzw0O28rKylyLmNhbGwodGhpcyl9fSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl9YO3IuY2FsbCh0aGlzKSxzWzBdPWlbMF1eaVs1XT4+PjE2XmlbM108PDE2LHNbMV09aVsyXV5pWzddPj4+MTZeaVs1XTw8MTYsc1syXT1pWzRdXmlbMV0+Pj4xNl5pWzddPDwxNixzWzNdPWlbNl1eaVszXT4+PjE2XmlbMV08PDE2O2Zvcih2YXIgbj0wO248NDtuKyspc1tuXT0xNjcxMTkzNSYoc1tuXTw8OHxzW25dPj4+MjQpfDQyNzgyNTUzNjAmKHNbbl08PDI0fHNbbl0+Pj44KSx0W2Urbl1ePXNbbl19LGJsb2NrU2l6ZTo0LGl2U2l6ZToyfSk7ZS5SYWJiaXRMZWdhY3k9bi5fY3JlYXRlSGVscGVyKGgpfSgpLHQucGFkLlplcm9QYWRkaW5nPXtwYWQ6ZnVuY3Rpb24odCxyKXt2YXIgZT00KnI7dC5jbGFtcCgpLHQuc2lnQnl0ZXMrPWUtKHQuc2lnQnl0ZXMlZXx8ZSl9LHVucGFkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10LndvcmRzLGU9dC5zaWdCeXRlcy0xOyEocltlPj4+Ml0+Pj4yNC1lJTQqOCYyNTUpOyllLS07dC5zaWdCeXRlcz1lKzF9fSx0fSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcnlwdG8tanMubWluLmpzLm1hcCJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENyeXB0b1xcY3J5cHRvLWpzLm1pbi5qcyJdLCJuYW1lcyI6WyJ0IiwiciIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJDcnlwdG9KUyIsImUiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm90b3R5cGUiLCJpIiwibiIsImxpYiIsIm8iLCJCYXNlIiwiZXh0ZW5kIiwibWl4SW4iLCJoYXNPd25Qcm9wZXJ0eSIsImluaXQiLCIkc3VwZXIiLCJhcHBseSIsImFyZ3VtZW50cyIsInRvU3RyaW5nIiwiY2xvbmUiLCJzIiwiV29yZEFycmF5Iiwid29yZHMiLCJzaWdCeXRlcyIsImxlbmd0aCIsImMiLCJzdHJpbmdpZnkiLCJjb25jYXQiLCJjbGFtcCIsImNlaWwiLCJjYWxsIiwic2xpY2UiLCJyYW5kb20iLCJhIiwicHVzaCIsImVuYyIsIkhleCIsImpvaW4iLCJwYXJzZSIsInBhcnNlSW50Iiwic3Vic3RyIiwiaCIsIkxhdGluMSIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsImNoYXJDb2RlQXQiLCJsIiwiVXRmOCIsImRlY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsIkVycm9yIiwidW5lc2NhcGUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJmIiwiQnVmZmVyZWRCbG9ja0FsZ29yaXRobSIsInJlc2V0IiwiX2RhdGEiLCJfbkRhdGFCeXRlcyIsIl9hcHBlbmQiLCJfcHJvY2VzcyIsImJsb2NrU2l6ZSIsIm1heCIsIl9taW5CdWZmZXJTaXplIiwibWluIiwiX2RvUHJvY2Vzc0Jsb2NrIiwidSIsInNwbGljZSIsIkhhc2hlciIsImNmZyIsIl9kb1Jlc2V0IiwidXBkYXRlIiwiZmluYWxpemUiLCJfZG9GaW5hbGl6ZSIsIl9jcmVhdGVIZWxwZXIiLCJfY3JlYXRlSG1hY0hlbHBlciIsIkhNQUMiLCJhbGdvIiwiTWF0aCIsIkJhc2U2NCIsIl9tYXAiLCJjaGFyQXQiLCJfcmV2ZXJzZU1hcCIsImluZGV4T2YiLCJhYnMiLCJzaW4iLCJNRDUiLCJfaGFzaCIsImQiLCJ2IiwicCIsIl8iLCJ5IiwiZyIsIkIiLCJ3IiwiayIsIlMiLCJtIiwieCIsImIiLCJIIiwieiIsIkEiLCJDIiwiRCIsImZsb29yIiwiSG1hY01ENSIsIlNIQTEiLCJIbWFjU0hBMSIsInNxcnQiLCJwb3ciLCJTSEEyNTYiLCJIbWFjU0hBMjU2IiwiVXRmMTYiLCJVdGYxNkJFIiwiVXRmMTZMRSIsIkFycmF5QnVmZmVyIiwiVWludDhBcnJheSIsIkludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiSW50MTZBcnJheSIsIlVpbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIlVpbnQzMkFycmF5IiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiYnVmZmVyIiwiYnl0ZU9mZnNldCIsImJ5dGVMZW5ndGgiLCJSSVBFTUQxNjAiLCJSIiwiRSIsIk0iLCJGIiwiSG1hY1JJUEVNRDE2MCIsIl9oYXNoZXIiLCJfb0tleSIsIl9pS2V5IiwiUEJLREYyIiwia2V5U2l6ZSIsImhhc2hlciIsIml0ZXJhdGlvbnMiLCJjb21wdXRlIiwiRXZwS0RGIiwiU0hBMjI0IiwiSG1hY1NIQTIyNCIsIng2NCIsIldvcmQiLCJoaWdoIiwibG93IiwidG9YMzIiLCJTSEEzIiwib3V0cHV0TGVuZ3RoIiwiX3N0YXRlIiwiSG1hY1NIQTMiLCJTSEE1MTIiLCJQIiwiVyIsIk8iLCJVIiwiSSIsIksiLCJYIiwiTCIsImoiLCJOIiwiVCIsIloiLCJxIiwiRyIsIkoiLCIkIiwiUSIsIlYiLCJZIiwidHQiLCJydCIsImV0IiwiaXQiLCJudCIsIm90Iiwic3QiLCJhdCIsImN0IiwiaHQiLCJsdCIsImZ0IiwidXQiLCJkdCIsInZ0IiwicHQiLCJfdCIsInl0IiwiZ3QiLCJCdCIsInd0Iiwia3QiLCJTdCIsIm10IiwieHQiLCJidCIsIkhtYWNTSEE1MTIiLCJTSEEzODQiLCJIbWFjU0hBMzg0IiwiQ2lwaGVyIiwiY3JlYXRlRW5jcnlwdG9yIiwiX0VOQ19YRk9STV9NT0RFIiwiY3JlYXRlRGVjcnlwdG9yIiwiX0RFQ19YRk9STV9NT0RFIiwiX3hmb3JtTW9kZSIsIl9rZXkiLCJwcm9jZXNzIiwiaXZTaXplIiwiZW5jcnlwdCIsImRlY3J5cHQiLCJTdHJlYW1DaXBoZXIiLCJtb2RlIiwiQmxvY2tDaXBoZXJNb2RlIiwiRW5jcnlwdG9yIiwiRGVjcnlwdG9yIiwiX2NpcGhlciIsIl9pdiIsIkNCQyIsIl9wcmV2QmxvY2siLCJwcm9jZXNzQmxvY2siLCJlbmNyeXB0QmxvY2siLCJkZWNyeXB0QmxvY2siLCJwYWQiLCJQa2NzNyIsInVucGFkIiwiQmxvY2tDaXBoZXIiLCJwYWRkaW5nIiwiaXYiLCJfbW9kZSIsIl9fY3JlYXRvciIsIkNpcGhlclBhcmFtcyIsImZvcm1hdHRlciIsImZvcm1hdCIsIk9wZW5TU0wiLCJjaXBoZXJ0ZXh0Iiwic2FsdCIsIlNlcmlhbGl6YWJsZUNpcGhlciIsImtleSIsImFsZ29yaXRobSIsIl9wYXJzZSIsImtkZiIsImV4ZWN1dGUiLCJQYXNzd29yZEJhc2VkQ2lwaGVyIiwiQ0ZCIiwiRUNCIiwiQW5zaVg5MjMiLCJJc28xMDEyNiIsIklzbzk3OTcxIiwiWmVyb1BhZGRpbmciLCJPRkIiLCJfa2V5c3RyZWFtIiwiTm9QYWRkaW5nIiwiQUVTIiwiX25Sb3VuZHMiLCJfa2V5UHJpb3JSZXNldCIsIl9rZXlTY2hlZHVsZSIsIl9pbnZLZXlTY2hlZHVsZSIsIl9kb0NyeXB0QmxvY2siLCJfbEJsb2NrIiwiX3JCbG9jayIsIkRFUyIsIl9zdWJLZXlzIiwiX2ludlN1YktleXMiLCJUcmlwbGVERVMiLCJfZGVzMSIsIl9kZXMyIiwiX2RlczMiLCJfUyIsIl9pIiwiX2oiLCJSQzQiLCJSQzREcm9wIiwiZHJvcCIsIkNUUkdsYWRtYW4iLCJfY291bnRlciIsIl9YIiwiX0MiLCJfYiIsIlJhYmJpdCIsIkNUUiIsIlJhYmJpdExlZ2FjeSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxDQUFDLFVBQVNBLENBQUMsRUFBQ0MsQ0FBQyxFQUFDO0VBQUMsUUFBUSxJQUFFLE9BQU9DLE9BQU8sR0FBQ0MsTUFBTSxDQUFDRCxPQUFPLEdBQUNBLE9BQU8sR0FBQ0QsQ0FBQyxFQUFFLEdBQUMsVUFBVSxJQUFFLE9BQU9HLE1BQU0sSUFBRUEsTUFBTSxDQUFDQyxHQUFHLEdBQUNELE1BQU0sQ0FBQyxFQUFFLEVBQUNILENBQUMsQ0FBQyxHQUFDRCxDQUFDLENBQUNNLFFBQVEsR0FBQ0wsQ0FBQyxFQUFFO0FBQUEsQ0FBQyxTQUFNLFlBQVU7RUFBQyxJQUFJRCxDQUFDLEdBQUNBLENBQUMsSUFBRSxVQUFTQSxDQUFDLEVBQUNDLENBQUMsRUFBQztJQUFDLElBQUlNLENBQUMsR0FBQ0MsTUFBTSxDQUFDQyxNQUFNLElBQUUsWUFBVTtRQUFDLFNBQVNULENBQUNBLENBQUEsRUFBRSxDQUFDO1FBQUMsT0FBTyxVQUFTQyxDQUFDLEVBQUM7VUFBQyxJQUFJTSxDQUFDO1VBQUMsT0FBT1AsQ0FBQyxDQUFDVSxTQUFTLEdBQUNULENBQUMsRUFBQ00sQ0FBQyxHQUFDLElBQUlQLENBQUMsSUFBQ0EsQ0FBQyxDQUFDVSxTQUFTLEdBQUMsSUFBSSxFQUFDSCxDQUFDO1FBQUEsQ0FBQztNQUFBLENBQUMsRUFBRTtNQUFDSSxDQUFDLEdBQUMsQ0FBQyxDQUFDO01BQUNDLENBQUMsR0FBQ0QsQ0FBQyxDQUFDRSxHQUFHLEdBQUMsQ0FBQyxDQUFDO01BQUNDLENBQUMsR0FBQ0YsQ0FBQyxDQUFDRyxJQUFJLEdBQUMsWUFBVTtRQUFDLE9BQU07VUFBQ0MsTUFBTSxFQUFDLFNBQUFBLE9BQVNoQixDQUFDLEVBQUM7WUFBQyxJQUFJQyxDQUFDLEdBQUNNLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFBQyxPQUFPUCxDQUFDLElBQUVDLENBQUMsQ0FBQ2dCLEtBQUssQ0FBQ2pCLENBQUMsQ0FBQyxFQUFDQyxDQUFDLENBQUNpQixjQUFjLENBQUMsTUFBTSxDQUFDLElBQUUsSUFBSSxDQUFDQyxJQUFJLEtBQUdsQixDQUFDLENBQUNrQixJQUFJLEtBQUdsQixDQUFDLENBQUNrQixJQUFJLEdBQUMsWUFBVTtjQUFDbEIsQ0FBQyxDQUFDbUIsTUFBTSxDQUFDRCxJQUFJLENBQUNFLEtBQUssQ0FBQyxJQUFJLEVBQUNDLFNBQVMsQ0FBQztZQUFBLENBQUMsQ0FBQyxFQUFDckIsQ0FBQyxDQUFDa0IsSUFBSSxDQUFDVCxTQUFTLEdBQUNULENBQUMsRUFBQ0EsQ0FBQyxDQUFDbUIsTUFBTSxHQUFDLElBQUksRUFBQ25CLENBQUM7VUFBQSxDQUFDO1VBQUNRLE1BQU0sRUFBQyxTQUFBQSxPQUFBLEVBQVU7WUFBQyxJQUFJVCxDQUFDLEdBQUMsSUFBSSxDQUFDZ0IsTUFBTSxFQUFFO1lBQUMsT0FBT2hCLENBQUMsQ0FBQ21CLElBQUksQ0FBQ0UsS0FBSyxDQUFDckIsQ0FBQyxFQUFDc0IsU0FBUyxDQUFDLEVBQUN0QixDQUFDO1VBQUEsQ0FBQztVQUFDbUIsSUFBSSxFQUFDLFNBQUFBLEtBQUEsRUFBVSxDQUFDLENBQUM7VUFBQ0YsS0FBSyxFQUFDLFNBQUFBLE1BQVNqQixDQUFDLEVBQUM7WUFBQyxLQUFJLElBQUlDLENBQUMsSUFBSUQsQ0FBQyxFQUFDQSxDQUFDLENBQUNrQixjQUFjLENBQUNqQixDQUFDLENBQUMsS0FBRyxJQUFJLENBQUNBLENBQUMsQ0FBQyxHQUFDRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxDQUFDO1lBQUNELENBQUMsQ0FBQ2tCLGNBQWMsQ0FBQyxVQUFVLENBQUMsS0FBRyxJQUFJLENBQUNLLFFBQVEsR0FBQ3ZCLENBQUMsQ0FBQ3VCLFFBQVEsQ0FBQztVQUFBLENBQUM7VUFBQ0MsS0FBSyxFQUFDLFNBQUFBLE1BQUEsRUFBVTtZQUFDLE9BQU8sSUFBSSxDQUFDTCxJQUFJLENBQUNULFNBQVMsQ0FBQ00sTUFBTSxDQUFDLElBQUksQ0FBQztVQUFBO1FBQUMsQ0FBQztNQUFBLENBQUMsRUFBRTtNQUFDUyxDQUFDLEdBQUNiLENBQUMsQ0FBQ2MsU0FBUyxHQUFDWixDQUFDLENBQUNFLE1BQU0sQ0FBQztRQUFDRyxJQUFJLEVBQUMsU0FBQUEsS0FBU25CLENBQUMsRUFBQ08sQ0FBQyxFQUFDO1VBQUNQLENBQUMsR0FBQyxJQUFJLENBQUMyQixLQUFLLEdBQUMzQixDQUFDLElBQUUsRUFBRSxFQUFDTyxDQUFDLElBQUVOLENBQUMsR0FBQyxJQUFJLENBQUMyQixRQUFRLEdBQUNyQixDQUFDLEdBQUMsSUFBSSxDQUFDcUIsUUFBUSxHQUFDLENBQUMsR0FBQzVCLENBQUMsQ0FBQzZCLE1BQU07UUFBQSxDQUFDO1FBQUNOLFFBQVEsRUFBQyxTQUFBQSxTQUFTdkIsQ0FBQyxFQUFDO1VBQUMsT0FBTSxDQUFDQSxDQUFDLElBQUU4QixDQUFDLEVBQUVDLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFBQSxDQUFDO1FBQUNDLE1BQU0sRUFBQyxTQUFBQSxPQUFTaEMsQ0FBQyxFQUFDO1VBQUMsSUFBSUMsQ0FBQyxHQUFDLElBQUksQ0FBQzBCLEtBQUs7WUFBQ3BCLENBQUMsR0FBQ1AsQ0FBQyxDQUFDMkIsS0FBSztZQUFDaEIsQ0FBQyxHQUFDLElBQUksQ0FBQ2lCLFFBQVE7WUFBQ2hCLENBQUMsR0FBQ1osQ0FBQyxDQUFDNEIsUUFBUTtVQUFDLElBQUcsSUFBSSxDQUFDSyxLQUFLLEVBQUUsRUFBQ3RCLENBQUMsR0FBQyxDQUFDLEVBQUMsS0FBSSxJQUFJRyxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUNGLENBQUMsRUFBQ0UsQ0FBQyxFQUFFLEVBQUM7WUFBQyxJQUFJVyxDQUFDLEdBQUNsQixDQUFDLENBQUNPLENBQUMsS0FBRyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUNBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUc7WUFBQ2IsQ0FBQyxDQUFDVSxDQUFDLEdBQUNHLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRVcsQ0FBQyxJQUFFLEVBQUUsR0FBQyxDQUFDZCxDQUFDLEdBQUNHLENBQUMsSUFBRSxDQUFDLEdBQUMsQ0FBQztVQUFBLENBQUMsTUFBSyxLQUFJLElBQUlBLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQ0YsQ0FBQyxFQUFDRSxDQUFDLElBQUUsQ0FBQyxFQUFDYixDQUFDLENBQUNVLENBQUMsR0FBQ0csQ0FBQyxLQUFHLENBQUMsQ0FBQyxHQUFDUCxDQUFDLENBQUNPLENBQUMsS0FBRyxDQUFDLENBQUM7VUFBQyxPQUFPLElBQUksQ0FBQ2MsUUFBUSxJQUFFaEIsQ0FBQyxFQUFDLElBQUk7UUFBQSxDQUFDO1FBQUNxQixLQUFLLEVBQUMsU0FBQUEsTUFBQSxFQUFVO1VBQUMsSUFBSWhDLENBQUMsR0FBQyxJQUFJLENBQUMwQixLQUFLO1lBQUNwQixDQUFDLEdBQUMsSUFBSSxDQUFDcUIsUUFBUTtVQUFDM0IsQ0FBQyxDQUFDTSxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsVUFBVSxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNOLENBQUMsQ0FBQzRCLE1BQU0sR0FBQzdCLENBQUMsQ0FBQ2tDLElBQUksQ0FBQzNCLENBQUMsR0FBQyxDQUFDLENBQUM7UUFBQSxDQUFDO1FBQUNpQixLQUFLLEVBQUMsU0FBQUEsTUFBQSxFQUFVO1VBQUMsSUFBSXhCLENBQUMsR0FBQ2MsQ0FBQyxDQUFDVSxLQUFLLENBQUNXLElBQUksQ0FBQyxJQUFJLENBQUM7VUFBQyxPQUFPbkMsQ0FBQyxDQUFDMkIsS0FBSyxHQUFDLElBQUksQ0FBQ0EsS0FBSyxDQUFDUyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUNwQyxDQUFDO1FBQUEsQ0FBQztRQUFDcUMsTUFBTSxFQUFDLFNBQUFBLE9BQVNwQyxDQUFDLEVBQUM7VUFBQyxLQUFJLElBQUlNLENBQUMsRUFBQ0ksQ0FBQyxHQUFDLEVBQUUsRUFBQ0MsQ0FBQyxHQUFDLFNBQUZBLENBQUNBLENBQVVYLENBQUMsRUFBQztjQUFDLElBQUlBLENBQUMsR0FBQ0EsQ0FBQztnQkFBQ00sQ0FBQyxHQUFDLFNBQVM7Z0JBQUNJLENBQUMsR0FBQyxVQUFVO2NBQUMsT0FBTyxZQUFVO2dCQUFDSixDQUFDLEdBQUMsS0FBSyxJQUFFLEtBQUssR0FBQ0EsQ0FBQyxDQUFDLElBQUVBLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQ0ksQ0FBQyxFQUFDVixDQUFDLEdBQUMsSUFBSSxJQUFFLEtBQUssR0FBQ0EsQ0FBQyxDQUFDLElBQUVBLENBQUMsSUFBRSxFQUFFLENBQUMsR0FBQ1UsQ0FBQztnQkFBQyxJQUFJQyxDQUFDLEdBQUMsQ0FBQ0wsQ0FBQyxJQUFFLEVBQUUsSUFBRU4sQ0FBQyxHQUFDVSxDQUFDO2dCQUFDLE9BQU9DLENBQUMsSUFBRSxVQUFVLEVBQUNBLENBQUMsSUFBRSxFQUFFLEVBQUNBLENBQUMsSUFBRVosQ0FBQyxDQUFDcUMsTUFBTSxFQUFFLEdBQUMsRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQztjQUFBLENBQUM7WUFBQSxDQUFDLEVBQUN2QixDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUNiLENBQUMsRUFBQ2EsQ0FBQyxJQUFFLENBQUMsRUFBQztZQUFDLElBQUl3QixDQUFDLEdBQUMxQixDQUFDLENBQUMsVUFBVSxJQUFFTCxDQUFDLElBQUVQLENBQUMsQ0FBQ3FDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFBQzlCLENBQUMsR0FBQyxTQUFTLEdBQUMrQixDQUFDLEVBQUUsRUFBQzNCLENBQUMsQ0FBQzRCLElBQUksQ0FBQyxVQUFVLEdBQUNELENBQUMsRUFBRSxHQUFDLENBQUMsQ0FBQztVQUFBO1VBQUMsT0FBTyxJQUFJYixDQUFDLENBQUNOLElBQUksQ0FBQ1IsQ0FBQyxFQUFDVixDQUFDLENBQUM7UUFBQTtNQUFDLENBQUMsQ0FBQztNQUFDcUMsQ0FBQyxHQUFDM0IsQ0FBQyxDQUFDNkIsR0FBRyxHQUFDLENBQUMsQ0FBQztNQUFDVixDQUFDLEdBQUNRLENBQUMsQ0FBQ0csR0FBRyxHQUFDO1FBQUNWLFNBQVMsRUFBQyxTQUFBQSxVQUFTL0IsQ0FBQyxFQUFDO1VBQUMsS0FBSSxJQUFJQyxDQUFDLEdBQUNELENBQUMsQ0FBQzJCLEtBQUssRUFBQ3BCLENBQUMsR0FBQ1AsQ0FBQyxDQUFDNEIsUUFBUSxFQUFDakIsQ0FBQyxHQUFDLEVBQUUsRUFBQ0MsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDTCxDQUFDLEVBQUNLLENBQUMsRUFBRSxFQUFDO1lBQUMsSUFBSUUsQ0FBQyxHQUFDYixDQUFDLENBQUNXLENBQUMsS0FBRyxDQUFDLENBQUMsS0FBRyxFQUFFLEdBQUNBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQyxHQUFDLEdBQUc7WUFBQ0QsQ0FBQyxDQUFDNEIsSUFBSSxDQUFDLENBQUN6QixDQUFDLEtBQUcsQ0FBQyxFQUFFUyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ1osQ0FBQyxDQUFDNEIsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFDekIsQ0FBQyxFQUFFUyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7VUFBQTtVQUFDLE9BQU9aLENBQUMsQ0FBQytCLElBQUksQ0FBQyxFQUFFLENBQUM7UUFBQSxDQUFDO1FBQUNDLEtBQUssRUFBQyxTQUFBQSxNQUFTM0MsQ0FBQyxFQUFDO1VBQUMsS0FBSSxJQUFJQyxDQUFDLEdBQUNELENBQUMsQ0FBQzZCLE1BQU0sRUFBQ3RCLENBQUMsR0FBQyxFQUFFLEVBQUNJLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQ1YsQ0FBQyxFQUFDVSxDQUFDLElBQUUsQ0FBQyxFQUFDSixDQUFDLENBQUNJLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRWlDLFFBQVEsQ0FBQzVDLENBQUMsQ0FBQzZDLE1BQU0sQ0FBQ2xDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQztVQUFDLE9BQU8sSUFBSWMsQ0FBQyxDQUFDTixJQUFJLENBQUNaLENBQUMsRUFBQ04sQ0FBQyxHQUFDLENBQUMsQ0FBQztRQUFBO01BQUMsQ0FBQztNQUFDNkMsQ0FBQyxHQUFDUixDQUFDLENBQUNTLE1BQU0sR0FBQztRQUFDaEIsU0FBUyxFQUFDLFNBQUFBLFVBQVMvQixDQUFDLEVBQUM7VUFBQyxLQUFJLElBQUlDLENBQUMsR0FBQ0QsQ0FBQyxDQUFDMkIsS0FBSyxFQUFDcEIsQ0FBQyxHQUFDUCxDQUFDLENBQUM0QixRQUFRLEVBQUNqQixDQUFDLEdBQUMsRUFBRSxFQUFDQyxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUNMLENBQUMsRUFBQ0ssQ0FBQyxFQUFFLEVBQUM7WUFBQyxJQUFJRSxDQUFDLEdBQUNiLENBQUMsQ0FBQ1csQ0FBQyxLQUFHLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQ0EsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLEdBQUMsR0FBRztZQUFDRCxDQUFDLENBQUM0QixJQUFJLENBQUNTLE1BQU0sQ0FBQ0MsWUFBWSxDQUFDbkMsQ0FBQyxDQUFDLENBQUM7VUFBQTtVQUFDLE9BQU9ILENBQUMsQ0FBQytCLElBQUksQ0FBQyxFQUFFLENBQUM7UUFBQSxDQUFDO1FBQUNDLEtBQUssRUFBQyxTQUFBQSxNQUFTM0MsQ0FBQyxFQUFDO1VBQUMsS0FBSSxJQUFJQyxDQUFDLEdBQUNELENBQUMsQ0FBQzZCLE1BQU0sRUFBQ3RCLENBQUMsR0FBQyxFQUFFLEVBQUNJLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQ1YsQ0FBQyxFQUFDVSxDQUFDLEVBQUUsRUFBQ0osQ0FBQyxDQUFDSSxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFHLEdBQUNYLENBQUMsQ0FBQ2tELFVBQVUsQ0FBQ3ZDLENBQUMsQ0FBQyxLQUFHLEVBQUUsR0FBQ0EsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDO1VBQUMsT0FBTyxJQUFJYyxDQUFDLENBQUNOLElBQUksQ0FBQ1osQ0FBQyxFQUFDTixDQUFDLENBQUM7UUFBQTtNQUFDLENBQUM7TUFBQ2tELENBQUMsR0FBQ2IsQ0FBQyxDQUFDYyxJQUFJLEdBQUM7UUFBQ3JCLFNBQVMsRUFBQyxTQUFBQSxVQUFTL0IsQ0FBQyxFQUFDO1VBQUMsSUFBRztZQUFDLE9BQU9xRCxrQkFBa0IsQ0FBQ0MsTUFBTSxDQUFDUixDQUFDLENBQUNmLFNBQVMsQ0FBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUM7VUFBQSxDQUFDLFFBQU1BLENBQUMsRUFBQztZQUFDLE1BQU0sSUFBSXVELEtBQUssQ0FBQyxzQkFBc0IsQ0FBQztVQUFBO1FBQUMsQ0FBQztRQUFDWixLQUFLLEVBQUMsU0FBQUEsTUFBUzNDLENBQUMsRUFBQztVQUFDLE9BQU84QyxDQUFDLENBQUNILEtBQUssQ0FBQ2EsUUFBUSxDQUFDQyxrQkFBa0IsQ0FBQ3pELENBQUMsQ0FBQyxDQUFDLENBQUM7UUFBQTtNQUFDLENBQUM7TUFBQzBELENBQUMsR0FBQzlDLENBQUMsQ0FBQytDLHNCQUFzQixHQUFDN0MsQ0FBQyxDQUFDRSxNQUFNLENBQUM7UUFBQzRDLEtBQUssRUFBQyxTQUFBQSxNQUFBLEVBQVU7VUFBQyxJQUFJLENBQUNDLEtBQUssR0FBQyxJQUFJcEMsQ0FBQyxDQUFDTixJQUFJLElBQUMsSUFBSSxDQUFDMkMsV0FBVyxHQUFDLENBQUM7UUFBQSxDQUFDO1FBQUNDLE9BQU8sRUFBQyxTQUFBQSxRQUFTL0QsQ0FBQyxFQUFDO1VBQUMsUUFBUSxJQUFFLE9BQU9BLENBQUMsS0FBR0EsQ0FBQyxHQUFDbUQsQ0FBQyxDQUFDUixLQUFLLENBQUMzQyxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQzZELEtBQUssQ0FBQzdCLE1BQU0sQ0FBQ2hDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQzhELFdBQVcsSUFBRTlELENBQUMsQ0FBQzRCLFFBQVE7UUFBQSxDQUFDO1FBQUNvQyxRQUFRLEVBQUMsU0FBQUEsU0FBUy9ELENBQUMsRUFBQztVQUFDLElBQUlNLENBQUMsR0FBQyxJQUFJLENBQUNzRCxLQUFLO1lBQUNsRCxDQUFDLEdBQUNKLENBQUMsQ0FBQ29CLEtBQUs7WUFBQ2YsQ0FBQyxHQUFDTCxDQUFDLENBQUNxQixRQUFRO1lBQUNkLENBQUMsR0FBQyxJQUFJLENBQUNtRCxTQUFTO1lBQUMzQixDQUFDLEdBQUMsQ0FBQyxHQUFDeEIsQ0FBQztZQUFDZ0IsQ0FBQyxHQUFDbEIsQ0FBQyxHQUFDMEIsQ0FBQztVQUFDUixDQUFDLEdBQUM3QixDQUFDLEdBQUNELENBQUMsQ0FBQ2tDLElBQUksQ0FBQ0osQ0FBQyxDQUFDLEdBQUM5QixDQUFDLENBQUNrRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUNwQyxDQUFDLElBQUUsSUFBSSxDQUFDcUMsY0FBYyxFQUFDLENBQUMsQ0FBQztVQUFDLElBQUlyQixDQUFDLEdBQUNoQixDQUFDLEdBQUNoQixDQUFDO1lBQUNxQyxDQUFDLEdBQUNuRCxDQUFDLENBQUNvRSxHQUFHLENBQUMsQ0FBQyxHQUFDdEIsQ0FBQyxFQUFDbEMsQ0FBQyxDQUFDO1VBQUMsSUFBR2tDLENBQUMsRUFBQztZQUFDLEtBQUksSUFBSVksQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDWixDQUFDLEVBQUNZLENBQUMsSUFBRTVDLENBQUMsRUFBQyxJQUFJLENBQUN1RCxlQUFlLENBQUMxRCxDQUFDLEVBQUMrQyxDQUFDLENBQUM7WUFBQyxJQUFJWSxDQUFDLEdBQUMzRCxDQUFDLENBQUM0RCxNQUFNLENBQUMsQ0FBQyxFQUFDekIsQ0FBQyxDQUFDO1lBQUN2QyxDQUFDLENBQUNxQixRQUFRLElBQUV1QixDQUFDO1VBQUE7VUFBQyxPQUFPLElBQUkxQixDQUFDLENBQUNOLElBQUksQ0FBQ21ELENBQUMsRUFBQ25CLENBQUMsQ0FBQztRQUFBLENBQUM7UUFBQzNCLEtBQUssRUFBQyxTQUFBQSxNQUFBLEVBQVU7VUFBQyxJQUFJeEIsQ0FBQyxHQUFDYyxDQUFDLENBQUNVLEtBQUssQ0FBQ1csSUFBSSxDQUFDLElBQUksQ0FBQztVQUFDLE9BQU9uQyxDQUFDLENBQUM2RCxLQUFLLEdBQUMsSUFBSSxDQUFDQSxLQUFLLENBQUNyQyxLQUFLLEVBQUUsRUFBQ3hCLENBQUM7UUFBQSxDQUFDO1FBQUNtRSxjQUFjLEVBQUM7TUFBQyxDQUFDLENBQUM7TUFBQ0csQ0FBQyxJQUFFMUQsQ0FBQyxDQUFDNEQsTUFBTSxHQUFDZCxDQUFDLENBQUMxQyxNQUFNLENBQUM7UUFBQ3lELEdBQUcsRUFBQzNELENBQUMsQ0FBQ0UsTUFBTSxFQUFFO1FBQUNHLElBQUksRUFBQyxTQUFBQSxLQUFTbkIsQ0FBQyxFQUFDO1VBQUMsSUFBSSxDQUFDeUUsR0FBRyxHQUFDLElBQUksQ0FBQ0EsR0FBRyxDQUFDekQsTUFBTSxDQUFDaEIsQ0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDNEQsS0FBSyxFQUFFO1FBQUEsQ0FBQztRQUFDQSxLQUFLLEVBQUMsU0FBQUEsTUFBQSxFQUFVO1VBQUNGLENBQUMsQ0FBQ0UsS0FBSyxDQUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksQ0FBQ3VDLFFBQVEsRUFBRTtRQUFBLENBQUM7UUFBQ0MsTUFBTSxFQUFDLFNBQUFBLE9BQVMzRSxDQUFDLEVBQUM7VUFBQyxPQUFPLElBQUksQ0FBQytELE9BQU8sQ0FBQy9ELENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQ2dFLFFBQVEsRUFBRSxFQUFDLElBQUk7UUFBQSxDQUFDO1FBQUNZLFFBQVEsRUFBQyxTQUFBQSxTQUFTNUUsQ0FBQyxFQUFDO1VBQUNBLENBQUMsSUFBRSxJQUFJLENBQUMrRCxPQUFPLENBQUMvRCxDQUFDLENBQUM7VUFBQyxJQUFJQyxDQUFDLEdBQUMsSUFBSSxDQUFDNEUsV0FBVyxFQUFFO1VBQUMsT0FBTzVFLENBQUM7UUFBQSxDQUFDO1FBQUNnRSxTQUFTLEVBQUMsRUFBRTtRQUFDYSxhQUFhLEVBQUMsU0FBQUEsY0FBUzlFLENBQUMsRUFBQztVQUFDLE9BQU8sVUFBU0MsQ0FBQyxFQUFDTSxDQUFDLEVBQUM7WUFBQyxPQUFPLElBQUlQLENBQUMsQ0FBQ21CLElBQUksQ0FBQ1osQ0FBQyxDQUFDLENBQUNxRSxRQUFRLENBQUMzRSxDQUFDLENBQUM7VUFBQSxDQUFDO1FBQUEsQ0FBQztRQUFDOEUsaUJBQWlCLEVBQUMsU0FBQUEsa0JBQVMvRSxDQUFDLEVBQUM7VUFBQyxPQUFPLFVBQVNDLENBQUMsRUFBQ00sQ0FBQyxFQUFDO1lBQUMsT0FBTyxJQUFJK0QsQ0FBQyxDQUFDVSxJQUFJLENBQUM3RCxJQUFJLENBQUNuQixDQUFDLEVBQUNPLENBQUMsQ0FBQyxDQUFDcUUsUUFBUSxDQUFDM0UsQ0FBQyxDQUFDO1VBQUEsQ0FBQztRQUFBO01BQUMsQ0FBQyxDQUFDLEVBQUNVLENBQUMsQ0FBQ3NFLElBQUksR0FBQyxDQUFDLENBQUMsQ0FBQztJQUFDLE9BQU90RSxDQUFDO0VBQUEsQ0FBQyxDQUFDdUUsSUFBSSxDQUFDO0VBQUMsT0FBTyxZQUFVO0lBQUMsU0FBU2pGLENBQUNBLENBQUNELENBQUMsRUFBQ0MsQ0FBQyxFQUFDTSxDQUFDLEVBQUM7TUFBQyxLQUFJLElBQUlJLENBQUMsR0FBQyxFQUFFLEVBQUNHLENBQUMsR0FBQyxDQUFDLEVBQUNXLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQ3hCLENBQUMsRUFBQ3dCLENBQUMsRUFBRSxFQUFDLElBQUdBLENBQUMsR0FBQyxDQUFDLEVBQUM7UUFBQyxJQUFJYSxDQUFDLEdBQUMvQixDQUFDLENBQUNQLENBQUMsQ0FBQ2tELFVBQVUsQ0FBQ3pCLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUM7VUFBQ0ssQ0FBQyxHQUFDdkIsQ0FBQyxDQUFDUCxDQUFDLENBQUNrRCxVQUFVLENBQUN6QixDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ0EsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDO1FBQUNkLENBQUMsQ0FBQ0csQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLENBQUN3QixDQUFDLEdBQUNSLENBQUMsS0FBRyxFQUFFLEdBQUNoQixDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxFQUFFO01BQUE7TUFBQyxPQUFPRixDQUFDLENBQUNILE1BQU0sQ0FBQ0UsQ0FBQyxFQUFDRyxDQUFDLENBQUM7SUFBQTtJQUFDLElBQUlQLENBQUMsR0FBQ1AsQ0FBQztNQUFDVyxDQUFDLEdBQUNKLENBQUMsQ0FBQ00sR0FBRztNQUFDRCxDQUFDLEdBQUNELENBQUMsQ0FBQ2UsU0FBUztNQUFDWixDQUFDLEdBQUNQLENBQUMsQ0FBQ2lDLEdBQUc7SUFBQzFCLENBQUMsQ0FBQ3FFLE1BQU0sR0FBQztNQUFDcEQsU0FBUyxFQUFDLFNBQUFBLFVBQVMvQixDQUFDLEVBQUM7UUFBQyxJQUFJQyxDQUFDLEdBQUNELENBQUMsQ0FBQzJCLEtBQUs7VUFBQ3BCLENBQUMsR0FBQ1AsQ0FBQyxDQUFDNEIsUUFBUTtVQUFDakIsQ0FBQyxHQUFDLElBQUksQ0FBQ3lFLElBQUk7UUFBQ3BGLENBQUMsQ0FBQ2lDLEtBQUssRUFBRTtRQUFDLEtBQUksSUFBSXJCLENBQUMsR0FBQyxFQUFFLEVBQUNFLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQ1AsQ0FBQyxFQUFDTyxDQUFDLElBQUUsQ0FBQyxFQUFDLEtBQUksSUFBSVcsQ0FBQyxHQUFDeEIsQ0FBQyxDQUFDYSxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLEVBQUN3QixDQUFDLEdBQUNyQyxDQUFDLENBQUNhLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUNBLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLEVBQUNnQixDQUFDLEdBQUM3QixDQUFDLENBQUNhLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDLENBQUNBLENBQUMsR0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLEVBQUNnQyxDQUFDLEdBQUNyQixDQUFDLElBQUUsRUFBRSxHQUFDYSxDQUFDLElBQUUsQ0FBQyxHQUFDUixDQUFDLEVBQUNxQixDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUMsQ0FBQyxJQUFFckMsQ0FBQyxHQUFDLEdBQUcsR0FBQ3FDLENBQUMsR0FBQzVDLENBQUMsRUFBQzRDLENBQUMsRUFBRSxFQUFDdkMsQ0FBQyxDQUFDMkIsSUFBSSxDQUFDNUIsQ0FBQyxDQUFDMEUsTUFBTSxDQUFDdkMsQ0FBQyxLQUFHLENBQUMsSUFBRSxDQUFDLEdBQUNLLENBQUMsQ0FBQyxHQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQUMsSUFBSU8sQ0FBQyxHQUFDL0MsQ0FBQyxDQUFDMEUsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLElBQUczQixDQUFDLEVBQUMsT0FBSzlDLENBQUMsQ0FBQ2lCLE1BQU0sR0FBQyxDQUFDLEdBQUVqQixDQUFDLENBQUMyQixJQUFJLENBQUNtQixDQUFDLENBQUM7UUFBQyxPQUFPOUMsQ0FBQyxDQUFDOEIsSUFBSSxDQUFDLEVBQUUsQ0FBQztNQUFBLENBQUM7TUFBQ0MsS0FBSyxFQUFDLFNBQUFBLE1BQVMzQyxDQUFDLEVBQUM7UUFBQyxJQUFJTyxDQUFDLEdBQUNQLENBQUMsQ0FBQzZCLE1BQU07VUFBQ2xCLENBQUMsR0FBQyxJQUFJLENBQUN5RSxJQUFJO1VBQUN4RSxDQUFDLEdBQUMsSUFBSSxDQUFDMEUsV0FBVztRQUFDLElBQUcsQ0FBQzFFLENBQUMsRUFBQztVQUFDQSxDQUFDLEdBQUMsSUFBSSxDQUFDMEUsV0FBVyxHQUFDLEVBQUU7VUFBQyxLQUFJLElBQUl4RSxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUNILENBQUMsQ0FBQ2tCLE1BQU0sRUFBQ2YsQ0FBQyxFQUFFLEVBQUNGLENBQUMsQ0FBQ0QsQ0FBQyxDQUFDdUMsVUFBVSxDQUFDcEMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQztRQUFBO1FBQUMsSUFBSVcsQ0FBQyxHQUFDZCxDQUFDLENBQUMwRSxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQUMsSUFBRzVELENBQUMsRUFBQztVQUFDLElBQUlhLENBQUMsR0FBQ3RDLENBQUMsQ0FBQ3VGLE9BQU8sQ0FBQzlELENBQUMsQ0FBQztVQUFDYSxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcvQixDQUFDLEdBQUMrQixDQUFDLENBQUM7UUFBQTtRQUFDLE9BQU9yQyxDQUFDLENBQUNELENBQUMsRUFBQ08sQ0FBQyxFQUFDSyxDQUFDLENBQUM7TUFBQSxDQUFDO01BQUN3RSxJQUFJLEVBQUM7SUFBbUUsQ0FBQztFQUFBLENBQUMsRUFBRSxFQUFDLFVBQVNuRixDQUFDLEVBQUM7SUFBQyxTQUFTTSxDQUFDQSxDQUFDUCxDQUFDLEVBQUNDLENBQUMsRUFBQ00sQ0FBQyxFQUFDSSxDQUFDLEVBQUNDLENBQUMsRUFBQ0UsQ0FBQyxFQUFDVyxDQUFDLEVBQUM7TUFBQyxJQUFJYSxDQUFDLEdBQUN0QyxDQUFDLElBQUVDLENBQUMsR0FBQ00sQ0FBQyxHQUFDLENBQUNOLENBQUMsR0FBQ1UsQ0FBQyxDQUFDLEdBQUNDLENBQUMsR0FBQ2EsQ0FBQztNQUFDLE9BQU0sQ0FBQ2EsQ0FBQyxJQUFFeEIsQ0FBQyxHQUFDd0IsQ0FBQyxLQUFHLEVBQUUsR0FBQ3hCLENBQUMsSUFBRWIsQ0FBQztJQUFBO0lBQUMsU0FBU1UsQ0FBQ0EsQ0FBQ1gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNNLENBQUMsRUFBQ0ksQ0FBQyxFQUFDQyxDQUFDLEVBQUNFLENBQUMsRUFBQ1csQ0FBQyxFQUFDO01BQUMsSUFBSWEsQ0FBQyxHQUFDdEMsQ0FBQyxJQUFFQyxDQUFDLEdBQUNVLENBQUMsR0FBQ0osQ0FBQyxHQUFDLENBQUNJLENBQUMsQ0FBQyxHQUFDQyxDQUFDLEdBQUNhLENBQUM7TUFBQyxPQUFNLENBQUNhLENBQUMsSUFBRXhCLENBQUMsR0FBQ3dCLENBQUMsS0FBRyxFQUFFLEdBQUN4QixDQUFDLElBQUViLENBQUM7SUFBQTtJQUFDLFNBQVNXLENBQUNBLENBQUNaLENBQUMsRUFBQ0MsQ0FBQyxFQUFDTSxDQUFDLEVBQUNJLENBQUMsRUFBQ0MsQ0FBQyxFQUFDRSxDQUFDLEVBQUNXLENBQUMsRUFBQztNQUFDLElBQUlhLENBQUMsR0FBQ3RDLENBQUMsSUFBRUMsQ0FBQyxHQUFDTSxDQUFDLEdBQUNJLENBQUMsQ0FBQyxHQUFDQyxDQUFDLEdBQUNhLENBQUM7TUFBQyxPQUFNLENBQUNhLENBQUMsSUFBRXhCLENBQUMsR0FBQ3dCLENBQUMsS0FBRyxFQUFFLEdBQUN4QixDQUFDLElBQUViLENBQUM7SUFBQTtJQUFDLFNBQVNhLENBQUNBLENBQUNkLENBQUMsRUFBQ0MsQ0FBQyxFQUFDTSxDQUFDLEVBQUNJLENBQUMsRUFBQ0MsQ0FBQyxFQUFDRSxDQUFDLEVBQUNXLENBQUMsRUFBQztNQUFDLElBQUlhLENBQUMsR0FBQ3RDLENBQUMsSUFBRU8sQ0FBQyxJQUFFTixDQUFDLEdBQUMsQ0FBQ1UsQ0FBQyxDQUFDLENBQUMsR0FBQ0MsQ0FBQyxHQUFDYSxDQUFDO01BQUMsT0FBTSxDQUFDYSxDQUFDLElBQUV4QixDQUFDLEdBQUN3QixDQUFDLEtBQUcsRUFBRSxHQUFDeEIsQ0FBQyxJQUFFYixDQUFDO0lBQUE7SUFBQyxJQUFJd0IsQ0FBQyxHQUFDekIsQ0FBQztNQUFDc0MsQ0FBQyxHQUFDYixDQUFDLENBQUNaLEdBQUc7TUFBQ2lCLENBQUMsR0FBQ1EsQ0FBQyxDQUFDWixTQUFTO01BQUNvQixDQUFDLEdBQUNSLENBQUMsQ0FBQ2tDLE1BQU07TUFBQ3JCLENBQUMsR0FBQzFCLENBQUMsQ0FBQ3dELElBQUk7TUFBQ3ZCLENBQUMsR0FBQyxFQUFFO0lBQUMsQ0FBQyxZQUFVO01BQUMsS0FBSSxJQUFJMUQsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLEVBQUUsRUFBQ0EsQ0FBQyxFQUFFLEVBQUMwRCxDQUFDLENBQUMxRCxDQUFDLENBQUMsR0FBQyxVQUFVLEdBQUNDLENBQUMsQ0FBQ3VGLEdBQUcsQ0FBQ3ZGLENBQUMsQ0FBQ3dGLEdBQUcsQ0FBQ3pGLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUM7SUFBQSxDQUFDLEVBQUU7SUFBQyxJQUFJc0UsQ0FBQyxHQUFDbkIsQ0FBQyxDQUFDdUMsR0FBRyxHQUFDNUMsQ0FBQyxDQUFDOUIsTUFBTSxDQUFDO01BQUMwRCxRQUFRLEVBQUMsU0FBQUEsU0FBQSxFQUFVO1FBQUMsSUFBSSxDQUFDaUIsS0FBSyxHQUFDLElBQUk3RCxDQUFDLENBQUNYLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxDQUFDO01BQUEsQ0FBQztNQUFDa0QsZUFBZSxFQUFDLFNBQUFBLGdCQUFTckUsQ0FBQyxFQUFDQyxDQUFDLEVBQUM7UUFBQyxLQUFJLElBQUl3QixDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUMsRUFBRSxFQUFDQSxDQUFDLEVBQUUsRUFBQztVQUFDLElBQUlhLENBQUMsR0FBQ3JDLENBQUMsR0FBQ3dCLENBQUM7WUFBQ0ssQ0FBQyxHQUFDOUIsQ0FBQyxDQUFDc0MsQ0FBQyxDQUFDO1VBQUN0QyxDQUFDLENBQUNzQyxDQUFDLENBQUMsR0FBQyxRQUFRLElBQUVSLENBQUMsSUFBRSxDQUFDLEdBQUNBLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsS0FBRyxDQUFDLENBQUM7UUFBQTtRQUFDLElBQUlnQixDQUFDLEdBQUMsSUFBSSxDQUFDNkMsS0FBSyxDQUFDaEUsS0FBSztVQUFDd0IsQ0FBQyxHQUFDbkQsQ0FBQyxDQUFDQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO1VBQUNxRSxDQUFDLEdBQUN0RSxDQUFDLENBQUNDLENBQUMsR0FBQyxDQUFDLENBQUM7VUFBQzJGLENBQUMsR0FBQzVGLENBQUMsQ0FBQ0MsQ0FBQyxHQUFDLENBQUMsQ0FBQztVQUFDNEYsQ0FBQyxHQUFDN0YsQ0FBQyxDQUFDQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO1VBQUM2RixDQUFDLEdBQUM5RixDQUFDLENBQUNDLENBQUMsR0FBQyxDQUFDLENBQUM7VUFBQzhGLENBQUMsR0FBQy9GLENBQUMsQ0FBQ0MsQ0FBQyxHQUFDLENBQUMsQ0FBQztVQUFDK0YsQ0FBQyxHQUFDaEcsQ0FBQyxDQUFDQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO1VBQUNnRyxDQUFDLEdBQUNqRyxDQUFDLENBQUNDLENBQUMsR0FBQyxDQUFDLENBQUM7VUFBQ2lHLENBQUMsR0FBQ2xHLENBQUMsQ0FBQ0MsQ0FBQyxHQUFDLENBQUMsQ0FBQztVQUFDa0csQ0FBQyxHQUFDbkcsQ0FBQyxDQUFDQyxDQUFDLEdBQUMsQ0FBQyxDQUFDO1VBQUNtRyxDQUFDLEdBQUNwRyxDQUFDLENBQUNDLENBQUMsR0FBQyxFQUFFLENBQUM7VUFBQ29HLENBQUMsR0FBQ3JHLENBQUMsQ0FBQ0MsQ0FBQyxHQUFDLEVBQUUsQ0FBQztVQUFDcUcsQ0FBQyxHQUFDdEcsQ0FBQyxDQUFDQyxDQUFDLEdBQUMsRUFBRSxDQUFDO1VBQUNzRyxDQUFDLEdBQUN2RyxDQUFDLENBQUNDLENBQUMsR0FBQyxFQUFFLENBQUM7VUFBQ3VHLENBQUMsR0FBQ3hHLENBQUMsQ0FBQ0MsQ0FBQyxHQUFDLEVBQUUsQ0FBQztVQUFDd0csQ0FBQyxHQUFDekcsQ0FBQyxDQUFDQyxDQUFDLEdBQUMsRUFBRSxDQUFDO1VBQUN5RyxDQUFDLEdBQUM1RCxDQUFDLENBQUMsQ0FBQyxDQUFDO1VBQUM2RCxDQUFDLEdBQUM3RCxDQUFDLENBQUMsQ0FBQyxDQUFDO1VBQUM4RCxDQUFDLEdBQUM5RCxDQUFDLENBQUMsQ0FBQyxDQUFDO1VBQUMrRCxDQUFDLEdBQUMvRCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQUM0RCxDQUFDLEdBQUNuRyxDQUFDLENBQUNtRyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUMxRCxDQUFDLEVBQUMsQ0FBQyxFQUFDTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ21ELENBQUMsR0FBQ3RHLENBQUMsQ0FBQ3NHLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ3RDLENBQUMsRUFBQyxFQUFFLEVBQUNaLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDa0QsQ0FBQyxHQUFDckcsQ0FBQyxDQUFDcUcsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDZixDQUFDLEVBQUMsRUFBRSxFQUFDbEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNpRCxDQUFDLEdBQUNwRyxDQUFDLENBQUNvRyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNiLENBQUMsRUFBQyxFQUFFLEVBQUNuQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ2dELENBQUMsR0FBQ25HLENBQUMsQ0FBQ21HLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ2YsQ0FBQyxFQUFDLENBQUMsRUFBQ3BDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDbUQsQ0FBQyxHQUFDdEcsQ0FBQyxDQUFDc0csQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDYixDQUFDLEVBQUMsRUFBRSxFQUFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNrRCxDQUFDLEdBQUNyRyxDQUFDLENBQUNxRyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNYLENBQUMsRUFBQyxFQUFFLEVBQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ2lELENBQUMsR0FBQ3BHLENBQUMsQ0FBQ29HLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ1QsQ0FBQyxFQUFDLEVBQUUsRUFBQ3ZDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDZ0QsQ0FBQyxHQUFDbkcsQ0FBQyxDQUFDbUcsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDWCxDQUFDLEVBQUMsQ0FBQyxFQUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNtRCxDQUFDLEdBQUN0RyxDQUFDLENBQUNzRyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNULENBQUMsRUFBQyxFQUFFLEVBQUN6QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ2tELENBQUMsR0FBQ3JHLENBQUMsQ0FBQ3FHLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ1AsQ0FBQyxFQUFDLEVBQUUsRUFBQzFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDaUQsQ0FBQyxHQUFDcEcsQ0FBQyxDQUFDb0csQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDTCxDQUFDLEVBQUMsRUFBRSxFQUFDM0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNnRCxDQUFDLEdBQUNuRyxDQUFDLENBQUNtRyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNQLENBQUMsRUFBQyxDQUFDLEVBQUM1QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ21ELENBQUMsR0FBQ3RHLENBQUMsQ0FBQ3NHLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0wsQ0FBQyxFQUFDLEVBQUUsRUFBQzdDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDa0QsQ0FBQyxHQUFDckcsQ0FBQyxDQUFDcUcsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUMsRUFBRSxFQUFDOUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNpRCxDQUFDLEdBQUNwRyxDQUFDLENBQUNvRyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNELENBQUMsRUFBQyxFQUFFLEVBQUMvQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2dELENBQUMsR0FBQy9GLENBQUMsQ0FBQytGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ3ZDLENBQUMsRUFBQyxDQUFDLEVBQUNaLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDbUQsQ0FBQyxHQUFDbEcsQ0FBQyxDQUFDa0csQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDWixDQUFDLEVBQUMsQ0FBQyxFQUFDdEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNrRCxDQUFDLEdBQUNqRyxDQUFDLENBQUNpRyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNOLENBQUMsRUFBQyxFQUFFLEVBQUMzQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2lELENBQUMsR0FBQ2hHLENBQUMsQ0FBQ2dHLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ3ZELENBQUMsRUFBQyxFQUFFLEVBQUNPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDZ0QsQ0FBQyxHQUFDL0YsQ0FBQyxDQUFDK0YsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDZCxDQUFDLEVBQUMsQ0FBQyxFQUFDckMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNtRCxDQUFDLEdBQUNsRyxDQUFDLENBQUNrRyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNSLENBQUMsRUFBQyxDQUFDLEVBQUMxQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2tELENBQUMsR0FBQ2pHLENBQUMsQ0FBQ2lHLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ0YsQ0FBQyxFQUFDLEVBQUUsRUFBQy9DLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDaUQsQ0FBQyxHQUFDaEcsQ0FBQyxDQUFDZ0csQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDWixDQUFDLEVBQUMsRUFBRSxFQUFDcEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNnRCxDQUFDLEdBQUMvRixDQUFDLENBQUMrRixDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNWLENBQUMsRUFBQyxDQUFDLEVBQUN6QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ21ELENBQUMsR0FBQ2xHLENBQUMsQ0FBQ2tHLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0osQ0FBQyxFQUFDLENBQUMsRUFBQzlDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDa0QsQ0FBQyxHQUFDakcsQ0FBQyxDQUFDaUcsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDZCxDQUFDLEVBQUMsRUFBRSxFQUFDbkMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNpRCxDQUFDLEdBQUNoRyxDQUFDLENBQUNnRyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNSLENBQUMsRUFBQyxFQUFFLEVBQUN4QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2dELENBQUMsR0FBQy9GLENBQUMsQ0FBQytGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ04sQ0FBQyxFQUFDLENBQUMsRUFBQzdDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDbUQsQ0FBQyxHQUFDbEcsQ0FBQyxDQUFDa0csQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDaEIsQ0FBQyxFQUFDLENBQUMsRUFBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDa0QsQ0FBQyxHQUFDakcsQ0FBQyxDQUFDaUcsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDVixDQUFDLEVBQUMsRUFBRSxFQUFDdkMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNpRCxDQUFDLEdBQUNoRyxDQUFDLENBQUNnRyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNKLENBQUMsRUFBQyxFQUFFLEVBQUM1QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2dELENBQUMsR0FBQzlGLENBQUMsQ0FBQzhGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ2QsQ0FBQyxFQUFDLENBQUMsRUFBQ3JDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDbUQsQ0FBQyxHQUFDakcsQ0FBQyxDQUFDaUcsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDVixDQUFDLEVBQUMsRUFBRSxFQUFDeEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNrRCxDQUFDLEdBQUNoRyxDQUFDLENBQUNnRyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNOLENBQUMsRUFBQyxFQUFFLEVBQUMzQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2lELENBQUMsR0FBQy9GLENBQUMsQ0FBQytGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ0YsQ0FBQyxFQUFDLEVBQUUsRUFBQzlDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDZ0QsQ0FBQyxHQUFDOUYsQ0FBQyxDQUFDOEYsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDdkMsQ0FBQyxFQUFDLENBQUMsRUFBQ1osQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNtRCxDQUFDLEdBQUNqRyxDQUFDLENBQUNpRyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNkLENBQUMsRUFBQyxFQUFFLEVBQUNwQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2tELENBQUMsR0FBQ2hHLENBQUMsQ0FBQ2dHLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ1YsQ0FBQyxFQUFDLEVBQUUsRUFBQ3ZDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDaUQsQ0FBQyxHQUFDL0YsQ0FBQyxDQUFDK0YsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDTixDQUFDLEVBQUMsRUFBRSxFQUFDMUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNnRCxDQUFDLEdBQUM5RixDQUFDLENBQUM4RixDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNOLENBQUMsRUFBQyxDQUFDLEVBQUM3QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ21ELENBQUMsR0FBQ2pHLENBQUMsQ0FBQ2lHLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ3pELENBQUMsRUFBQyxFQUFFLEVBQUNPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDa0QsQ0FBQyxHQUFDaEcsQ0FBQyxDQUFDZ0csQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDZCxDQUFDLEVBQUMsRUFBRSxFQUFDbkMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNpRCxDQUFDLEdBQUMvRixDQUFDLENBQUMrRixDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNWLENBQUMsRUFBQyxFQUFFLEVBQUN0QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2dELENBQUMsR0FBQzlGLENBQUMsQ0FBQzhGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ1YsQ0FBQyxFQUFDLENBQUMsRUFBQ3pDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDbUQsQ0FBQyxHQUFDakcsQ0FBQyxDQUFDaUcsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDTixDQUFDLEVBQUMsRUFBRSxFQUFDNUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNrRCxDQUFDLEdBQUNoRyxDQUFDLENBQUNnRyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNGLENBQUMsRUFBQyxFQUFFLEVBQUMvQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2lELENBQUMsR0FBQy9GLENBQUMsQ0FBQytGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ2QsQ0FBQyxFQUFDLEVBQUUsRUFBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDZ0QsQ0FBQyxHQUFDNUYsQ0FBQyxDQUFDNEYsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDMUQsQ0FBQyxFQUFDLENBQUMsRUFBQ08sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNtRCxDQUFDLEdBQUMvRixDQUFDLENBQUMrRixDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNYLENBQUMsRUFBQyxFQUFFLEVBQUN2QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2tELENBQUMsR0FBQzlGLENBQUMsQ0FBQzhGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDLEVBQUUsRUFBQzlDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDaUQsQ0FBQyxHQUFDN0YsQ0FBQyxDQUFDNkYsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDWCxDQUFDLEVBQUMsRUFBRSxFQUFDckMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNnRCxDQUFDLEdBQUM1RixDQUFDLENBQUM0RixDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNQLENBQUMsRUFBQyxDQUFDLEVBQUM1QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ21ELENBQUMsR0FBQy9GLENBQUMsQ0FBQytGLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ2YsQ0FBQyxFQUFDLEVBQUUsRUFBQ25DLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDa0QsQ0FBQyxHQUFDOUYsQ0FBQyxDQUFDOEYsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDUCxDQUFDLEVBQUMsRUFBRSxFQUFDMUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNpRCxDQUFDLEdBQUM3RixDQUFDLENBQUM2RixDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNwQyxDQUFDLEVBQUMsRUFBRSxFQUFDWixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2dELENBQUMsR0FBQzVGLENBQUMsQ0FBQzRGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ1gsQ0FBQyxFQUFDLENBQUMsRUFBQ3hDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDbUQsQ0FBQyxHQUFDL0YsQ0FBQyxDQUFDK0YsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUMsRUFBRSxFQUFDL0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNrRCxDQUFDLEdBQUM5RixDQUFDLENBQUM4RixDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDQyxDQUFDLEVBQUNYLENBQUMsRUFBQyxFQUFFLEVBQUN0QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2lELENBQUMsR0FBQzdGLENBQUMsQ0FBQzZGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNILENBQUMsRUFBQ0gsQ0FBQyxFQUFDLEVBQUUsRUFBQzdDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDZ0QsQ0FBQyxHQUFDNUYsQ0FBQyxDQUFDNEYsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0MsQ0FBQyxFQUFDZixDQUFDLEVBQUMsQ0FBQyxFQUFDcEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNtRCxDQUFDLEdBQUMvRixDQUFDLENBQUMrRixDQUFDLEVBQUNILENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLEVBQUNQLENBQUMsRUFBQyxFQUFFLEVBQUMzQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQ2tELENBQUMsR0FBQzlGLENBQUMsQ0FBQzhGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDSCxDQUFDLEVBQUNDLENBQUMsRUFBQ2YsQ0FBQyxFQUFDLEVBQUUsRUFBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDaUQsQ0FBQyxHQUFDN0YsQ0FBQyxDQUFDNkYsQ0FBQyxFQUFDQyxDQUFDLEVBQUNDLENBQUMsRUFBQ0gsQ0FBQyxFQUFDUCxDQUFDLEVBQUMsRUFBRSxFQUFDekMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUNaLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDNEQsQ0FBQyxHQUFDLENBQUMsRUFBQzVELENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDNkQsQ0FBQyxHQUFDLENBQUMsRUFBQzdELENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEQsQ0FBQyxHQUFDLENBQUMsRUFBQzlELENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDK0QsQ0FBQyxHQUFDLENBQUM7TUFBQSxDQUFDO01BQUNoQyxXQUFXLEVBQUMsU0FBQUEsWUFBQSxFQUFVO1FBQUMsSUFBSTdFLENBQUMsR0FBQyxJQUFJLENBQUM2RCxLQUFLO1VBQUN0RCxDQUFDLEdBQUNQLENBQUMsQ0FBQzJCLEtBQUs7VUFBQ2hCLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDbUQsV0FBVztVQUFDbEQsQ0FBQyxHQUFDLENBQUMsR0FBQ1osQ0FBQyxDQUFDNEIsUUFBUTtRQUFDckIsQ0FBQyxDQUFDSyxDQUFDLEtBQUcsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxHQUFDLEVBQUU7UUFBQyxJQUFJRSxDQUFDLEdBQUNiLENBQUMsQ0FBQzZHLEtBQUssQ0FBQ25HLENBQUMsR0FBQyxVQUFVLENBQUM7VUFBQ2MsQ0FBQyxHQUFDZCxDQUFDO1FBQUNKLENBQUMsQ0FBQyxDQUFDSyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsSUFBRSxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsUUFBUSxJQUFFRSxDQUFDLElBQUUsQ0FBQyxHQUFDQSxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxJQUFFQSxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUNQLENBQUMsQ0FBQyxDQUFDSyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsSUFBRSxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUMsUUFBUSxJQUFFYSxDQUFDLElBQUUsQ0FBQyxHQUFDQSxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsVUFBVSxJQUFFQSxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLEtBQUcsQ0FBQyxDQUFDLEVBQUN6QixDQUFDLENBQUM0QixRQUFRLEdBQUMsQ0FBQyxJQUFFckIsQ0FBQyxDQUFDc0IsTUFBTSxHQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksQ0FBQ21DLFFBQVEsRUFBRTtRQUFDLEtBQUksSUFBSTFCLENBQUMsR0FBQyxJQUFJLENBQUNxRCxLQUFLLEVBQUM3RCxDQUFDLEdBQUNRLENBQUMsQ0FBQ1gsS0FBSyxFQUFDbUIsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxFQUFFLEVBQUM7VUFBQyxJQUFJSyxDQUFDLEdBQUNyQixDQUFDLENBQUNnQixDQUFDLENBQUM7VUFBQ2hCLENBQUMsQ0FBQ2dCLENBQUMsQ0FBQyxHQUFDLFFBQVEsSUFBRUssQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLFVBQVUsSUFBRUEsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxLQUFHLENBQUMsQ0FBQztRQUFBO1FBQUMsT0FBT2IsQ0FBQztNQUFBLENBQUM7TUFBQ2QsS0FBSyxFQUFDLFNBQUFBLE1BQUEsRUFBVTtRQUFDLElBQUl4QixDQUFDLEdBQUM4QyxDQUFDLENBQUN0QixLQUFLLENBQUNXLElBQUksQ0FBQyxJQUFJLENBQUM7UUFBQyxPQUFPbkMsQ0FBQyxDQUFDMkYsS0FBSyxHQUFDLElBQUksQ0FBQ0EsS0FBSyxDQUFDbkUsS0FBSyxFQUFFLEVBQUN4QixDQUFDO01BQUE7SUFBQyxDQUFDLENBQUM7SUFBQ3lCLENBQUMsQ0FBQ2lFLEdBQUcsR0FBQzVDLENBQUMsQ0FBQ2dDLGFBQWEsQ0FBQ1IsQ0FBQyxDQUFDLEVBQUM3QyxDQUFDLENBQUNzRixPQUFPLEdBQUNqRSxDQUFDLENBQUNpQyxpQkFBaUIsQ0FBQ1QsQ0FBQyxDQUFDO0VBQUEsQ0FBQyxDQUFDWSxJQUFJLENBQUMsRUFBQyxZQUFVO0lBQUMsSUFBSWpGLENBQUMsR0FBQ0QsQ0FBQztNQUFDTyxDQUFDLEdBQUNOLENBQUMsQ0FBQ1ksR0FBRztNQUFDRixDQUFDLEdBQUNKLENBQUMsQ0FBQ21CLFNBQVM7TUFBQ2QsQ0FBQyxHQUFDTCxDQUFDLENBQUNpRSxNQUFNO01BQUMxRCxDQUFDLEdBQUNiLENBQUMsQ0FBQ2dGLElBQUk7TUFBQ3hELENBQUMsR0FBQyxFQUFFO01BQUNhLENBQUMsR0FBQ3hCLENBQUMsQ0FBQ2tHLElBQUksR0FBQ3BHLENBQUMsQ0FBQ0ksTUFBTSxDQUFDO1FBQUMwRCxRQUFRLEVBQUMsU0FBQUEsU0FBQSxFQUFVO1VBQUMsSUFBSSxDQUFDaUIsS0FBSyxHQUFDLElBQUloRixDQUFDLENBQUNRLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLENBQUMsQ0FBQztRQUFBLENBQUM7UUFBQ2tELGVBQWUsRUFBQyxTQUFBQSxnQkFBU3JFLENBQUMsRUFBQ0MsQ0FBQyxFQUFDO1VBQUMsS0FBSSxJQUFJTSxDQUFDLEdBQUMsSUFBSSxDQUFDb0YsS0FBSyxDQUFDaEUsS0FBSyxFQUFDaEIsQ0FBQyxHQUFDSixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNLLENBQUMsR0FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDTyxDQUFDLEdBQUNQLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQytCLENBQUMsR0FBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ3VCLENBQUMsR0FBQ3ZCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ3VDLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQyxFQUFFLEVBQUNBLENBQUMsRUFBRSxFQUFDO1lBQUMsSUFBR0EsQ0FBQyxHQUFDLEVBQUUsRUFBQ3JCLENBQUMsQ0FBQ3FCLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQzlDLENBQUMsQ0FBQ0MsQ0FBQyxHQUFDNkMsQ0FBQyxDQUFDLENBQUMsS0FBSTtjQUFDLElBQUlLLENBQUMsR0FBQzFCLENBQUMsQ0FBQ3FCLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQ3JCLENBQUMsQ0FBQ3FCLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQ3JCLENBQUMsQ0FBQ3FCLENBQUMsR0FBQyxFQUFFLENBQUMsR0FBQ3JCLENBQUMsQ0FBQ3FCLENBQUMsR0FBQyxFQUFFLENBQUM7Y0FBQ3JCLENBQUMsQ0FBQ3FCLENBQUMsQ0FBQyxHQUFDSyxDQUFDLElBQUUsQ0FBQyxHQUFDQSxDQUFDLEtBQUcsRUFBRTtZQUFBO1lBQUMsSUFBSU8sQ0FBQyxHQUFDLENBQUMvQyxDQUFDLElBQUUsQ0FBQyxHQUFDQSxDQUFDLEtBQUcsRUFBRSxJQUFFbUIsQ0FBQyxHQUFDTCxDQUFDLENBQUNxQixDQUFDLENBQUM7WUFBQ1ksQ0FBQyxJQUFFWixDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUNsQyxDQUFDLEdBQUNFLENBQUMsR0FBQyxDQUFDRixDQUFDLEdBQUMwQixDQUFDLElBQUUsVUFBVSxHQUFDUSxDQUFDLEdBQUMsRUFBRSxHQUFDLENBQUNsQyxDQUFDLEdBQUNFLENBQUMsR0FBQ3dCLENBQUMsSUFBRSxVQUFVLEdBQUNRLENBQUMsR0FBQyxFQUFFLEdBQUMsQ0FBQ2xDLENBQUMsR0FBQ0UsQ0FBQyxHQUFDRixDQUFDLEdBQUMwQixDQUFDLEdBQUN4QixDQUFDLEdBQUN3QixDQUFDLElBQUUsVUFBVSxHQUFDLENBQUMxQixDQUFDLEdBQUNFLENBQUMsR0FBQ3dCLENBQUMsSUFBRSxTQUFTLEVBQUNSLENBQUMsR0FBQ1EsQ0FBQyxFQUFDQSxDQUFDLEdBQUN4QixDQUFDLEVBQUNBLENBQUMsR0FBQ0YsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxLQUFHLENBQUMsRUFBQ0EsQ0FBQyxHQUFDRCxDQUFDLEVBQUNBLENBQUMsR0FBQytDLENBQUM7VUFBQTtVQUFDbkQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNJLENBQUMsR0FBQyxDQUFDLEVBQUNKLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDSyxDQUFDLEdBQUMsQ0FBQyxFQUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ08sQ0FBQyxHQUFDLENBQUMsRUFBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMrQixDQUFDLEdBQUMsQ0FBQyxFQUFDL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUN1QixDQUFDLEdBQUMsQ0FBQztRQUFBLENBQUM7UUFBQytDLFdBQVcsRUFBQyxTQUFBQSxZQUFBLEVBQVU7VUFBQyxJQUFJN0UsQ0FBQyxHQUFDLElBQUksQ0FBQzZELEtBQUs7WUFBQzVELENBQUMsR0FBQ0QsQ0FBQyxDQUFDMkIsS0FBSztZQUFDcEIsQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLENBQUN1RCxXQUFXO1lBQUNuRCxDQUFDLEdBQUMsQ0FBQyxHQUFDWCxDQUFDLENBQUM0QixRQUFRO1VBQUMsT0FBTzNCLENBQUMsQ0FBQ1UsQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFLEdBQUcsSUFBRSxFQUFFLEdBQUNBLENBQUMsR0FBQyxFQUFFLEVBQUNWLENBQUMsQ0FBQyxDQUFDVSxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsSUFBRSxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUN1RSxJQUFJLENBQUM0QixLQUFLLENBQUN2RyxDQUFDLEdBQUMsVUFBVSxDQUFDLEVBQUNOLENBQUMsQ0FBQyxDQUFDVSxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsSUFBRSxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUNKLENBQUMsRUFBQ1AsQ0FBQyxDQUFDNEIsUUFBUSxHQUFDLENBQUMsR0FBQzNCLENBQUMsQ0FBQzRCLE1BQU0sRUFBQyxJQUFJLENBQUNtQyxRQUFRLEVBQUUsRUFBQyxJQUFJLENBQUMyQixLQUFLO1FBQUEsQ0FBQztRQUFDbkUsS0FBSyxFQUFDLFNBQUFBLE1BQUEsRUFBVTtVQUFDLElBQUl4QixDQUFDLEdBQUNZLENBQUMsQ0FBQ1ksS0FBSyxDQUFDVyxJQUFJLENBQUMsSUFBSSxDQUFDO1VBQUMsT0FBT25DLENBQUMsQ0FBQzJGLEtBQUssR0FBQyxJQUFJLENBQUNBLEtBQUssQ0FBQ25FLEtBQUssRUFBRSxFQUFDeEIsQ0FBQztRQUFBO01BQUMsQ0FBQyxDQUFDO0lBQUNDLENBQUMsQ0FBQytHLElBQUksR0FBQ3BHLENBQUMsQ0FBQ2tFLGFBQWEsQ0FBQ3hDLENBQUMsQ0FBQyxFQUFDckMsQ0FBQyxDQUFDZ0gsUUFBUSxHQUFDckcsQ0FBQyxDQUFDbUUsaUJBQWlCLENBQUN6QyxDQUFDLENBQUM7RUFBQSxDQUFDLEVBQUUsRUFBQyxVQUFTckMsQ0FBQyxFQUFDO0lBQUMsSUFBSU0sQ0FBQyxHQUFDUCxDQUFDO01BQUNXLENBQUMsR0FBQ0osQ0FBQyxDQUFDTSxHQUFHO01BQUNELENBQUMsR0FBQ0QsQ0FBQyxDQUFDZSxTQUFTO01BQUNaLENBQUMsR0FBQ0gsQ0FBQyxDQUFDNkQsTUFBTTtNQUFDL0MsQ0FBQyxHQUFDbEIsQ0FBQyxDQUFDMEUsSUFBSTtNQUFDM0MsQ0FBQyxHQUFDLEVBQUU7TUFBQ1IsQ0FBQyxHQUFDLEVBQUU7SUFBQyxDQUFDLFlBQVU7TUFBQyxTQUFTOUIsQ0FBQ0EsQ0FBQ0EsQ0FBQyxFQUFDO1FBQUMsS0FBSSxJQUFJTyxDQUFDLEdBQUNOLENBQUMsQ0FBQ2lILElBQUksQ0FBQ2xILENBQUMsQ0FBQyxFQUFDVyxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLElBQUVKLENBQUMsRUFBQ0ksQ0FBQyxFQUFFLEVBQUMsSUFBRyxFQUFFWCxDQUFDLEdBQUNXLENBQUMsQ0FBQyxFQUFDLE9BQU0sQ0FBQyxDQUFDO1FBQUMsT0FBTSxDQUFDLENBQUM7TUFBQTtNQUFDLFNBQVNKLENBQUNBLENBQUNQLENBQUMsRUFBQztRQUFDLE9BQU8sVUFBVSxJQUFFQSxDQUFDLElBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUM7TUFBQTtNQUFDLEtBQUksSUFBSVcsQ0FBQyxHQUFDLENBQUMsRUFBQ0MsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLEVBQUUsR0FBRVosQ0FBQyxDQUFDVyxDQUFDLENBQUMsS0FBR0MsQ0FBQyxHQUFDLENBQUMsS0FBRzBCLENBQUMsQ0FBQzFCLENBQUMsQ0FBQyxHQUFDTCxDQUFDLENBQUNOLENBQUMsQ0FBQ2tILEdBQUcsQ0FBQ3hHLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUNtQixDQUFDLENBQUNsQixDQUFDLENBQUMsR0FBQ0wsQ0FBQyxDQUFDTixDQUFDLENBQUNrSCxHQUFHLENBQUN4RyxDQUFDLEVBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNDLENBQUMsRUFBRSxDQUFDLEVBQUNELENBQUMsRUFBRTtJQUFBLENBQUMsRUFBRTtJQUFDLElBQUltQyxDQUFDLEdBQUMsRUFBRTtNQUFDSyxDQUFDLEdBQUMxQixDQUFDLENBQUMyRixNQUFNLEdBQUN0RyxDQUFDLENBQUNFLE1BQU0sQ0FBQztRQUFDMEQsUUFBUSxFQUFDLFNBQUFBLFNBQUEsRUFBVTtVQUFDLElBQUksQ0FBQ2lCLEtBQUssR0FBQyxJQUFJL0UsQ0FBQyxDQUFDTyxJQUFJLENBQUNtQixDQUFDLENBQUNGLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUFBLENBQUM7UUFBQ2lDLGVBQWUsRUFBQyxTQUFBQSxnQkFBU3JFLENBQUMsRUFBQ0MsQ0FBQyxFQUFDO1VBQUMsS0FBSSxJQUFJTSxDQUFDLEdBQUMsSUFBSSxDQUFDb0YsS0FBSyxDQUFDaEUsS0FBSyxFQUFDaEIsQ0FBQyxHQUFDSixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNLLENBQUMsR0FBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDTyxDQUFDLEdBQUNQLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ2tCLENBQUMsR0FBQ2xCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQytCLENBQUMsR0FBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQzRDLENBQUMsR0FBQzVDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ21ELENBQUMsR0FBQ25ELENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQytELENBQUMsR0FBQy9ELENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ3FGLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQyxFQUFFLEVBQUNBLENBQUMsRUFBRSxFQUFDO1lBQUMsSUFBR0EsQ0FBQyxHQUFDLEVBQUUsRUFBQzlDLENBQUMsQ0FBQzhDLENBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQzVGLENBQUMsQ0FBQ0MsQ0FBQyxHQUFDMkYsQ0FBQyxDQUFDLENBQUMsS0FBSTtjQUFDLElBQUlDLENBQUMsR0FBQy9DLENBQUMsQ0FBQzhDLENBQUMsR0FBQyxFQUFFLENBQUM7Z0JBQUNFLENBQUMsR0FBQyxDQUFDRCxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLEtBQUcsQ0FBQyxLQUFHQSxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUNBLENBQUMsS0FBRyxDQUFDO2dCQUFDRSxDQUFDLEdBQUNqRCxDQUFDLENBQUM4QyxDQUFDLEdBQUMsQ0FBQyxDQUFDO2dCQUFDSSxDQUFDLEdBQUMsQ0FBQ0QsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxLQUFHLEVBQUUsS0FBR0EsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDQSxDQUFDLEtBQUcsRUFBRTtjQUFDakQsQ0FBQyxDQUFDOEMsQ0FBQyxDQUFDLEdBQUNFLENBQUMsR0FBQ2hELENBQUMsQ0FBQzhDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQ0ksQ0FBQyxHQUFDbEQsQ0FBQyxDQUFDOEMsQ0FBQyxHQUFDLEVBQUUsQ0FBQztZQUFBO1lBQUMsSUFBSUssQ0FBQyxHQUFDM0QsQ0FBQyxHQUFDYSxDQUFDLEdBQUMsQ0FBQ2IsQ0FBQyxHQUFDb0IsQ0FBQztjQUFDd0MsQ0FBQyxHQUFDdkYsQ0FBQyxHQUFDQyxDQUFDLEdBQUNELENBQUMsR0FBQ0csQ0FBQyxHQUFDRixDQUFDLEdBQUNFLENBQUM7Y0FBQ3FGLENBQUMsR0FBQyxDQUFDeEYsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxLQUFHLENBQUMsS0FBR0EsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFQSxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLEtBQUcsRUFBRSxDQUFDO2NBQUN5RixDQUFDLEdBQUMsQ0FBQzlELENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsS0FBRyxDQUFDLEtBQUdBLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRUEsQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxLQUFHLEVBQUUsQ0FBQztjQUFDK0QsQ0FBQyxHQUFDL0IsQ0FBQyxHQUFDOEIsQ0FBQyxHQUFDSCxDQUFDLEdBQUNuRSxDQUFDLENBQUM4RCxDQUFDLENBQUMsR0FBQzlDLENBQUMsQ0FBQzhDLENBQUMsQ0FBQztjQUFDVSxDQUFDLEdBQUNILENBQUMsR0FBQ0QsQ0FBQztZQUFDNUIsQ0FBQyxHQUFDWixDQUFDLEVBQUNBLENBQUMsR0FBQ1AsQ0FBQyxFQUFDQSxDQUFDLEdBQUNiLENBQUMsRUFBQ0EsQ0FBQyxHQUFDYixDQUFDLEdBQUM0RSxDQUFDLEdBQUMsQ0FBQyxFQUFDNUUsQ0FBQyxHQUFDWCxDQUFDLEVBQUNBLENBQUMsR0FBQ0YsQ0FBQyxFQUFDQSxDQUFDLEdBQUNELENBQUMsRUFBQ0EsQ0FBQyxHQUFDMEYsQ0FBQyxHQUFDQyxDQUFDLEdBQUMsQ0FBQztVQUFBO1VBQUMvRixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0ksQ0FBQyxHQUFDLENBQUMsRUFBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNLLENBQUMsR0FBQyxDQUFDLEVBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDTyxDQUFDLEdBQUMsQ0FBQyxFQUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ2tCLENBQUMsR0FBQyxDQUFDLEVBQUNsQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQytCLENBQUMsR0FBQyxDQUFDLEVBQUMvQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzRDLENBQUMsR0FBQyxDQUFDLEVBQUM1QyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ21ELENBQUMsR0FBQyxDQUFDLEVBQUNuRCxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQytELENBQUMsR0FBQyxDQUFDO1FBQUEsQ0FBQztRQUFDTyxXQUFXLEVBQUMsU0FBQUEsWUFBQSxFQUFVO1VBQUMsSUFBSTdFLENBQUMsR0FBQyxJQUFJLENBQUM2RCxLQUFLO1lBQUN0RCxDQUFDLEdBQUNQLENBQUMsQ0FBQzJCLEtBQUs7WUFBQ2hCLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDbUQsV0FBVztZQUFDbEQsQ0FBQyxHQUFDLENBQUMsR0FBQ1osQ0FBQyxDQUFDNEIsUUFBUTtVQUFDLE9BQU9yQixDQUFDLENBQUNLLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRSxHQUFHLElBQUUsRUFBRSxHQUFDQSxDQUFDLEdBQUMsRUFBRSxFQUFDTCxDQUFDLENBQUMsQ0FBQ0ssQ0FBQyxHQUFDLEVBQUUsS0FBRyxDQUFDLElBQUUsQ0FBQyxJQUFFLEVBQUUsQ0FBQyxHQUFDWCxDQUFDLENBQUM2RyxLQUFLLENBQUNuRyxDQUFDLEdBQUMsVUFBVSxDQUFDLEVBQUNKLENBQUMsQ0FBQyxDQUFDSyxDQUFDLEdBQUMsRUFBRSxLQUFHLENBQUMsSUFBRSxDQUFDLElBQUUsRUFBRSxDQUFDLEdBQUNELENBQUMsRUFBQ1gsQ0FBQyxDQUFDNEIsUUFBUSxHQUFDLENBQUMsR0FBQ3JCLENBQUMsQ0FBQ3NCLE1BQU0sRUFBQyxJQUFJLENBQUNtQyxRQUFRLEVBQUUsRUFBQyxJQUFJLENBQUMyQixLQUFLO1FBQUEsQ0FBQztRQUFDbkUsS0FBSyxFQUFDLFNBQUFBLE1BQUEsRUFBVTtVQUFDLElBQUl4QixDQUFDLEdBQUNjLENBQUMsQ0FBQ1UsS0FBSyxDQUFDVyxJQUFJLENBQUMsSUFBSSxDQUFDO1VBQUMsT0FBT25DLENBQUMsQ0FBQzJGLEtBQUssR0FBQyxJQUFJLENBQUNBLEtBQUssQ0FBQ25FLEtBQUssRUFBRSxFQUFDeEIsQ0FBQztRQUFBO01BQUMsQ0FBQyxDQUFDO0lBQUNPLENBQUMsQ0FBQzZHLE1BQU0sR0FBQ3RHLENBQUMsQ0FBQ2dFLGFBQWEsQ0FBQzNCLENBQUMsQ0FBQyxFQUFDNUMsQ0FBQyxDQUFDOEcsVUFBVSxHQUFDdkcsQ0FBQyxDQUFDaUUsaUJBQWlCLENBQUM1QixDQUFDLENBQUM7RUFBQSxDQUFDLENBQUMrQixJQUFJLENBQUMsRUFBQyxZQUFVO0lBQUMsU0FBU2pGLENBQUNBLENBQUNELENBQUMsRUFBQztNQUFDLE9BQU9BLENBQUMsSUFBRSxDQUFDLEdBQUMsVUFBVSxHQUFDQSxDQUFDLEtBQUcsQ0FBQyxHQUFDLFFBQVE7SUFBQTtJQUFDLElBQUlPLENBQUMsR0FBQ1AsQ0FBQztNQUFDVyxDQUFDLEdBQUNKLENBQUMsQ0FBQ00sR0FBRztNQUFDRCxDQUFDLEdBQUNELENBQUMsQ0FBQ2UsU0FBUztNQUFDWixDQUFDLEdBQUNQLENBQUMsQ0FBQ2lDLEdBQUc7SUFBQzFCLENBQUMsQ0FBQ3dHLEtBQUssR0FBQ3hHLENBQUMsQ0FBQ3lHLE9BQU8sR0FBQztNQUFDeEYsU0FBUyxFQUFDLFNBQUFBLFVBQVMvQixDQUFDLEVBQUM7UUFBQyxLQUFJLElBQUlDLENBQUMsR0FBQ0QsQ0FBQyxDQUFDMkIsS0FBSyxFQUFDcEIsQ0FBQyxHQUFDUCxDQUFDLENBQUM0QixRQUFRLEVBQUNqQixDQUFDLEdBQUMsRUFBRSxFQUFDQyxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUNMLENBQUMsRUFBQ0ssQ0FBQyxJQUFFLENBQUMsRUFBQztVQUFDLElBQUlFLENBQUMsR0FBQ2IsQ0FBQyxDQUFDVyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxLQUFLO1VBQUNELENBQUMsQ0FBQzRCLElBQUksQ0FBQ1MsTUFBTSxDQUFDQyxZQUFZLENBQUNuQyxDQUFDLENBQUMsQ0FBQztRQUFBO1FBQUMsT0FBT0gsQ0FBQyxDQUFDK0IsSUFBSSxDQUFDLEVBQUUsQ0FBQztNQUFBLENBQUM7TUFBQ0MsS0FBSyxFQUFDLFNBQUFBLE1BQVMzQyxDQUFDLEVBQUM7UUFBQyxLQUFJLElBQUlDLENBQUMsR0FBQ0QsQ0FBQyxDQUFDNkIsTUFBTSxFQUFDdEIsQ0FBQyxHQUFDLEVBQUUsRUFBQ0ksQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDVixDQUFDLEVBQUNVLENBQUMsRUFBRSxFQUFDSixDQUFDLENBQUNJLENBQUMsS0FBRyxDQUFDLENBQUMsSUFBRVgsQ0FBQyxDQUFDa0QsVUFBVSxDQUFDdkMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLEVBQUU7UUFBQyxPQUFPQyxDQUFDLENBQUNILE1BQU0sQ0FBQ0YsQ0FBQyxFQUFDLENBQUMsR0FBQ04sQ0FBQyxDQUFDO01BQUE7SUFBQyxDQUFDO0lBQUNhLENBQUMsQ0FBQzBHLE9BQU8sR0FBQztNQUFDekYsU0FBUyxFQUFDLFNBQUFBLFVBQVMvQixDQUFDLEVBQUM7UUFBQyxLQUFJLElBQUlPLENBQUMsR0FBQ1AsQ0FBQyxDQUFDMkIsS0FBSyxFQUFDaEIsQ0FBQyxHQUFDWCxDQUFDLENBQUM0QixRQUFRLEVBQUNoQixDQUFDLEdBQUMsRUFBRSxFQUFDRSxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUNILENBQUMsRUFBQ0csQ0FBQyxJQUFFLENBQUMsRUFBQztVQUFDLElBQUlXLENBQUMsR0FBQ3hCLENBQUMsQ0FBQ00sQ0FBQyxDQUFDTyxDQUFDLEtBQUcsQ0FBQyxDQUFDLEtBQUcsRUFBRSxHQUFDQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxLQUFLLENBQUM7VUFBQ0YsQ0FBQyxDQUFDMkIsSUFBSSxDQUFDUyxNQUFNLENBQUNDLFlBQVksQ0FBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBQUE7UUFBQyxPQUFPYixDQUFDLENBQUM4QixJQUFJLENBQUMsRUFBRSxDQUFDO01BQUEsQ0FBQztNQUFDQyxLQUFLLEVBQUMsU0FBQUEsTUFBUzNDLENBQUMsRUFBQztRQUFDLEtBQUksSUFBSU8sQ0FBQyxHQUFDUCxDQUFDLENBQUM2QixNQUFNLEVBQUNsQixDQUFDLEdBQUMsRUFBRSxFQUFDRyxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUNQLENBQUMsRUFBQ08sQ0FBQyxFQUFFLEVBQUNILENBQUMsQ0FBQ0csQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFYixDQUFDLENBQUNELENBQUMsQ0FBQ2tELFVBQVUsQ0FBQ3BDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxHQUFDLENBQUMsR0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPRixDQUFDLENBQUNILE1BQU0sQ0FBQ0UsQ0FBQyxFQUFDLENBQUMsR0FBQ0osQ0FBQyxDQUFDO01BQUE7SUFBQyxDQUFDO0VBQUEsQ0FBQyxFQUFFLEVBQUMsWUFBVTtJQUFDLElBQUcsVUFBVSxJQUFFLE9BQU9rSCxXQUFXLEVBQUM7TUFBQyxJQUFJeEgsQ0FBQyxHQUFDRCxDQUFDO1FBQUNPLENBQUMsR0FBQ04sQ0FBQyxDQUFDWSxHQUFHO1FBQUNGLENBQUMsR0FBQ0osQ0FBQyxDQUFDbUIsU0FBUztRQUFDZCxDQUFDLEdBQUNELENBQUMsQ0FBQ1EsSUFBSTtRQUFDTCxDQUFDLEdBQUNILENBQUMsQ0FBQ1EsSUFBSSxHQUFDLFVBQVNuQixDQUFDLEVBQUM7VUFBQyxJQUFHQSxDQUFDLFlBQVl5SCxXQUFXLEtBQUd6SCxDQUFDLEdBQUMsSUFBSTBILFVBQVUsQ0FBQzFILENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQ0EsQ0FBQyxZQUFZMkgsU0FBUyxJQUFFLFdBQVcsSUFBRSxPQUFPQyxpQkFBaUIsSUFBRTVILENBQUMsWUFBWTRILGlCQUFpQixJQUFFNUgsQ0FBQyxZQUFZNkgsVUFBVSxJQUFFN0gsQ0FBQyxZQUFZOEgsV0FBVyxJQUFFOUgsQ0FBQyxZQUFZK0gsVUFBVSxJQUFFL0gsQ0FBQyxZQUFZZ0ksV0FBVyxJQUFFaEksQ0FBQyxZQUFZaUksWUFBWSxJQUFFakksQ0FBQyxZQUFZa0ksWUFBWSxNQUFJbEksQ0FBQyxHQUFDLElBQUkwSCxVQUFVLENBQUMxSCxDQUFDLENBQUNtSSxNQUFNLEVBQUNuSSxDQUFDLENBQUNvSSxVQUFVLEVBQUNwSSxDQUFDLENBQUNxSSxVQUFVLENBQUMsQ0FBQyxFQUFDckksQ0FBQyxZQUFZMEgsVUFBVSxFQUFDO1lBQUMsS0FBSSxJQUFJekgsQ0FBQyxHQUFDRCxDQUFDLENBQUNxSSxVQUFVLEVBQUM5SCxDQUFDLEdBQUMsRUFBRSxFQUFDSSxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUNWLENBQUMsRUFBQ1UsQ0FBQyxFQUFFLEVBQUNKLENBQUMsQ0FBQ0ksQ0FBQyxLQUFHLENBQUMsQ0FBQyxJQUFFWCxDQUFDLENBQUNXLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDO1lBQUNDLENBQUMsQ0FBQ3VCLElBQUksQ0FBQyxJQUFJLEVBQUM1QixDQUFDLEVBQUNOLENBQUMsQ0FBQztVQUFBLENBQUMsTUFBS1csQ0FBQyxDQUFDUyxLQUFLLENBQUMsSUFBSSxFQUFDQyxTQUFTLENBQUM7UUFBQSxDQUFDO01BQUNSLENBQUMsQ0FBQ0osU0FBUyxHQUFDQyxDQUFDO0lBQUE7RUFBQyxDQUFDLEVBQUUsRUFBQyxVQUFTVixDQUFDLEVBQUM7SUFBQyxTQUFTTSxDQUFDQSxDQUFDUCxDQUFDLEVBQUNDLENBQUMsRUFBQ00sQ0FBQyxFQUFDO01BQUMsT0FBT1AsQ0FBQyxHQUFDQyxDQUFDLEdBQUNNLENBQUM7SUFBQTtJQUFDLFNBQVNJLENBQUNBLENBQUNYLENBQUMsRUFBQ0MsQ0FBQyxFQUFDTSxDQUFDLEVBQUM7TUFBQyxPQUFPUCxDQUFDLEdBQUNDLENBQUMsR0FBQyxDQUFDRCxDQUFDLEdBQUNPLENBQUM7SUFBQTtJQUFDLFNBQVNLLENBQUNBLENBQUNaLENBQUMsRUFBQ0MsQ0FBQyxFQUFDTSxDQUFDLEVBQUM7TUFBQyxPQUFNLENBQUNQLENBQUMsR0FBQyxDQUFDQyxDQUFDLElBQUVNLENBQUM7SUFBQTtJQUFDLFNBQVNPLENBQUNBLENBQUNkLENBQUMsRUFBQ0MsQ0FBQyxFQUFDTSxDQUFDLEVBQUM7TUFBQyxPQUFPUCxDQUFDLEdBQUNPLENBQUMsR0FBQ04sQ0FBQyxHQUFDLENBQUNNLENBQUM7SUFBQTtJQUFDLFNBQVNrQixDQUFDQSxDQUFDekIsQ0FBQyxFQUFDQyxDQUFDLEVBQUNNLENBQUMsRUFBQztNQUFDLE9BQU9QLENBQUMsSUFBRUMsQ0FBQyxHQUFDLENBQUNNLENBQUMsQ0FBQztJQUFBO0lBQUMsU0FBUytCLENBQUNBLENBQUN0QyxDQUFDLEVBQUNDLENBQUMsRUFBQztNQUFDLE9BQU9ELENBQUMsSUFBRUMsQ0FBQyxHQUFDRCxDQUFDLEtBQUcsRUFBRSxHQUFDQyxDQUFDO0lBQUE7SUFBQyxJQUFJNkIsQ0FBQyxHQUFDOUIsQ0FBQztNQUFDOEMsQ0FBQyxHQUFDaEIsQ0FBQyxDQUFDakIsR0FBRztNQUFDc0MsQ0FBQyxHQUFDTCxDQUFDLENBQUNwQixTQUFTO01BQUNnQyxDQUFDLEdBQUNaLENBQUMsQ0FBQzBCLE1BQU07TUFBQ0YsQ0FBQyxHQUFDeEMsQ0FBQyxDQUFDbUQsSUFBSTtNQUFDVyxDQUFDLEdBQUN6QyxDQUFDLENBQUMxQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7TUFBQ29GLENBQUMsR0FBQzFDLENBQUMsQ0FBQzFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsQ0FBQztNQUFDcUYsQ0FBQyxHQUFDM0MsQ0FBQyxDQUFDMUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO01BQUNzRixDQUFDLEdBQUM1QyxDQUFDLENBQUMxQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUM7TUFBQ3VGLENBQUMsR0FBQzdDLENBQUMsQ0FBQzFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxVQUFV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QUFDUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM3RSxDQUFDLEdBQUMsRUFBRSxHQUFDaEIsQ0FBQyxDQUFDd0QsQ0FBQyxFQUFDNEIsQ0FBQyxFQUFDQyxDQUFDLENBQUMsR0FBQ1EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDbEYsQ0FBQyxDQUFDNkMsQ0FBQyxFQUFDNEIsQ0FBQyxFQUFDQyxDQUFDLENBQUMsR0FBQ1EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDK0IsQ0FBQyxJQUFFLENBQUMsRUFBQ0EsQ0FBQyxHQUFDcEcsQ0FBQyxDQUFDb0csQ0FBQyxFQUFDRixDQUFDLENBQUMxRyxDQUFDLENBQUMsQ0FBQyxFQUFDNEcsQ0FBQyxHQUFDQSxDQUFDLEdBQUN0QyxDQUFDLEdBQUMsQ0FBQyxFQUFDMUMsQ0FBQyxHQUFDMEMsQ0FBQyxFQUFDQSxDQUFDLEdBQUNELENBQUMsRUFBQ0EsQ0FBQyxHQUFDN0QsQ0FBQyxDQUFDNEQsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDQSxDQUFDLEdBQUM1QixDQUFDLEVBQUNBLENBQUMsR0FBQ29FLENBQUMsRUFBQ0EsQ0FBQyxHQUFDckMsQ0FBQyxHQUFDckcsQ0FBQyxDQUFDQyxDQUFDLEdBQUNzSSxDQUFDLENBQUN6RyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQzRHLENBQUMsSUFBRTVHLENBQUMsR0FBQyxFQUFFLEdBQUNMLENBQUMsQ0FBQzZFLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLENBQUMsR0FBQ0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOUUsQ0FBQyxHQUFDLEVBQUUsR0FBQ2hCLENBQUMsQ0FBQ3dGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLENBQUMsR0FBQ0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOUUsQ0FBQyxHQUFDLEVBQUUsR0FBQ2xCLENBQUMsQ0FBQzBGLENBQUMsRUFBQ0MsQ0FBQyxFQUFDQyxDQUFDLENBQUMsR0FBQ0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOUUsQ0FBQyxHQUFDLEVBQUUs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QUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsU0FBUyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLENBQUM7TUFBQ2tELENBQUMsR0FBQyxFQUFFO0lBQUMsQ0FBQyxZQUFVO01BQUMsS0FBSSxJQUFJbkQsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLEVBQUUsRUFBQ0EsQ0FBQyxFQUFFLEVBQUNtRCxDQUFDLENBQUNuRCxDQUFDLENBQUMsR0FBQ0MsQ0FBQyxFQUFFO0lBQUEsQ0FBQyxFQUFFO0lBQUMsSUFBSXlELENBQUMsR0FBQzVCLENBQUMsQ0FBQ2tJLE1BQU0sR0FBQ3BKLENBQUMsQ0FBQ0ksTUFBTSxDQUFDO01BQUMwRCxRQUFRLEVBQUMsU0FBQUEsU0FBQSxFQUFVO1FBQUMsSUFBSSxDQUFDaUIsS0FBSyxHQUFDLElBQUlyRCxDQUFDLENBQUNuQixJQUFJLENBQUMsQ0FBQyxJQUFJTSxDQUFDLENBQUNOLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSU0sQ0FBQyxDQUFDTixJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUlNLENBQUMsQ0FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBQyxVQUFVLENBQUMsRUFBQyxJQUFJTSxDQUFDLENBQUNOLElBQUksQ0FBQyxVQUFVLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSU0sQ0FBQyxDQUFDTixJQUFJLENBQUMsVUFBVSxFQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUlNLENBQUMsQ0FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsRUFBQyxJQUFJTSxDQUFDLENBQUNOLElBQUksQ0FBQyxTQUFTLEVBQUMsVUFBVSxDQUFDLEVBQUMsSUFBSU0sQ0FBQyxDQUFDTixJQUFJLENBQUMsVUFBVSxFQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7TUFBQSxDQUFDO01BQUNrRCxlQUFlLEVBQUMsU0FBQUEsZ0JBQVNyRSxDQUFDLEVBQUNDLENBQUMsRUFBQztRQUFDLEtBQUksSUFBSU0sQ0FBQyxHQUFDLElBQUksQ0FBQ29GLEtBQUssQ0FBQ2hFLEtBQUssRUFBQ2hCLENBQUMsR0FBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDSyxDQUFDLEdBQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ08sQ0FBQyxHQUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNrQixDQUFDLEdBQUNsQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMrQixDQUFDLEdBQUMvQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUN1QixDQUFDLEdBQUN2QixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNtRCxDQUFDLEdBQUNuRCxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMrRCxDQUFDLEdBQUMvRCxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNxRixDQUFDLEdBQUNqRixDQUFDLENBQUM4SSxJQUFJLEVBQUM1RCxDQUFDLEdBQUNsRixDQUFDLENBQUMrSSxHQUFHLEVBQUM1RCxDQUFDLEdBQUNsRixDQUFDLENBQUM2SSxJQUFJLEVBQUMxRCxDQUFDLEdBQUNuRixDQUFDLENBQUM4SSxHQUFHLEVBQUMxRCxDQUFDLEdBQUNsRixDQUFDLENBQUMySSxJQUFJLEVBQUN4RCxDQUFDLEdBQUNuRixDQUFDLENBQUM0SSxHQUFHLEVBQUN4RCxDQUFDLEdBQUN6RSxDQUFDLENBQUNnSSxJQUFJLEVBQUN0RCxDQUFDLEdBQUMxRSxDQUFDLENBQUNpSSxHQUFHLEVBQUN0RCxDQUFDLEdBQUM5RCxDQUFDLENBQUNtSCxJQUFJLEVBQUNwRCxDQUFDLEdBQUMvRCxDQUFDLENBQUNvSCxHQUFHLEVBQUNwRCxDQUFDLEdBQUN4RSxDQUFDLENBQUMySCxJQUFJLEVBQUNsRCxDQUFDLEdBQUN6RSxDQUFDLENBQUM0SCxHQUFHLEVBQUNsRCxDQUFDLEdBQUM5QyxDQUFDLENBQUMrRixJQUFJLEVBQUNoRCxDQUFDLEdBQUMvQyxDQUFDLENBQUNnRyxHQUFHLEVBQUNoRCxDQUFDLEdBQUNwQyxDQUFDLENBQUNtRixJQUFJLEVBQUM5QyxDQUFDLEdBQUNyQyxDQUFDLENBQUNvRixHQUFHLEVBQUM5QyxDQUFDLEdBQUNoQixDQUFDLEVBQUNpQixDQUFDLEdBQUNoQixDQUFDLEVBQUMwQyxDQUFDLEdBQUN6QyxDQUFDLEVBQUMwQyxDQUFDLEdBQUN6QyxDQUFDLEVBQUMwQyxDQUFDLEdBQUN6QyxDQUFDLEVBQUMwQyxDQUFDLEdBQUN6QyxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMvRCxDQUFDLEVBQUNnRSxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUMsRUFBRSxFQUFDQSxDQUFDLEVBQUUsRUFBQztVQUFDLElBQUlDLENBQUMsR0FBQ3pILENBQUMsQ0FBQ3dILENBQUMsQ0FBQztVQUFDLElBQUdBLENBQUMsR0FBQyxF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QUFHLENBQUMsR0FBQ3lDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDdkMsQ0FBQyxHQUFDMUUsQ0FBQyxDQUFDaUksR0FBRyxHQUFDdkQsQ0FBQyxHQUFDK0QsQ0FBQyxFQUFDekksQ0FBQyxDQUFDZ0ksSUFBSSxHQUFDdkQsQ0FBQyxHQUFDK0QsQ0FBQyxJQUFFOUQsQ0FBQyxLQUFHLENBQUMsR0FBQytELENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDN0QsQ0FBQyxHQUFDL0QsQ0FBQyxDQUFDb0gsR0FBRyxHQUFDckQsQ0FBQyxHQUFDK0QsQ0FBQyxFQUFDOUgsQ0FBQyxDQUFDbUgsSUFBSSxHQUFDckQsQ0FBQyxHQUFDK0QsQ0FBQyxJQUFFOUQsQ0FBQyxLQUFHLENBQUMsR0FBQytELENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDN0QsQ0FBQyxHQUFDekUsQ0FBQyxDQUFDNEgsR0FBRyxHQUFDbkQsQ0FBQyxHQUFDK0QsQ0FBQyxFQUFDeEksQ0FBQyxDQUFDMkgsSUFBSSxHQUFDbkQsQ0FBQyxHQUFDK0QsQ0FBQyxJQUFFOUQsQ0FBQyxLQUFHLENBQUMsR0FBQytELENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDN0QsQ0FBQyxHQUFDL0MsQ0FBQyxDQUFDZ0csR0FBRyxHQUFDakQsQ0FBQyxHQUFDK0QsQ0FBQyxFQUFDOUcsQ0FBQyxDQUFDK0YsSUFBSSxHQUFDakQsQ0FBQyxHQUFDK0QsQ0FBQyxJQUFFOUQsQ0FBQyxLQUFHLENBQUMsR0FBQytELENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxFQUFDN0QsQ0FBQyxHQUFDckMsQ0FBQyxDQUFDb0YsR0FBRyxHQUFDL0MsQ0FBQyxHQUFDK0QsQ0FBQyxFQUFDcEcsQ0FBQyxDQUFDbUYsSUFBSSxHQUFDL0MsQ0FBQyxHQUFDK0QsQ0FBQyxJQUFFOUQsQ0FBQyxLQUFHLENBQUMsR0FBQytE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RUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDO01BQUNnQixDQUFDLEdBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQztNQUFDSyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxFQUFFLENBQUM7TUFBQ08sQ0FBQyxHQUFDLENBQUM7UUFBQyxDQUFDLEVBQUMsT0FBTztRQUFDLFNBQVMsRUFBQyxLQUFLO1FBQUMsU0FBUyxFQUFDLE9BQU87UUFBQyxTQUFTLEVBQUMsQ0FBQztRQUFDLFVBQVUsRUFBQyxHQUFHO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLEdBQUc7UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLENBQUM7UUFBQyxVQUFVLEVBQUMsS0FBSztRQUFDLFNBQVMsRUFBQyxDQUFDO1FBQUMsU0FBUyxFQUFDLE9BQU87UUFBQyxTQUFTLEVBQUMsS0FBSztRQUFDLFNBQVMsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsR0FBRztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLENBQUM7UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLEtBQUs7UUFBQyxVQUFVLEVBQUMsR0FBRztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsQ0FBQyxFQUFDLEtBQUs7UUFBQyxTQUFTLEVBQUMsQ0FBQztRQUFDLFNBQVMsRUFBQyxPQUFPO1FBQUMsU0FBUyxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLEdBQUc7UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxPQUFPO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLEdBQUc7UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLENBQUM7UUFBQyxTQUFTLEVBQUMsT0FBTztRQUFDLFNBQVMsRUFBQyxPQUFPO1FBQUMsU0FBUyxFQUFDLE9BQU87UUFBQyxTQUFTLEVBQUMsR0FBRztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsQ0FBQztRQUFDLFVBQVUsRUFBQyxLQUFLO1FBQUMsVUFBVSxFQUFDLEtBQUs7UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxHQUFHO1FBQUMsVUFBVSxFQUFDLE9BQU87UUFBQyxVQUFVLEVBQUMsT0FBTztRQUFDLFVBQVUsRUFBQyxDQUFDO1FBQUMsVUFBVSxFQUFDLEtBQUs7UUFBQyxVQUFVLEVBQUM7TUFBTyxDQUFDLEVBQUM7UUFBQyxDQUFDLEVBQUMsVUFBVTtRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLE1BQU07UUFBQyxRQUFRLEVBQUMsVUFBVTtRQUFDLFFBQVEsRUFBQyxVQUFVO1FBQUMsUUFBUSxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxFQUFFO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsTUFBTTtRQUFDLFNBQVMsRUFBQyxDQUFDO1FBQUMsU0FBUyxFQUFDLEtBQUs7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsUUFBUSxFQUFDLE1BQU07UUFBQyxRQUFRLEVBQUMsRUFBRTtRQUFDLFFBQVEsRUFBQyxVQUFVO1FBQUMsUUFBUSxFQUFDLFVBQVU7UUFBQyxRQUFRLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsTUFBTTtRQUFDLFNBQVMsRUFBQyxDQUFDO1FBQUMsU0FBUyxFQUFDLEtBQUs7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxLQUFLO1FBQUMsU0FBUyxFQUFDLENBQUM7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxFQUFFO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsS0FBSztRQUFDLFNBQVMsRUFBQyxLQUFLO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsTUFBTTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsTUFBTTtRQUFDLFNBQVMsRUFBQyxNQUFNO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsS0FBSztRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsRUFBRTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUMsVUFBVTtRQUFDLFNBQVMsRUFBQyxVQUFVO1FBQUMsU0FBUyxFQUFDLE1BQU07UUFBQyxTQUFTLEVBQUMsQ0FBQztRQUFDLFNBQVMsRUFBQyxLQUFLO1FBQUMsU0FBUyxFQUFDLFVBQVU7UUFBQyxTQUFTLEVBQUM7TUFBTSxDQUFDLEVBQUM7UUFBQyxDQUFDLEVBQUMsR0FBRztRQUFDLE9BQU8sRUFBQyxDQUFDO1FBQUMsT0FBTyxFQUFDLFFBQVE7UUFBQyxPQUFPLEVBQUMsS0FBSztRQUFDLE9BQU8sRUFBQyxLQUFLO1FBQUMsT0FBTyxFQUFDLFFBQVE7UUFBQyxPQUFPLEVBQUMsUUFBUTtRQUFDLE9BQU8sRUFBQyxRQUFRO1FBQUMsT0FBTyxFQUFDLFFBQVE7UUFBQyxPQUFPLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLENBQUM7UUFBQyxRQUFRLEVBQUMsR0FBRztRQUFDLE1BQU0sRUFBQyxRQUFRO1FBQUMsT0FBTyxFQUFDLFFBQVE7UUFBQyxPQUFPLEVBQUMsQ0FBQztRQUFDLE9BQU8sRUFBQyxRQUFRO1FBQUMsT0FBTyxFQUFDLFFBQVE7UUFBQyxPQUFPLEVBQUMsS0FBSztRQUFDLE9BQU8sRUFBQyxLQUFLO1FBQUMsT0FBTyxFQUFDLEdBQUc7UUFBQyxPQUFPLEVBQUMsQ0FBQztRQUFDLE9BQU8sRUFBQyxHQUFHO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsS0FBSztRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsR0FBRztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsQ0FBQztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsQ0FBQztRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsR0FBRztRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxHQUFHO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsQ0FBQztRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsR0FBRztRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLEtBQUs7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxLQUFLO1FBQUMsUUFBUSxFQUFDLFFBQVE7UUFBQyxRQUFRLEVBQUMsUUFBUTtRQUFDLFFBQVEsRUFBQyxRQUFRO1FBQUMsUUFBUSxFQUFDLENBQUM7UUFBQyxRQUFRLEVBQUM7TUFBSyxDQUFDLEVBQUM7UUFBQyxDQUFDLEVBQUMsVUFBVTtRQUFDLEtBQUssRUFBQyxVQUFVO1FBQUMsTUFBTSxFQUFDLE9BQU87UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxDQUFDO1FBQUMsTUFBTSxFQUFDLE9BQU87UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxPQUFPO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxNQUFNLEVBQUMsT0FBTztRQUFDLE1BQU0sRUFBQyxFQUFFO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxJQUFJO1FBQUMsTUFBTSxFQUFDLElBQUk7UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLEtBQUssRUFBQyxVQUFVO1FBQUMsS0FBSyxFQUFDLEVBQUU7UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxVQUFVO1FBQUMsTUFBTSxFQUFDLE9BQU87UUFBQyxNQUFNLEVBQUMsVUFBVTtRQUFDLE1BQU0sRUFBQyxDQUFDO1FBQUMsTUFBTSxFQUFDLFVBQVU7UUFBQyxNQUFNLEVBQUMsSUFBSTtRQUFDLE1BQU0sRUFBQyxVQUFVO1FBQUMsTUFBTSxFQUFDLE9BQU87UUFBQyxNQUFNLEVBQUMsSUFBSTtRQUFDLE1BQU0sRUFBQyxVQUFVO1FBQUMsTUFBTSxFQUFDLE9BQU87UUFBQyxNQUFNLEVBQUMsT0FBTztRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLE9BQU87UUFBQyxPQUFPLEVBQUMsT0FBTztRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLENBQUM7UUFBQyxPQUFPLEVBQUMsSUFBSTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxPQUFPO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsT0FBTztRQUFDLE9BQU8sRUFBQyxFQUFFO1FBQUMsT0FBTyxFQUFDLElBQUk7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLENBQUM7UUFBQyxPQUFPLEVBQUMsT0FBTztRQUFDLE9BQU8sRUFBQyxPQUFPO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsVUFBVTtRQUFDLE9BQU8sRUFBQyxFQUFFO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsSUFBSTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLFVBQVU7UUFBQyxPQUFPLEVBQUMsSUFBSTtRQUFDLE9BQU8sRUFBQyxVQUFVO1FBQUMsT0FBTyxFQUFDLE9BQU87UUFBQyxPQUFPLEVBQUM7TUFBTyxDQUFDLEVBQUM7UUFBQyxDQUFDLEVBQUMsR0FBRztRQUFDLElBQUksRUFBQyxRQUFRO1FBQUMsSUFBSSxFQUFDLE1BQU07UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxNQUFNO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxDQUFDO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxRQUFRO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsR0FBRztRQUFDLEtBQUssRUFBQyxRQUFRO1FBQUMsS0FBSyxFQUFDLE1BQU07UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxDQUFDO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsUUFBUTtRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsUUFBUTtRQUFDLEtBQUssRUFBQyxNQUFNO1FBQUMsS0FBSyxFQUFDLE1BQU07UUFBQyxLQUFLLEVBQUMsR0FBRztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsUUFBUTtRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFNBQVM7UUFBQyxLQUFLLEVBQUMsUUFBUTtRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsTUFBTSxFQUFDLFNBQVM7UUFBQyxNQUFNLEVBQUMsUUFBUTtRQUFDLE1BQU0sRUFBQyxTQUFTO1FBQUMsTUFBTSxFQUFDLE1BQU07UUFBQyxNQUFNLEVBQUMsU0FBUztRQUFDLE1BQU0sRUFBQyxDQUFDO1FBQUMsTUFBTSxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxRQUFRO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsU0FBUztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsS0FBSyxFQUFDLFFBQVE7UUFBQyxLQUFLLEVBQUMsR0FBRztRQUFDLEtBQUssRUFBQyxTQUFTO1FBQUMsTUFBTSxFQUFDLE1BQU07UUFBQyxNQUFNLEVBQUMsU0FBUztRQUFDLE1BQU0sRUFBQyxDQUFDO1FBQUMsTUFBTSxFQUFDLFNBQVM7UUFBQyxNQUFNLEVBQUMsUUFBUTtRQUFDLE1BQU0sRUFBQyxNQUFNO1FBQUMsTUFBTSxFQUFDLFNBQVM7UUFBQyxNQUFNLEVBQUM7TUFBUyxDQUFDLEVBQUM7UUFBQyxDQUFDLEVBQUMsU0FBUztRQUFDLEdBQUcsRUFBQyxJQUFJO1FBQUMsR0FBRyxFQUFDLFNBQVM7UUFBQyxHQUFHLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLENBQUM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLENBQUM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLElBQUk7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLEdBQUcsRUFBQyxTQUFTO1FBQUMsR0FBRyxFQUFDLFNBQVM7UUFBQyxHQUFHLEVBQUMsQ0FBQztRQUFDLEdBQUcsRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLElBQUk7UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxJQUFJO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxDQUFDO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLElBQUk7UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLENBQUM7UUFBQyxJQUFJLEVBQUMsQ0FBQztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLElBQUk7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsQ0FBQztRQUFDLElBQUksRUFBQyxPQUFPO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLElBQUk7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxTQUFTO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUMsU0FBUztRQUFDLElBQUksRUFBQyxJQUFJO1FBQUMsSUFBSSxFQUFDLE9BQU87UUFBQyxJQUFJLEVBQUMsT0FBTztRQUFDLElBQUksRUFBQyxDQUFDO1FBQUMsSUFBSSxFQUFDLFNBQVM7UUFBQyxJQUFJLEVBQUM7TUFBUyxDQUFDLEVBQUM7UUFBQyxDQUFDLEVBQUMsT0FBTztRQUFDLEVBQUUsRUFBQyxRQUFRO1FBQUMsRUFBRSxFQUFDLElBQUk7UUFBQyxFQUFFLEVBQUMsT0FBTztRQUFDLEVBQUUsRUFBQyxRQUFRO1FBQUMsRUFBRSxFQUFDLENBQUM7UUFBQyxFQUFFLEVBQUMsQ0FBQztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxJQUFJO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLENBQUMsRUFBQyxRQUFRO1FBQUMsRUFBRSxFQUFDLENBQUM7UUFBQyxFQUFFLEVBQUMsUUFBUTtRQUFDLEVBQUUsRUFBQyxRQUFRO1FBQUMsRUFBRSxFQUFDLE9BQU87UUFBQyxFQUFFLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLElBQUk7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxJQUFJO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsQ0FBQztRQUFDLEdBQUcsRUFBQyxPQUFPO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxJQUFJO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxDQUFDO1FBQUMsR0FBRyxFQUFDLENBQUM7UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLElBQUk7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsQ0FBQztRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLE9BQU87UUFBQyxHQUFHLEVBQUMsSUFBSTtRQUFDLEdBQUcsRUFBQyxRQUFRO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsUUFBUTtRQUFDLEdBQUcsRUFBQyxDQUFDO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUMsT0FBTztRQUFDLEdBQUcsRUFBQyxJQUFJO1FBQUMsR0FBRyxFQUFDLFFBQVE7UUFBQyxHQUFHLEVBQUM7TUFBTyxDQUFDLEVBQUM7UUFBQyxDQUFDLEVBQUMsU0FBUztRQUFDLENBQUMsRUFBQyxNQUFNO1FBQUMsQ0FBQyxFQUFDLFNBQVM7UUFBQyxDQUFDLEVBQUMsRUFBRTtRQUFDLENBQUMsRUFBQyxNQUFNO1FBQUMsQ0FBQyxFQUFDLFNBQVM7UUFBQyxDQUFDLEVBQUMsU0FBUztRQUFDLENBQUMsRUFBQyxJQUFJO1FBQUMsQ0FBQyxFQUFDLFNBQVM7UUFBQyxDQUFDLEVBQUMsU0FBUztRQUFDLEVBQUUsRUFBQyxNQUFNO1FBQUMsRUFBRSxFQUFDLFNBQVM7UUFBQyxFQUFFLEVBQUMsSUFBSTtRQUFDLEVBQUUsRUFBQyxDQUFDO1FBQUMsRUFBRSxFQUFDLFNBQVM7UUFBQyxFQUFFLEVBQUMsTUFBTTtRQUFDLFVBQVUsRUFBQyxJQUFJO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsTUFBTTtRQUFDLFVBQVUsRUFBQyxNQUFNO1FBQUMsVUFBVSxFQUFDLEVBQUU7UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxJQUFJO1FBQUMsVUFBVSxFQUFDLE1BQU07UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxDQUFDO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxNQUFNO1FBQUMsRUFBRSxFQUFDLE1BQU07UUFBQyxFQUFFLEVBQUMsU0FBUztRQUFDLEVBQUUsRUFBQyxFQUFFO1FBQUMsRUFBRSxFQUFDLElBQUk7UUFBQyxFQUFFLEVBQUMsU0FBUztRQUFDLEVBQUUsRUFBQyxTQUFTO1FBQUMsRUFBRSxFQUFDLFNBQVM7UUFBQyxFQUFFLEVBQUMsTUFBTTtRQUFDLEVBQUUsRUFBQyxDQUFDO1FBQUMsRUFBRSxFQUFDLE1BQU07UUFBQyxFQUFFLEVBQUMsU0FBUztRQUFDLEVBQUUsRUFBQyxTQUFTO1FBQUMsRUFBRSxFQUFDLFNBQVM7UUFBQyxFQUFFLEVBQUMsTUFBTTtRQUFDLEVBQUUsRUFBQyxJQUFJO1FBQUMsRUFBRSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsTUFBTTtRQUFDLFVBQVUsRUFBQyxJQUFJO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsTUFBTTtRQUFDLFVBQVUsRUFBQyxFQUFFO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLFNBQVM7UUFBQyxVQUFVLEVBQUMsU0FBUztRQUFDLFVBQVUsRUFBQyxTQUFTO1FBQUMsVUFBVSxFQUFDLENBQUM7UUFBQyxVQUFVLEVBQUMsTUFBTTtRQUFDLFVBQVUsRUFBQyxJQUFJO1FBQUMsVUFBVSxFQUFDLE1BQU07UUFBQyxVQUFVLEVBQUM7TUFBUyxDQUFDLENBQUM7TUFBQ1ksQ0FBQyxHQUFDLENBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUFDLFVBQVUsQ0FBQztNQUFDc0IsQ0FBQyxHQUFDdEQsQ0FBQyxDQUFDd08sR0FBRyxHQUFD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QUFVLEdBQUMsSUFBSSxDQUFDOFIsRUFBRSxHQUFDLENBQUMsRUFBQzlSLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFNBQVMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFNBQVMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLFVBQVUsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQyxJQUFJLENBQUN5UCxFQUFFLEdBQUM5UixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQyxDQUFDLEdBQUMsQ0FBQztNQUFDLEtBQUksSUFBSS9CLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsR0FBQyxDQUFDLEVBQUNBLENBQUMsRUFBRSxFQUFDO1FBQUMsSUFBSUksQ0FBQyxHQUFDWCxDQUFDLENBQUNPLENBQUMsQ0FBQyxHQUFDTixDQUFDLENBQUNNLENBQUMsQ0FBQztVQUFDSyxDQUFDLEdBQUMsS0FBSyxHQUFDRCxDQUFDO1VBQUNHLENBQUMsR0FBQ0gsQ0FBQyxLQUFHLEVBQUU7VUFBQ2MsQ0FBQyxHQUFDLENBQUMsQ0FBQ2IsQ0FBQyxHQUFDQSxDQUFDLEtBQUcsRUFBRSxJQUFFQSxDQUFDLEdBQUNFLENBQUMsS0FBRyxFQUFFLElBQUVBLENBQUMsR0FBQ0EsQ0FBQztVQUFDZ0MsQ0FBQyxHQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUNuQyxDQUFDLElBQUVBLENBQUMsR0FBQyxDQUFDLEtBQUcsQ0FBQyxLQUFLLEdBQUNBLENBQUMsSUFBRUEsQ0FBQyxHQUFDLENBQUMsQ0FBQztRQUFDbUIsQ0FBQyxDQUFDdkIsQ0FBQyxDQUFDLEdBQUNrQixDQUFDLEdBQUNxQixDQUFDO01BQUE7TUFBQzlDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxH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QUksQ0FBQ2dSLEVBQUUsR0FBQyxDQUFDOVIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQyxVQUFVLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxLQUFLLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztVQUFDLElBQUksQ0FBQytSLEVBQUUsR0FBQyxDQUFDO1VBQUMsS0FBSSxJQUFJcFIsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxFQUFFLEVBQUNWLENBQUMsQ0FBQ2tDLElBQUksQ0FBQyxJQUFJLENBQUM7VUFBQyxLQUFJLElBQUl4QixDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEVBQUUsRUFBQ0csQ0FBQyxDQUFDSCxDQUFDLENBQUMsSUFBRUMsQ0FBQyxDQUFDRCxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsQ0FBQztVQUFDLElBQUdKLENBQUMs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LENBQUMsR0FBQyxDQUFDO1VBQUMsS0FBSSxJQUFJMkIsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDM0IsQ0FBQyxFQUFDMkIsQ0FBQyxFQUFFLEVBQUN0QyxDQUFDLENBQUNDLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxJQUFFYixDQUFDLENBQUNhLENBQUMsQ0FBQztRQUFBO01BQUMsQ0FBQyxDQUFDO0lBQUMsT0FBT3JDLENBQUMsQ0FBQytOLFNBQVMsR0FBQ3pOLENBQUMsRUFBQ04sQ0FBQztFQUFBLENBQUMsRUFBRSxFQUFDLFlBQVU7SUFBQyxTQUFTQSxDQUFDQSxDQUFBLEVBQUU7TUFBQyxLQUFJLElBQUlELENBQUMsR0FBQyxJQUFJLENBQUM2UixFQUFFLEVBQUM1UixDQUFDLEdBQUMsSUFBSSxDQUFDNlIsRUFBRSxFQUFDdlIsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxHQUFDLENBQUMsRUFBQ0EsQ0FBQyxFQUFFLEVBQUMrQixDQUFDLENBQUMvQixDQUFDLENBQUMsR0FBQ04sQ0FBQyxDQUFDTSxDQUFDLENBQUM7TUFBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsVUFBVSxHQUFDLElBQUksQ0FBQzhSLEVBQUUsR0FBQyxDQUFDLEVBQUM5UixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxTQUFTLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxTQUFTLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUNyQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxVQUFVLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUNxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsQ0FBQyxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUMsSUFBSSxDQUFDeVAsRUFBRSxHQUFDOVIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLENBQUMsR0FBQ3FDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUM7TUFBQyxLQUFJLElBQUkvQixDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEdBQUMsQ0FBQyxFQUFDQSxDQUFDLEVBQUUsRUFBQztRQUFDLElBQUlJLENBQUMsR0FBQ1gsQ0FBQyxDQUFDTyxDQUFDLENBQUMsR0FBQ04sQ0FBQyxDQUFDTSxDQUFDLENBQUM7VUFBQ0ssQ0FBQyxHQUFDLEtBQUssR0FBQ0QsQ0FBQztVQUFDRyxDQUFDLEdBQUNILENBQUMsS0FBRyxFQUFFO1VBQUNjLENBQUMsR0FBQyxDQUFDLENBQUNiLENBQUMsR0FBQ0EsQ0FBQyxLQUFHLEVBQUUsSUFBRUEsQ0FBQyxHQUFDRSxDQUFDLEtBQUcsRUFBRSxJQUFFQSxDQUFDLEdBQUNBLENBQUM7VUFBQ2dDLENBQUMsR0FBQyxDQUFDLENBQUMsVUFBVSxHQUFDbkMsQ0FBQyxJQUFFQSxDQUFDLEdBQUMsQ0FBQyxLQUFHLENBQUMsS0FBSyxHQUFDQSxDQUFDLElBQUVBLENBQUMsR0FBQyxDQUFDLENBQUM7UUFBQ21CLENBQUMsQ0FBQ3ZCLENBQUMsQ0FBQyxHQUFDa0IsQ0FBQyxHQUFDcUIsQ0FBQztNQUFBO01BQUM5QyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxFQUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQyxDQUFDLEVBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUMsQ0FBQyxFQUFDOUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQyxDQUFDLEVBQUM5QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUM4QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDLENBQUMsRUFBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQzhCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLENBQUMsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsQ0FBQyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsQ0FBQztJQUFBO0lBQUMsSUFBSXZCLENBQUMsR0FBQ1AsQ0FBQztNQUFDVyxDQUFDLEdBQUNKLENBQUMsQ0FBQ00sR0FBRztNQUFDRCxDQUFDLEdBQUNELENBQUMsQ0FBQ2lOLFlBQVk7TUFBQzlNLENBQUMsR0FBQ1AsQ0FBQyxDQUFDMEUsSUFBSTtNQUFDeEQsQ0FBQyxHQUFDLEVBQUU7TUFBQ2EsQ0FBQyxHQUFDLEVBQUU7TUFBQ1IsQ0FBQyxHQUFDLEVBQUU7TUFBQ2dCLENBQUMsR0FBQ2hDLENBQUMsQ0FBQ29SLFlBQVksR0FBQ3RSLENBQUMsQ0FBQ0ksTUFBTSxDQUFDO1FBQUMwRCxRQUFRLEVBQUMsU0FBQUEsU0FBQSxFQUFVO1VBQUMsSUFBSTFFLENBQUMsR0FBQyxJQUFJLENBQUN1TixJQUFJLENBQUM1TCxLQUFLO1lBQUNwQixDQUFDLEdBQUMsSUFBSSxDQUFDa0UsR0FBRyxDQUFDb0ssRUFBRTtZQUFDbE8sQ0FBQyxHQUFDLElBQUksQ0FBQ2tSLEVBQUUsR0FBQyxDQUFDN1IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxFQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFFLEVBQUUsR0FBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFHLEVBQUUsRUFBQ0EsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUUsRUFBRSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUcsRUFBRSxDQUFDO1lBQUNZLENBQUMsR0FBQyxJQUFJLENBQUNrUixFQUFFLEdBQUMsQ0FBQzlSLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBRSxFQUFFLEdBQUNBLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBRyxFQUFFLEVBQUMsVUFBVSxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsS0FBSyxHQUFDQSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7VUFBQyxJQUFJLENBQUMrUixFQUFFLEdBQUMsQ0FBQztVQUFDLEtBQUks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QUFDLEtBQUcsRUFBRSxHQUFDQSxDQUFDLEdBQUMsQ0FBQyxHQUFDLENBQUMsR0FBQyxHQUFHLENBQUMsR0FBRUEsQ0FBQyxFQUFFO01BQUNQLENBQUMsQ0FBQzRCLFFBQVEsR0FBQ3JCLENBQUMsR0FBQyxDQUFDO0lBQUE7RUFBQyxDQUFDLEVBQUNQLENBQUM7QUFBQSxDQUFDLENBQUM7QUFDbmhmIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIhZnVuY3Rpb24odCxyKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1leHBvcnRzPXIoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtdLHIpOnQuQ3J5cHRvSlM9cigpfSh0aGlzLGZ1bmN0aW9uKCl7dmFyIHQ9dHx8ZnVuY3Rpb24odCxyKXt2YXIgZT1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBlO3JldHVybiB0LnByb3RvdHlwZT1yLGU9bmV3IHQsdC5wcm90b3R5cGU9bnVsbCxlfX0oKSxpPXt9LG49aS5saWI9e30sbz1uLkJhc2U9ZnVuY3Rpb24oKXtyZXR1cm57ZXh0ZW5kOmZ1bmN0aW9uKHQpe3ZhciByPWUodGhpcyk7cmV0dXJuIHQmJnIubWl4SW4odCksci5oYXNPd25Qcm9wZXJ0eShcImluaXRcIikmJnRoaXMuaW5pdCE9PXIuaW5pdHx8KHIuaW5pdD1mdW5jdGlvbigpe3IuJHN1cGVyLmluaXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksci5pbml0LnByb3RvdHlwZT1yLHIuJHN1cGVyPXRoaXMscn0sY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5leHRlbmQoKTtyZXR1cm4gdC5pbml0LmFwcGx5KHQsYXJndW1lbnRzKSx0fSxpbml0OmZ1bmN0aW9uKCl7fSxtaXhJbjpmdW5jdGlvbih0KXtmb3IodmFyIHIgaW4gdCl0Lmhhc093blByb3BlcnR5KHIpJiYodGhpc1tyXT10W3JdKTt0Lmhhc093blByb3BlcnR5KFwidG9TdHJpbmdcIikmJih0aGlzLnRvU3RyaW5nPXQudG9TdHJpbmcpfSxjbG9uZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluaXQucHJvdG90eXBlLmV4dGVuZCh0aGlzKX19fSgpLHM9bi5Xb3JkQXJyYXk9by5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCxlKXt0PXRoaXMud29yZHM9dHx8W10sZSE9cj90aGlzLnNpZ0J5dGVzPWU6dGhpcy5zaWdCeXRlcz00KnQubGVuZ3RofSx0b1N0cmluZzpmdW5jdGlvbih0KXtyZXR1cm4odHx8Yykuc3RyaW5naWZ5KHRoaXMpfSxjb25jYXQ6ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy53b3JkcyxlPXQud29yZHMsaT10aGlzLnNpZ0J5dGVzLG49dC5zaWdCeXRlcztpZih0aGlzLmNsYW1wKCksaSU0KWZvcih2YXIgbz0wO288bjtvKyspe3ZhciBzPWVbbz4+PjJdPj4+MjQtbyU0KjgmMjU1O3JbaStvPj4+Ml18PXM8PDI0LShpK28pJTQqOH1lbHNlIGZvcih2YXIgbz0wO288bjtvKz00KXJbaStvPj4+Ml09ZVtvPj4+Ml07cmV0dXJuIHRoaXMuc2lnQnl0ZXMrPW4sdGhpc30sY2xhbXA6ZnVuY3Rpb24oKXt2YXIgcj10aGlzLndvcmRzLGU9dGhpcy5zaWdCeXRlcztyW2U+Pj4yXSY9NDI5NDk2NzI5NTw8MzItZSU0Kjgsci5sZW5ndGg9dC5jZWlsKGUvNCl9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9by5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0LndvcmRzPXRoaXMud29yZHMuc2xpY2UoMCksdH0scmFuZG9tOmZ1bmN0aW9uKHIpe2Zvcih2YXIgZSxpPVtdLG49ZnVuY3Rpb24ocil7dmFyIHI9cixlPTk4NzY1NDMyMSxpPTQyOTQ5NjcyOTU7cmV0dXJuIGZ1bmN0aW9uKCl7ZT0zNjk2OSooNjU1MzUmZSkrKGU+PjE2KSZpLHI9MThlMyooNjU1MzUmcikrKHI+PjE2KSZpO3ZhciBuPShlPDwxNikrciZpO3JldHVybiBuLz00Mjk0OTY3Mjk2LG4rPS41LG4qKHQucmFuZG9tKCk+LjU/MTotMSl9fSxvPTA7bzxyO28rPTQpe3ZhciBhPW4oNDI5NDk2NzI5NiooZXx8dC5yYW5kb20oKSkpO2U9OTg3NjU0MDcxKmEoKSxpLnB1c2goNDI5NDk2NzI5NiphKCl8MCl9cmV0dXJuIG5ldyBzLmluaXQoaSxyKX19KSxhPWkuZW5jPXt9LGM9YS5IZXg9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC53b3JkcyxlPXQuc2lnQnl0ZXMsaT1bXSxuPTA7bjxlO24rKyl7dmFyIG89cltuPj4+Ml0+Pj4yNC1uJTQqOCYyNTU7aS5wdXNoKChvPj4+NCkudG9TdHJpbmcoMTYpKSxpLnB1c2goKDE1Jm8pLnRvU3RyaW5nKDE2KSl9cmV0dXJuIGkuam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQubGVuZ3RoLGU9W10saT0wO2k8cjtpKz0yKWVbaT4+PjNdfD1wYXJzZUludCh0LnN1YnN0cihpLDIpLDE2KTw8MjQtaSU4KjQ7cmV0dXJuIG5ldyBzLmluaXQoZSxyLzIpfX0saD1hLkxhdGluMT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10LndvcmRzLGU9dC5zaWdCeXRlcyxpPVtdLG49MDtuPGU7bisrKXt2YXIgbz1yW24+Pj4yXT4+PjI0LW4lNCo4JjI1NTtpLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShvKSl9cmV0dXJuIGkuam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQubGVuZ3RoLGU9W10saT0wO2k8cjtpKyspZVtpPj4+Ml18PSgyNTUmdC5jaGFyQ29kZUF0KGkpKTw8MjQtaSU0Kjg7cmV0dXJuIG5ldyBzLmluaXQoZSxyKX19LGw9YS5VdGY4PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKGguc3RyaW5naWZ5KHQpKSl9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiTWFsZm9ybWVkIFVURi04IGRhdGFcIil9fSxwYXJzZTpmdW5jdGlvbih0KXtyZXR1cm4gaC5wYXJzZSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQodCkpKX19LGY9bi5CdWZmZXJlZEJsb2NrQWxnb3JpdGhtPW8uZXh0ZW5kKHtyZXNldDpmdW5jdGlvbigpe3RoaXMuX2RhdGE9bmV3IHMuaW5pdCx0aGlzLl9uRGF0YUJ5dGVzPTB9LF9hcHBlbmQ6ZnVuY3Rpb24odCl7XCJzdHJpbmdcIj09dHlwZW9mIHQmJih0PWwucGFyc2UodCkpLHRoaXMuX2RhdGEuY29uY2F0KHQpLHRoaXMuX25EYXRhQnl0ZXMrPXQuc2lnQnl0ZXN9LF9wcm9jZXNzOmZ1bmN0aW9uKHIpe3ZhciBlPXRoaXMuX2RhdGEsaT1lLndvcmRzLG49ZS5zaWdCeXRlcyxvPXRoaXMuYmxvY2tTaXplLGE9NCpvLGM9bi9hO2M9cj90LmNlaWwoYyk6dC5tYXgoKDB8YyktdGhpcy5fbWluQnVmZmVyU2l6ZSwwKTt2YXIgaD1jKm8sbD10Lm1pbig0Kmgsbik7aWYoaCl7Zm9yKHZhciBmPTA7ZjxoO2YrPW8pdGhpcy5fZG9Qcm9jZXNzQmxvY2soaSxmKTt2YXIgdT1pLnNwbGljZSgwLGgpO2Uuc2lnQnl0ZXMtPWx9cmV0dXJuIG5ldyBzLmluaXQodSxsKX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1vLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2RhdGE9dGhpcy5fZGF0YS5jbG9uZSgpLHR9LF9taW5CdWZmZXJTaXplOjB9KSx1PShuLkhhc2hlcj1mLmV4dGVuZCh7Y2ZnOm8uZXh0ZW5kKCksaW5pdDpmdW5jdGlvbih0KXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQodCksdGhpcy5yZXNldCgpfSxyZXNldDpmdW5jdGlvbigpe2YucmVzZXQuY2FsbCh0aGlzKSx0aGlzLl9kb1Jlc2V0KCl9LHVwZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYXBwZW5kKHQpLHRoaXMuX3Byb2Nlc3MoKSx0aGlzfSxmaW5hbGl6ZTpmdW5jdGlvbih0KXt0JiZ0aGlzLl9hcHBlbmQodCk7dmFyIHI9dGhpcy5fZG9GaW5hbGl6ZSgpO3JldHVybiByfSxibG9ja1NpemU6MTYsX2NyZWF0ZUhlbHBlcjpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24ocixlKXtyZXR1cm4gbmV3IHQuaW5pdChlKS5maW5hbGl6ZShyKX19LF9jcmVhdGVIbWFjSGVscGVyOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihyLGUpe3JldHVybiBuZXcgdS5ITUFDLmluaXQodCxlKS5maW5hbGl6ZShyKX19fSksaS5hbGdvPXt9KTtyZXR1cm4gaX0oTWF0aCk7cmV0dXJuIGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0LHIsZSl7Zm9yKHZhciBpPVtdLG89MCxzPTA7czxyO3MrKylpZihzJTQpe3ZhciBhPWVbdC5jaGFyQ29kZUF0KHMtMSldPDxzJTQqMixjPWVbdC5jaGFyQ29kZUF0KHMpXT4+PjYtcyU0KjI7aVtvPj4+Ml18PShhfGMpPDwyNC1vJTQqOCxvKyt9cmV0dXJuIG4uY3JlYXRlKGksbyl9dmFyIGU9dCxpPWUubGliLG49aS5Xb3JkQXJyYXksbz1lLmVuYztvLkJhc2U2ND17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe3ZhciByPXQud29yZHMsZT10LnNpZ0J5dGVzLGk9dGhpcy5fbWFwO3QuY2xhbXAoKTtmb3IodmFyIG49W10sbz0wO288ZTtvKz0zKWZvcih2YXIgcz1yW28+Pj4yXT4+PjI0LW8lNCo4JjI1NSxhPXJbbysxPj4+Ml0+Pj4yNC0obysxKSU0KjgmMjU1LGM9cltvKzI+Pj4yXT4+PjI0LShvKzIpJTQqOCYyNTUsaD1zPDwxNnxhPDw4fGMsbD0wO2w8NCYmbysuNzUqbDxlO2wrKyluLnB1c2goaS5jaGFyQXQoaD4+PjYqKDMtbCkmNjMpKTt2YXIgZj1pLmNoYXJBdCg2NCk7aWYoZilmb3IoO24ubGVuZ3RoJTQ7KW4ucHVzaChmKTtyZXR1cm4gbi5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgZT10Lmxlbmd0aCxpPXRoaXMuX21hcCxuPXRoaXMuX3JldmVyc2VNYXA7aWYoIW4pe249dGhpcy5fcmV2ZXJzZU1hcD1bXTtmb3IodmFyIG89MDtvPGkubGVuZ3RoO28rKyluW2kuY2hhckNvZGVBdChvKV09b312YXIgcz1pLmNoYXJBdCg2NCk7aWYocyl7dmFyIGE9dC5pbmRleE9mKHMpO2EhPT0tMSYmKGU9YSl9cmV0dXJuIHIodCxlLG4pfSxfbWFwOlwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz1cIn19KCksZnVuY3Rpb24ocil7ZnVuY3Rpb24gZSh0LHIsZSxpLG4sbyxzKXt2YXIgYT10KyhyJmV8fnImaSkrbitzO3JldHVybihhPDxvfGE+Pj4zMi1vKStyfWZ1bmN0aW9uIGkodCxyLGUsaSxuLG8scyl7dmFyIGE9dCsociZpfGUmfmkpK24rcztyZXR1cm4oYTw8b3xhPj4+MzItbykrcn1mdW5jdGlvbiBuKHQscixlLGksbixvLHMpe3ZhciBhPXQrKHJeZV5pKStuK3M7cmV0dXJuKGE8PG98YT4+PjMyLW8pK3J9ZnVuY3Rpb24gbyh0LHIsZSxpLG4sbyxzKXt2YXIgYT10KyhlXihyfH5pKSkrbitzO3JldHVybihhPDxvfGE+Pj4zMi1vKStyfXZhciBzPXQsYT1zLmxpYixjPWEuV29yZEFycmF5LGg9YS5IYXNoZXIsbD1zLmFsZ28sZj1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PDY0O3QrKylmW3RdPTQyOTQ5NjcyOTYqci5hYnMoci5zaW4odCsxKSl8MH0oKTt2YXIgdT1sLk1ENT1oLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBjLmluaXQoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OF0pfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXtmb3IodmFyIHM9MDtzPDE2O3MrKyl7dmFyIGE9citzLGM9dFthXTt0W2FdPTE2NzExOTM1JihjPDw4fGM+Pj4yNCl8NDI3ODI1NTM2MCYoYzw8MjR8Yz4+PjgpfXZhciBoPXRoaXMuX2hhc2gud29yZHMsbD10W3IrMF0sdT10W3IrMV0sZD10W3IrMl0sdj10W3IrM10scD10W3IrNF0sXz10W3IrNV0seT10W3IrNl0sZz10W3IrN10sQj10W3IrOF0sdz10W3IrOV0saz10W3IrMTBdLFM9dFtyKzExXSxtPXRbcisxMl0seD10W3IrMTNdLGI9dFtyKzE0XSxIPXRbcisxNV0sej1oWzBdLEE9aFsxXSxDPWhbMl0sRD1oWzNdO3o9ZSh6LEEsQyxELGwsNyxmWzBdKSxEPWUoRCx6LEEsQyx1LDEyLGZbMV0pLEM9ZShDLEQseixBLGQsMTcsZlsyXSksQT1lKEEsQyxELHosdiwyMixmWzNdKSx6PWUoeixBLEMsRCxwLDcsZls0XSksRD1lKEQseixBLEMsXywxMixmWzVdKSxDPWUoQyxELHosQSx5LDE3LGZbNl0pLEE9ZShBLEMsRCx6LGcsMjIsZls3XSksej1lKHosQSxDLEQsQiw3LGZbOF0pLEQ9ZShELHosQSxDLHcsMTIsZls5XSksQz1lKEMsRCx6LEEsaywxNyxmWzEwXSksQT1lKEEsQyxELHosUywyMixmWzExXSksej1lKHosQSxDLEQsbSw3LGZbMTJdKSxEPWUoRCx6LEEsQyx4LDEyLGZbMTNdKSxDPWUoQyxELHosQSxiLDE3LGZbMTRdKSxBPWUoQSxDLEQseixILDIyLGZbMTVdKSx6PWkoeixBLEMsRCx1LDUsZlsxNl0pLEQ9aShELHosQSxDLHksOSxmWzE3XSksQz1pKEMsRCx6LEEsUywxNCxmWzE4XSksQT1pKEEsQyxELHosbCwyMCxmWzE5XSksej1pKHosQSxDLEQsXyw1LGZbMjBdKSxEPWkoRCx6LEEsQyxrLDksZlsyMV0pLEM9aShDLEQseixBLEgsMTQsZlsyMl0pLEE9aShBLEMsRCx6LHAsMjAsZlsyM10pLHo9aSh6LEEsQyxELHcsNSxmWzI0XSksRD1pKEQseixBLEMsYiw5LGZbMjVdKSxDPWkoQyxELHosQSx2LDE0LGZbMjZdKSxBPWkoQSxDLEQseixCLDIwLGZbMjddKSx6PWkoeixBLEMsRCx4LDUsZlsyOF0pLEQ9aShELHosQSxDLGQsOSxmWzI5XSksQz1pKEMsRCx6LEEsZywxNCxmWzMwXSksQT1pKEEsQyxELHosbSwyMCxmWzMxXSksej1uKHosQSxDLEQsXyw0LGZbMzJdKSxEPW4oRCx6LEEsQyxCLDExLGZbMzNdKSxDPW4oQyxELHosQSxTLDE2LGZbMzRdKSxBPW4oQSxDLEQseixiLDIzLGZbMzVdKSx6PW4oeixBLEMsRCx1LDQsZlszNl0pLEQ9bihELHosQSxDLHAsMTEsZlszN10pLEM9bihDLEQseixBLGcsMTYsZlszOF0pLEE9bihBLEMsRCx6LGssMjMsZlszOV0pLHo9bih6LEEsQyxELHgsNCxmWzQwXSksRD1uKEQseixBLEMsbCwxMSxmWzQxXSksQz1uKEMsRCx6LEEsdiwxNixmWzQyXSksQT1uKEEsQyxELHoseSwyMyxmWzQzXSksej1uKHosQSxDLEQsdyw0LGZbNDRdKSxEPW4oRCx6LEEsQyxtLDExLGZbNDVdKSxDPW4oQyxELHosQSxILDE2LGZbNDZdKSxBPW4oQSxDLEQseixkLDIzLGZbNDddKSx6PW8oeixBLEMsRCxsLDYsZls0OF0pLEQ9byhELHosQSxDLGcsMTAsZls0OV0pLEM9byhDLEQseixBLGIsMTUsZls1MF0pLEE9byhBLEMsRCx6LF8sMjEsZls1MV0pLHo9byh6LEEsQyxELG0sNixmWzUyXSksRD1vKEQseixBLEMsdiwxMCxmWzUzXSksQz1vKEMsRCx6LEEsaywxNSxmWzU0XSksQT1vKEEsQyxELHosdSwyMSxmWzU1XSksej1vKHosQSxDLEQsQiw2LGZbNTZdKSxEPW8oRCx6LEEsQyxILDEwLGZbNTddKSxDPW8oQyxELHosQSx5LDE1LGZbNThdKSxBPW8oQSxDLEQseix4LDIxLGZbNTldKSx6PW8oeixBLEMsRCxwLDYsZls2MF0pLEQ9byhELHosQSxDLFMsMTAsZls2MV0pLEM9byhDLEQseixBLGQsMTUsZls2Ml0pLEE9byhBLEMsRCx6LHcsMjEsZls2M10pLGhbMF09aFswXSt6fDAsaFsxXT1oWzFdK0F8MCxoWzJdPWhbMl0rQ3wwLGhbM109aFszXStEfDB9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxlPXQud29yZHMsaT04KnRoaXMuX25EYXRhQnl0ZXMsbj04KnQuc2lnQnl0ZXM7ZVtuPj4+NV18PTEyODw8MjQtbiUzMjt2YXIgbz1yLmZsb29yKGkvNDI5NDk2NzI5Nikscz1pO2VbKG4rNjQ+Pj45PDw0KSsxNV09MTY3MTE5MzUmKG88PDh8bz4+PjI0KXw0Mjc4MjU1MzYwJihvPDwyNHxvPj4+OCksZVsobis2ND4+Pjk8PDQpKzE0XT0xNjcxMTkzNSYoczw8OHxzPj4+MjQpfDQyNzgyNTUzNjAmKHM8PDI0fHM+Pj44KSx0LnNpZ0J5dGVzPTQqKGUubGVuZ3RoKzEpLHRoaXMuX3Byb2Nlc3MoKTtmb3IodmFyIGE9dGhpcy5faGFzaCxjPWEud29yZHMsaD0wO2g8NDtoKyspe3ZhciBsPWNbaF07Y1toXT0xNjcxMTkzNSYobDw8OHxsPj4+MjQpfDQyNzgyNTUzNjAmKGw8PDI0fGw+Pj44KX1yZXR1cm4gYX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1oLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9fSk7cy5NRDU9aC5fY3JlYXRlSGVscGVyKHUpLHMuSG1hY01ENT1oLl9jcmVhdGVIbWFjSGVscGVyKHUpfShNYXRoKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLmxpYixpPWUuV29yZEFycmF5LG49ZS5IYXNoZXIsbz1yLmFsZ28scz1bXSxhPW8uU0hBMT1uLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBpLmluaXQoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10aGlzLl9oYXNoLndvcmRzLGk9ZVswXSxuPWVbMV0sbz1lWzJdLGE9ZVszXSxjPWVbNF0saD0wO2g8ODA7aCsrKXtpZihoPDE2KXNbaF09MHx0W3IraF07ZWxzZXt2YXIgbD1zW2gtM11ec1toLThdXnNbaC0xNF1ec1toLTE2XTtzW2hdPWw8PDF8bD4+PjMxfXZhciBmPShpPDw1fGk+Pj4yNykrYytzW2hdO2YrPWg8MjA/KG4mb3x+biZhKSsxNTE4NTAwMjQ5Omg8NDA/KG5eb15hKSsxODU5Nzc1MzkzOmg8NjA/KG4mb3xuJmF8byZhKS0xODk0MDA3NTg4OihuXm9eYSktODk5NDk3NTE0LGM9YSxhPW8sbz1uPDwzMHxuPj4+MixuPWksaT1mfWVbMF09ZVswXStpfDAsZVsxXT1lWzFdK258MCxlWzJdPWVbMl0rb3wwLGVbM109ZVszXSthfDAsZVs0XT1lWzRdK2N8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLHI9dC53b3JkcyxlPTgqdGhpcy5fbkRhdGFCeXRlcyxpPTgqdC5zaWdCeXRlcztyZXR1cm4gcltpPj4+NV18PTEyODw8MjQtaSUzMixyWyhpKzY0Pj4+OTw8NCkrMTRdPU1hdGguZmxvb3IoZS80Mjk0OTY3Mjk2KSxyWyhpKzY0Pj4+OTw8NCkrMTVdPWUsdC5zaWdCeXRlcz00KnIubGVuZ3RoLHRoaXMuX3Byb2Nlc3MoKSx0aGlzLl9oYXNofSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PW4uY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KTtyLlNIQTE9bi5fY3JlYXRlSGVscGVyKGEpLHIuSG1hY1NIQTE9bi5fY3JlYXRlSG1hY0hlbHBlcihhKX0oKSxmdW5jdGlvbihyKXt2YXIgZT10LGk9ZS5saWIsbj1pLldvcmRBcnJheSxvPWkuSGFzaGVyLHM9ZS5hbGdvLGE9W10sYz1bXTshZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe2Zvcih2YXIgZT1yLnNxcnQodCksaT0yO2k8PWU7aSsrKWlmKCEodCVpKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBlKHQpe3JldHVybiA0Mjk0OTY3Mjk2Kih0LSgwfHQpKXwwfWZvcih2YXIgaT0yLG49MDtuPDY0Oyl0KGkpJiYobjw4JiYoYVtuXT1lKHIucG93KGksLjUpKSksY1tuXT1lKHIucG93KGksMS8zKSksbisrKSxpKyt9KCk7dmFyIGg9W10sbD1zLlNIQTI1Nj1vLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBuLmluaXQoYS5zbGljZSgwKSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10aGlzLl9oYXNoLndvcmRzLGk9ZVswXSxuPWVbMV0sbz1lWzJdLHM9ZVszXSxhPWVbNF0sbD1lWzVdLGY9ZVs2XSx1PWVbN10sZD0wO2Q8NjQ7ZCsrKXtpZihkPDE2KWhbZF09MHx0W3IrZF07ZWxzZXt2YXIgdj1oW2QtMTVdLHA9KHY8PDI1fHY+Pj43KV4odjw8MTR8dj4+PjE4KV52Pj4+MyxfPWhbZC0yXSx5PShfPDwxNXxfPj4+MTcpXihfPDwxM3xfPj4+MTkpXl8+Pj4xMDtoW2RdPXAraFtkLTddK3kraFtkLTE2XX12YXIgZz1hJmxefmEmZixCPWkmbl5pJm9ebiZvLHc9KGk8PDMwfGk+Pj4yKV4oaTw8MTl8aT4+PjEzKV4oaTw8MTB8aT4+PjIyKSxrPShhPDwyNnxhPj4+NileKGE8PDIxfGE+Pj4xMSleKGE8PDd8YT4+PjI1KSxTPXUraytnK2NbZF0raFtkXSxtPXcrQjt1PWYsZj1sLGw9YSxhPXMrU3wwLHM9byxvPW4sbj1pLGk9UyttfDB9ZVswXT1lWzBdK2l8MCxlWzFdPWVbMV0rbnwwLGVbMl09ZVsyXStvfDAsZVszXT1lWzNdK3N8MCxlWzRdPWVbNF0rYXwwLGVbNV09ZVs1XStsfDAsZVs2XT1lWzZdK2Z8MCxlWzddPWVbN10rdXwwfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEsZT10LndvcmRzLGk9OCp0aGlzLl9uRGF0YUJ5dGVzLG49OCp0LnNpZ0J5dGVzO3JldHVybiBlW24+Pj41XXw9MTI4PDwyNC1uJTMyLGVbKG4rNjQ+Pj45PDw0KSsxNF09ci5mbG9vcihpLzQyOTQ5NjcyOTYpLGVbKG4rNjQ+Pj45PDw0KSsxNV09aSx0LnNpZ0J5dGVzPTQqZS5sZW5ndGgsdGhpcy5fcHJvY2VzcygpLHRoaXMuX2hhc2h9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9by5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fX0pO2UuU0hBMjU2PW8uX2NyZWF0ZUhlbHBlcihsKSxlLkhtYWNTSEEyNTY9by5fY3JlYXRlSG1hY0hlbHBlcihsKX0oTWF0aCksZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQpe3JldHVybiB0PDw4JjQyNzgyNTUzNjB8dD4+PjgmMTY3MTE5MzV9dmFyIGU9dCxpPWUubGliLG49aS5Xb3JkQXJyYXksbz1lLmVuYztvLlV0ZjE2PW8uVXRmMTZCRT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10LndvcmRzLGU9dC5zaWdCeXRlcyxpPVtdLG49MDtuPGU7bis9Mil7dmFyIG89cltuPj4+Ml0+Pj4xNi1uJTQqOCY2NTUzNTtpLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShvKSl9cmV0dXJuIGkuam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQubGVuZ3RoLGU9W10saT0wO2k8cjtpKyspZVtpPj4+MV18PXQuY2hhckNvZGVBdChpKTw8MTYtaSUyKjE2O3JldHVybiBuLmNyZWF0ZShlLDIqcil9fTtvLlV0ZjE2TEU9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC53b3JkcyxpPXQuc2lnQnl0ZXMsbj1bXSxvPTA7bzxpO28rPTIpe3ZhciBzPXIoZVtvPj4+Ml0+Pj4xNi1vJTQqOCY2NTUzNSk7bi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUocykpfXJldHVybiBuLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxpPVtdLG89MDtvPGU7bysrKWlbbz4+PjFdfD1yKHQuY2hhckNvZGVBdChvKTw8MTYtbyUyKjE2KTtyZXR1cm4gbi5jcmVhdGUoaSwyKmUpfX19KCksZnVuY3Rpb24oKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBBcnJheUJ1ZmZlcil7dmFyIHI9dCxlPXIubGliLGk9ZS5Xb3JkQXJyYXksbj1pLmluaXQsbz1pLmluaXQ9ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiYodD1uZXcgVWludDhBcnJheSh0KSksKHQgaW5zdGFuY2VvZiBJbnQ4QXJyYXl8fFwidW5kZWZpbmVkXCIhPXR5cGVvZiBVaW50OENsYW1wZWRBcnJheSYmdCBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5fHx0IGluc3RhbmNlb2YgSW50MTZBcnJheXx8dCBpbnN0YW5jZW9mIFVpbnQxNkFycmF5fHx0IGluc3RhbmNlb2YgSW50MzJBcnJheXx8dCBpbnN0YW5jZW9mIFVpbnQzMkFycmF5fHx0IGluc3RhbmNlb2YgRmxvYXQzMkFycmF5fHx0IGluc3RhbmNlb2YgRmxvYXQ2NEFycmF5KSYmKHQ9bmV3IFVpbnQ4QXJyYXkodC5idWZmZXIsdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCkpLHQgaW5zdGFuY2VvZiBVaW50OEFycmF5KXtmb3IodmFyIHI9dC5ieXRlTGVuZ3RoLGU9W10saT0wO2k8cjtpKyspZVtpPj4+Ml18PXRbaV08PDI0LWklNCo4O24uY2FsbCh0aGlzLGUscil9ZWxzZSBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07by5wcm90b3R5cGU9aX19KCksZnVuY3Rpb24ocil7ZnVuY3Rpb24gZSh0LHIsZSl7cmV0dXJuIHRecl5lfWZ1bmN0aW9uIGkodCxyLGUpe3JldHVybiB0JnJ8fnQmZX1mdW5jdGlvbiBuKHQscixlKXtyZXR1cm4odHx+cileZX1mdW5jdGlvbiBvKHQscixlKXtyZXR1cm4gdCZlfHImfmV9ZnVuY3Rpb24gcyh0LHIsZSl7cmV0dXJuIHReKHJ8fmUpfWZ1bmN0aW9uIGEodCxyKXtyZXR1cm4gdDw8cnx0Pj4+MzItcn12YXIgYz10LGg9Yy5saWIsbD1oLldvcmRBcnJheSxmPWguSGFzaGVyLHU9Yy5hbGdvLGQ9bC5jcmVhdGUoWzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIsMTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwxMCwwLDgsMTIsNCwxMywzLDcsMTUsMTQsNSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10pLHY9bC5jcmVhdGUoWzUsMTQsNywwLDksMiwxMSw0LDEzLDYsMTUsOCwxLDEwLDMsMTIsNiwxMSwzLDcsMCwxMyw1LDEwLDE0LDE1LDgsMTIsNCw5LDEsMiwxNSw1LDEsMyw3LDE0LDYsOSwxMSw4LDEyLDIsMTAsMCw0LDEzLDgsNiw0LDEsMywxMSwxNSwwLDUsMTIsMiwxMyw5LDcsMTAsMTQsMTIsMTUsMTAsNCwxLDUsOCw3LDYsMiwxMywxNCwwLDMsOSwxMV0pLHA9bC5jcmVhdGUoWzExLDE0LDE1LDEyLDUsOCw3LDksMTEsMTMsMTQsMTUsNiw3LDksOCw3LDYsOCwxMywxMSw5LDcsMTUsNywxMiwxNSw5LDExLDcsMTMsMTIsMTEsMTMsNiw3LDE0LDksMTMsMTUsMTQsOCwxMyw2LDUsMTIsNyw1LDExLDEyLDE0LDE1LDE0LDE1LDksOCw5LDE0LDUsNiw4LDYsNSwxMiw5LDE1LDUsMTEsNiw4LDEzLDEyLDUsMTIsMTMsMTQsMTEsOCw1LDZdKSxfPWwuY3JlYXRlKFs4LDksOSwxMSwxMywxNSwxNSw1LDcsNyw4LDExLDE0LDE0LDEyLDYsOSwxMywxNSw3LDEyLDgsOSwxMSw3LDcsMTIsNyw2LDE1LDEzLDExLDksNywxNSwxMSw4LDYsNiwxNCwxMiwxMyw1LDE0LDEzLDEzLDcsNSwxNSw1LDgsMTEsMTQsMTQsNiwxNCw2LDksMTIsOSwxMiw1LDE1LDgsOCw1LDEyLDksMTIsNSwxNCw2LDgsMTMsNiw1LDE1LDEzLDExLDExXSkseT1sLmNyZWF0ZShbMCwxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsMjQwMDk1OTcwOCwyODQwODUzODM4XSksZz1sLmNyZWF0ZShbMTM1MjgyOTkyNiwxNTQ4NjAzNjg0LDE4MzYwNzI2OTEsMjA1Mzk5NDIxNywwXSksQj11LlJJUEVNRDE2MD1mLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPWwuY3JlYXRlKFsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzgsMzI4NTM3NzUyMF0pfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGM9MDtjPDE2O2MrKyl7dmFyIGg9citjLGw9dFtoXTt0W2hdPTE2NzExOTM1JihsPDw4fGw+Pj4yNCl8NDI3ODI1NTM2MCYobDw8MjR8bD4+PjgpfXZhciBmLHUsQix3LGssUyxtLHgsYixILHo9dGhpcy5faGFzaC53b3JkcyxBPXkud29yZHMsQz1nLndvcmRzLEQ9ZC53b3JkcyxSPXYud29yZHMsRT1wLndvcmRzLE09Xy53b3JkcztTPWY9elswXSxtPXU9elsxXSx4PUI9elsyXSxiPXc9elszXSxIPWs9els0XTtmb3IodmFyIEYsYz0wO2M8ODA7Yys9MSlGPWYrdFtyK0RbY11dfDAsRis9YzwxNj9lKHUsQix3KStBWzBdOmM8MzI/aSh1LEIsdykrQVsxXTpjPDQ4P24odSxCLHcpK0FbMl06Yzw2ND9vKHUsQix3KStBWzNdOnModSxCLHcpK0FbNF0sRnw9MCxGPWEoRixFW2NdKSxGPUYra3wwLGY9ayxrPXcsdz1hKEIsMTApLEI9dSx1PUYsRj1TK3RbcitSW2NdXXwwLEYrPWM8MTY/cyhtLHgsYikrQ1swXTpjPDMyP28obSx4LGIpK0NbMV06Yzw0OD9uKG0seCxiKStDWzJdOmM8NjQ/aShtLHgsYikrQ1szXTplKG0seCxiKStDWzRdLEZ8PTAsRj1hKEYsTVtjXSksRj1GK0h8MCxTPUgsSD1iLGI9YSh4LDEwKSx4PW0sbT1GO0Y9elsxXStCK2J8MCx6WzFdPXpbMl0rdytIfDAselsyXT16WzNdK2srU3wwLHpbM109els0XStmK218MCx6WzRdPXpbMF0rdSt4fDAselswXT1GfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEscj10LndvcmRzLGU9OCp0aGlzLl9uRGF0YUJ5dGVzLGk9OCp0LnNpZ0J5dGVzO3JbaT4+PjVdfD0xMjg8PDI0LWklMzIsclsoaSs2ND4+Pjk8PDQpKzE0XT0xNjcxMTkzNSYoZTw8OHxlPj4+MjQpfDQyNzgyNTUzNjAmKGU8PDI0fGU+Pj44KSx0LnNpZ0J5dGVzPTQqKHIubGVuZ3RoKzEpLHRoaXMuX3Byb2Nlc3MoKTtmb3IodmFyIG49dGhpcy5faGFzaCxvPW4ud29yZHMscz0wO3M8NTtzKyspe3ZhciBhPW9bc107b1tzXT0xNjcxMTkzNSYoYTw8OHxhPj4+MjQpfDQyNzgyNTUzNjAmKGE8PDI0fGE+Pj44KX1yZXR1cm4gbn0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1mLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9fSk7Yy5SSVBFTUQxNjA9Zi5fY3JlYXRlSGVscGVyKEIpLGMuSG1hY1JJUEVNRDE2MD1mLl9jcmVhdGVIbWFjSGVscGVyKEIpfShNYXRoKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLmxpYixpPWUuQmFzZSxuPXIuZW5jLG89bi5VdGY4LHM9ci5hbGdvO3MuSE1BQz1pLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LHIpe3Q9dGhpcy5faGFzaGVyPW5ldyB0LmluaXQsXCJzdHJpbmdcIj09dHlwZW9mIHImJihyPW8ucGFyc2UocikpO3ZhciBlPXQuYmxvY2tTaXplLGk9NCplO3Iuc2lnQnl0ZXM+aSYmKHI9dC5maW5hbGl6ZShyKSksci5jbGFtcCgpO2Zvcih2YXIgbj10aGlzLl9vS2V5PXIuY2xvbmUoKSxzPXRoaXMuX2lLZXk9ci5jbG9uZSgpLGE9bi53b3JkcyxjPXMud29yZHMsaD0wO2g8ZTtoKyspYVtoXV49MTU0OTU1NjgyOCxjW2hdXj05MDk1MjI0ODY7bi5zaWdCeXRlcz1zLnNpZ0J5dGVzPWksdGhpcy5yZXNldCgpfSxyZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2hhc2hlcjt0LnJlc2V0KCksdC51cGRhdGUodGhpcy5faUtleSl9LHVwZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5faGFzaGVyLnVwZGF0ZSh0KSx0aGlzfSxmaW5hbGl6ZTpmdW5jdGlvbih0KXt2YXIgcj10aGlzLl9oYXNoZXIsZT1yLmZpbmFsaXplKHQpO3IucmVzZXQoKTt2YXIgaT1yLmZpbmFsaXplKHRoaXMuX29LZXkuY2xvbmUoKS5jb25jYXQoZSkpO3JldHVybiBpfX0pfSgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5CYXNlLG49ZS5Xb3JkQXJyYXksbz1yLmFsZ28scz1vLlNIQTEsYT1vLkhNQUMsYz1vLlBCS0RGMj1pLmV4dGVuZCh7Y2ZnOmkuZXh0ZW5kKHtrZXlTaXplOjQsaGFzaGVyOnMsaXRlcmF0aW9uczoxfSksaW5pdDpmdW5jdGlvbih0KXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQodCl9LGNvbXB1dGU6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dGhpcy5jZmcsaT1hLmNyZWF0ZShlLmhhc2hlcix0KSxvPW4uY3JlYXRlKCkscz1uLmNyZWF0ZShbMV0pLGM9by53b3JkcyxoPXMud29yZHMsbD1lLmtleVNpemUsZj1lLml0ZXJhdGlvbnM7Yy5sZW5ndGg8bDspe3ZhciB1PWkudXBkYXRlKHIpLmZpbmFsaXplKHMpO2kucmVzZXQoKTtmb3IodmFyIGQ9dS53b3Jkcyx2PWQubGVuZ3RoLHA9dSxfPTE7XzxmO18rKyl7cD1pLmZpbmFsaXplKHApLGkucmVzZXQoKTtmb3IodmFyIHk9cC53b3JkcyxnPTA7Zzx2O2crKylkW2ddXj15W2ddfW8uY29uY2F0KHUpLGhbMF0rK31yZXR1cm4gby5zaWdCeXRlcz00Kmwsb319KTtyLlBCS0RGMj1mdW5jdGlvbih0LHIsZSl7cmV0dXJuIGMuY3JlYXRlKGUpLmNvbXB1dGUodCxyKX19KCksZnVuY3Rpb24oKXt2YXIgcj10LGU9ci5saWIsaT1lLkJhc2Usbj1lLldvcmRBcnJheSxvPXIuYWxnbyxzPW8uTUQ1LGE9by5FdnBLREY9aS5leHRlbmQoe2NmZzppLmV4dGVuZCh7a2V5U2l6ZTo0LGhhc2hlcjpzLGl0ZXJhdGlvbnM6MX0pLGluaXQ6ZnVuY3Rpb24odCl7dGhpcy5jZmc9dGhpcy5jZmcuZXh0ZW5kKHQpfSxjb21wdXRlOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuY2ZnLGk9ZS5oYXNoZXIuY3JlYXRlKCksbz1uLmNyZWF0ZSgpLHM9by53b3JkcyxhPWUua2V5U2l6ZSxjPWUuaXRlcmF0aW9ucztzLmxlbmd0aDxhOyl7aCYmaS51cGRhdGUoaCk7dmFyIGg9aS51cGRhdGUodCkuZmluYWxpemUocik7aS5yZXNldCgpO2Zvcih2YXIgbD0xO2w8YztsKyspaD1pLmZpbmFsaXplKGgpLGkucmVzZXQoKTtvLmNvbmNhdChoKX1yZXR1cm4gby5zaWdCeXRlcz00KmEsb319KTtyLkV2cEtERj1mdW5jdGlvbih0LHIsZSl7cmV0dXJuIGEuY3JlYXRlKGUpLmNvbXB1dGUodCxyKX19KCksZnVuY3Rpb24oKXt2YXIgcj10LGU9ci5saWIsaT1lLldvcmRBcnJheSxuPXIuYWxnbyxvPW4uU0hBMjU2LHM9bi5TSEEyMjQ9by5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgaS5pbml0KFszMjM4MzcxMDMyLDkxNDE1MDY2Myw4MTI3MDI5OTksNDE0NDkxMjY5Nyw0MjkwNzc1ODU3LDE3NTA2MDMwMjUsMTY5NDA3NjgzOSwzMjA0MDc1NDI4XSl9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9by5fZG9GaW5hbGl6ZS5jYWxsKHRoaXMpO3JldHVybiB0LnNpZ0J5dGVzLT00LHR9fSk7ci5TSEEyMjQ9by5fY3JlYXRlSGVscGVyKHMpLHIuSG1hY1NIQTIyND1vLl9jcmVhdGVIbWFjSGVscGVyKHMpfSgpLGZ1bmN0aW9uKHIpe3ZhciBlPXQsaT1lLmxpYixuPWkuQmFzZSxvPWkuV29yZEFycmF5LHM9ZS54NjQ9e307cy5Xb3JkPW4uZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQscil7dGhpcy5oaWdoPXQsdGhpcy5sb3c9cn19KSxzLldvcmRBcnJheT1uLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LGUpe3Q9dGhpcy53b3Jkcz10fHxbXSxlIT1yP3RoaXMuc2lnQnl0ZXM9ZTp0aGlzLnNpZ0J5dGVzPTgqdC5sZW5ndGh9LHRvWDMyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMud29yZHMscj10Lmxlbmd0aCxlPVtdLGk9MDtpPHI7aSsrKXt2YXIgbj10W2ldO2UucHVzaChuLmhpZ2gpLGUucHVzaChuLmxvdyl9cmV0dXJuIG8uY3JlYXRlKGUsdGhpcy5zaWdCeXRlcyl9LGNsb25lOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PW4uY2xvbmUuY2FsbCh0aGlzKSxyPXQud29yZHM9dGhpcy53b3Jkcy5zbGljZSgwKSxlPXIubGVuZ3RoLGk9MDtpPGU7aSsrKXJbaV09cltpXS5jbG9uZSgpO3JldHVybiB0fX0pfSgpLGZ1bmN0aW9uKHIpe3ZhciBlPXQsaT1lLmxpYixuPWkuV29yZEFycmF5LG89aS5IYXNoZXIscz1lLng2NCxhPXMuV29yZCxjPWUuYWxnbyxoPVtdLGw9W10sZj1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9MSxyPTAsZT0wO2U8MjQ7ZSsrKXtoW3QrNSpyXT0oZSsxKSooZSsyKS8yJTY0O3ZhciBpPXIlNSxuPSgyKnQrMypyKSU1O3Q9aSxyPW59Zm9yKHZhciB0PTA7dDw1O3QrKylmb3IodmFyIHI9MDtyPDU7cisrKWxbdCs1KnJdPXIrKDIqdCszKnIpJTUqNTtmb3IodmFyIG89MSxzPTA7czwyNDtzKyspe2Zvcih2YXIgYz0wLHU9MCxkPTA7ZDw3O2QrKyl7aWYoMSZvKXt2YXIgdj0oMTw8ZCktMTt2PDMyP3VePTE8PHY6Y149MTw8di0zMn0xMjgmbz9vPW88PDFeMTEzOm88PD0xfWZbc109YS5jcmVhdGUoYyx1KX19KCk7dmFyIHU9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDwyNTt0KyspdVt0XT1hLmNyZWF0ZSgpfSgpO3ZhciBkPWMuU0hBMz1vLmV4dGVuZCh7Y2ZnOm8uY2ZnLmV4dGVuZCh7b3V0cHV0TGVuZ3RoOjUxMn0pLF9kb1Jlc2V0OmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX3N0YXRlPVtdLHI9MDtyPDI1O3IrKyl0W3JdPW5ldyBhLmluaXQ7dGhpcy5ibG9ja1NpemU9KDE2MDAtMip0aGlzLmNmZy5vdXRwdXRMZW5ndGgpLzMyfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dGhpcy5fc3RhdGUsaT10aGlzLmJsb2NrU2l6ZS8yLG49MDtuPGk7bisrKXt2YXIgbz10W3IrMipuXSxzPXRbcisyKm4rMV07bz0xNjcxMTkzNSYobzw8OHxvPj4+MjQpfDQyNzgyNTUzNjAmKG88PDI0fG8+Pj44KSxzPTE2NzExOTM1JihzPDw4fHM+Pj4yNCl8NDI3ODI1NTM2MCYoczw8MjR8cz4+PjgpO3ZhciBhPWVbbl07YS5oaWdoXj1zLGEubG93Xj1vfWZvcih2YXIgYz0wO2M8MjQ7YysrKXtmb3IodmFyIGQ9MDtkPDU7ZCsrKXtmb3IodmFyIHY9MCxwPTAsXz0wO188NTtfKyspe3ZhciBhPWVbZCs1Kl9dO3ZePWEuaGlnaCxwXj1hLmxvd312YXIgeT11W2RdO3kuaGlnaD12LHkubG93PXB9Zm9yKHZhciBkPTA7ZDw1O2QrKylmb3IodmFyIGc9dVsoZCs0KSU1XSxCPXVbKGQrMSklNV0sdz1CLmhpZ2gsaz1CLmxvdyx2PWcuaGlnaF4odzw8MXxrPj4+MzEpLHA9Zy5sb3deKGs8PDF8dz4+PjMxKSxfPTA7Xzw1O18rKyl7dmFyIGE9ZVtkKzUqX107YS5oaWdoXj12LGEubG93Xj1wfWZvcih2YXIgUz0xO1M8MjU7UysrKXt2YXIgYT1lW1NdLG09YS5oaWdoLHg9YS5sb3csYj1oW1NdO2lmKGI8MzIpdmFyIHY9bTw8Ynx4Pj4+MzItYixwPXg8PGJ8bT4+PjMyLWI7ZWxzZSB2YXIgdj14PDxiLTMyfG0+Pj42NC1iLHA9bTw8Yi0zMnx4Pj4+NjQtYjt2YXIgSD11W2xbU11dO0guaGlnaD12LEgubG93PXB9dmFyIHo9dVswXSxBPWVbMF07ei5oaWdoPUEuaGlnaCx6Lmxvdz1BLmxvdztmb3IodmFyIGQ9MDtkPDU7ZCsrKWZvcih2YXIgXz0wO188NTtfKyspe3ZhciBTPWQrNSpfLGE9ZVtTXSxDPXVbU10sRD11WyhkKzEpJTUrNSpfXSxSPXVbKGQrMiklNSs1Kl9dO2EuaGlnaD1DLmhpZ2hefkQuaGlnaCZSLmhpZ2gsYS5sb3c9Qy5sb3defkQubG93JlIubG93fXZhciBhPWVbMF0sRT1mW2NdO2EuaGlnaF49RS5oaWdoLGEubG93Xj1FLmxvd319LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxlPXQud29yZHMsaT0oOCp0aGlzLl9uRGF0YUJ5dGVzLDgqdC5zaWdCeXRlcyksbz0zMip0aGlzLmJsb2NrU2l6ZTtlW2k+Pj41XXw9MTw8MjQtaSUzMixlWyhyLmNlaWwoKGkrMSkvbykqbz4+PjUpLTFdfD0xMjgsdC5zaWdCeXRlcz00KmUubGVuZ3RoLHRoaXMuX3Byb2Nlc3MoKTtmb3IodmFyIHM9dGhpcy5fc3RhdGUsYT10aGlzLmNmZy5vdXRwdXRMZW5ndGgvOCxjPWEvOCxoPVtdLGw9MDtsPGM7bCsrKXt2YXIgZj1zW2xdLHU9Zi5oaWdoLGQ9Zi5sb3c7dT0xNjcxMTkzNSYodTw8OHx1Pj4+MjQpfDQyNzgyNTUzNjAmKHU8PDI0fHU+Pj44KSxkPTE2NzExOTM1JihkPDw4fGQ+Pj4yNCl8NDI3ODI1NTM2MCYoZDw8MjR8ZD4+PjgpLGgucHVzaChkKSxoLnB1c2godSl9cmV0dXJuIG5ldyBuLmluaXQoaCxhKX0sY2xvbmU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9by5jbG9uZS5jYWxsKHRoaXMpLHI9dC5fc3RhdGU9dGhpcy5fc3RhdGUuc2xpY2UoMCksZT0wO2U8MjU7ZSsrKXJbZV09cltlXS5jbG9uZSgpO3JldHVybiB0fX0pO2UuU0hBMz1vLl9jcmVhdGVIZWxwZXIoZCksZS5IbWFjU0hBMz1vLl9jcmVhdGVIbWFjSGVscGVyKGQpfShNYXRoKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIoKXtyZXR1cm4gcy5jcmVhdGUuYXBwbHkocyxhcmd1bWVudHMpfXZhciBlPXQsaT1lLmxpYixuPWkuSGFzaGVyLG89ZS54NjQscz1vLldvcmQsYT1vLldvcmRBcnJheSxjPWUuYWxnbyxoPVtyKDExMTYzNTI0MDgsMzYwOTc2NzQ1OCkscigxODk5NDQ3NDQxLDYwMjg5MTcyNSkscigzMDQ5MzIzNDcxLDM5NjQ0ODQzOTkpLHIoMzkyMTAwOTU3MywyMTczMjk1NTQ4KSxyKDk2MTk4NzE2Myw0MDgxNjI4NDcyKSxyKDE1MDg5NzA5OTMsMzA1MzgzNDI2NSkscigyNDUzNjM1NzQ4LDI5Mzc2NzE1NzkpLHIoMjg3MDc2MzIyMSwzNjY0NjA5NTYwKSxyKDM2MjQzODEwODAsMjczNDg4MzM5NCkscigzMTA1OTg0MDEsMTE2NDk5NjU0Mikscig2MDcyMjUyNzgsMTMyMzYxMDc2NCkscigxNDI2ODgxOTg3LDM1OTAzMDQ5OTQpLHIoMTkyNTA3ODM4OCw0MDY4MTgyMzgzKSxyKDIxNjIwNzgyMDYsOTkxMzM2MTEzKSxyKDI2MTQ4ODgxMDMsNjMzODAzMzE3KSxyKDMyNDgyMjI1ODAsMzQ3OTc3NDg2OCkscigzODM1MzkwNDAxLDI2NjY2MTM0NTgpLHIoNDAyMjIyNDc3NCw5NDQ3MTExMzkpLHIoMjY0MzQ3MDc4LDIzNDEyNjI3NzMpLHIoNjA0ODA3NjI4LDIwMDc4MDA5MzMpLHIoNzcwMjU1OTgzLDE0OTU5OTA5MDEpLHIoMTI0OTE1MDEyMiwxODU2NDMxMjM1KSxyKDE1NTUwODE2OTIsMzE3NTIxODEzMikscigxOTk2MDY0OTg2LDIxOTg5NTA4MzcpLHIoMjU1NDIyMDg4MiwzOTk5NzE5MzM5KSxyKDI4MjE4MzQzNDksNzY2Nzg0MDE2KSxyKDI5NTI5OTY4MDgsMjU2NjU5NDg3OSkscigzMjEwMzEzNjcxLDMyMDMzMzc5NTYpLHIoMzMzNjU3MTg5MSwxMDM0NDU3MDI2KSxyKDM1ODQ1Mjg3MTEsMjQ2Njk0ODkwMSkscigxMTM5MjY5OTMsMzc1ODMyNjM4MykscigzMzgyNDE4OTUsMTY4NzE3OTM2KSxyKDY2NjMwNzIwNSwxMTg4MTc5OTY0KSxyKDc3MzUyOTkxMiwxNTQ2MDQ1NzM0KSxyKDEyOTQ3NTczNzIsMTUyMjgwNTQ4NSkscigxMzk2MTgyMjkxLDI2NDM4MzM4MjMpLHIoMTY5NTE4MzcwMCwyMzQzNTI3MzkwKSxyKDE5ODY2NjEwNTEsMTAxNDQ3NzQ4MCkscigyMTc3MDI2MzUwLDEyMDY3NTkxNDIpLHIoMjQ1Njk1NjAzNywzNDQwNzc2MjcpLHIoMjczMDQ4NTkyMSwxMjkwODYzNDYwKSxyKDI4MjAzMDI0MTEsMzE1ODQ1NDI3MykscigzMjU5NzMwODAwLDM1MDU5NTI2NTcpLHIoMzM0NTc2NDc3MSwxMDYyMTcwMDgpLHIoMzUxNjA2NTgxNywzNjA2MDA4MzQ0KSxyKDM2MDAzNTI4MDQsMTQzMjcyNTc3Nikscig0MDk0NTcxOTA5LDE0NjcwMzE1OTQpLHIoMjc1NDIzMzQ0LDg1MTE2OTcyMCkscig0MzAyMjc3MzQsMzEwMDgyMzc1Mikscig1MDY5NDg2MTYsMTM2MzI1ODE5NSkscig2NTkwNjA1NTYsMzc1MDY4NTU5Mykscig4ODM5OTc4NzcsMzc4NTA1MDI4MCkscig5NTgxMzk1NzEsMzMxODMwNzQyNykscigxMzIyODIyMjE4LDM4MTI3MjM0MDMpLHIoMTUzNzAwMjA2MywyMDAzMDM0OTk1KSxyKDE3NDc4NzM3NzksMzYwMjAzNjg5OSkscigxOTU1NTYyMjIyLDE1NzU5OTAwMTIpLHIoMjAyNDEwNDgxNSwxMTI1NTkyOTI4KSxyKDIyMjc3MzA0NTIsMjcxNjkwNDMwNikscigyMzYxODUyNDI0LDQ0Mjc3NjA0NCkscigyNDI4NDM2NDc0LDU5MzY5ODM0NCkscigyNzU2NzM0MTg3LDM3MzMxMTAyNDkpLHIoMzIwNDAzMTQ3OSwyOTk5MzUxNTczKSxyKDMzMjkzMjUyOTgsMzgxNTkyMDQyNykscigzMzkxNTY5NjE0LDM5MjgzODM5MDApLHIoMzUxNTI2NzI3MSw1NjYyODA3MTEpLHIoMzk0MDE4NzYwNiwzNDU0MDY5NTM0KSxyKDQxMTg2MzAyNzEsNDAwMDIzOTk5MikscigxMTY0MTg0NzQsMTkxNDEzODU1NCkscigxNzQyOTI0MjEsMjczMTA1NTI3MCkscigyODkzODAzNTYsMzIwMzk5MzAwNikscig0NjAzOTMyNjksMzIwNjIwMzE1KSxyKDY4NTQ3MTczMyw1ODc0OTY4MzYpLHIoODUyMTQyOTcxLDEwODY3OTI4NTEpLHIoMTAxNzAzNjI5OCwzNjU1NDMxMDApLHIoMTEyNjAwMDU4MCwyNjE4Mjk3Njc2KSxyKDEyODgwMzM0NzAsMzQwOTg1NTE1OCkscigxNTAxNTA1OTQ4LDQyMzQ1MDk4NjYpLHIoMTYwNzE2NzkxNSw5ODcxNjc0NjgpLHIoMTgxNjQwMjMxNiwxMjQ2MTg5NTkxKV0sbD1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PDgwO3QrKylsW3RdPXIoKX0oKTt2YXIgZj1jLlNIQTUxMj1uLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBhLmluaXQoW25ldyBzLmluaXQoMTc3OTAzMzcwMyw0MDg5MjM1NzIwKSxuZXcgcy5pbml0KDMxNDQxMzQyNzcsMjIyNzg3MzU5NSksbmV3IHMuaW5pdCgxMDEzOTA0MjQyLDQyNzExNzU3MjMpLG5ldyBzLmluaXQoMjc3MzQ4MDc2MiwxNTk1NzUwMTI5KSxuZXcgcy5pbml0KDEzNTk4OTMxMTksMjkxNzU2NTEzNyksbmV3IHMuaW5pdCgyNjAwODIyOTI0LDcyNTUxMTE5OSksbmV3IHMuaW5pdCg1Mjg3MzQ2MzUsNDIxNTM4OTU0NyksbmV3IHMuaW5pdCgxNTQxNDU5MjI1LDMyNzAzMzIwOSldKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuX2hhc2gud29yZHMsaT1lWzBdLG49ZVsxXSxvPWVbMl0scz1lWzNdLGE9ZVs0XSxjPWVbNV0sZj1lWzZdLHU9ZVs3XSxkPWkuaGlnaCx2PWkubG93LHA9bi5oaWdoLF89bi5sb3cseT1vLmhpZ2gsZz1vLmxvdyxCPXMuaGlnaCx3PXMubG93LGs9YS5oaWdoLFM9YS5sb3csbT1jLmhpZ2gseD1jLmxvdyxiPWYuaGlnaCxIPWYubG93LHo9dS5oaWdoLEE9dS5sb3csQz1kLEQ9dixSPXAsRT1fLE09eSxGPWcsUD1CLFc9dyxPPWssVT1TLEk9bSxLPXgsWD1iLEw9SCxqPXosTj1BLFQ9MDtUPDgwO1QrKyl7dmFyIFo9bFtUXTtpZihUPDE2KXZhciBxPVouaGlnaD0wfHRbcisyKlRdLEc9Wi5sb3c9MHx0W3IrMipUKzFdO2Vsc2V7dmFyIEo9bFtULTE1XSwkPUouaGlnaCxRPUoubG93LFY9KCQ+Pj4xfFE8PDMxKV4oJD4+Pjh8UTw8MjQpXiQ+Pj43LFk9KFE+Pj4xfCQ8PDMxKV4oUT4+Pjh8JDw8MjQpXihRPj4+N3wkPDwyNSksdHQ9bFtULTJdLHJ0PXR0LmhpZ2gsZXQ9dHQubG93LGl0PShydD4+PjE5fGV0PDwxMyleKHJ0PDwzfGV0Pj4+MjkpXnJ0Pj4+NixudD0oZXQ+Pj4xOXxydDw8MTMpXihldDw8M3xydD4+PjI5KV4oZXQ+Pj42fHJ0PDwyNiksb3Q9bFtULTddLHN0PW90LmhpZ2gsYXQ9b3QubG93LGN0PWxbVC0xNl0saHQ9Y3QuaGlnaCxsdD1jdC5sb3csRz1ZK2F0LHE9VitzdCsoRz4+PjA8WT4+PjA/MTowKSxHPUcrbnQscT1xK2l0KyhHPj4+MDxudD4+PjA/MTowKSxHPUcrbHQscT1xK2h0KyhHPj4+MDxsdD4+PjA/MTowKTtaLmhpZ2g9cSxaLmxvdz1HfXZhciBmdD1PJklefk8mWCx1dD1VJkteflUmTCxkdD1DJlJeQyZNXlImTSx2dD1EJkVeRCZGXkUmRixwdD0oQz4+PjI4fEQ8PDQpXihDPDwzMHxEPj4+MileKEM8PDI1fEQ+Pj43KSxfdD0oRD4+PjI4fEM8PDQpXihEPDwzMHxDPj4+MileKEQ8PDI1fEM+Pj43KSx5dD0oTz4+PjE0fFU8PDE4KV4oTz4+PjE4fFU8PDE0KV4oTzw8MjN8VT4+PjkpLGd0PShVPj4+MTR8Tzw8MTgpXihVPj4+MTh8Tzw8MTQpXihVPDwyM3xPPj4+OSksQnQ9aFtUXSx3dD1CdC5oaWdoLGt0PUJ0LmxvdyxTdD1OK2d0LG10PWoreXQrKFN0Pj4+MDxOPj4+MD8xOjApLFN0PVN0K3V0LG10PW10K2Z0KyhTdD4+PjA8dXQ+Pj4wPzE6MCksU3Q9U3Qra3QsbXQ9bXQrd3QrKFN0Pj4+MDxrdD4+PjA/MTowKSxTdD1TdCtHLG10PW10K3ErKFN0Pj4+MDxHPj4+MD8xOjApLHh0PV90K3Z0LGJ0PXB0K2R0Kyh4dD4+PjA8X3Q+Pj4wPzE6MCk7aj1YLE49TCxYPUksTD1LLEk9TyxLPVUsVT1XK1N0fDAsTz1QK210KyhVPj4+MDxXPj4+MD8xOjApfDAsUD1NLFc9RixNPVIsRj1FLFI9QyxFPUQsRD1TdCt4dHwwLEM9bXQrYnQrKEQ+Pj4wPFN0Pj4+MD8xOjApfDB9dj1pLmxvdz12K0QsaS5oaWdoPWQrQysodj4+PjA8RD4+PjA/MTowKSxfPW4ubG93PV8rRSxuLmhpZ2g9cCtSKyhfPj4+MDxFPj4+MD8xOjApLGc9by5sb3c9ZytGLG8uaGlnaD15K00rKGc+Pj4wPEY+Pj4wPzE6MCksdz1zLmxvdz13K1cscy5oaWdoPUIrUCsodz4+PjA8Vz4+PjA/MTowKSxTPWEubG93PVMrVSxhLmhpZ2g9aytPKyhTPj4+MDxVPj4+MD8xOjApLHg9Yy5sb3c9eCtLLGMuaGlnaD1tK0krKHg+Pj4wPEs+Pj4wPzE6MCksSD1mLmxvdz1IK0wsZi5oaWdoPWIrWCsoSD4+PjA8TD4+PjA/MTowKSxBPXUubG93PUErTix1LmhpZ2g9eitqKyhBPj4+MDxOPj4+MD8xOjApfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEscj10LndvcmRzLGU9OCp0aGlzLl9uRGF0YUJ5dGVzLGk9OCp0LnNpZ0J5dGVzO3JbaT4+PjVdfD0xMjg8PDI0LWklMzIsclsoaSsxMjg+Pj4xMDw8NSkrMzBdPU1hdGguZmxvb3IoZS80Mjk0OTY3Mjk2KSxyWyhpKzEyOD4+PjEwPDw1KSszMV09ZSx0LnNpZ0J5dGVzPTQqci5sZW5ndGgsdGhpcy5fcHJvY2VzcygpO3ZhciBuPXRoaXMuX2hhc2gudG9YMzIoKTtyZXR1cm4gbn0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1uLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9LGJsb2NrU2l6ZTozMn0pO2UuU0hBNTEyPW4uX2NyZWF0ZUhlbHBlcihmKSxlLkhtYWNTSEE1MTI9bi5fY3JlYXRlSG1hY0hlbHBlcihmKX0oKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLng2NCxpPWUuV29yZCxuPWUuV29yZEFycmF5LG89ci5hbGdvLHM9by5TSEE1MTIsYT1vLlNIQTM4ND1zLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBuLmluaXQoW25ldyBpLmluaXQoMzQxODA3MDM2NSwzMjM4MzcxMDMyKSxuZXcgaS5pbml0KDE2NTQyNzAyNTAsOTE0MTUwNjYzKSxuZXcgaS5pbml0KDI0Mzg1MjkzNzAsODEyNzAyOTk5KSxuZXcgaS5pbml0KDM1NTQ2MjM2MCw0MTQ0OTEyNjk3KSxuZXcgaS5pbml0KDE3MzE0MDU0MTUsNDI5MDc3NTg1NyksbmV3IGkuaW5pdCgyMzk0MTgwMjMxLDE3NTA2MDMwMjUpLG5ldyBpLmluaXQoMzY3NTAwODUyNSwxNjk0MDc2ODM5KSxuZXcgaS5pbml0KDEyMDMwNjI4MTMsMzIwNDA3NTQyOCldKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD1zLl9kb0ZpbmFsaXplLmNhbGwodGhpcyk7cmV0dXJuIHQuc2lnQnl0ZXMtPTE2LHR9fSk7ci5TSEEzODQ9cy5fY3JlYXRlSGVscGVyKGEpLHIuSG1hY1NIQTM4ND1zLl9jcmVhdGVIbWFjSGVscGVyKGEpfSgpLHQubGliLkNpcGhlcnx8ZnVuY3Rpb24ocil7dmFyIGU9dCxpPWUubGliLG49aS5CYXNlLG89aS5Xb3JkQXJyYXkscz1pLkJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0sYT1lLmVuYyxjPShhLlV0ZjgsYS5CYXNlNjQpLGg9ZS5hbGdvLGw9aC5FdnBLREYsZj1pLkNpcGhlcj1zLmV4dGVuZCh7Y2ZnOm4uZXh0ZW5kKCksY3JlYXRlRW5jcnlwdG9yOmZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuX0VOQ19YRk9STV9NT0RFLHQscil9LGNyZWF0ZURlY3J5cHRvcjpmdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLmNyZWF0ZSh0aGlzLl9ERUNfWEZPUk1fTU9ERSx0LHIpfSxpbml0OmZ1bmN0aW9uKHQscixlKXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQoZSksdGhpcy5feGZvcm1Nb2RlPXQsdGhpcy5fa2V5PXIsdGhpcy5yZXNldCgpfSxyZXNldDpmdW5jdGlvbigpe3MucmVzZXQuY2FsbCh0aGlzKSx0aGlzLl9kb1Jlc2V0KCl9LHByb2Nlc3M6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FwcGVuZCh0KSx0aGlzLl9wcm9jZXNzKCl9LGZpbmFsaXplOmZ1bmN0aW9uKHQpe3QmJnRoaXMuX2FwcGVuZCh0KTt2YXIgcj10aGlzLl9kb0ZpbmFsaXplKCk7cmV0dXJuIHJ9LGtleVNpemU6NCxpdlNpemU6NCxfRU5DX1hGT1JNX01PREU6MSxfREVDX1hGT1JNX01PREU6MixfY3JlYXRlSGVscGVyOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD9tOnd9cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybntlbmNyeXB0OmZ1bmN0aW9uKGUsaSxuKXtyZXR1cm4gdChpKS5lbmNyeXB0KHIsZSxpLG4pfSxkZWNyeXB0OmZ1bmN0aW9uKGUsaSxuKXtyZXR1cm4gdChpKS5kZWNyeXB0KHIsZSxpLG4pfX19fSgpfSksdT0oaS5TdHJlYW1DaXBoZXI9Zi5leHRlbmQoe19kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fcHJvY2VzcyghMCk7cmV0dXJuIHR9LGJsb2NrU2l6ZToxfSksZS5tb2RlPXt9KSxkPWkuQmxvY2tDaXBoZXJNb2RlPW4uZXh0ZW5kKHtjcmVhdGVFbmNyeXB0b3I6ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5FbmNyeXB0b3IuY3JlYXRlKHQscil9LGNyZWF0ZURlY3J5cHRvcjpmdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLkRlY3J5cHRvci5jcmVhdGUodCxyKX0saW5pdDpmdW5jdGlvbih0LHIpe3RoaXMuX2NpcGhlcj10LHRoaXMuX2l2PXJ9fSksdj11LkNCQz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLGkpe3ZhciBuPXRoaXMuX2l2O2lmKG4pe3ZhciBvPW47dGhpcy5faXY9cn1lbHNlIHZhciBvPXRoaXMuX3ByZXZCbG9jaztmb3IodmFyIHM9MDtzPGk7cysrKXRbZStzXV49b1tzXX12YXIgZT1kLmV4dGVuZCgpO3JldHVybiBlLkVuY3J5cHRvcj1lLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHIsZSl7dmFyIGk9dGhpcy5fY2lwaGVyLG49aS5ibG9ja1NpemU7dC5jYWxsKHRoaXMscixlLG4pLGkuZW5jcnlwdEJsb2NrKHIsZSksdGhpcy5fcHJldkJsb2NrPXIuc2xpY2UoZSxlK24pfX0pLGUuRGVjcnlwdG9yPWUuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24ocixlKXt2YXIgaT10aGlzLl9jaXBoZXIsbj1pLmJsb2NrU2l6ZSxvPXIuc2xpY2UoZSxlK24pO2kuZGVjcnlwdEJsb2NrKHIsZSksdC5jYWxsKHRoaXMscixlLG4pLHRoaXMuX3ByZXZCbG9jaz1vfX0pLGV9KCkscD1lLnBhZD17fSxfPXAuUGtjczc9e3BhZDpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT00KnIsaT1lLXQuc2lnQnl0ZXMlZSxuPWk8PDI0fGk8PDE2fGk8PDh8aSxzPVtdLGE9MDthPGk7YSs9NClzLnB1c2gobik7dmFyIGM9by5jcmVhdGUocyxpKTt0LmNvbmNhdChjKX0sdW5wYWQ6ZnVuY3Rpb24odCl7dmFyIHI9MjU1JnQud29yZHNbdC5zaWdCeXRlcy0xPj4+Ml07dC5zaWdCeXRlcy09cn19LHk9KGkuQmxvY2tDaXBoZXI9Zi5leHRlbmQoe2NmZzpmLmNmZy5leHRlbmQoe21vZGU6dixwYWRkaW5nOl99KSxyZXNldDpmdW5jdGlvbigpe2YucmVzZXQuY2FsbCh0aGlzKTt2YXIgdD10aGlzLmNmZyxyPXQuaXYsZT10Lm1vZGU7aWYodGhpcy5feGZvcm1Nb2RlPT10aGlzLl9FTkNfWEZPUk1fTU9ERSl2YXIgaT1lLmNyZWF0ZUVuY3J5cHRvcjtlbHNle3ZhciBpPWUuY3JlYXRlRGVjcnlwdG9yO3RoaXMuX21pbkJ1ZmZlclNpemU9MX10aGlzLl9tb2RlJiZ0aGlzLl9tb2RlLl9fY3JlYXRvcj09aT90aGlzLl9tb2RlLmluaXQodGhpcyxyJiZyLndvcmRzKToodGhpcy5fbW9kZT1pLmNhbGwoZSx0aGlzLHImJnIud29yZHMpLHRoaXMuX21vZGUuX19jcmVhdG9yPWkpfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9tb2RlLnByb2Nlc3NCbG9jayh0LHIpfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY2ZnLnBhZGRpbmc7aWYodGhpcy5feGZvcm1Nb2RlPT10aGlzLl9FTkNfWEZPUk1fTU9ERSl7dC5wYWQodGhpcy5fZGF0YSx0aGlzLmJsb2NrU2l6ZSk7dmFyIHI9dGhpcy5fcHJvY2VzcyghMCl9ZWxzZXt2YXIgcj10aGlzLl9wcm9jZXNzKCEwKTt0LnVucGFkKHIpfXJldHVybiByfSxibG9ja1NpemU6NH0pLGkuQ2lwaGVyUGFyYW1zPW4uZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQpe3RoaXMubWl4SW4odCl9LHRvU3RyaW5nOmZ1bmN0aW9uKHQpe3JldHVybih0fHx0aGlzLmZvcm1hdHRlcikuc3RyaW5naWZ5KHRoaXMpfX0pKSxnPWUuZm9ybWF0PXt9LEI9Zy5PcGVuU1NMPXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7dmFyIHI9dC5jaXBoZXJ0ZXh0LGU9dC5zYWx0O2lmKGUpdmFyIGk9by5jcmVhdGUoWzEzOTg4OTM2ODQsMTcwMTA3NjgzMV0pLmNvbmNhdChlKS5jb25jYXQocik7ZWxzZSB2YXIgaT1yO3JldHVybiBpLnRvU3RyaW5nKGMpfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgcj1jLnBhcnNlKHQpLGU9ci53b3JkcztpZigxMzk4ODkzNjg0PT1lWzBdJiYxNzAxMDc2ODMxPT1lWzFdKXt2YXIgaT1vLmNyZWF0ZShlLnNsaWNlKDIsNCkpO2Uuc3BsaWNlKDAsNCksci5zaWdCeXRlcy09MTZ9cmV0dXJuIHkuY3JlYXRlKHtjaXBoZXJ0ZXh0OnIsc2FsdDppfSl9fSx3PWkuU2VyaWFsaXphYmxlQ2lwaGVyPW4uZXh0ZW5kKHtjZmc6bi5leHRlbmQoe2Zvcm1hdDpCfSksZW5jcnlwdDpmdW5jdGlvbih0LHIsZSxpKXtpPXRoaXMuY2ZnLmV4dGVuZChpKTt2YXIgbj10LmNyZWF0ZUVuY3J5cHRvcihlLGkpLG89bi5maW5hbGl6ZShyKSxzPW4uY2ZnO3JldHVybiB5LmNyZWF0ZSh7Y2lwaGVydGV4dDpvLGtleTplLGl2OnMuaXYsYWxnb3JpdGhtOnQsbW9kZTpzLm1vZGUscGFkZGluZzpzLnBhZGRpbmcsYmxvY2tTaXplOnQuYmxvY2tTaXplLGZvcm1hdHRlcjppLmZvcm1hdH0pfSxkZWNyeXB0OmZ1bmN0aW9uKHQscixlLGkpe2k9dGhpcy5jZmcuZXh0ZW5kKGkpLHI9dGhpcy5fcGFyc2UocixpLmZvcm1hdCk7dmFyIG49dC5jcmVhdGVEZWNyeXB0b3IoZSxpKS5maW5hbGl6ZShyLmNpcGhlcnRleHQpO3JldHVybiBufSxfcGFyc2U6ZnVuY3Rpb24odCxyKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD9yLnBhcnNlKHQsdGhpcyk6dH19KSxrPWUua2RmPXt9LFM9ay5PcGVuU1NMPXtleGVjdXRlOmZ1bmN0aW9uKHQscixlLGkpe2l8fChpPW8ucmFuZG9tKDgpKTt2YXIgbj1sLmNyZWF0ZSh7a2V5U2l6ZTpyK2V9KS5jb21wdXRlKHQsaSkscz1vLmNyZWF0ZShuLndvcmRzLnNsaWNlKHIpLDQqZSk7cmV0dXJuIG4uc2lnQnl0ZXM9NCpyLHkuY3JlYXRlKHtrZXk6bixpdjpzLHNhbHQ6aX0pfX0sbT1pLlBhc3N3b3JkQmFzZWRDaXBoZXI9dy5leHRlbmQoe2NmZzp3LmNmZy5leHRlbmQoe2tkZjpTfSksZW5jcnlwdDpmdW5jdGlvbih0LHIsZSxpKXtpPXRoaXMuY2ZnLmV4dGVuZChpKTt2YXIgbj1pLmtkZi5leGVjdXRlKGUsdC5rZXlTaXplLHQuaXZTaXplKTtpLml2PW4uaXY7dmFyIG89dy5lbmNyeXB0LmNhbGwodGhpcyx0LHIsbi5rZXksaSk7cmV0dXJuIG8ubWl4SW4obiksb30sZGVjcnlwdDpmdW5jdGlvbih0LHIsZSxpKXtpPXRoaXMuY2ZnLmV4dGVuZChpKSxyPXRoaXMuX3BhcnNlKHIsaS5mb3JtYXQpO3ZhciBuPWkua2RmLmV4ZWN1dGUoZSx0LmtleVNpemUsdC5pdlNpemUsci5zYWx0KTtpLml2PW4uaXY7dmFyIG89dy5kZWNyeXB0LmNhbGwodGhpcyx0LHIsbi5rZXksaSk7cmV0dXJuIG99fSl9KCksdC5tb2RlLkNGQj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIodCxyLGUsaSl7dmFyIG49dGhpcy5faXY7aWYobil7dmFyIG89bi5zbGljZSgwKTt0aGlzLl9pdj12b2lkIDB9ZWxzZSB2YXIgbz10aGlzLl9wcmV2QmxvY2s7aS5lbmNyeXB0QmxvY2sobywwKTtmb3IodmFyIHM9MDtzPGU7cysrKXRbcitzXV49b1tzXX12YXIgZT10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCk7cmV0dXJuIGUuRW5jcnlwdG9yPWUuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl9jaXBoZXIsbj1pLmJsb2NrU2l6ZTtyLmNhbGwodGhpcyx0LGUsbixpKSx0aGlzLl9wcmV2QmxvY2s9dC5zbGljZShlLGUrbil9fSksZS5EZWNyeXB0b3I9ZS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuX2NpcGhlcixuPWkuYmxvY2tTaXplLG89dC5zbGljZShlLGUrbik7ci5jYWxsKHRoaXMsdCxlLG4saSksdGhpcy5fcHJldkJsb2NrPW99fSksZX0oKSx0Lm1vZGUuRUNCPWZ1bmN0aW9uKCl7dmFyIHI9dC5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpO3JldHVybiByLkVuY3J5cHRvcj1yLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fY2lwaGVyLmVuY3J5cHRCbG9jayh0LHIpfX0pLHIuRGVjcnlwdG9yPXIuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9jaXBoZXIuZGVjcnlwdEJsb2NrKHQscil9fSkscn0oKSx0LnBhZC5BbnNpWDkyMz17cGFkOmZ1bmN0aW9uKHQscil7dmFyIGU9dC5zaWdCeXRlcyxpPTQqcixuPWktZSVpLG89ZStuLTE7dC5jbGFtcCgpLHQud29yZHNbbz4+PjJdfD1uPDwyNC1vJTQqOCx0LnNpZ0J5dGVzKz1ufSx1bnBhZDpmdW5jdGlvbih0KXt2YXIgcj0yNTUmdC53b3Jkc1t0LnNpZ0J5dGVzLTE+Pj4yXTt0LnNpZ0J5dGVzLT1yfX0sdC5wYWQuSXNvMTAxMjY9e3BhZDpmdW5jdGlvbihyLGUpe3ZhciBpPTQqZSxuPWktci5zaWdCeXRlcyVpO3IuY29uY2F0KHQubGliLldvcmRBcnJheS5yYW5kb20obi0xKSkuY29uY2F0KHQubGliLldvcmRBcnJheS5jcmVhdGUoW248PDI0XSwxKSl9LHVucGFkOmZ1bmN0aW9uKHQpe3ZhciByPTI1NSZ0LndvcmRzW3Quc2lnQnl0ZXMtMT4+PjJdO3Quc2lnQnl0ZXMtPXJ9fSx0LnBhZC5Jc285Nzk3MT17cGFkOmZ1bmN0aW9uKHIsZSl7ci5jb25jYXQodC5saWIuV29yZEFycmF5LmNyZWF0ZShbMjE0NzQ4MzY0OF0sMSkpLHQucGFkLlplcm9QYWRkaW5nLnBhZChyLGUpfSx1bnBhZDpmdW5jdGlvbihyKXt0LnBhZC5aZXJvUGFkZGluZy51bnBhZChyKSxyLnNpZ0J5dGVzLS19fSx0Lm1vZGUuT0ZCPWZ1bmN0aW9uKCl7dmFyIHI9dC5saWIuQmxvY2tDaXBoZXJNb2RlLmV4dGVuZCgpLGU9ci5FbmNyeXB0b3I9ci5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX2NpcGhlcixpPWUuYmxvY2tTaXplLG49dGhpcy5faXYsbz10aGlzLl9rZXlzdHJlYW07biYmKG89dGhpcy5fa2V5c3RyZWFtPW4uc2xpY2UoMCksdGhpcy5faXY9dm9pZCAwKSxlLmVuY3J5cHRCbG9jayhvLDApO2Zvcih2YXIgcz0wO3M8aTtzKyspdFtyK3NdXj1vW3NdfX0pO3JldHVybiByLkRlY3J5cHRvcj1lLHJ9KCksdC5wYWQuTm9QYWRkaW5nPXtwYWQ6ZnVuY3Rpb24oKXt9LHVucGFkOmZ1bmN0aW9uKCl7fX0sZnVuY3Rpb24ocil7dmFyIGU9dCxpPWUubGliLG49aS5DaXBoZXJQYXJhbXMsbz1lLmVuYyxzPW8uSGV4LGE9ZS5mb3JtYXQ7YS5IZXg9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXtyZXR1cm4gdC5jaXBoZXJ0ZXh0LnRvU3RyaW5nKHMpfSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgcj1zLnBhcnNlKHQpO3JldHVybiBuLmNyZWF0ZSh7Y2lwaGVydGV4dDpyfSl9fX0oKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLmxpYixpPWUuQmxvY2tDaXBoZXIsbj1yLmFsZ28sbz1bXSxzPVtdLGE9W10sYz1bXSxoPVtdLGw9W10sZj1bXSx1PVtdLGQ9W10sdj1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10scj0wO3I8MjU2O3IrKylyPDEyOD90W3JdPXI8PDE6dFtyXT1yPDwxXjI4Mztmb3IodmFyIGU9MCxpPTAscj0wO3I8MjU2O3IrKyl7dmFyIG49aV5pPDwxXmk8PDJeaTw8M15pPDw0O249bj4+PjheMjU1Jm5eOTksb1tlXT1uLHNbbl09ZTt2YXIgcD10W2VdLF89dFtwXSx5PXRbX10sZz0yNTcqdFtuXV4xNjg0MzAwOCpuO2FbZV09Zzw8MjR8Zz4+PjgsY1tlXT1nPDwxNnxnPj4+MTYsaFtlXT1nPDw4fGc+Pj4yNCxsW2VdPWc7dmFyIGc9MTY4NDMwMDkqeV42NTUzNypfXjI1NypwXjE2ODQzMDA4KmU7ZltuXT1nPDwyNHxnPj4+OCx1W25dPWc8PDE2fGc+Pj4xNixkW25dPWc8PDh8Zz4+PjI0LHZbbl09ZyxlPyhlPXBedFt0W3RbeV5wXV1dLGlePXRbdFtpXV0pOmU9aT0xfX0oKTt2YXIgcD1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sXz1uLkFFUz1pLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtpZighdGhpcy5fblJvdW5kc3x8dGhpcy5fa2V5UHJpb3JSZXNldCE9PXRoaXMuX2tleSl7Zm9yKHZhciB0PXRoaXMuX2tleVByaW9yUmVzZXQ9dGhpcy5fa2V5LHI9dC53b3JkcyxlPXQuc2lnQnl0ZXMvNCxpPXRoaXMuX25Sb3VuZHM9ZSs2LG49NCooaSsxKSxzPXRoaXMuX2tleVNjaGVkdWxlPVtdLGE9MDthPG47YSsrKWlmKGE8ZSlzW2FdPXJbYV07ZWxzZXt2YXIgYz1zW2EtMV07YSVlP2U+NiYmYSVlPT00JiYoYz1vW2M+Pj4yNF08PDI0fG9bYz4+PjE2JjI1NV08PDE2fG9bYz4+PjgmMjU1XTw8OHxvWzI1NSZjXSk6KGM9Yzw8OHxjPj4+MjQsYz1vW2M+Pj4yNF08PDI0fG9bYz4+PjE2JjI1NV08PDE2fG9bYz4+PjgmMjU1XTw8OHxvWzI1NSZjXSxjXj1wW2EvZXwwXTw8MjQpLHNbYV09c1thLWVdXmN9Zm9yKHZhciBoPXRoaXMuX2ludktleVNjaGVkdWxlPVtdLGw9MDtsPG47bCsrKXt2YXIgYT1uLWw7aWYobCU0KXZhciBjPXNbYV07ZWxzZSB2YXIgYz1zW2EtNF07bDw0fHxhPD00P2hbbF09YzpoW2xdPWZbb1tjPj4+MjRdXV51W29bYz4+PjE2JjI1NV1dXmRbb1tjPj4+OCYyNTVdXV52W29bMjU1JmNdXX19fSxlbmNyeXB0QmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9kb0NyeXB0QmxvY2sodCxyLHRoaXMuX2tleVNjaGVkdWxlLGEsYyxoLGwsbyl9LGRlY3J5cHRCbG9jazpmdW5jdGlvbih0LHIpe3ZhciBlPXRbcisxXTt0W3IrMV09dFtyKzNdLHRbciszXT1lLHRoaXMuX2RvQ3J5cHRCbG9jayh0LHIsdGhpcy5faW52S2V5U2NoZWR1bGUsZix1LGQsdixzKTt2YXIgZT10W3IrMV07dFtyKzFdPXRbciszXSx0W3IrM109ZX0sX2RvQ3J5cHRCbG9jazpmdW5jdGlvbih0LHIsZSxpLG4sbyxzLGEpe2Zvcih2YXIgYz10aGlzLl9uUm91bmRzLGg9dFtyXV5lWzBdLGw9dFtyKzFdXmVbMV0sZj10W3IrMl1eZVsyXSx1PXRbciszXV5lWzNdLGQ9NCx2PTE7djxjO3YrKyl7dmFyIHA9aVtoPj4+MjRdXm5bbD4+PjE2JjI1NV1eb1tmPj4+OCYyNTVdXnNbMjU1JnVdXmVbZCsrXSxfPWlbbD4+PjI0XV5uW2Y+Pj4xNiYyNTVdXm9bdT4+PjgmMjU1XV5zWzI1NSZoXV5lW2QrK10seT1pW2Y+Pj4yNF1eblt1Pj4+MTYmMjU1XV5vW2g+Pj44JjI1NV1ec1syNTUmbF1eZVtkKytdLGc9aVt1Pj4+MjRdXm5baD4+PjE2JjI1NV1eb1tsPj4+OCYyNTVdXnNbMjU1JmZdXmVbZCsrXTtoPXAsbD1fLGY9eSx1PWd9dmFyIHA9KGFbaD4+PjI0XTw8MjR8YVtsPj4+MTYmMjU1XTw8MTZ8YVtmPj4+OCYyNTVdPDw4fGFbMjU1JnVdKV5lW2QrK10sXz0oYVtsPj4+MjRdPDwyNHxhW2Y+Pj4xNiYyNTVdPDwxNnxhW3U+Pj44JjI1NV08PDh8YVsyNTUmaF0pXmVbZCsrXSx5PShhW2Y+Pj4yNF08PDI0fGFbdT4+PjE2JjI1NV08PDE2fGFbaD4+PjgmMjU1XTw8OHxhWzI1NSZsXSleZVtkKytdLGc9KGFbdT4+PjI0XTw8MjR8YVtoPj4+MTYmMjU1XTw8MTZ8YVtsPj4+OCYyNTVdPDw4fGFbMjU1JmZdKV5lW2QrK107dFtyXT1wLHRbcisxXT1fLHRbcisyXT15LHRbciszXT1nfSxrZXlTaXplOjh9KTtyLkFFUz1pLl9jcmVhdGVIZWxwZXIoXyl9KCksZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQscil7dmFyIGU9KHRoaXMuX2xCbG9jaz4+PnRedGhpcy5fckJsb2NrKSZyO3RoaXMuX3JCbG9ja149ZSx0aGlzLl9sQmxvY2tePWU8PHR9ZnVuY3Rpb24gZSh0LHIpe3ZhciBlPSh0aGlzLl9yQmxvY2s+Pj50XnRoaXMuX2xCbG9jaykmcjt0aGlzLl9sQmxvY2tePWUsdGhpcy5fckJsb2NrXj1lPDx0O1xyXG59dmFyIGk9dCxuPWkubGliLG89bi5Xb3JkQXJyYXkscz1uLkJsb2NrQ2lwaGVyLGE9aS5hbGdvLGM9WzU3LDQ5LDQxLDMzLDI1LDE3LDksMSw1OCw1MCw0MiwzNCwyNiwxOCwxMCwyLDU5LDUxLDQzLDM1LDI3LDE5LDExLDMsNjAsNTIsNDQsMzYsNjMsNTUsNDcsMzksMzEsMjMsMTUsNyw2Miw1NCw0NiwzOCwzMCwyMiwxNCw2LDYxLDUzLDQ1LDM3LDI5LDIxLDEzLDUsMjgsMjAsMTIsNF0saD1bMTQsMTcsMTEsMjQsMSw1LDMsMjgsMTUsNiwyMSwxMCwyMywxOSwxMiw0LDI2LDgsMTYsNywyNywyMCwxMywyLDQxLDUyLDMxLDM3LDQ3LDU1LDMwLDQwLDUxLDQ1LDMzLDQ4LDQ0LDQ5LDM5LDU2LDM0LDUzLDQ2LDQyLDUwLDM2LDI5LDMyXSxsPVsxLDIsNCw2LDgsMTAsMTIsMTQsMTUsMTcsMTksMjEsMjMsMjUsMjcsMjhdLGY9W3swOjg0MjE4ODgsMjY4NDM1NDU2OjMyNzY4LDUzNjg3MDkxMjo4NDIxMzc4LDgwNTMwNjM2ODoyLDEwNzM3NDE4MjQ6NTEyLDEzNDIxNzcyODA6ODQyMTg5MCwxNjEwNjEyNzM2OjgzODkxMjIsMTg3OTA0ODE5Mjo4Mzg4NjA4LDIxNDc0ODM2NDg6NTE0LDI0MTU5MTkxMDQ6ODM4OTEyMCwyNjg0MzU0NTYwOjMzMjgwLDI5NTI3OTAwMTY6ODQyMTM3NiwzMjIxMjI1NDcyOjMyNzcwLDM0ODk2NjA5Mjg6ODM4ODYxMCwzNzU4MDk2Mzg0OjAsNDAyNjUzMTg0MDozMzI4MiwxMzQyMTc3Mjg6MCw0MDI2NTMxODQ6ODQyMTg5MCw2NzEwODg2NDA6MzMyODIsOTM5NTI0MDk2OjMyNzY4LDEyMDc5NTk1NTI6ODQyMTg4OCwxNDc2Mzk1MDA4OjUxMiwxNzQ0ODMwNDY0Ojg0MjEzNzgsMjAxMzI2NTkyMDoyLDIyODE3MDEzNzY6ODM4OTEyMCwyNTUwMTM2ODMyOjMzMjgwLDI4MTg1NzIyODg6ODQyMTM3NiwzMDg3MDA3NzQ0OjgzODkxMjIsMzM1NTQ0MzIwMDo4Mzg4NjEwLDM2MjM4Nzg2NTY6MzI3NzAsMzg5MjMxNDExMjo1MTQsNDE2MDc0OTU2ODo4Mzg4NjA4LDE6MzI3NjgsMjY4NDM1NDU3OjIsNTM2ODcwOTEzOjg0MjE4ODgsODA1MzA2MzY5OjgzODg2MDgsMTA3Mzc0MTgyNTo4NDIxMzc4LDEzNDIxNzcyODE6MzMyODAsMTYxMDYxMjczNzo1MTIsMTg3OTA0ODE5Mzo4Mzg5MTIyLDIxNDc0ODM2NDk6ODQyMTg5MCwyNDE1OTE5MTA1Ojg0MjEzNzYsMjY4NDM1NDU2MTo4Mzg4NjEwLDI5NTI3OTAwMTc6MzMyODIsMzIyMTIyNTQ3Mzo1MTQsMzQ4OTY2MDkyOTo4Mzg5MTIwLDM3NTgwOTYzODU6MzI3NzAsNDAyNjUzMTg0MTowLDEzNDIxNzcyOTo4NDIxODkwLDQwMjY1MzE4NTo4NDIxMzc2LDY3MTA4ODY0MTo4Mzg4NjA4LDkzOTUyNDA5Nzo1MTIsMTIwNzk1OTU1MzozMjc2OCwxNDc2Mzk1MDA5OjgzODg2MTAsMTc0NDgzMDQ2NToyLDIwMTMyNjU5MjE6MzMyODIsMjI4MTcwMTM3NzozMjc3MCwyNTUwMTM2ODMzOjgzODkxMjIsMjgxODU3MjI4OTo1MTQsMzA4NzAwNzc0NTo4NDIxODg4LDMzNTU0NDMyMDE6ODM4OTEyMCwzNjIzODc4NjU3OjAsMzg5MjMxNDExMzozMzI4MCw0MTYwNzQ5NTY5Ojg0MjEzNzh9LHswOjEwNzQyODI1MTIsMTY3NzcyMTY6MTYzODQsMzM1NTQ0MzI6NTI0Mjg4LDUwMzMxNjQ4OjEwNzQyNjYxMjgsNjcxMDg4NjQ6MTA3Mzc0MTg0MCw4Mzg4NjA4MDoxMDc0MjgyNDk2LDEwMDY2MzI5NjoxMDczNzU4MjA4LDExNzQ0MDUxMjoxNiwxMzQyMTc3Mjg6NTQwNjcyLDE1MDk5NDk0NDoxMDczNzU4MjI0LDE2Nzc3MjE2MDoxMDczNzQxODI0LDE4NDU0OTM3Njo1NDA2ODgsMjAxMzI2NTkyOjUyNDMwNCwyMTgxMDM4MDg6MCwyMzQ4ODEwMjQ6MTY0MDAsMjUxNjU4MjQwOjEwNzQyNjYxMTIsODM4ODYwODoxMDczNzU4MjA4LDI1MTY1ODI0OjU0MDY4OCw0MTk0MzA0MDoxNiw1ODcyMDI1NjoxMDczNzU4MjI0LDc1NDk3NDcyOjEwNzQyODI1MTIsOTIyNzQ2ODg6MTA3Mzc0MTgyNCwxMDkwNTE5MDQ6NTI0Mjg4LDEyNTgyOTEyMDoxMDc0MjY2MTI4LDE0MjYwNjMzNjo1MjQzMDQsMTU5MzgzNTUyOjAsMTc2MTYwNzY4OjE2Mzg0LDE5MjkzNzk4NDoxMDc0MjY2MTEyLDIwOTcxNTIwMDoxMDczNzQxODQwLDIyNjQ5MjQxNjo1NDA2NzIsMjQzMjY5NjMyOjEwNzQyODI0OTYsMjYwMDQ2ODQ4OjE2NDAwLDI2ODQzNTQ1NjowLDI4NTIxMjY3MjoxMDc0MjY2MTI4LDMwMTk4OTg4ODoxMDczNzU4MjI0LDMxODc2NzEwNDoxMDc0MjgyNDk2LDMzNTU0NDMyMDoxMDc0MjY2MTEyLDM1MjMyMTUzNjoxNiwzNjkwOTg3NTI6NTQwNjg4LDM4NTg3NTk2ODoxNjM4NCw0MDI2NTMxODQ6MTY0MDAsNDE5NDMwNDAwOjUyNDI4OCw0MzYyMDc2MTY6NTI0MzA0LDQ1Mjk4NDgzMjoxMDczNzQxODQwLDQ2OTc2MjA0ODo1NDA2NzIsNDg2NTM5MjY0OjEwNzM3NTgyMDgsNTAzMzE2NDgwOjEwNzM3NDE4MjQsNTIwMDkzNjk2OjEwNzQyODI1MTIsMjc2ODI0MDY0OjU0MDY4OCwyOTM2MDEyODA6NTI0Mjg4LDMxMDM3ODQ5NjoxMDc0MjY2MTEyLDMyNzE1NTcxMjoxNjM4NCwzNDM5MzI5Mjg6MTA3Mzc1ODIwOCwzNjA3MTAxNDQ6MTA3NDI4MjUxMiwzNzc0ODczNjA6MTYsMzk0MjY0NTc2OjEwNzM3NDE4MjQsNDExMDQxNzkyOjEwNzQyODI0OTYsNDI3ODE5MDA4OjEwNzM3NDE4NDAsNDQ0NTk2MjI0OjEwNzM3NTgyMjQsNDYxMzczNDQwOjUyNDMwNCw0NzgxNTA2NTY6MCw0OTQ5Mjc4NzI6MTY0MDAsNTExNzA1MDg4OjEwNzQyNjYxMjgsNTI4NDgyMzA0OjU0MDY3Mn0sezA6MjYwLDEwNDg1NzY6MCwyMDk3MTUyOjY3MTA5MTIwLDMxNDU3Mjg6NjU3OTYsNDE5NDMwNDo2NTU0MCw1MjQyODgwOjY3MTA4ODY4LDYyOTE0NTY6NjcxNzQ2NjAsNzM0MDAzMjo2NzE3NDQwMCw4Mzg4NjA4OjY3MTA4ODY0LDk0MzcxODQ6NjcxNzQ2NTYsMTA0ODU3NjA6NjU3OTIsMTE1MzQzMzY6NjcxNzQ0MDQsMTI1ODI5MTI6NjcxMDkxMjQsMTM2MzE0ODg6NjU1MzYsMTQ2ODAwNjQ6NCwxNTcyODY0MDoyNTYsNTI0Mjg4OjY3MTc0NjU2LDE1NzI4NjQ6NjcxNzQ0MDQsMjYyMTQ0MDowLDM2NzAwMTY6NjcxMDkxMjAsNDcxODU5Mjo2NzEwODg2OCw1NzY3MTY4OjY1NTM2LDY4MTU3NDQ6NjU1NDAsNzg2NDMyMDoyNjAsODkxMjg5Njo0LDk5NjE0NzI6MjU2LDExMDEwMDQ4OjY3MTc0NDAwLDEyMDU4NjI0OjY1Nzk2LDEzMTA3MjAwOjY1NzkyLDE0MTU1Nzc2OjY3MTA5MTI0LDE1MjA0MzUyOjY3MTc0NjYwLDE2MjUyOTI4OjY3MTA4ODY0LDE2Nzc3MjE2OjY3MTc0NjU2LDE3ODI1NzkyOjY1NTQwLDE4ODc0MzY4OjY1NTM2LDE5OTIyOTQ0OjY3MTA5MTIwLDIwOTcxNTIwOjI1NiwyMjAyMDA5Njo2NzE3NDY2MCwyMzA2ODY3Mjo2NzEwODg2OCwyNDExNzI0ODowLDI1MTY1ODI0OjY3MTA5MTI0LDI2MjE0NDAwOjY3MTA4ODY0LDI3MjYyOTc2OjQsMjgzMTE1NTI6NjU3OTIsMjkzNjAxMjg6NjcxNzQ0MDAsMzA0MDg3MDQ6MjYwLDMxNDU3MjgwOjY1Nzk2LDMyNTA1ODU2OjY3MTc0NDA0LDE3MzAxNTA0OjY3MTA4ODY0LDE4MzUwMDgwOjI2MCwxOTM5ODY1Njo2NzE3NDY1NiwyMDQ0NzIzMjowLDIxNDk1ODA4OjY1NTQwLDIyNTQ0Mzg0OjY3MTA5MTIwLDIzNTkyOTYwOjI1NiwyNDY0MTUzNjo2NzE3NDQwNCwyNTY5MDExMjo2NTUzNiwyNjczODY4ODo2NzE3NDY2MCwyNzc4NzI2NDo2NTc5NiwyODgzNTg0MDo2NzEwODg2OCwyOTg4NDQxNjo2NzEwOTEyNCwzMDkzMjk5Mjo2NzE3NDQwMCwzMTk4MTU2ODo0LDMzMDMwMTQ0OjY1NzkyfSx7MDoyMTUxNjgyMDQ4LDY1NTM2OjIxNDc0ODc4MDgsMTMxMDcyOjQxOTg0NjQsMTk2NjA4OjIxNTE2Nzc5NTIsMjYyMTQ0OjAsMzI3NjgwOjQxOTg0MDAsMzkzMjE2OjIxNDc0ODM3MTIsNDU4NzUyOjQxOTQzNjgsNTI0Mjg4OjIxNDc0ODM2NDgsNTg5ODI0OjQxOTQzMDQsNjU1MzYwOjY0LDcyMDg5NjoyMTQ3NDg3NzQ0LDc4NjQzMjoyMTUxNjc4MDE2LDg1MTk2ODo0MTYwLDkxNzUwNDo0MDk2LDk4MzA0MDoyMTUxNjgyMTEyLDMyNzY4OjIxNDc0ODc4MDgsOTgzMDQ6NjQsMTYzODQwOjIxNTE2NzgwMTYsMjI5Mzc2OjIxNDc0ODc3NDQsMjk0OTEyOjQxOTg0MDAsMzYwNDQ4OjIxNTE2ODIxMTIsNDI1OTg0OjAsNDkxNTIwOjIxNTE2Nzc5NTIsNTU3MDU2OjQwOTYsNjIyNTkyOjIxNTE2ODIwNDgsNjg4MTI4OjQxOTQzMDQsNzUzNjY0OjQxNjAsODE5MjAwOjIxNDc0ODM2NDgsODg0NzM2OjQxOTQzNjgsOTUwMjcyOjQxOTg0NjQsMTAxNTgwODoyMTQ3NDgzNzEyLDEwNDg1NzY6NDE5NDM2OCwxMTE0MTEyOjQxOTg0MDAsMTE3OTY0ODoyMTQ3NDgzNzEyLDEyNDUxODQ6MCwxMzEwNzIwOjQxNjAsMTM3NjI1NjoyMTUxNjc4MDE2LDE0NDE3OTI6MjE1MTY4MjA0OCwxNTA3MzI4OjIxNDc0ODc4MDgsMTU3Mjg2NDoyMTUxNjgyMTEyLDE2Mzg0MDA6MjE0NzQ4MzY0OCwxNzAzOTM2OjIxNTE2Nzc5NTIsMTc2OTQ3Mjo0MTk4NDY0LDE4MzUwMDg6MjE0NzQ4Nzc0NCwxOTAwNTQ0OjQxOTQzMDQsMTk2NjA4MDo2NCwyMDMxNjE2OjQwOTYsMTA4MTM0NDoyMTUxNjc3OTUyLDExNDY4ODA6MjE1MTY4MjExMiwxMjEyNDE2OjAsMTI3Nzk1Mjo0MTk4NDAwLDEzNDM0ODg6NDE5NDM2OCwxNDA5MDI0OjIxNDc0ODM2NDgsMTQ3NDU2MDoyMTQ3NDg3ODA4LDE1NDAwOTY6NjQsMTYwNTYzMjoyMTQ3NDgzNzEyLDE2NzExNjg6NDA5NiwxNzM2NzA0OjIxNDc0ODc3NDQsMTgwMjI0MDoyMTUxNjc4MDE2LDE4Njc3NzY6NDE2MCwxOTMzMzEyOjIxNTE2ODIwNDgsMTk5ODg0ODo0MTk0MzA0LDIwNjQzODQ6NDE5ODQ2NH0sezA6MTI4LDQwOTY6MTcwMzkzNjAsODE5MjoyNjIxNDQsMTIyODg6NTM2ODcwOTEyLDE2Mzg0OjUzNzEzMzE4NCwyMDQ4MDoxNjc3NzM0NCwyNDU3Njo1NTM2NDgyNTYsMjg2NzI6MjYyMjcyLDMyNzY4OjE2Nzc3MjE2LDM2ODY0OjUzNzEzMzA1Niw0MDk2MDo1MzY4NzEwNDAsNDUwNTY6NTUzOTEwNDAwLDQ5MTUyOjU1MzkxMDI3Miw1MzI0ODowLDU3MzQ0OjE3MDM5NDg4LDYxNDQwOjU1MzY0ODEyOCwyMDQ4OjE3MDM5NDg4LDYxNDQ6NTUzNjQ4MjU2LDEwMjQwOjEyOCwxNDMzNjoxNzAzOTM2MCwxODQzMjoyNjIxNDQsMjI1Mjg6NTM3MTMzMTg0LDI2NjI0OjU1MzkxMDI3MiwzMDcyMDo1MzY4NzA5MTIsMzQ4MTY6NTM3MTMzMDU2LDM4OTEyOjAsNDMwMDg6NTUzOTEwNDAwLDQ3MTA0OjE2Nzc3MzQ0LDUxMjAwOjUzNjg3MTA0MCw1NTI5Njo1NTM2NDgxMjgsNTkzOTI6MTY3NzcyMTYsNjM0ODg6MjYyMjcyLDY1NTM2OjI2MjE0NCw2OTYzMjoxMjgsNzM3Mjg6NTM2ODcwOTEyLDc3ODI0OjU1MzY0ODI1Niw4MTkyMDoxNjc3NzM0NCw4NjAxNjo1NTM5MTAyNzIsOTAxMTI6NTM3MTMzMTg0LDk0MjA4OjE2Nzc3MjE2LDk4MzA0OjU1MzkxMDQwMCwxMDI0MDA6NTUzNjQ4MTI4LDEwNjQ5NjoxNzAzOTM2MCwxMTA1OTI6NTM3MTMzMDU2LDExNDY4ODoyNjIyNzIsMTE4Nzg0OjUzNjg3MTA0MCwxMjI4ODA6MCwxMjY5NzY6MTcwMzk0ODgsNjc1ODQ6NTUzNjQ4MjU2LDcxNjgwOjE2Nzc3MjE2LDc1Nzc2OjE3MDM5MzYwLDc5ODcyOjUzNzEzMzE4NCw4Mzk2ODo1MzY4NzA5MTIsODgwNjQ6MTcwMzk0ODgsOTIxNjA6MTI4LDk2MjU2OjU1MzkxMDI3MiwxMDAzNTI6MjYyMjcyLDEwNDQ0ODo1NTM5MTA0MDAsMTA4NTQ0OjAsMTEyNjQwOjU1MzY0ODEyOCwxMTY3MzY6MTY3NzczNDQsMTIwODMyOjI2MjE0NCwxMjQ5Mjg6NTM3MTMzMDU2LDEyOTAyNDo1MzY4NzEwNDB9LHswOjI2ODQzNTQ2NCwyNTY6ODE5Miw1MTI6MjcwNTMyNjA4LDc2ODoyNzA1NDA4MDgsMTAyNDoyNjg0NDM2NDgsMTI4MDoyMDk3MTUyLDE1MzY6MjA5NzE2MCwxNzkyOjI2ODQzNTQ1NiwyMDQ4OjAsMjMwNDoyNjg0NDM2NTYsMjU2MDoyMTA1MzQ0LDI4MTY6OCwzMDcyOjI3MDUzMjYxNiwzMzI4OjIxMDUzNTIsMzU4NDo4MjAwLDM4NDA6MjcwNTQwODAwLDEyODoyNzA1MzI2MDgsMzg0OjI3MDU0MDgwOCw2NDA6OCw4OTY6MjA5NzE1MiwxMTUyOjIxMDUzNTIsMTQwODoyNjg0MzU0NjQsMTY2NDoyNjg0NDM2NDgsMTkyMDo4MjAwLDIxNzY6MjA5NzE2MCwyNDMyOjgxOTIsMjY4ODoyNjg0NDM2NTYsMjk0NDoyNzA1MzI2MTYsMzIwMDowLDM0NTY6MjcwNTQwODAwLDM3MTI6MjEwNTM0NCwzOTY4OjI2ODQzNTQ1Niw0MDk2OjI2ODQ0MzY0OCw0MzUyOjI3MDUzMjYxNiw0NjA4OjI3MDU0MDgwOCw0ODY0OjgyMDAsNTEyMDoyMDk3MTUyLDUzNzY6MjY4NDM1NDU2LDU2MzI6MjY4NDM1NDY0LDU4ODg6MjEwNTM0NCw2MTQ0OjIxMDUzNTIsNjQwMDowLDY2NTY6OCw2OTEyOjI3MDUzMjYwOCw3MTY4OjgxOTIsNzQyNDoyNjg0NDM2NTYsNzY4MDoyNzA1NDA4MDAsNzkzNjoyMDk3MTYwLDQyMjQ6OCw0NDgwOjIxMDUzNDQsNDczNjoyMDk3MTUyLDQ5OTI6MjY4NDM1NDY0LDUyNDg6MjY4NDQzNjQ4LDU1MDQ6ODIwMCw1NzYwOjI3MDU0MDgwOCw2MDE2OjI3MDUzMjYwOCw2MjcyOjI3MDU0MDgwMCw2NTI4OjI3MDUzMjYxNiw2Nzg0OjgxOTIsNzA0MDoyMTA1MzUyLDcyOTY6MjA5NzE2MCw3NTUyOjAsNzgwODoyNjg0MzU0NTYsODA2NDoyNjg0NDM2NTZ9LHswOjEwNDg1NzYsMTY6MzM1NTU0NTcsMzI6MTAyNCw0ODoxMDQ5NjAxLDY0OjM0NjA0MDMzLDgwOjAsOTY6MSwxMTI6MzQ2MDMwMDksMTI4OjMzNTU1NDU2LDE0NDoxMDQ4NTc3LDE2MDozMzU1NDQzMywxNzY6MzQ2MDQwMzIsMTkyOjM0NjAzMDA4LDIwODoxMDI1LDIyNDoxMDQ5NjAwLDI0MDozMzU1NDQzMiw4OjM0NjAzMDA5LDI0OjAsNDA6MzM1NTU0NTcsNTY6MzQ2MDQwMzIsNzI6MTA0ODU3Niw4ODozMzU1NDQzMywxMDQ6MzM1NTQ0MzIsMTIwOjEwMjUsMTM2OjEwNDk2MDEsMTUyOjMzNTU1NDU2LDE2ODozNDYwMzAwOCwxODQ6MTA0ODU3NywyMDA6MTAyNCwyMTY6MzQ2MDQwMzMsMjMyOjEsMjQ4OjEwNDk2MDAsMjU2OjMzNTU0NDMyLDI3MjoxMDQ4NTc2LDI4ODozMzU1NTQ1NywzMDQ6MzQ2MDMwMDksMzIwOjEwNDg1NzcsMzM2OjMzNTU1NDU2LDM1MjozNDYwNDAzMiwzNjg6MTA0OTYwMSwzODQ6MTAyNSw0MDA6MzQ2MDQwMzMsNDE2OjEwNDk2MDAsNDMyOjEsNDQ4OjAsNDY0OjM0NjAzMDA4LDQ4MDozMzU1NDQzMyw0OTY6MTAyNCwyNjQ6MTA0OTYwMCwyODA6MzM1NTU0NTcsMjk2OjM0NjAzMDA5LDMxMjoxLDMyODozMzU1NDQzMiwzNDQ6MTA0ODU3NiwzNjA6MTAyNSwzNzY6MzQ2MDQwMzIsMzkyOjMzNTU0NDMzLDQwODozNDYwMzAwOCw0MjQ6MCw0NDA6MzQ2MDQwMzMsNDU2OjEwNDk2MDEsNDcyOjEwMjQsNDg4OjMzNTU1NDU2LDUwNDoxMDQ4NTc3fSx7MDoxMzQyMTk4MDgsMToxMzEwNzIsMjoxMzQyMTc3MjgsMzozMiw0OjEzMTEwNCw1OjEzNDM1MDg4MCw2OjEzNDM1MDg0OCw3OjIwNDgsODoxMzQzNDg4MDAsOToxMzQyMTk3NzYsMTA6MTMzMTIwLDExOjEzNDM0ODgzMiwxMjoyMDgwLDEzOjAsMTQ6MTM0MjE3NzYwLDE1OjEzMzE1MiwyMTQ3NDgzNjQ4OjIwNDgsMjE0NzQ4MzY0OToxMzQzNTA4ODAsMjE0NzQ4MzY1MDoxMzQyMTk4MDgsMjE0NzQ4MzY1MToxMzQyMTc3MjgsMjE0NzQ4MzY1MjoxMzQzNDg4MDAsMjE0NzQ4MzY1MzoxMzMxMjAsMjE0NzQ4MzY1NDoxMzMxNTIsMjE0NzQ4MzY1NTozMiwyMTQ3NDgzNjU2OjEzNDIxNzc2MCwyMTQ3NDgzNjU3OjIwODAsMjE0NzQ4MzY1ODoxMzExMDQsMjE0NzQ4MzY1OToxMzQzNTA4NDgsMjE0NzQ4MzY2MDowLDIxNDc0ODM2NjE6MTM0MzQ4ODMyLDIxNDc0ODM2NjI6MTM0MjE5Nzc2LDIxNDc0ODM2NjM6MTMxMDcyLDE2OjEzMzE1MiwxNzoxMzQzNTA4NDgsMTg6MzIsMTk6MjA0OCwyMDoxMzQyMTk3NzYsMjE6MTM0MjE3NzYwLDIyOjEzNDM0ODgzMiwyMzoxMzEwNzIsMjQ6MCwyNToxMzExMDQsMjY6MTM0MzQ4ODAwLDI3OjEzNDIxOTgwOCwyODoxMzQzNTA4ODAsMjk6MTMzMTIwLDMwOjIwODAsMzE6MTM0MjE3NzI4LDIxNDc0ODM2NjQ6MTMxMDcyLDIxNDc0ODM2NjU6MjA0OCwyMTQ3NDgzNjY2OjEzNDM0ODgzMiwyMTQ3NDgzNjY3OjEzMzE1MiwyMTQ3NDgzNjY4OjMyLDIxNDc0ODM2Njk6MTM0MzQ4ODAwLDIxNDc0ODM2NzA6MTM0MjE3NzI4LDIxNDc0ODM2NzE6MTM0MjE5ODA4LDIxNDc0ODM2NzI6MTM0MzUwODgwLDIxNDc0ODM2NzM6MTM0MjE3NzYwLDIxNDc0ODM2NzQ6MTM0MjE5Nzc2LDIxNDc0ODM2NzU6MCwyMTQ3NDgzNjc2OjEzMzEyMCwyMTQ3NDgzNjc3OjIwODAsMjE0NzQ4MzY3ODoxMzExMDQsMjE0NzQ4MzY3OToxMzQzNTA4NDh9XSx1PVs0MTYwNzQ5NTY5LDUyODQ4MjMwNCwzMzAzMDE0NCwyMDY0Mzg0LDEyOTAyNCw4MDY0LDUwNCwyMTQ3NDgzNjc5XSxkPWEuREVTPXMuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkscj10LndvcmRzLGU9W10saT0wO2k8NTY7aSsrKXt2YXIgbj1jW2ldLTE7ZVtpXT1yW24+Pj41XT4+PjMxLW4lMzImMX1mb3IodmFyIG89dGhpcy5fc3ViS2V5cz1bXSxzPTA7czwxNjtzKyspe2Zvcih2YXIgYT1vW3NdPVtdLGY9bFtzXSxpPTA7aTwyNDtpKyspYVtpLzZ8MF18PWVbKGhbaV0tMStmKSUyOF08PDMxLWklNixhWzQrKGkvNnwwKV18PWVbMjgrKGhbaSsyNF0tMStmKSUyOF08PDMxLWklNjthWzBdPWFbMF08PDF8YVswXT4+PjMxO2Zvcih2YXIgaT0xO2k8NztpKyspYVtpXT1hW2ldPj4+NCooaS0xKSszO2FbN109YVs3XTw8NXxhWzddPj4+Mjd9Zm9yKHZhciB1PXRoaXMuX2ludlN1YktleXM9W10saT0wO2k8MTY7aSsrKXVbaV09b1sxNS1pXX0sZW5jcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9zdWJLZXlzKX0sZGVjcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9pbnZTdWJLZXlzKX0sX2RvQ3J5cHRCbG9jazpmdW5jdGlvbih0LGksbil7dGhpcy5fbEJsb2NrPXRbaV0sdGhpcy5fckJsb2NrPXRbaSsxXSxyLmNhbGwodGhpcyw0LDI1MjY0NTEzNSksci5jYWxsKHRoaXMsMTYsNjU1MzUpLGUuY2FsbCh0aGlzLDIsODU4OTkzNDU5KSxlLmNhbGwodGhpcyw4LDE2NzExOTM1KSxyLmNhbGwodGhpcywxLDE0MzE2NTU3NjUpO2Zvcih2YXIgbz0wO288MTY7bysrKXtmb3IodmFyIHM9bltvXSxhPXRoaXMuX2xCbG9jayxjPXRoaXMuX3JCbG9jayxoPTAsbD0wO2w8ODtsKyspaHw9ZltsXVsoKGNec1tsXSkmdVtsXSk+Pj4wXTt0aGlzLl9sQmxvY2s9Yyx0aGlzLl9yQmxvY2s9YV5ofXZhciBkPXRoaXMuX2xCbG9jazt0aGlzLl9sQmxvY2s9dGhpcy5fckJsb2NrLHRoaXMuX3JCbG9jaz1kLHIuY2FsbCh0aGlzLDEsMTQzMTY1NTc2NSksZS5jYWxsKHRoaXMsOCwxNjcxMTkzNSksZS5jYWxsKHRoaXMsMiw4NTg5OTM0NTkpLHIuY2FsbCh0aGlzLDE2LDY1NTM1KSxyLmNhbGwodGhpcyw0LDI1MjY0NTEzNSksdFtpXT10aGlzLl9sQmxvY2ssdFtpKzFdPXRoaXMuX3JCbG9ja30sa2V5U2l6ZToyLGl2U2l6ZToyLGJsb2NrU2l6ZToyfSk7aS5ERVM9cy5fY3JlYXRlSGVscGVyKGQpO3ZhciB2PWEuVHJpcGxlREVTPXMuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2tleSxyPXQud29yZHM7dGhpcy5fZGVzMT1kLmNyZWF0ZUVuY3J5cHRvcihvLmNyZWF0ZShyLnNsaWNlKDAsMikpKSx0aGlzLl9kZXMyPWQuY3JlYXRlRW5jcnlwdG9yKG8uY3JlYXRlKHIuc2xpY2UoMiw0KSkpLHRoaXMuX2RlczM9ZC5jcmVhdGVFbmNyeXB0b3Ioby5jcmVhdGUoci5zbGljZSg0LDYpKSl9LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2RlczEuZW5jcnlwdEJsb2NrKHQsciksdGhpcy5fZGVzMi5kZWNyeXB0QmxvY2sodCxyKSx0aGlzLl9kZXMzLmVuY3J5cHRCbG9jayh0LHIpfSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9kZXMzLmRlY3J5cHRCbG9jayh0LHIpLHRoaXMuX2RlczIuZW5jcnlwdEJsb2NrKHQsciksdGhpcy5fZGVzMS5kZWNyeXB0QmxvY2sodCxyKX0sa2V5U2l6ZTo2LGl2U2l6ZToyLGJsb2NrU2l6ZToyfSk7aS5UcmlwbGVERVM9cy5fY3JlYXRlSGVscGVyKHYpfSgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcigpe2Zvcih2YXIgdD10aGlzLl9TLHI9dGhpcy5faSxlPXRoaXMuX2osaT0wLG49MDtuPDQ7bisrKXtyPShyKzEpJTI1NixlPShlK3Rbcl0pJTI1Njt2YXIgbz10W3JdO3Rbcl09dFtlXSx0W2VdPW8saXw9dFsodFtyXSt0W2VdKSUyNTZdPDwyNC04Km59cmV0dXJuIHRoaXMuX2k9cix0aGlzLl9qPWUsaX12YXIgZT10LGk9ZS5saWIsbj1pLlN0cmVhbUNpcGhlcixvPWUuYWxnbyxzPW8uUkM0PW4uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkscj10LndvcmRzLGU9dC5zaWdCeXRlcyxpPXRoaXMuX1M9W10sbj0wO248MjU2O24rKylpW25dPW47Zm9yKHZhciBuPTAsbz0wO248MjU2O24rKyl7dmFyIHM9biVlLGE9cltzPj4+Ml0+Pj4yNC1zJTQqOCYyNTU7bz0obytpW25dK2EpJTI1Njt2YXIgYz1pW25dO2lbbl09aVtvXSxpW29dPWN9dGhpcy5faT10aGlzLl9qPTB9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3RbZV1ePXIuY2FsbCh0aGlzKX0sa2V5U2l6ZTo4LGl2U2l6ZTowfSk7ZS5SQzQ9bi5fY3JlYXRlSGVscGVyKHMpO3ZhciBhPW8uUkM0RHJvcD1zLmV4dGVuZCh7Y2ZnOnMuY2ZnLmV4dGVuZCh7ZHJvcDoxOTJ9KSxfZG9SZXNldDpmdW5jdGlvbigpe3MuX2RvUmVzZXQuY2FsbCh0aGlzKTtmb3IodmFyIHQ9dGhpcy5jZmcuZHJvcDt0PjA7dC0tKXIuY2FsbCh0aGlzKX19KTtlLlJDNERyb3A9bi5fY3JlYXRlSGVscGVyKGEpfSgpLHQubW9kZS5DVFJHbGFkbWFuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0KXtpZigyNTU9PT0odD4+MjQmMjU1KSl7dmFyIHI9dD4+MTYmMjU1LGU9dD4+OCYyNTUsaT0yNTUmdDsyNTU9PT1yPyhyPTAsMjU1PT09ZT8oZT0wLDI1NT09PWk/aT0wOisraSk6KytlKTorK3IsdD0wLHQrPXI8PDE2LHQrPWU8PDgsdCs9aX1lbHNlIHQrPTE8PDI0O3JldHVybiB0fWZ1bmN0aW9uIGUodCl7cmV0dXJuIDA9PT0odFswXT1yKHRbMF0pKSYmKHRbMV09cih0WzFdKSksdH12YXIgaT10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksbj1pLkVuY3J5cHRvcj1pLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGk9dGhpcy5fY2lwaGVyLG49aS5ibG9ja1NpemUsbz10aGlzLl9pdixzPXRoaXMuX2NvdW50ZXI7byYmKHM9dGhpcy5fY291bnRlcj1vLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCksZShzKTt2YXIgYT1zLnNsaWNlKDApO2kuZW5jcnlwdEJsb2NrKGEsMCk7Zm9yKHZhciBjPTA7YzxuO2MrKyl0W3IrY11ePWFbY119fSk7cmV0dXJuIGkuRGVjcnlwdG9yPW4saX0oKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIoKXtmb3IodmFyIHQ9dGhpcy5fWCxyPXRoaXMuX0MsZT0wO2U8ODtlKyspYVtlXT1yW2VdO3JbMF09clswXSsxMjk1MzA3NTk3K3RoaXMuX2J8MCxyWzFdPXJbMV0rMzU0NTA1MjM3MSsoclswXT4+PjA8YVswXT4+PjA/MTowKXwwLHJbMl09clsyXSs4ODYyNjMwOTIrKHJbMV0+Pj4wPGFbMV0+Pj4wPzE6MCl8MCxyWzNdPXJbM10rMTI5NTMwNzU5NysoclsyXT4+PjA8YVsyXT4+PjA/MTowKXwwLHJbNF09cls0XSszNTQ1MDUyMzcxKyhyWzNdPj4+MDxhWzNdPj4+MD8xOjApfDAscls1XT1yWzVdKzg4NjI2MzA5Misocls0XT4+PjA8YVs0XT4+PjA/MTowKXwwLHJbNl09cls2XSsxMjk1MzA3NTk3KyhyWzVdPj4+MDxhWzVdPj4+MD8xOjApfDAscls3XT1yWzddKzM1NDUwNTIzNzErKHJbNl0+Pj4wPGFbNl0+Pj4wPzE6MCl8MCx0aGlzLl9iPXJbN10+Pj4wPGFbN10+Pj4wPzE6MDtmb3IodmFyIGU9MDtlPDg7ZSsrKXt2YXIgaT10W2VdK3JbZV0sbj02NTUzNSZpLG89aT4+PjE2LHM9KChuKm4+Pj4xNykrbipvPj4+MTUpK28qbyxoPSgoNDI5NDkwMTc2MCZpKSppfDApKygoNjU1MzUmaSkqaXwwKTtjW2VdPXNeaH10WzBdPWNbMF0rKGNbN108PDE2fGNbN10+Pj4xNikrKGNbNl08PDE2fGNbNl0+Pj4xNil8MCx0WzFdPWNbMV0rKGNbMF08PDh8Y1swXT4+PjI0KStjWzddfDAsdFsyXT1jWzJdKyhjWzFdPDwxNnxjWzFdPj4+MTYpKyhjWzBdPDwxNnxjWzBdPj4+MTYpfDAsdFszXT1jWzNdKyhjWzJdPDw4fGNbMl0+Pj4yNCkrY1sxXXwwLHRbNF09Y1s0XSsoY1szXTw8MTZ8Y1szXT4+PjE2KSsoY1syXTw8MTZ8Y1syXT4+PjE2KXwwLHRbNV09Y1s1XSsoY1s0XTw8OHxjWzRdPj4+MjQpK2NbM118MCx0WzZdPWNbNl0rKGNbNV08PDE2fGNbNV0+Pj4xNikrKGNbNF08PDE2fGNbNF0+Pj4xNil8MCx0WzddPWNbN10rKGNbNl08PDh8Y1s2XT4+PjI0KStjWzVdfDB9dmFyIGU9dCxpPWUubGliLG49aS5TdHJlYW1DaXBoZXIsbz1lLmFsZ28scz1bXSxhPVtdLGM9W10saD1vLlJhYmJpdD1uLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9dGhpcy5jZmcuaXYsaT0wO2k8NDtpKyspdFtpXT0xNjcxMTkzNSYodFtpXTw8OHx0W2ldPj4+MjQpfDQyNzgyNTUzNjAmKHRbaV08PDI0fHRbaV0+Pj44KTt2YXIgbj10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbz10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dO3RoaXMuX2I9MDtmb3IodmFyIGk9MDtpPDQ7aSsrKXIuY2FsbCh0aGlzKTtmb3IodmFyIGk9MDtpPDg7aSsrKW9baV1ePW5baSs0JjddO2lmKGUpe3ZhciBzPWUud29yZHMsYT1zWzBdLGM9c1sxXSxoPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpLGw9MTY3MTE5MzUmKGM8PDh8Yz4+PjI0KXw0Mjc4MjU1MzYwJihjPDwyNHxjPj4+OCksZj1oPj4+MTZ8NDI5NDkwMTc2MCZsLHU9bDw8MTZ8NjU1MzUmaDtvWzBdXj1oLG9bMV1ePWYsb1syXV49bCxvWzNdXj11LG9bNF1ePWgsb1s1XV49ZixvWzZdXj1sLG9bN11ePXU7Zm9yKHZhciBpPTA7aTw0O2krKylyLmNhbGwodGhpcyl9fSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl9YO3IuY2FsbCh0aGlzKSxzWzBdPWlbMF1eaVs1XT4+PjE2XmlbM108PDE2LHNbMV09aVsyXV5pWzddPj4+MTZeaVs1XTw8MTYsc1syXT1pWzRdXmlbMV0+Pj4xNl5pWzddPDwxNixzWzNdPWlbNl1eaVszXT4+PjE2XmlbMV08PDE2O2Zvcih2YXIgbj0wO248NDtuKyspc1tuXT0xNjcxMTkzNSYoc1tuXTw8OHxzW25dPj4+MjQpfDQyNzgyNTUzNjAmKHNbbl08PDI0fHNbbl0+Pj44KSx0W2Urbl1ePXNbbl19LGJsb2NrU2l6ZTo0LGl2U2l6ZToyfSk7ZS5SYWJiaXQ9bi5fY3JlYXRlSGVscGVyKGgpfSgpLHQubW9kZS5DVFI9ZnVuY3Rpb24oKXt2YXIgcj10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksZT1yLkVuY3J5cHRvcj1yLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fY2lwaGVyLGk9ZS5ibG9ja1NpemUsbj10aGlzLl9pdixvPXRoaXMuX2NvdW50ZXI7biYmKG89dGhpcy5fY291bnRlcj1uLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCk7dmFyIHM9by5zbGljZSgwKTtlLmVuY3J5cHRCbG9jayhzLDApLG9baS0xXT1vW2ktMV0rMXwwO2Zvcih2YXIgYT0wO2E8aTthKyspdFtyK2FdXj1zW2FdfX0pO3JldHVybiByLkRlY3J5cHRvcj1lLHJ9KCksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7Zm9yKHZhciB0PXRoaXMuX1gscj10aGlzLl9DLGU9MDtlPDg7ZSsrKWFbZV09cltlXTtyWzBdPXJbMF0rMTI5NTMwNzU5Nyt0aGlzLl9ifDAsclsxXT1yWzFdKzM1NDUwNTIzNzErKHJbMF0+Pj4wPGFbMF0+Pj4wPzE6MCl8MCxyWzJdPXJbMl0rODg2MjYzMDkyKyhyWzFdPj4+MDxhWzFdPj4+MD8xOjApfDAsclszXT1yWzNdKzEyOTUzMDc1OTcrKHJbMl0+Pj4wPGFbMl0+Pj4wPzE6MCl8MCxyWzRdPXJbNF0rMzU0NTA1MjM3MSsoclszXT4+PjA8YVszXT4+PjA/MTowKXwwLHJbNV09cls1XSs4ODYyNjMwOTIrKHJbNF0+Pj4wPGFbNF0+Pj4wPzE6MCl8MCxyWzZdPXJbNl0rMTI5NTMwNzU5Nysocls1XT4+PjA8YVs1XT4+PjA/MTowKXwwLHJbN109cls3XSszNTQ1MDUyMzcxKyhyWzZdPj4+MDxhWzZdPj4+MD8xOjApfDAsdGhpcy5fYj1yWzddPj4+MDxhWzddPj4+MD8xOjA7Zm9yKHZhciBlPTA7ZTw4O2UrKyl7dmFyIGk9dFtlXStyW2VdLG49NjU1MzUmaSxvPWk+Pj4xNixzPSgobipuPj4+MTcpK24qbz4+PjE1KStvKm8saD0oKDQyOTQ5MDE3NjAmaSkqaXwwKSsoKDY1NTM1JmkpKml8MCk7Y1tlXT1zXmh9dFswXT1jWzBdKyhjWzddPDwxNnxjWzddPj4+MTYpKyhjWzZdPDwxNnxjWzZdPj4+MTYpfDAsdFsxXT1jWzFdKyhjWzBdPDw4fGNbMF0+Pj4yNCkrY1s3XXwwLHRbMl09Y1syXSsoY1sxXTw8MTZ8Y1sxXT4+PjE2KSsoY1swXTw8MTZ8Y1swXT4+PjE2KXwwLHRbM109Y1szXSsoY1syXTw8OHxjWzJdPj4+MjQpK2NbMV18MCx0WzRdPWNbNF0rKGNbM108PDE2fGNbM10+Pj4xNikrKGNbMl08PDE2fGNbMl0+Pj4xNil8MCx0WzVdPWNbNV0rKGNbNF08PDh8Y1s0XT4+PjI0KStjWzNdfDAsdFs2XT1jWzZdKyhjWzVdPDwxNnxjWzVdPj4+MTYpKyhjWzRdPDwxNnxjWzRdPj4+MTYpfDAsdFs3XT1jWzddKyhjWzZdPDw4fGNbNl0+Pj4yNCkrY1s1XXwwfXZhciBlPXQsaT1lLmxpYixuPWkuU3RyZWFtQ2lwaGVyLG89ZS5hbGdvLHM9W10sYT1bXSxjPVtdLGg9by5SYWJiaXRMZWdhY3k9bi5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9dGhpcy5jZmcuaXYsaT10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbj10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dO3RoaXMuX2I9MDtmb3IodmFyIG89MDtvPDQ7bysrKXIuY2FsbCh0aGlzKTtmb3IodmFyIG89MDtvPDg7bysrKW5bb11ePWlbbys0JjddO2lmKGUpe3ZhciBzPWUud29yZHMsYT1zWzBdLGM9c1sxXSxoPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpLGw9MTY3MTE5MzUmKGM8PDh8Yz4+PjI0KXw0Mjc4MjU1MzYwJihjPDwyNHxjPj4+OCksZj1oPj4+MTZ8NDI5NDkwMTc2MCZsLHU9bDw8MTZ8NjU1MzUmaDtuWzBdXj1oLG5bMV1ePWYsblsyXV49bCxuWzNdXj11LG5bNF1ePWgsbls1XV49ZixuWzZdXj1sLG5bN11ePXU7Zm9yKHZhciBvPTA7bzw0O28rKylyLmNhbGwodGhpcyl9fSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl9YO3IuY2FsbCh0aGlzKSxzWzBdPWlbMF1eaVs1XT4+PjE2XmlbM108PDE2LHNbMV09aVsyXV5pWzddPj4+MTZeaVs1XTw8MTYsc1syXT1pWzRdXmlbMV0+Pj4xNl5pWzddPDwxNixzWzNdPWlbNl1eaVszXT4+PjE2XmlbMV08PDE2O2Zvcih2YXIgbj0wO248NDtuKyspc1tuXT0xNjcxMTkzNSYoc1tuXTw8OHxzW25dPj4+MjQpfDQyNzgyNTUzNjAmKHNbbl08PDI0fHNbbl0+Pj44KSx0W2Urbl1ePXNbbl19LGJsb2NrU2l6ZTo0LGl2U2l6ZToyfSk7ZS5SYWJiaXRMZWdhY3k9bi5fY3JlYXRlSGVscGVyKGgpfSgpLHQucGFkLlplcm9QYWRkaW5nPXtwYWQ6ZnVuY3Rpb24odCxyKXt2YXIgZT00KnI7dC5jbGFtcCgpLHQuc2lnQnl0ZXMrPWUtKHQuc2lnQnl0ZXMlZXx8ZSl9LHVucGFkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10LndvcmRzLGU9dC5zaWdCeXRlcy0xOyEocltlPj4+Ml0+Pj4yNC1lJTQqOCYyNTUpOyllLS07dC5zaWdCeXRlcz1lKzF9fSx0fSk7XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNyeXB0by1qcy5taW4uanMubWFwIl19 \ 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 3bed8bf..a512e5a 100644 --- a/temp/quick-scripts/dst/assets/Script/module/Music/AudioManager.js +++ b/temp/quick-scripts/dst/assets/Script/module/Music/AudioManager.js @@ -290,4 +290,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE11c2ljXFxBdWRpb01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFFMUM7SUFBMEMsZ0NBQVk7SUFBdEQ7UUFBQSxxRUF3UEM7UUF0UEcsTUFBTTtRQUVOLG1CQUFhLEdBQWlCLElBQUksQ0FBQztRQUduQyxhQUFPLEdBQWlCLElBQUksQ0FBQztRQUU3QixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQztRQUUxQixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixXQUFLLEdBQWlCLElBQUksQ0FBQztRQUUzQixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQztRQUUxQixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixrQkFBWSxHQUFpQixJQUFJLENBQUM7UUFFbEMsWUFBTSxHQUFpQixJQUFJLENBQUM7UUFFNUIsWUFBTSxHQUFpQixJQUFJLENBQUM7O0lBNk5oQyxDQUFDO3FCQXhQb0IsWUFBWTtJQXdDN0IsNkJBQU0sR0FBTjtRQUNJLElBQUksY0FBWSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDaEMsY0FBWSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDOUIsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekM7YUFDSTtZQUNELE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLElBQUks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Qzt1REFDWTtJQUduQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO2lEQUNNO0lBRTdCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7NkNBQ0U7SUFFekI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs4Q0FDRztJQUUxQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO21EQUNRO0lBRS9CO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7K0NBQ0k7SUFFM0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs2Q0FDRTtJQUV6QjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDOzhDQUNHO0lBRTFCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7bURBQ1E7SUFFL0I7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQztzREFDVztJQUVsQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO2dEQUNLO0lBRTVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0RBQ0s7SUEzQlgsWUFBWTtRQURoQyxPQUFPO09BQ2EsWUFBWSxDQXdQaEM7SUFBRCxtQkFBQztDQXhQRCxBQXdQQyxDQXhQeUMsRUFBRSxDQUFDLFNBQVMsR0F3UHJEO2tCQXhQb0IsWUFBWTtBQXdQaEMsQ0FBQztBQUVGLDJCQUEyQiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcbkBjY2NsYXNzXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBdWRpb01hbmFnZXIgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xuICAgIHN0YXRpYyBfaW5zdGFuY2U6IGFueTtcbiAgICAvL+iDjOaZr+mfs+S5kFxuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgYXVkaW9HYW1lQmdtMDogY2MuQXVkaW9DbGlwID0gbnVsbDtcblxuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgeGlhb2NodTogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGhpdDogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGRvd246IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBmYW5neGlhbmc6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBidWlsZDogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIHdpbjogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGxvc2U6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBhbm5pdV9CaWc6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBhbm5pdV9saXR0bGU6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICB6aHVhbjE6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICB6aHVhbjI6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG5cbiAgICBtQXVkaW9NYXA6IHt9O1xuICAgIGJnTXVzaWNWb2x1bWU6IG51bWJlcjtcbiAgICBlZmZlY3RNdXNpY1ZvbHVtZTogbnVtYmVyO1xuICAgIG1NdXNpY1N3aXRjaDogbnVtYmVyO1xuICAgIG1FZmZlY3RTd2l0Y2g6IG51bWJlcjtcbiAgICBicmlja1NvdW5kOiBhbnk7XG4gICAgcmV3YXJkOiBib29sZWFuO1xuICAgIGZpbmlzaDogYm9vbGVhbjtcbiAgICByZXdhcmRDb3VudDogbnVtYmVyO1xuICAgIG1NdXNpY0tleTogYW55O1xuXG4gICAgb25Mb2FkKCkge1xuICAgICAgICBpZiAoQXVkaW9NYW5hZ2VyLl9pbnN0YW5jZSA9PSBudWxsKSB7XG4gICAgICAgICAgICBBdWRpb01hbmFnZXIuX2luc3RhbmNlID0gdGhpcztcbiAgICAgICAgICAgIGNjLmdhbWUuYWRkUGVyc2lzdFJvb3ROb2RlKHRoaXMubm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXdhcmQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5maW5pc2ggPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZXdhcmRDb3VudCA9IDA7XG4gICAgICAgIHRoaXMuY3RvcigpO1xuXG4gICAgICAgIHRoaXMucHJlbG9hZCgpO1xuICAgIH1cblxuICAgIGN0b3IgKCkge1xuICAgICAgICB0aGlzLm1BdWRpb01hcCA9IHt9O1xuICAgICAgICAvKipcbiAgICAgICAgICog6buY6K6k6Z+z6YeP5aSn5bCPXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmJnTXVzaWNWb2x1bWUgPSAwLjE7XG4gICAgICAgIHRoaXMuZWZmZWN0TXVzaWNWb2x1bWUgPSAxO1xuXG4gICAgICAgIHRoaXMubU11c2ljU3dpdGNoID0gMTtcbiAgICAgICAgdGhpcy5tRWZmZWN0U3dpdGNoID0gMTtcbiAgICB9XG4gICAgcGxheSAoYXVkaW9Tb3VyY2UsIGxvb3AsIGNhbGxiYWNrLCBpc0JnTXVzaWMpIHtcbiAgICAgICAgLy8gaWYgKGlzQmdNdXNpYyAmJiAhdGhpcy5tTXVzaWNTd2l0Y2gpIHJldHVybjtcbiAgICAgICAgLy8gaWYgKCFpc0JnTXVzaWMgJiYgIXRoaXMubUVmZmVjdFN3aXRjaCkgcmV0dXJuO1xuICAgICAgICB2YXIgdm9sdW1lID0gaXNCZ011c2ljID8gdGhpcy5iZ011c2ljVm9sdW1lIDogdGhpcy5lZmZlY3RNdXNpY1ZvbHVtZTtcblxuICAgICAgICAvLyBpZiAoY2Muc3lzLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgLy8gaWYoYXVkaW9Tb3VyY2UgPT0gdGhpcy5icmlja1NvdW5kKXtcbiAgICAgICAgICAgIC8vICAgICB2b2x1bWUgPSAwLjE7XG4gICAgICAgICAgICAvLyB9IFxuICAgICAgICAgICAgdm9sdW1lID0gMTtcbiAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldEVmZmVjdHNWb2x1bWUoMSk7XG4gICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRNdXNpY1ZvbHVtZSgxKTtcbiAgICAgICAgICAgIGlmKGF1ZGlvU291cmNlLm5hbWUgPT0gXCJsb3NlXCIpe1xuICAgICAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldEVmZmVjdHNWb2x1bWUoMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RWZmZWN0c1ZvbHVtZSgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBjb250ZXh0ID0gY2MuYXVkaW9FbmdpbmUucGxheUVmZmVjdChhdWRpb1NvdXJjZSwgbG9vcCk7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2spe1xuICAgICAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldEZpbmlzaENhbGxiYWNrKGNvbnRleHQsIGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLmNhbGwodGhpcyk7XG4gICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGNjLnd3eC5PdXRQdXQubG9nKCdwbGF5IGF1ZGlvIGVmZmVjdCBpc0Jyb3dzZXI6ICcgKyBjb250ZXh0LnNyYyk7XG5cbiAgICAgICAgICAgIHRoaXMubUF1ZGlvTWFwW2F1ZGlvU291cmNlXSA9IGNvbnRleHQ7XG4gICAgICAgICAgICByZXR1cm4gYXVkaW9Tb3VyY2U7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gYXVkaW9Tb3VyY2U7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBzYXZlICgpIHtcbiAgICAgICAgLy8gY2Mud3d4LlN0b3JhZ2Uuc2V0SXRlbShjYy53d3guU3RvcmFnZS5LZXlfU2V0dGluZ19NdXNpY19Wb2x1bWUsIHRoaXMubU11c2ljU3dpdGNoKTtcbiAgICAgICAgLy8gY2Mud3d4LlN0b3JhZ2Uuc2V0SXRlbShjYy53d3guU3RvcmFnZS5LZXlfU2V0dGluZ19FZmZlY3RfVm9sdW1lLCB0aGlzLm1FZmZlY3RTd2l0Y2gpO1xuICAgIH1cblxuICAgIC8vIHN0YXRpYyBnZXQgSW5zdGFuY2UoKVxuICAgIC8vIHtcbiAgICAvLyAgICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpXG4gICAgLy8gICAgIHtcbiAgICAvLyAgICAgICAgIHRoaXMuX2luc3RhbmNlID0gbmV3IEF1ZGlvTWFuYWdlcigpO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcbiAgICAvLyB9XG5cbiAgICBwcmVsb2FkICgpIHtcbiAgICAgICAgaWYgKCEoY2Muc3lzLnBsYXRmb3JtID09PSBjYy5zeXMuV0VDSEFUX0dBTUUpKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHZhciBtdXNpY3MgPSBbXG4gICAgICAgICAgICB0aGlzLmF1ZGlvR2FtZUJnbTAsXG4gICAgICAgIF07XG4gICAgICAgIG11c2ljcy5mb3JFYWNoKGZ1bmN0aW9uKHBhdGgpIHtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBnZXRBdWRpb011c2ljU3dpdGNoKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLm1NdXNpY1N3aXRjaDtcblxuICAgIH1cbiAgICBnZXRBdWRpb0VmZmVjdFN3aXRjaCgpXG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy5tRWZmZWN0U3dpdGNoO1xuICAgIH1cbiAgICB0cnVuQXVkaW9Tb3VuZChvbilcbiAgICB7XG4gICAgICAgIHRoaXMuc3dpdGNoTXVzaWMob24pO1xuICAgICAgICB0aGlzLnN3aXRjaEVmZmVjdChvbilcbiAgICB9XG4gICAgc3dpdGNoTXVzaWMgKG9uKSB7XG4gICAgICAgIGlmICh0aGlzLm1NdXNpY1N3aXRjaCAhPSAob24/MTowKSlcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5tTXVzaWNTd2l0Y2ggPSAxLXRoaXMubU11c2ljU3dpdGNoO1xuICAgICAgICAgICAgLy8gdGhpcy5zYXZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYob24pXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRoaXMucGxheU11c2ljR2FtZSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5zdG9wTXVzaWMoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzd2l0Y2hFZmZlY3QgKG9uKSB7XG4gICAgICAgIGlmICh0aGlzLm1FZmZlY3RTd2l0Y2ggIT0gKG9uPzE6MCkpe1xuICAgICAgICAgICAgdGhpcy5tRWZmZWN0U3dpdGNoID0gMS10aGlzLm1FZmZlY3RTd2l0Y2g7XG4gICAgICAgICAgICAvLyB0aGlzLnNhdmUoKTtcblxuICAgICAgICB9XG4gICAgfVxuICAgIG9uSGlkZSAoKSB7XG4gICAgICAgIGNjLmF1ZGlvRW5naW5lLnBhdXNlQWxsKCk7XG4gICAgfVxuXG4gICAgb25TaG93ICgpIHtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucmVzdW1lQWxsKCk7XG4gICAgfVxuXG4gICAgLy/mkq3mlL7pn7PmlYhcbiAgICBwbGF5RWZmZWN0KG5hbWUsY2FsbGJhY2spe1xuICAgICAgICBpZighY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmVmZmVjdE9wZW4pe1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmKHRoaXNbbmFtZV0pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wbGF5KHRoaXNbbmFtZV0sIGZhbHNlLGNhbGxiYWNrLHRoaXMubUVmZmVjdFN3aXRjaCk7XG4gICAgfVxuICAgIHBsYXlNdXNpYyAoa2V5LCBjYWxsYmFjaywgbG9vcCkge1xuICAgICAgICBpZighY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm11c2ljT3Blbil7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbG9vcCA9IHR5cGVvZiBsb29wID09ICd1bmRlZmluZWQnICB8fCBsb29wID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgICAgICB0aGlzLm1NdXNpY0tleSA9IHRoaXMucGxheShrZXksIGxvb3AsIGNhbGxiYWNrLCB0cnVlKTtcblxuICAgIH1cbiAgICAvKipcbiAgICAgKiDmuLjmiI/og4zmma/pn7PkuZBcbiAgICAgKi9cbiAgICBwbGF5TXVzaWNHYW1lICgpIHtcbiAgICAgICAgdGhpcy5zdG9wTXVzaWMoKTtcbiAgICAgICAgdGhpcy5wbGF5TXVzaWModGhpcy5hdWRpb0dhbWVCZ20wLHt9LHRydWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiDlgZzmraLog4zmma/pn7PkuZDmkq3mlL5cbiAgICAgKi9cbiAgICBzdG9wTXVzaWMgKCkge1xuICAgICAgICAvLyBjYy53d3guT3V0UHV0LmxvZygnc3RvcE11c2ljIGF1ZGlvIGVmZmVjdCB3eDogJyArIHRoaXMubU11c2ljS2V5KTtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUuc3RvcEFsbCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaBouWkjeiiq+aaguWBnOeahOiDjOaZr+mfs+S5kOaSreaUvlxuICAgICAqL1xuICAgIHJlc3VtZU11c2ljICgpIHtcbiAgICAgICAgLy8g6LCD55SoIGNjLmF1ZGlvRW5naW5lIOeahCByZXN1bWVNdXNpYyDmlrnms5XmgaLlpI3pn7PkuZDmkq3mlL5cbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucmVzdW1lTXVzaWMoKTtcbiAgICB9XG5cbiAgICAvKlxuICAgICog5ri45oiP5byA5aeL6Z+z5pWIXG4gICAgKlxuICAgICovXG4gICAgcGxheUdhbWVTdGFydCgpXG4gICAge1xuICAgIFxuICAgIH1cbiAgICAvKlxuICAgICog5aSx6LSl55qE5ri45oiP57uT5p2fXG4gICAgKi9cbiAgICBwbGF5R2FtZU92ZXIoKVxuICAgIHtcblxuICAgIH1cbiAgICAvKlxuICAgICAgICAqIOaIkOWKn+eahOa4uOaIj+e7k+adn1xuICAgICAgICAqL1xuICAgIHBsYXlHYW1lUmVzdWx0RmFpbGVkKClcbiAgICB7XG5cbiAgICB9XG4gICAgLypcbiAgICAqIOaIkOWKn+eahOa4uOaIj+e7k+adn1xuICAgICovXG4gICAgcGxheUdhbWVSZXN1bHRTdWNjZXNzKClcbiAgICB7XG5cbiAgICB9XG4gICAgLyoqXG4gICAgICog5oql6K2m55qE6Z+z5pWIXG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiDmjInpkq5cbiAgICAgKi9cbiAgICBwbGF5QXVkaW9CdXR0b24gKCkge1xuICAgICAgICAvLyByZXR1cm4gdGhpcy5wbGF5KHRoaXMuYXVkaW9CdXR0b25DbGljaywgZmFsc2UsbnVsbCx0aGlzLm1FZmZlY3RTd2l0Y2gpO1xuICAgIH1cbn07XG5cbi8vIGV4cG9ydCB7IEF1ZGlvTWFuYWdlciB9O1xuIl19 \ No newline at end of file +//# 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 \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/module/Notification/Notification.js b/temp/quick-scripts/dst/assets/Script/module/Notification/Notification.js index be69590..99ea61d 100644 --- a/temp/quick-scripts/dst/assets/Script/module/Notification/Notification.js +++ b/temp/quick-scripts/dst/assets/Script/module/Notification/Notification.js @@ -71,4 +71,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE5vdGlmaWNhdGlvblxcTm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE1BQU07QUFDTixJQUFJLGFBQWEsR0FBRztJQUNoQixTQUFTLEVBQUUsRUFBRTtJQUNiLEVBQUUsRUFBRSxVQUFVLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTTtRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxJQUFJLEVBQUUsVUFBVSxNQUFNLEVBQUUsU0FBUztRQUM3QixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBRWhDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLE9BQU87Z0JBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNqRTtJQUNMLENBQUM7SUFFRCxHQUFHLEVBQUUsVUFBVSxNQUFNLEVBQUUsUUFBUTtRQUMzQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTtnQkFDMUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztnQkFDckIsTUFBTTthQUNUO1NBQ0o7SUFDTCxDQUFDO0lBRUQsU0FBUyxFQUFFLFVBQVUsTUFBTTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsWUFBWSxFQUFFO1FBQ1YsS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzFCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyQjtTQUNKO0lBQ0wsQ0FBQztDQUNKLENBQUM7QUFDTyxzQ0FBYSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8v5YWo5bGA6YCa55+lXG52YXIgTm90aWZpY2F0aW9ucyA9IHtcbiAgICBfZXZlbnRNYXA6IFtdLFxuICAgIG9uOiBmdW5jdGlvbiAobWFzZ0lkLCBjYWxsYmFjaywgdGFyZ2V0KSB7XG4gICAgICAgIGlmICh0aGlzLl9ldmVudE1hcFttYXNnSWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50TWFwW21hc2dJZF0gPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdLnB1c2goeyBjYWxsYmFjazogY2FsbGJhY2ssIHRhcmdldDogdGFyZ2V0IH0pO1xuICAgIH0sXG5cbiAgICBlbWl0OiBmdW5jdGlvbiAobWFzZ0lkLCBwYXJhbWV0ZXIpIHtcbiAgICAgICAgbGV0IGFycmF5ID0gdGhpcy5fZXZlbnRNYXBbbWFzZ0lkXTtcbiAgICAgICAgaWYgKGFycmF5ID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZWxlbWVudCA9IGFycmF5W2ldO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQpIGVsZW1lbnQuY2FsbGJhY2suY2FsbChlbGVtZW50LnRhcmdldCwgcGFyYW1ldGVyKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBvZmY6IGZ1bmN0aW9uIChtYXNnSWQsIGNhbGxiYWNrKSB7XG4gICAgICAgIGxldCBhcnJheSA9IHRoaXMuX2V2ZW50TWFwW21hc2dJZF07XG4gICAgICAgIGlmIChhcnJheSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBlbGVtZW50ID0gYXJyYXlbaV07XG4gICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmNhbGxiYWNrID09PSBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGFycmF5W2ldID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcblxuICAgIG9mZk1hc2dJZDogZnVuY3Rpb24gKG1hc2dJZCkge1xuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdID0gdW5kZWZpbmVkO1xuICAgIH0sXG5cbiAgICByZW1vdmVBbGxNc2c6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yIChsZXQgayBpbiB0aGlzLl9ldmVudE1hcCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2V2ZW50TWFwW2tdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vZmZNYXNnSWQoayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuZXhwb3J0IHsgTm90aWZpY2F0aW9ucyB9OyJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE5vdGlmaWNhdGlvblxcTm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE1BQU07QUFDTixJQUFJLGFBQWEsR0FBRztJQUNoQixTQUFTLEVBQUUsRUFBRTtJQUNiLEVBQUUsRUFBRSxVQUFVLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTTtRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxJQUFJLEVBQUUsVUFBVSxNQUFNLEVBQUUsU0FBUztRQUM3QixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBRWhDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLE9BQU87Z0JBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNqRTtJQUNMLENBQUM7SUFFRCxHQUFHLEVBQUUsVUFBVSxNQUFNLEVBQUUsUUFBUTtRQUMzQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTtnQkFDMUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztnQkFDckIsTUFBTTthQUNUO1NBQ0o7SUFDTCxDQUFDO0lBRUQsU0FBUyxFQUFFLFVBQVUsTUFBTTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsWUFBWSxFQUFFO1FBQ1YsS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzFCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyQjtTQUNKO0lBQ0wsQ0FBQztDQUNKLENBQUM7QUFDTyxzQ0FBYSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8v5YWo5bGA6YCa55+lXHJcbnZhciBOb3RpZmljYXRpb25zID0ge1xyXG4gICAgX2V2ZW50TWFwOiBbXSxcclxuICAgIG9uOiBmdW5jdGlvbiAobWFzZ0lkLCBjYWxsYmFjaywgdGFyZ2V0KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2V2ZW50TWFwW21hc2dJZF0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2V2ZW50TWFwW21hc2dJZF0ucHVzaCh7IGNhbGxiYWNrOiBjYWxsYmFjaywgdGFyZ2V0OiB0YXJnZXQgfSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGVtaXQ6IGZ1bmN0aW9uIChtYXNnSWQsIHBhcmFtZXRlcikge1xyXG4gICAgICAgIGxldCBhcnJheSA9IHRoaXMuX2V2ZW50TWFwW21hc2dJZF07XHJcbiAgICAgICAgaWYgKGFycmF5ID09PSB1bmRlZmluZWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgZWxlbWVudCA9IGFycmF5W2ldO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudCkgZWxlbWVudC5jYWxsYmFjay5jYWxsKGVsZW1lbnQudGFyZ2V0LCBwYXJhbWV0ZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgb2ZmOiBmdW5jdGlvbiAobWFzZ0lkLCBjYWxsYmFjaykge1xyXG4gICAgICAgIGxldCBhcnJheSA9IHRoaXMuX2V2ZW50TWFwW21hc2dJZF07XHJcbiAgICAgICAgaWYgKGFycmF5ID09PSB1bmRlZmluZWQpIHJldHVybjtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBlbGVtZW50ID0gYXJyYXlbaV07XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuY2FsbGJhY2sgPT09IGNhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgICAgICBhcnJheVtpXSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICBvZmZNYXNnSWQ6IGZ1bmN0aW9uIChtYXNnSWQpIHtcclxuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdID0gdW5kZWZpbmVkO1xyXG4gICAgfSxcclxuXHJcbiAgICByZW1vdmVBbGxNc2c6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmb3IgKGxldCBrIGluIHRoaXMuX2V2ZW50TWFwKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9ldmVudE1hcFtrXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vZmZNYXNnSWQoayk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn07XHJcbmV4cG9ydCB7IE5vdGlmaWNhdGlvbnMgfTsiXX0= \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/module/Storage/Storage.js b/temp/quick-scripts/dst/assets/Script/module/Storage/Storage.js index 5ab6fb9..776cc94 100644 --- a/temp/quick-scripts/dst/assets/Script/module/Storage/Storage.js +++ b/temp/quick-scripts/dst/assets/Script/module/Storage/Storage.js @@ -53,4 +53,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFN0b3JhZ2VcXFN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUztBQUNULElBQUksY0FBYyxHQUFHO0lBQ2pCLFVBQVUsRUFBRyxVQUFTLEdBQUc7UUFDckIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDO1lBQ2xDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMvQztRQUVELElBQUcsTUFBTSxFQUFDO1lBQ1IsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0QsVUFBVSxFQUFHLFVBQVMsR0FBRyxFQUFDLEtBQUs7UUFDM0IsVUFBVTtRQUNWLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBQ0QsYUFBYSxFQUFHLFVBQVMsR0FBRztRQUMxQixVQUFVO1FBQ1YsSUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDbEMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3BDO0lBQ0gsQ0FBQztDQUNKLENBQUM7QUFFTyx3Q0FBYyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8v57yT5a2Y5rWP6KeI5Zmo5pWw5o2uXG52YXIgU3RvcmFnZU1lc3NhZ2UgPSB7XG4gICAgZ2V0U3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XG4gICAgICAgIHZhciByZXN1bHQgPSBudWxsO1xuICAgICAgICBpZihjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSl7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZihyZXN1bHQpe1xuICAgICAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG4gICAgc2V0U3RvcmFnZSA6IGZ1bmN0aW9uKGtleSx2YWx1ZSl7XG4gICAgICAgIC8v5Li75Yqo5ouJ6LW35YiG5Lqr5o6l5Y+jXG4gICAgICAgIHZhciB0ZW1wID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB0ZW1wKVxuICAgIH0sXG4gICAgcmVtb3ZlU3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XG4gICAgICAvL+S4u+WKqOWIoOmZpOa2iOaBr+aOpeWPo1xuICAgICAgaWYoY2Muc3lzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpe1xuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxuICAgICAgfVxuICAgIH0sXG59O1xuXG5leHBvcnQgeyBTdG9yYWdlTWVzc2FnZSB9OyJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFN0b3JhZ2VcXFN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUztBQUNULElBQUksY0FBYyxHQUFHO0lBQ2pCLFVBQVUsRUFBRyxVQUFTLEdBQUc7UUFDckIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDO1lBQ2xDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMvQztRQUVELElBQUcsTUFBTSxFQUFDO1lBQ1IsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0QsVUFBVSxFQUFHLFVBQVMsR0FBRyxFQUFDLEtBQUs7UUFDM0IsVUFBVTtRQUNWLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBQ0QsYUFBYSxFQUFHLFVBQVMsR0FBRztRQUMxQixVQUFVO1FBQ1YsSUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDbEMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3BDO0lBQ0gsQ0FBQztDQUNKLENBQUM7QUFFTyx3Q0FBYyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8v57yT5a2Y5rWP6KeI5Zmo5pWw5o2uXHJcbnZhciBTdG9yYWdlTWVzc2FnZSA9IHtcclxuICAgIGdldFN0b3JhZ2UgOiBmdW5jdGlvbihrZXkpe1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBudWxsO1xyXG4gICAgICAgIGlmKGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpKXtcclxuICAgICAgICAgIHZhciByZXN1bHQgPSBjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYocmVzdWx0KXtcclxuICAgICAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UocmVzdWx0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH0sXHJcbiAgICBzZXRTdG9yYWdlIDogZnVuY3Rpb24oa2V5LHZhbHVlKXtcclxuICAgICAgICAvL+S4u+WKqOaLiei1t+WIhuS6q+aOpeWPo1xyXG4gICAgICAgIHZhciB0ZW1wID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xyXG4gICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHRlbXApXHJcbiAgICB9LFxyXG4gICAgcmVtb3ZlU3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XHJcbiAgICAgIC8v5Li75Yqo5Yig6Zmk5raI5oGv5o6l5Y+jXHJcbiAgICAgIGlmKGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpKXtcclxuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IHsgU3RvcmFnZU1lc3NhZ2UgfTsiXX0= \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/animation/NewScript.js b/temp/quick-scripts/dst/assets/animation/NewScript.js index d01b17d..1915c52 100644 --- a/temp/quick-scripts/dst/assets/animation/NewScript.js +++ b/temp/quick-scripts/dst/assets/animation/NewScript.js @@ -21,6 +21,7 @@ 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 + cc.Class({ "extends": cc.Component, properties: { @@ -30,7 +31,8 @@ cc.Class({ female: 1 }), "default": 0 - } // foo: { + } + // foo: { // // ATTRIBUTES: // default: null, // The default value will be used only when the component attaching // // to a node for the first time @@ -45,12 +47,10 @@ cc.Class({ // this._bar = value; // } // }, - }, // LIFE-CYCLE CALLBACKS: // onLoad () {}, start: function start() {} // update (dt) {}, - }); cc._RF.pop(); @@ -64,4 +64,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcYW5pbWF0aW9uXFxOZXdTY3JpcHQuanMiXSwibmFtZXMiOlsiY2MiLCJDbGFzcyIsIkNvbXBvbmVudCIsInByb3BlcnRpZXMiLCJzZXgiLCJ0eXBlIiwiRW51bSIsIm1hbGUiLCJmZW1hbGUiLCJzdGFydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQUEsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDTCxhQUFTRCxFQUFFLENBQUNFLFNBRFA7QUFHTEMsRUFBQUEsVUFBVSxFQUFFO0FBQ1JDLElBQUFBLEdBQUcsRUFBQztBQUNBQyxNQUFBQSxJQUFJLEVBQUNMLEVBQUUsQ0FBQ00sSUFBSCxDQUFRO0FBQ1RDLFFBQUFBLElBQUksRUFBQyxDQURJO0FBRVRDLFFBQUFBLE1BQU0sRUFBQztBQUZFLE9BQVIsQ0FETDtBQUtBLGlCQUFRO0FBTFIsS0FESSxDQVFSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUF0QlEsR0FIUDtBQTRCTDtBQUVBO0FBRUFDLEVBQUFBLEtBaENLLG1CQWdDSSxDQUVSLENBbENJLENBb0NMOztBQXBDSyxDQUFUIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBjYy5DbGFzczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvY2xhc3MuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmNjLkNsYXNzKHtcclxuICAgIGV4dGVuZHM6IGNjLkNvbXBvbmVudCxcclxuXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgICAgc2V4OntcclxuICAgICAgICAgICAgdHlwZTpjYy5FbnVtKHtcclxuICAgICAgICAgICAgICAgIG1hbGU6MCxcclxuICAgICAgICAgICAgICAgIGZlbWFsZToxXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBkZWZhdWx0OjBcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gZm9vOiB7XHJcbiAgICAgICAgLy8gICAgIC8vIEFUVFJJQlVURVM6XHJcbiAgICAgICAgLy8gICAgIGRlZmF1bHQ6IG51bGwsICAgICAgICAvLyBUaGUgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlIHVzZWQgb25seSB3aGVuIHRoZSBjb21wb25lbnQgYXR0YWNoaW5nXHJcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBhIG5vZGUgZm9yIHRoZSBmaXJzdCB0aW1lXHJcbiAgICAgICAgLy8gICAgIHR5cGU6IGNjLlNwcml0ZUZyYW1lLCAvLyBvcHRpb25hbCwgZGVmYXVsdCBpcyB0eXBlb2YgZGVmYXVsdFxyXG4gICAgICAgIC8vICAgICBzZXJpYWxpemFibGU6IHRydWUsICAgLy8gb3B0aW9uYWwsIGRlZmF1bHQgaXMgdHJ1ZVxyXG4gICAgICAgIC8vIH0sXHJcbiAgICAgICAgLy8gYmFyOiB7XHJcbiAgICAgICAgLy8gICAgIGdldCAoKSB7XHJcbiAgICAgICAgLy8gICAgICAgICByZXR1cm4gdGhpcy5fYmFyO1xyXG4gICAgICAgIC8vICAgICB9LFxyXG4gICAgICAgIC8vICAgICBzZXQgKHZhbHVlKSB7XHJcbiAgICAgICAgLy8gICAgICAgICB0aGlzLl9iYXIgPSB2YWx1ZTtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vIH0sXHJcbiAgICB9LFxyXG5cclxuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxyXG5cclxuICAgIC8vIG9uTG9hZCAoKSB7fSxcclxuXHJcbiAgICBzdGFydCAoKSB7XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvLyB1cGRhdGUgKGR0KSB7fSxcclxufSk7XHJcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcYW5pbWF0aW9uXFxOZXdTY3JpcHQuanMiXSwibmFtZXMiOlsiY2MiLCJDbGFzcyIsIkNvbXBvbmVudCIsInByb3BlcnRpZXMiLCJzZXgiLCJ0eXBlIiwiRW51bSIsIm1hbGUiLCJmZW1hbGUiLCJzdGFydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUFBLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDO0VBQ0wsV0FBU0QsRUFBRSxDQUFDRSxTQUFTO0VBRXJCQyxVQUFVLEVBQUU7SUFDUkMsR0FBRyxFQUFDO01BQ0FDLElBQUksRUFBQ0wsRUFBRSxDQUFDTSxJQUFJLENBQUM7UUFDVEMsSUFBSSxFQUFDLENBQUM7UUFDTkMsTUFBTSxFQUFDO01BQ1gsQ0FBQyxDQUFDO01BQ0YsV0FBUTtJQUNaO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBQ0osQ0FBQztFQUVEO0VBRUE7RUFFQUMsS0FBSyxXQUFBQSxNQUFBLEVBQUksQ0FFVCxDQUFDLENBRUQ7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuQ29tcG9uZW50LFxyXG5cclxuICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgICBzZXg6e1xyXG4gICAgICAgICAgICB0eXBlOmNjLkVudW0oe1xyXG4gICAgICAgICAgICAgICAgbWFsZTowLFxyXG4gICAgICAgICAgICAgICAgZmVtYWxlOjFcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6MFxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBmb286IHtcclxuICAgICAgICAvLyAgICAgLy8gQVRUUklCVVRFUzpcclxuICAgICAgICAvLyAgICAgZGVmYXVsdDogbnVsbCwgICAgICAgIC8vIFRoZSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUgdXNlZCBvbmx5IHdoZW4gdGhlIGNvbXBvbmVudCBhdHRhY2hpbmdcclxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGEgbm9kZSBmb3IgdGhlIGZpcnN0IHRpbWVcclxuICAgICAgICAvLyAgICAgdHlwZTogY2MuU3ByaXRlRnJhbWUsIC8vIG9wdGlvbmFsLCBkZWZhdWx0IGlzIHR5cGVvZiBkZWZhdWx0XHJcbiAgICAgICAgLy8gICAgIHNlcmlhbGl6YWJsZTogdHJ1ZSwgICAvLyBvcHRpb25hbCwgZGVmYXVsdCBpcyB0cnVlXHJcbiAgICAgICAgLy8gfSxcclxuICAgICAgICAvLyBiYXI6IHtcclxuICAgICAgICAvLyAgICAgZ2V0ICgpIHtcclxuICAgICAgICAvLyAgICAgICAgIHJldHVybiB0aGlzLl9iYXI7XHJcbiAgICAgICAgLy8gICAgIH0sXHJcbiAgICAgICAgLy8gICAgIHNldCAodmFsdWUpIHtcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMuX2JhciA9IHZhbHVlO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfSxcclxuICAgIH0sXHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgLy8gb25Mb2FkICgpIHt9LFxyXG5cclxuICAgIHN0YXJ0ICgpIHtcclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8vIHVwZGF0ZSAoZHQpIHt9LFxyXG59KTtcclxuIl19 \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js b/temp/quick-scripts/dst/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js index ca85f21..72abbf1 100644 --- a/temp/quick-scripts/dst/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js +++ b/temp/quick-scripts/dst/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js @@ -26,6 +26,7 @@ cc._RF.push(module, '7a231Rz0d9LBYYgY3bDYlLB', 'use_v2.1-2.2.1_cc.Toggle_event') * 如果你的项目中没用到 Toggle,可直接删除该脚本。 * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。 */ + if (cc.Toggle) { // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件 @@ -43,4 +44,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnQuanMiXSwibmFtZXMiOlsiY2MiLCJUb2dnbGUiLCJfdHJpZ2dlckV2ZW50SW5TY3JpcHRfaXNDaGVja2VkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFJQSxFQUFFLENBQUNDLE1BQVAsRUFBZTtBQUNYO0FBQ0E7QUFDQUQsRUFBQUEsRUFBRSxDQUFDQyxNQUFILENBQVVDLCtCQUFWLEdBQTRDLElBQTVDO0FBQ0giLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFRoaXMgc2NyaXB0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IENvY29zIENyZWF0b3IgYW5kIGlzIG9ubHkgdXNlZCBmb3IgcHJvamVjdHMgY29tcGF0aWJsZSB3aXRoIHRoZSB2Mi4xLjAg772eIDIuMi4xIHZlcnNpb24uXHJcbiAqIFlvdSBkbyBub3QgbmVlZCB0byBtYW51YWxseSBhZGQgdGhpcyBzY3JpcHQgaW4gYW55IG90aGVyIHByb2plY3QuXHJcbiAqIElmIHlvdSBkb24ndCB1c2UgY2MuVG9nZ2xlIGluIHlvdXIgcHJvamVjdCwgeW91IGNhbiBkZWxldGUgdGhpcyBzY3JpcHQgZGlyZWN0bHkuXHJcbiAqIElmIHlvdXIgcHJvamVjdCBpcyBob3N0ZWQgaW4gVkNTIHN1Y2ggYXMgZ2l0LCBzdWJtaXQgdGhpcyBzY3JpcHQgdG9nZXRoZXIuXHJcbiAqXHJcbiAqIOatpOiEmuacrOeUsSBDb2NvcyBDcmVhdG9yIOiHquWKqOeUn+aIkO+8jOS7heeUqOS6juWFvOWuuSB2Mi4xLjAgfiAyLjIuMSDniYjmnKznmoTlt6XnqIvvvIxcclxuICog5L2g5peg6ZyA5Zyo5Lu75L2V5YW25a6D6aG555uu5Lit5omL5Yqo5re75Yqg5q2k6ISa5pys44CCXHJcbiAqIOWmguaenOS9oOeahOmhueebruS4reayoeeUqOWIsCBUb2dnbGXvvIzlj6/nm7TmjqXliKDpmaTor6XohJrmnKzjgIJcclxuICog5aaC5p6c5L2g55qE6aG555uu5pyJ5omY566h5LqOIGdpdCDnrYnniYjmnKzlupPvvIzor7flsIbmraTohJrmnKzkuIDlubbkuIrkvKDjgIJcclxuICovXHJcblxyXG5pZiAoY2MuVG9nZ2xlKSB7XHJcbiAgICAvLyBXaGV0aGVyIHRvIHRyaWdnZXIgJ3RvZ2dsZScgYW5kICdjaGVja0V2ZW50cycgZXZlbnRzIHdoZW4gbW9kaWZ5aW5nICd0b2dnbGUuaXNDaGVja2VkJyBpbiB0aGUgY29kZVxyXG4gICAgLy8g5Zyo5Luj56CB5Lit5L+u5pS5ICd0b2dnbGUuaXNDaGVja2VkJyDml7bmmK/lkKbop6blj5EgJ3RvZ2dsZScg5LiOICdjaGVja0V2ZW50cycg5LqL5Lu2XHJcbiAgICBjYy5Ub2dnbGUuX3RyaWdnZXJFdmVudEluU2NyaXB0X2lzQ2hlY2tlZCA9IHRydWU7XHJcbn1cclxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnQuanMiXSwibmFtZXMiOlsiY2MiLCJUb2dnbGUiLCJfdHJpZ2dlckV2ZW50SW5TY3JpcHRfaXNDaGVja2VkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSUEsRUFBRSxDQUFDQyxNQUFNLEVBQUU7RUFDWDtFQUNBO0VBQ0FELEVBQUUsQ0FBQ0MsTUFBTSxDQUFDQywrQkFBK0IsR0FBRyxJQUFJO0FBQ3BEIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBUaGlzIHNjcmlwdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBDb2NvcyBDcmVhdG9yIGFuZCBpcyBvbmx5IHVzZWQgZm9yIHByb2plY3RzIGNvbXBhdGlibGUgd2l0aCB0aGUgdjIuMS4wIO+9niAyLjIuMSB2ZXJzaW9uLlxyXG4gKiBZb3UgZG8gbm90IG5lZWQgdG8gbWFudWFsbHkgYWRkIHRoaXMgc2NyaXB0IGluIGFueSBvdGhlciBwcm9qZWN0LlxyXG4gKiBJZiB5b3UgZG9uJ3QgdXNlIGNjLlRvZ2dsZSBpbiB5b3VyIHByb2plY3QsIHlvdSBjYW4gZGVsZXRlIHRoaXMgc2NyaXB0IGRpcmVjdGx5LlxyXG4gKiBJZiB5b3VyIHByb2plY3QgaXMgaG9zdGVkIGluIFZDUyBzdWNoIGFzIGdpdCwgc3VibWl0IHRoaXMgc2NyaXB0IHRvZ2V0aGVyLlxyXG4gKlxyXG4gKiDmraTohJrmnKznlLEgQ29jb3MgQ3JlYXRvciDoh6rliqjnlJ/miJDvvIzku4XnlKjkuo7lhbzlrrkgdjIuMS4wIH4gMi4yLjEg54mI5pys55qE5bel56iL77yMXHJcbiAqIOS9oOaXoOmcgOWcqOS7u+S9leWFtuWug+mhueebruS4reaJi+WKqOa3u+WKoOatpOiEmuacrOOAglxyXG4gKiDlpoLmnpzkvaDnmoTpobnnm67kuK3msqHnlKjliLAgVG9nZ2xl77yM5Y+v55u05o6l5Yig6Zmk6K+l6ISa5pys44CCXHJcbiAqIOWmguaenOS9oOeahOmhueebruacieaJmOeuoeS6jiBnaXQg562J54mI5pys5bqT77yM6K+35bCG5q2k6ISa5pys5LiA5bm25LiK5Lyg44CCXHJcbiAqL1xyXG5cclxuaWYgKGNjLlRvZ2dsZSkge1xyXG4gICAgLy8gV2hldGhlciB0byB0cmlnZ2VyICd0b2dnbGUnIGFuZCAnY2hlY2tFdmVudHMnIGV2ZW50cyB3aGVuIG1vZGlmeWluZyAndG9nZ2xlLmlzQ2hlY2tlZCcgaW4gdGhlIGNvZGVcclxuICAgIC8vIOWcqOS7o+eggeS4reS/ruaUuSAndG9nZ2xlLmlzQ2hlY2tlZCcg5pe25piv5ZCm6Kem5Y+RICd0b2dnbGUnIOS4jiAnY2hlY2tFdmVudHMnIOS6i+S7tlxyXG4gICAgY2MuVG9nZ2xlLl90cmlnZ2VyRXZlbnRJblNjcmlwdF9pc0NoZWNrZWQgPSB0cnVlO1xyXG59XHJcbiJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js b/temp/quick-scripts/dst/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js index 2af5584..50cf65c 100644 --- a/temp/quick-scripts/dst/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js +++ b/temp/quick-scripts/dst/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js @@ -26,6 +26,7 @@ cc._RF.push(module, 'c9ad1iUTB1PyqJ3cmtMGJ31', 'use_v2.1-2.2.1_cc.Toggle_event_1 * 如果你的项目中没用到 Toggle,可直接删除该脚本。 * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。 */ + if (cc.Toggle) { // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件 @@ -43,4 +44,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnRfMS5qcyJdLCJuYW1lcyI6WyJjYyIsIlRvZ2dsZSIsIl90cmlnZ2VyRXZlbnRJblNjcmlwdF9pc0NoZWNrZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQUlBLEVBQUUsQ0FBQ0MsTUFBUCxFQUFlO0FBQ1g7QUFDQTtBQUNBRCxFQUFBQSxFQUFFLENBQUNDLE1BQUgsQ0FBVUMsK0JBQVYsR0FBNEMsSUFBNUM7QUFDSCIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogVGhpcyBzY3JpcHQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgQ29jb3MgQ3JlYXRvciBhbmQgaXMgb25seSB1c2VkIGZvciBwcm9qZWN0cyBjb21wYXRpYmxlIHdpdGggdGhlIHYyLjEuMCDvvZ4gMi4yLjEgdmVyc2lvbi5cclxuICogWW91IGRvIG5vdCBuZWVkIHRvIG1hbnVhbGx5IGFkZCB0aGlzIHNjcmlwdCBpbiBhbnkgb3RoZXIgcHJvamVjdC5cclxuICogSWYgeW91IGRvbid0IHVzZSBjYy5Ub2dnbGUgaW4geW91ciBwcm9qZWN0LCB5b3UgY2FuIGRlbGV0ZSB0aGlzIHNjcmlwdCBkaXJlY3RseS5cclxuICogSWYgeW91ciBwcm9qZWN0IGlzIGhvc3RlZCBpbiBWQ1Mgc3VjaCBhcyBnaXQsIHN1Ym1pdCB0aGlzIHNjcmlwdCB0b2dldGhlci5cclxuICpcclxuICog5q2k6ISa5pys55SxIENvY29zIENyZWF0b3Ig6Ieq5Yqo55Sf5oiQ77yM5LuF55So5LqO5YW85a65IHYyLjEuMCB+IDIuMi4xIOeJiOacrOeahOW3peeoi++8jFxyXG4gKiDkvaDml6DpnIDlnKjku7vkvZXlhbblroPpobnnm67kuK3miYvliqjmt7vliqDmraTohJrmnKzjgIJcclxuICog5aaC5p6c5L2g55qE6aG555uu5Lit5rKh55So5YiwIFRvZ2dsZe+8jOWPr+ebtOaOpeWIoOmZpOivpeiEmuacrOOAglxyXG4gKiDlpoLmnpzkvaDnmoTpobnnm67mnInmiZjnrqHkuo4gZ2l0IOetieeJiOacrOW6k++8jOivt+WwhuatpOiEmuacrOS4gOW5tuS4iuS8oOOAglxyXG4gKi9cclxuXHJcbmlmIChjYy5Ub2dnbGUpIHtcclxuICAgIC8vIFdoZXRoZXIgdG8gdHJpZ2dlciAndG9nZ2xlJyBhbmQgJ2NoZWNrRXZlbnRzJyBldmVudHMgd2hlbiBtb2RpZnlpbmcgJ3RvZ2dsZS5pc0NoZWNrZWQnIGluIHRoZSBjb2RlXHJcbiAgICAvLyDlnKjku6PnoIHkuK3kv67mlLkgJ3RvZ2dsZS5pc0NoZWNrZWQnIOaXtuaYr+WQpuinpuWPkSAndG9nZ2xlJyDkuI4gJ2NoZWNrRXZlbnRzJyDkuovku7ZcclxuICAgIGNjLlRvZ2dsZS5fdHJpZ2dlckV2ZW50SW5TY3JpcHRfaXNDaGVja2VkID0gdHJ1ZTtcclxufVxyXG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnRfMS5qcyJdLCJuYW1lcyI6WyJjYyIsIlRvZ2dsZSIsIl90cmlnZ2VyRXZlbnRJblNjcmlwdF9pc0NoZWNrZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJQSxFQUFFLENBQUNDLE1BQU0sRUFBRTtFQUNYO0VBQ0E7RUFDQUQsRUFBRSxDQUFDQyxNQUFNLENBQUNDLCtCQUErQixHQUFHLElBQUk7QUFDcEQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFRoaXMgc2NyaXB0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IENvY29zIENyZWF0b3IgYW5kIGlzIG9ubHkgdXNlZCBmb3IgcHJvamVjdHMgY29tcGF0aWJsZSB3aXRoIHRoZSB2Mi4xLjAg772eIDIuMi4xIHZlcnNpb24uXHJcbiAqIFlvdSBkbyBub3QgbmVlZCB0byBtYW51YWxseSBhZGQgdGhpcyBzY3JpcHQgaW4gYW55IG90aGVyIHByb2plY3QuXHJcbiAqIElmIHlvdSBkb24ndCB1c2UgY2MuVG9nZ2xlIGluIHlvdXIgcHJvamVjdCwgeW91IGNhbiBkZWxldGUgdGhpcyBzY3JpcHQgZGlyZWN0bHkuXHJcbiAqIElmIHlvdXIgcHJvamVjdCBpcyBob3N0ZWQgaW4gVkNTIHN1Y2ggYXMgZ2l0LCBzdWJtaXQgdGhpcyBzY3JpcHQgdG9nZXRoZXIuXHJcbiAqXHJcbiAqIOatpOiEmuacrOeUsSBDb2NvcyBDcmVhdG9yIOiHquWKqOeUn+aIkO+8jOS7heeUqOS6juWFvOWuuSB2Mi4xLjAgfiAyLjIuMSDniYjmnKznmoTlt6XnqIvvvIxcclxuICog5L2g5peg6ZyA5Zyo5Lu75L2V5YW25a6D6aG555uu5Lit5omL5Yqo5re75Yqg5q2k6ISa5pys44CCXHJcbiAqIOWmguaenOS9oOeahOmhueebruS4reayoeeUqOWIsCBUb2dnbGXvvIzlj6/nm7TmjqXliKDpmaTor6XohJrmnKzjgIJcclxuICog5aaC5p6c5L2g55qE6aG555uu5pyJ5omY566h5LqOIGdpdCDnrYnniYjmnKzlupPvvIzor7flsIbmraTohJrmnKzkuIDlubbkuIrkvKDjgIJcclxuICovXHJcblxyXG5pZiAoY2MuVG9nZ2xlKSB7XHJcbiAgICAvLyBXaGV0aGVyIHRvIHRyaWdnZXIgJ3RvZ2dsZScgYW5kICdjaGVja0V2ZW50cycgZXZlbnRzIHdoZW4gbW9kaWZ5aW5nICd0b2dnbGUuaXNDaGVja2VkJyBpbiB0aGUgY29kZVxyXG4gICAgLy8g5Zyo5Luj56CB5Lit5L+u5pS5ICd0b2dnbGUuaXNDaGVja2VkJyDml7bmmK/lkKbop6blj5EgJ3RvZ2dsZScg5LiOICdjaGVja0V2ZW50cycg5LqL5Lu2XHJcbiAgICBjYy5Ub2dnbGUuX3RyaWdnZXJFdmVudEluU2NyaXB0X2lzQ2hlY2tlZCA9IHRydWU7XHJcbn1cclxuIl19 \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/shop/script/item.js b/temp/quick-scripts/dst/assets/shop/script/item.js new file mode 100644 index 0000000..bea457a --- /dev/null +++ b/temp/quick-scripts/dst/assets/shop/script/item.js @@ -0,0 +1,85 @@ + + (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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2hvcFxcc2NyaXB0XFxpdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVNLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBMkJDO1FBeEJHLFdBQUssR0FBYSxJQUFJLENBQUM7UUFHdkIsVUFBSSxHQUFXLE9BQU8sQ0FBQzs7UUFvQnZCLGlCQUFpQjtJQUNyQixDQUFDO0lBcEJHLHdCQUF3QjtJQUV4QixlQUFlO0lBRWYsd0JBQUssR0FBTDtJQUVBLENBQUM7SUFFRCxRQUFRO0lBQ1IsMEJBQU8sR0FBUCxVQUFRLFFBQVE7UUFDWiw0Q0FBNEM7UUFDNUMsZ0RBQWdEO1FBQ2hELGNBQWM7UUFDZCxJQUFJO1FBQ0oseUVBQXlFO1FBQ3pFLDZCQUE2QjtRQUM3Qix5Q0FBeUM7SUFDN0MsQ0FBQztJQXJCRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDOzJDQUNJO0lBR3ZCO1FBREMsUUFBUTswQ0FDYztJQU5OLFFBQVE7UUFENUIsT0FBTztPQUNhLFFBQVEsQ0EyQjVCO0lBQUQsZUFBQztDQTNCRCxBQTJCQyxDQTNCcUMsRUFBRSxDQUFDLFNBQVMsR0EyQmpEO2tCQTNCb0IsUUFBUSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xuXG5AY2NjbGFzc1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTmV3Q2xhc3MgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xuXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxuICAgIGxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XG5cbiAgICBAcHJvcGVydHlcbiAgICB0ZXh0OiBzdHJpbmcgPSAnaGVsbG8nO1xuICAgIC8vIExJRkUtQ1lDTEUgQ0FMTEJBQ0tTOlxuXG4gICAgLy8gb25Mb2FkICgpIHt9XG5cbiAgICBzdGFydCgpIHtcblxuICAgIH1cblxuICAgIC8v6LSt5Lmw5ZWG5ZOB6YGT5YW3XG4gICAgYnV5UHJvcChwcm9wTmFtZSkge1xuICAgICAgICAvLyBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY29pbiA8IDE1MDApe1xuICAgICAgICAvLyAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdChcIumHkeW4geS4jei2s++8jOaXoOazlei0reS5sOmBk+WFt1wiKTtcbiAgICAgICAgLy8gICAgIHJldHVybjtcbiAgICAgICAgLy8gfVxuICAgICAgICAvLyBsZXQgcHJvcFdpbmRvdyA9IHRoaXMubm9kZS5wYXJlbnQucGFyZW50LmdldENoaWxkQnlOYW1lKFwicHJvcFdpbmRvd1wiKTtcbiAgICAgICAgLy8gcHJvcFdpbmRvdy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgLy8gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmNvaW4gLT0gMTUwMDtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxufVxuIl19 \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/shop/script/shop.js b/temp/quick-scripts/dst/assets/shop/script/shop.js new file mode 100644 index 0000000..c8e16d1 --- /dev/null +++ b/temp/quick-scripts/dst/assets/shop/script/shop.js @@ -0,0 +1,111 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/shop/script/shop.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, '48bfeZuYFZE2qmgxbW2IigB', 'shop'); +// shop/script/shop.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.shop = null; + //商品列表 + _this.itemList = null; + return _this; + // update (dt) {} + } + // 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; + } + } + }; + //关闭商店界面 + 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; + +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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2hvcFxcc2NyaXB0XFxzaG9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVNLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBa0RDO1FBakRHLE1BQU07UUFFTixVQUFJLEdBQVksSUFBSSxDQUFDO1FBQ3JCLE1BQU07UUFFTixjQUFRLEdBQVksSUFBSSxDQUFDOztRQTJDekIsaUJBQWlCO0lBQ3JCLENBQUM7SUEzQ0csZUFBZTtJQUVmLHdCQUFLLEdBQUw7UUFDSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELFFBQVE7SUFDUiwyQkFBUSxHQUFSO1FBQ0ksU0FBUztRQUNULElBQU0sUUFBUSxHQUFHO1lBQ2IsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3pFLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNuRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDbkUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3BFLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNwRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDcEUsRUFBRSxVQUFVLEVBQUUsMkJBQTJCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDM0YsRUFBRSxVQUFVLEVBQUUsMkJBQTJCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7U0FDeEYsQ0FBQztRQUNGLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM5RCxJQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRixJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRSxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRSxJQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksVUFBVSxJQUFJLE9BQU8sRUFBRTtnQkFDdkIsdURBQXVEO2FBQzFEO1lBQ0QsSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFO2dCQUNsQixLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLENBQUM7YUFDekQ7WUFDRCxJQUFJLEtBQUssSUFBSSxPQUFPLEVBQUU7Z0JBQ2xCLEtBQUssQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQzthQUMvQjtTQUNKO0lBQ0wsQ0FBQztJQUdELFFBQVE7SUFDUiw0QkFBUyxHQUFUO1FBQ0ksT0FBTztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQTVDRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzBDQUNHO0lBR3JCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7OENBQ087SUFOUixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBa0Q1QjtJQUFELGVBQUM7Q0FsREQsQUFrREMsQ0FsRHFDLEVBQUUsQ0FBQyxTQUFTLEdBa0RqRDtrQkFsRG9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTGlzdCBmcm9tIFwiLi4vLi4vU2NyaXB0L21vZHVsZS9SYW5rTGlzdC9MaXN0XCI7XG5cbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XG5cbkBjY2NsYXNzXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XG4gICAgLy/llYblupfnlYzpnaJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcbiAgICBzaG9wOiBjYy5Ob2RlID0gbnVsbDtcbiAgICAvL+WVhuWTgeWIl+ihqFxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxuICAgIGl0ZW1MaXN0OiBjYy5Ob2RlID0gbnVsbDtcbiAgICAvLyBvbkxvYWQgKCkge31cblxuICAgIHN0YXJ0KCkge1xuICAgICAgICB0aGlzLm9wZW5TaG9wKCk7XG4gICAgfVxuICAgIC8v5omT5byA5ZWG5bqX55WM6Z2iXG4gICAgb3BlblNob3AoKSB7XG4gICAgICAgIC8vIOWVhuWTgeaVsOaNruaVsOe7hFxuICAgICAgICBjb25zdCBwcm9kdWN0cyA9IFtcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJnb2xkX3BhY2tfMVwiLCBuYW1lOiBcIumHkeW4geWMhTFcIiwgcHJpY2U6IDYwMCwgdGl0bGU6IFwiM3gy5YWt5qGj6YeR5biBXCIgfSxcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJnb2xkX3BhY2tfMlwiLCBuYW1lOiBcIumHkeW4geWMhTJcIiwgcHJpY2U6IDM2MDAsIHRpdGxlOiBcIlwiIH0sXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwiZ29sZF9wYWNrXzNcIiwgbmFtZTogXCLph5HluIHljIUzXCIsIHByaWNlOiA2ODAwLCB0aXRsZTogXCJcIiB9LFxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcImdvbGRfcGFja180XCIsIG5hbWU6IFwi6YeR5biB5YyFNFwiLCBwcmljZTogMTI4MDAsIHRpdGxlOiBcIlwiIH0sXG4gICAgICAgICAgICB7IHByb2R1Y3RfaWQ6IFwiZ29sZF9wYWNrXzVcIiwgbmFtZTogXCLph5HluIHljIU1XCIsIHByaWNlOiAzMjgwMCwgdGl0bGU6IFwiXCIgfSxcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJnb2xkX3BhY2tfNlwiLCBuYW1lOiBcIumHkeW4geWMhTZcIiwgcHJpY2U6IDY0ODAwLCB0aXRsZTogXCJcIiB9LFxuICAgICAgICAgICAgeyBwcm9kdWN0X2lkOiBcInVubGltaXRlZF9oZWFsdGhfYnVuZGxlXzFcIiwgbmFtZTogXCLml6DpmZDkvZPlipvnu4TlkIjljIUxXCIsIHByaWNlOiAxODAwLCB0aXRsZTogXCIz5Liq5qiq54mI56S85YyFXCIgfSxcbiAgICAgICAgICAgIHsgcHJvZHVjdF9pZDogXCJ1bmxpbWl0ZWRfaGVhbHRoX2J1bmRsZV8yXCIsIG5hbWU6IFwi5peg6ZmQ5L2T5Yqb57uE5ZCI5YyFMlwiLCBwcmljZTogNjYwMCwgdGl0bGU6IFwiXCIgfVxuICAgICAgICBdO1xuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSA4ICYmIGkgPCB0aGlzLml0ZW1MaXN0LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBzcHJpdGVDb21wID0gdGhpcy5pdGVtTGlzdC5jaGlsZHJlbltpXS5jaGlsZHJlblswXS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKTtcbiAgICAgICAgICAgIGNvbnN0IHByaWNlID0gdGhpcy5pdGVtTGlzdC5jaGlsZHJlbltpXS5jaGlsZHJlblsxXS5nZXRDb21wb25lbnQoY2MuTGFiZWwpO1xuICAgICAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLml0ZW1MaXN0LmNoaWxkcmVuW2ldLmNoaWxkcmVuWzJdLmdldENvbXBvbmVudChjYy5MYWJlbCk7XG4gICAgICAgICAgICBjb25zdCBwcm9kdWN0ID0gcHJvZHVjdHNbaSAtIDFdO1xuICAgICAgICAgICAgaWYgKHNwcml0ZUNvbXAgJiYgcHJvZHVjdCkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IOagueaNriBwcm9kdWN0X2lkIOaIliBuYW1lIOiuvue9riBzcHJpdGVDb21wLnNwcml0ZUZyYW1lXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHJpY2UgJiYgcHJvZHVjdCkge1xuICAgICAgICAgICAgICAgIHByaWNlLnN0cmluZyA9IChwcm9kdWN0LnByaWNlIC8gMTAwKS50b1N0cmluZygpICsgXCLlhYNcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aXRsZSAmJiBwcm9kdWN0KSB7XG4gICAgICAgICAgICAgICAgdGl0bGUuc3RyaW5nID0gcHJvZHVjdC5uYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvL+WFs+mXreWVhuW6l+eVjOmdolxuICAgIGNsb3NlU2hvcCgpIHtcbiAgICAgICAgLy/plIDmr4HpooTliLbkvZNcbiAgICAgICAgdGhpcy5zaG9wLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgKGR0KSB7fVxufVxuIl19 \ No newline at end of file diff --git a/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoAssembler.js b/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoAssembler.js index 74e9a9f..78c6f99 100644 --- a/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoAssembler.js +++ b/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoAssembler.js @@ -17,17 +17,14 @@ cc._RF.push(module, '18d1c5ObBtCeaysyO5bMIgb', 'TmoAssembler'); exports.__esModule = true; exports.TmoAssembler = void 0; - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -var gfx = cc.gfx; // 颜色去除 + 物件图集合批 - +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var gfx = cc.gfx; +// 颜色去除 + 物件图集合批 var vfmtPosUvIndex = new gfx.VertexFormat([{ name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, @@ -40,8 +37,9 @@ var vfmtPosUvIndex = new gfx.VertexFormat([{ name: "a_texture_idx", type: gfx.ATTR_TYPE_FLOAT32, num: 1 -}]); // 仅物件图集合批 +}]); +// 仅物件图集合批 var vfmtPosUvColorIndex = new gfx.VertexFormat([{ name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, @@ -60,19 +58,14 @@ var vfmtPosUvColorIndex = new gfx.VertexFormat([{ num: 4, normalize: true }]); - var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { _inheritsLoose(TmoAssembler, _cc$Assembler); - function TmoAssembler() { return _cc$Assembler.apply(this, arguments) || this; } - var _proto = TmoAssembler.prototype; - _proto.init = function init(comp) { _cc$Assembler.prototype.init.call(this, comp); - this._noColor = comp.isNoColor(); this.updateColor = this._noColor ? undefined : this.updateColorFunc; this.uvOffset = 2; @@ -82,25 +75,21 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { this.indicesCount = 6; this.verticesCount = 4; this._renderData = new cc.RenderData(); - this._renderData.init(this); - this.initLocal(); this.initData(); }; - _proto.initLocal = function initLocal() { this._local = []; this._local.length = 4; }; - _proto.initData = function initData() { var data = this._renderData; - data.createFlexData(0, this.verticesCount, this.indicesCount, this.getVfmt()); // 填充顶点索引信息 + data.createFlexData(0, this.verticesCount, this.indicesCount, this.getVfmt()); + // 填充顶点索引信息 var indices = data.iDatas[0]; var count = indices.length / 6; - for (var i = 0, idx = 0; i < count; i++) { var vertextID = i * 4; indices[idx++] = vertextID; @@ -111,18 +100,14 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { indices[idx++] = vertextID + 2; } }; - _proto.getBuffer = function getBuffer() { return cc.renderer._handle.getBuffer("mesh", this.getVfmt()); }; - _proto.getVfmt = function getVfmt() { return this._noColor ? vfmtPosUvIndex : vfmtPosUvColorIndex; }; - _proto.updateRenderData = function updateRenderData(sprite) { this.packToDynamicAtlas(sprite, sprite._spriteFrame); - if (sprite._vertsDirty) { this.updateUVs(sprite); this.updateVerts(sprite); @@ -130,31 +115,27 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { sprite._vertsDirty = false; } } + /** * 填充textureIndex数据 * @param {cc.Sprite} sprite - */ - ; - + */; _proto.updateTextureIdx = function updateTextureIdx(sprite) { var textureIdx = sprite._textureIdx; var verts = this._renderData.vDatas[0]; var verticesCount = this.verticesCount; var floatsPerVert = this.floatsPerVert; var textureIndexOffset = this.textureIndexOffset; - for (var i = 0; i < verticesCount; i++) { var index = i * floatsPerVert + textureIndexOffset; verts[index] = textureIdx; } }; - _proto.updateUVs = function updateUVs(sprite) { var uv = sprite._spriteFrame.uv; var uvOffset = this.uvOffset; var floatsPerVert = this.floatsPerVert; var verts = this._renderData.vDatas[0]; - for (var i = 0; i < 4; i++) { var srcOffset = i * 2; var dstOffset = floatsPerVert * i + uvOffset; @@ -162,18 +143,16 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { verts[dstOffset + 1] = uv[srcOffset + 1]; } }; - _proto.updateVerts = function updateVerts(sprite) { var node = sprite.node, - cw = node.width, - ch = node.height, - appx = node.anchorX * cw, - appy = node.anchorY * ch, - l, - b, - r, - t; - + cw = node.width, + ch = node.height, + appx = node.anchorX * cw, + appy = node.anchorY * ch, + l, + b, + r, + t; if (sprite.trim) { l = -appx; b = -appy; @@ -181,13 +160,13 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { t = ch - appy; } else { var frame = sprite.spriteFrame, - ow = frame._originalSize.width, - oh = frame._originalSize.height, - rw = frame._rect.width, - rh = frame._rect.height, - offset = frame._offset, - scaleX = cw / ow, - scaleY = ch / oh; + ow = frame._originalSize.width, + oh = frame._originalSize.height, + rw = frame._rect.width, + rh = frame._rect.height, + offset = frame._offset, + scaleX = cw / ow, + scaleY = ch / oh; var trimLeft = offset.x + (ow - rw) / 2; var trimRight = offset.x - (ow - rw) / 2; var trimBottom = offset.y + (oh - rh) / 2; @@ -197,7 +176,6 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { r = cw + trimRight * scaleX - appx; t = ch + trimTop * scaleY - appy; } - var local = this._local; local[0] = l; local[1] = b; @@ -205,28 +183,25 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { local[3] = t; this.updateWorldVerts(sprite); }; - _proto.updateColorFunc = function updateColorFunc(comp, color) { var uintVerts = this._renderData.uintVDatas[0]; if (!uintVerts) return; color = color != null ? color : comp.node.color._val; var floatsPerVert = this.floatsPerVert; var colorOffset = this.colorOffset; - for (var i = colorOffset, l = uintVerts.length; i < l; i += floatsPerVert) { uintVerts[i] = color; } }; - _proto.updateWorldVerts = function updateWorldVerts(comp) { if (CC_NATIVERENDERER) { // 原生平台兼容代码 复制于jsb-engine.js中的cc.Assembler2D.prototype.updateWorldVerts var local = this._local; var verts = this._renderData.vDatas[0]; var vl = local[0], - vr = local[2], - vb = local[1], - vt = local[3]; + vr = local[2], + vb = local[1], + vt = local[3]; var floatsPerVert = this.floatsPerVert; var vertexOffset = 0; // left bottom @@ -249,127 +224,116 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { var _verts = this._renderData.vDatas[0]; var matrix = comp.node._worldMatrix; var matrixm = matrix.m, - a = matrixm[0], - b = matrixm[1], - c = matrixm[4], - d = matrixm[5], - tx = matrixm[12], - ty = matrixm[13]; + a = matrixm[0], + b = matrixm[1], + c = matrixm[4], + d = matrixm[5], + tx = matrixm[12], + ty = matrixm[13]; var _vl = _local[0], - _vr = _local[2], - _vb = _local[1], - _vt = _local[3]; + _vr = _local[2], + _vb = _local[1], + _vt = _local[3]; var _floatsPerVert = this.floatsPerVert; var _vertexOffset = 0; var justTranslate = a === 1 && b === 0 && c === 0 && d === 1; - if (justTranslate) { // left bottom _verts[_vertexOffset] = _vl + tx; _verts[_vertexOffset + 1] = _vb + ty; - _vertexOffset += _floatsPerVert; // right bottom - + _vertexOffset += _floatsPerVert; + // right bottom _verts[_vertexOffset] = _vr + tx; _verts[_vertexOffset + 1] = _vb + ty; - _vertexOffset += _floatsPerVert; // left top - + _vertexOffset += _floatsPerVert; + // left top _verts[_vertexOffset] = _vl + tx; _verts[_vertexOffset + 1] = _vt + ty; - _vertexOffset += _floatsPerVert; // right top - + _vertexOffset += _floatsPerVert; + // right top _verts[_vertexOffset] = _vr + tx; _verts[_vertexOffset + 1] = _vt + ty; } else { var al = a * _vl, - ar = a * _vr, - bl = b * _vl, - br = b * _vr, - cb = c * _vb, - ct = c * _vt, - db = d * _vb, - dt = d * _vt; // left bottom + ar = a * _vr, + bl = b * _vl, + br = b * _vr, + cb = c * _vb, + ct = c * _vt, + db = d * _vb, + dt = d * _vt; + // left bottom _verts[_vertexOffset] = al + cb + tx; _verts[_vertexOffset + 1] = bl + db + ty; - _vertexOffset += _floatsPerVert; // right bottom - + _vertexOffset += _floatsPerVert; + // right bottom _verts[_vertexOffset] = ar + cb + tx; _verts[_vertexOffset + 1] = br + db + ty; - _vertexOffset += _floatsPerVert; // left top - + _vertexOffset += _floatsPerVert; + // left top _verts[_vertexOffset] = al + ct + tx; _verts[_vertexOffset + 1] = bl + dt + ty; - _vertexOffset += _floatsPerVert; // right top - + _vertexOffset += _floatsPerVert; + // right top _verts[_vertexOffset] = ar + ct + tx; _verts[_vertexOffset + 1] = br + dt + ty; } } }; - _proto.fillBuffers = function fillBuffers(comp, renderer) { if (renderer.worldMatDirty) { this.updateWorldVerts(comp); } - var renderData = this._renderData; var vData = renderData.vDatas[0]; var iData = renderData.iDatas[0]; var buffer = this.getBuffer(renderer); - var offsetInfo = buffer.request(this.verticesCount, this.indicesCount); // buffer data may be realloc, need get reference after request. + var offsetInfo = buffer.request(this.verticesCount, this.indicesCount); + + // buffer data may be realloc, need get reference after request. + // fill vertices - var vertexOffset = offsetInfo.byteOffset >> 2, - vbuf = buffer._vData; - + vbuf = buffer._vData; if (vData.length + vertexOffset > vbuf.length) { vbuf.set(vData.subarray(0, vbuf.length - vertexOffset), vertexOffset); } else { vbuf.set(vData, vertexOffset); - } // fill indices - + } + // fill indices var ibuf = buffer._iData, - indiceOffset = offsetInfo.indiceOffset, - vertexId = offsetInfo.vertexOffset; - + indiceOffset = offsetInfo.indiceOffset, + vertexId = offsetInfo.vertexOffset; for (var i = 0, l = iData.length; i < l; i++) { ibuf[indiceOffset++] = vertexId + iData[i]; } }; - _proto.packToDynamicAtlas = function packToDynamicAtlas(comp, frame) { if (CC_TEST) return; - if (!frame._original && cc.dynamicAtlasManager && frame._texture.packable) { var packedFrame = cc.dynamicAtlasManager.insertSpriteFrame(frame); - if (packedFrame) { frame._setDynamicAtlasFrame(packedFrame); } } - var material = comp._materials[0]; if (!material) return; - if (material.getProperty('texture') !== frame._texture) { // texture was packed to dynamic atlas, should update uvs comp._vertsDirty = true; - comp._updateMaterial(); } }; - _createClass(TmoAssembler, [{ key: "verticesFloats", get: function get() { return this.verticesCount * this.floatsPerVert; } }]); - return TmoAssembler; }(cc.Assembler); - exports.TmoAssembler = TmoAssembler; cc._RF.pop(); @@ -383,4 +347,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vQXNzZW1ibGVyLmpzIl0sIm5hbWVzIjpbImdmeCIsImNjIiwidmZtdFBvc1V2SW5kZXgiLCJWZXJ0ZXhGb3JtYXQiLCJuYW1lIiwiQVRUUl9QT1NJVElPTiIsInR5cGUiLCJBVFRSX1RZUEVfRkxPQVQzMiIsIm51bSIsIkFUVFJfVVYwIiwidmZtdFBvc1V2Q29sb3JJbmRleCIsIkFUVFJfQ09MT1IiLCJBVFRSX1RZUEVfVUlOVDgiLCJub3JtYWxpemUiLCJUbW9Bc3NlbWJsZXIiLCJpbml0IiwiY29tcCIsIl9ub0NvbG9yIiwiaXNOb0NvbG9yIiwidXBkYXRlQ29sb3IiLCJ1bmRlZmluZWQiLCJ1cGRhdGVDb2xvckZ1bmMiLCJ1dk9mZnNldCIsImNvbG9yT2Zmc2V0IiwidGV4dHVyZUluZGV4T2Zmc2V0IiwiZmxvYXRzUGVyVmVydCIsImluZGljZXNDb3VudCIsInZlcnRpY2VzQ291bnQiLCJfcmVuZGVyRGF0YSIsIlJlbmRlckRhdGEiLCJpbml0TG9jYWwiLCJpbml0RGF0YSIsIl9sb2NhbCIsImxlbmd0aCIsImRhdGEiLCJjcmVhdGVGbGV4RGF0YSIsImdldFZmbXQiLCJpbmRpY2VzIiwiaURhdGFzIiwiY291bnQiLCJpIiwiaWR4IiwidmVydGV4dElEIiwiZ2V0QnVmZmVyIiwicmVuZGVyZXIiLCJfaGFuZGxlIiwidXBkYXRlUmVuZGVyRGF0YSIsInNwcml0ZSIsInBhY2tUb0R5bmFtaWNBdGxhcyIsIl9zcHJpdGVGcmFtZSIsIl92ZXJ0c0RpcnR5IiwidXBkYXRlVVZzIiwidXBkYXRlVmVydHMiLCJ1cGRhdGVUZXh0dXJlSWR4IiwidGV4dHVyZUlkeCIsIl90ZXh0dXJlSWR4IiwidmVydHMiLCJ2RGF0YXMiLCJpbmRleCIsInV2Iiwic3JjT2Zmc2V0IiwiZHN0T2Zmc2V0Iiwibm9kZSIsImN3Iiwid2lkdGgiLCJjaCIsImhlaWdodCIsImFwcHgiLCJhbmNob3JYIiwiYXBweSIsImFuY2hvclkiLCJsIiwiYiIsInIiLCJ0IiwidHJpbSIsImZyYW1lIiwic3ByaXRlRnJhbWUiLCJvdyIsIl9vcmlnaW5hbFNpemUiLCJvaCIsInJ3IiwiX3JlY3QiLCJyaCIsIm9mZnNldCIsIl9vZmZzZXQiLCJzY2FsZVgiLCJzY2FsZVkiLCJ0cmltTGVmdCIsIngiLCJ0cmltUmlnaHQiLCJ0cmltQm90dG9tIiwieSIsInRyaW1Ub3AiLCJsb2NhbCIsInVwZGF0ZVdvcmxkVmVydHMiLCJjb2xvciIsInVpbnRWZXJ0cyIsInVpbnRWRGF0YXMiLCJfdmFsIiwiQ0NfTkFUSVZFUkVOREVSRVIiLCJ2bCIsInZyIiwidmIiLCJ2dCIsInZlcnRleE9mZnNldCIsIm1hdHJpeCIsIl93b3JsZE1hdHJpeCIsIm1hdHJpeG0iLCJtIiwiYSIsImMiLCJkIiwidHgiLCJ0eSIsImp1c3RUcmFuc2xhdGUiLCJhbCIsImFyIiwiYmwiLCJiciIsImNiIiwiY3QiLCJkYiIsImR0IiwiZmlsbEJ1ZmZlcnMiLCJ3b3JsZE1hdERpcnR5IiwicmVuZGVyRGF0YSIsInZEYXRhIiwiaURhdGEiLCJidWZmZXIiLCJvZmZzZXRJbmZvIiwicmVxdWVzdCIsImJ5dGVPZmZzZXQiLCJ2YnVmIiwiX3ZEYXRhIiwic2V0Iiwic3ViYXJyYXkiLCJpYnVmIiwiX2lEYXRhIiwiaW5kaWNlT2Zmc2V0IiwidmVydGV4SWQiLCJDQ19URVNUIiwiX29yaWdpbmFsIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsIl90ZXh0dXJlIiwicGFja2FibGUiLCJwYWNrZWRGcmFtZSIsImluc2VydFNwcml0ZUZyYW1lIiwiX3NldER5bmFtaWNBdGxhc0ZyYW1lIiwibWF0ZXJpYWwiLCJfbWF0ZXJpYWxzIiwiZ2V0UHJvcGVydHkiLCJfdXBkYXRlTWF0ZXJpYWwiLCJBc3NlbWJsZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFJQSxHQUFHLEdBQUdDLEVBQUUsQ0FBQ0QsR0FBYixFQUNBOztBQUNBLElB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RSxFQUEyRTtBQUN2RSxVQUFJQyxXQUFXLEdBQUdqSixFQUFFLENBQUM4SSxtQkFBSCxDQUF1QkksaUJBQXZCLENBQXlDdkUsS0FBekMsQ0FBbEI7O0FBQ0EsVUFBSXNFLFdBQUosRUFBaUI7QUFDYnRFLFFBQUFBLEtBQUssQ0FBQ3dFLHFCQUFOLENBQTRCRixXQUE1QjtBQUNIO0FBQ0o7O0FBQ0QsUUFBSUcsUUFBUSxHQUFHckksSUFBSSxDQUFDc0ksVUFBTCxDQUFnQixDQUFoQixDQUFmO0FBQ0EsUUFBSSxDQUFDRCxRQUFMLEVBQWU7O0FBRWYsUUFBSUEsUUFBUSxDQUFDRSxXQUFULENBQXFCLFNBQXJCLE1BQW9DM0UsS0FBSyxDQUFDb0UsUUFBOUMsRUFBd0Q7QUFDcEQ7QUFDQWhJLE1BQUFBLElBQUksQ0FBQ2tDLFdBQUwsR0FBbUIsSUFBbkI7O0FBQ0FsQyxNQUFBQSxJQUFJLENBQUN3SSxlQUFMO0FBQ0g7QUFDSjs7OztTQXBKRCxlQUFxQjtBQUNqQixhQUFPLEtBQUs3SCxhQUFMLEdBQXFCLEtBQUtGLGFBQWpDO0FBQ0g7Ozs7RUFwSTZCeEIsRUFBRSxDQUFDd0oiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImxldCBnZnggPSBjYy5nZng7XHJcbi8vIOminOiJsuWOu+mZpCArIOeJqeS7tuWbvumbhuWQiOaJuVxyXG52YXIgdmZtdFBvc1V2SW5kZXggPSBuZXcgZ2Z4LlZlcnRleEZvcm1hdChbXHJcbiAgICB7IG5hbWU6IGdmeC5BVFRSX1BPU0lUSU9OLCB0eXBlOiBnZnguQVRUUl9UWVBFX0ZMT0FUMzIsIG51bTogMiB9LFxyXG4gICAgeyBuYW1lOiBnZnguQVRUUl9VVjAsIHR5cGU6IGdmeC5BVFRSX1RZUEVfRkxPQVQzMiwgbnVtOiAyIH0sXHJcbiAgICB7IG5hbWU6IFwiYV90ZXh0dXJlX2lkeFwiLCB0eXBlOiBnZnguQVRUUl9UWVBFX0ZMT0FUMzIsIG51bTogMSB9LFxyXG5dKTtcclxuXHJcbi8vIOS7heeJqeS7tuWbvumbhuWQiOaJuVxyXG52YXIgdmZtdFBvc1V2Q29sb3JJbmRleCA9IG5ldyBnZnguVmVydGV4Rm9ybWF0KFtcclxuICAgIHsgbmFtZTogZ2Z4LkFUVFJfUE9TSVRJT04sIHR5cGU6IGdmeC5BVFRSX1RZUEVfRkxPQVQzMiwgbnVtOiAyIH0sXHJcbiAgICB7IG5hbWU6IGdmeC5BVFRSX1VWMCwgdHlwZTogZ2Z4LkFUVFJfVFlQRV9GTE9BVDMyLCBudW06IDIgfSxcclxuICAgIHsgbmFtZTogXCJhX3RleHR1cmVfaWR4XCIsIHR5cGU6IGdmeC5BVFRSX1RZUEVfRkxPQVQzMiwgbnVtOiAxIH0sXHJcbiAgICB7IG5hbWU6IGdmeC5BVFRSX0NPTE9SLCB0eXBlOiBnZnguQVRUUl9UWVBFX1VJTlQ4LCBudW06IDQsIG5vcm1hbGl6ZTogdHJ1ZSB9LFxyXG5dKTtcclxuXHJcbmV4cG9ydCBjbGFzcyBUbW9Bc3NlbWJsZXIgZXh0ZW5kcyBjYy5Bc3NlbWJsZXIge1xyXG4gICAgaW5pdChjb21wKSB7XHJcbiAgICAgICAgc3VwZXIuaW5pdChjb21wKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbm9Db2xvciA9IGNvbXAuaXNOb0NvbG9yKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDb2xvciA9IHRoaXMuX25vQ29sb3IgPyB1bmRlZmluZWQgOiB0aGlzLnVwZGF0ZUNvbG9yRnVuYztcclxuXHJcbiAgICAgICAgdGhpcy51dk9mZnNldCA9IDI7XHJcbiAgICAgICAgdGhpcy5jb2xvck9mZnNldCA9IDU7XHJcbiAgICAgICAgdGhpcy50ZXh0dXJlSW5kZXhPZmZzZXQgPSA0O1xyXG4gICAgICAgIHRoaXMuZmxvYXRzUGVyVmVydCA9IHRoaXMuX25vQ29sb3IgPyA1IDogNjtcclxuXHJcbiAgICAgICAgdGhpcy5pbmRpY2VzQ291bnQgPSA2O1xyXG4gICAgICAgIHRoaXMudmVydGljZXNDb3VudCA9IDQ7XHJcblxyXG4gICAgICAgIHRoaXMuX3JlbmRlckRhdGEgPSBuZXcgY2MuUmVuZGVyRGF0YSgpO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlckRhdGEuaW5pdCh0aGlzKTtcclxuXHJcbiAgICAgICAgdGhpcy5pbml0TG9jYWwoKTtcclxuICAgICAgICB0aGlzLmluaXREYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdExvY2FsKCkge1xyXG4gICAgICAgIHRoaXMuX2xvY2FsID0gW107XHJcbiAgICAgICAgdGhpcy5fbG9jYWwubGVuZ3RoID0gNDtcclxuICAgIH1cclxuXHJcbiAgICBpbml0RGF0YSgpIHtcclxuICAgICAgICBsZXQgZGF0YSA9IHRoaXMuX3JlbmRlckRhdGE7XHJcbiAgICAgICAgZGF0YS5jcmVhdGVGbGV4RGF0YSgwLCB0aGlzLnZlcnRpY2VzQ291bnQsIHRoaXMuaW5kaWNlc0NvdW50LCB0aGlzLmdldFZmbXQoKSk7XHJcblxyXG4gICAgICAgIC8vIOWhq+WFhemhtueCuee0ouW8leS/oeaBr1xyXG4gICAgICAgIGxldCBpbmRpY2VzID0gZGF0YS5pRGF0YXNbMF07XHJcbiAgICAgICAgbGV0IGNvdW50ID0gaW5kaWNlcy5sZW5ndGggLyA2O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBpZHggPSAwOyBpIDwgY291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgdmVydGV4dElEID0gaSAqIDQ7XHJcbiAgICAgICAgICAgIGluZGljZXNbaWR4KytdID0gdmVydGV4dElEO1xyXG4gICAgICAgICAgICBpbmRpY2VzW2lkeCsrXSA9IHZlcnRleHRJRCArIDE7XHJcbiAgICAgICAgICAgIGluZGljZXNbaWR4KytdID0gdmVydGV4dElEICsgMjtcclxuICAgICAgICAgICAgaW5kaWNlc1tpZHgrK10gPSB2ZXJ0ZXh0SUQgKyAxO1xyXG4gICAgICAgICAgICBpbmRpY2VzW2lkeCsrXSA9IHZlcnRleHRJRCArIDM7XHJcbiAgICAgICAgICAgIGluZGljZXNbaWR4KytdID0gdmVydGV4dElEICsgMjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QnVmZmVyKCkge1xyXG4gICAgICAgIHJldHVybiBjYy5yZW5kZXJlci5faGFuZGxlLmdldEJ1ZmZlcihcIm1lc2hcIiwgdGhpcy5nZXRWZm10KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFZmbXQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vQ29sb3IgPyB2Zm10UG9zVXZJbmRleCA6IHZmbXRQb3NVdkNvbG9ySW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlUmVuZGVyRGF0YShzcHJpdGUpIHtcclxuICAgICAgICB0aGlzLnBhY2tUb0R5bmFtaWNBdGxhcyhzcHJpdGUsIHNwcml0ZS5fc3ByaXRlRnJhbWUpO1xyXG5cclxuICAgICAgICBpZiAoc3ByaXRlLl92ZXJ0c0RpcnR5KSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVVZzKHNwcml0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmVydHMoc3ByaXRlKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVUZXh0dXJlSWR4KHNwcml0ZSk7XHJcbiAgICAgICAgICAgIHNwcml0ZS5fdmVydHNEaXJ0eSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWhq+WFhXRleHR1cmVJbmRleOaVsOaNrlxyXG4gICAgICogQHBhcmFtIHtjYy5TcHJpdGV9IHNwcml0ZSBcclxuICAgICAqL1xyXG4gICAgdXBkYXRlVGV4dHVyZUlkeChzcHJpdGUpIHtcclxuICAgICAgICBsZXQgdGV4dHVyZUlkeCA9IHNwcml0ZS5fdGV4dHVyZUlkeDtcclxuICAgICAgICBsZXQgdmVydHMgPSB0aGlzLl9yZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuXHJcbiAgICAgICAgbGV0IHZlcnRpY2VzQ291bnQgPSB0aGlzLnZlcnRpY2VzQ291bnQ7XHJcbiAgICAgICAgbGV0IGZsb2F0c1BlclZlcnQgPSB0aGlzLmZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgbGV0IHRleHR1cmVJbmRleE9mZnNldCA9IHRoaXMudGV4dHVyZUluZGV4T2Zmc2V0O1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZlcnRpY2VzQ291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaW5kZXggPSBpICogZmxvYXRzUGVyVmVydCArIHRleHR1cmVJbmRleE9mZnNldDtcclxuICAgICAgICAgICAgdmVydHNbaW5kZXhdID0gdGV4dHVyZUlkeDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVVZzKHNwcml0ZSkge1xyXG4gICAgICAgIGxldCB1diA9IHNwcml0ZS5fc3ByaXRlRnJhbWUudXY7XHJcbiAgICAgICAgbGV0IHV2T2Zmc2V0ID0gdGhpcy51dk9mZnNldDtcclxuICAgICAgICBsZXQgZmxvYXRzUGVyVmVydCA9IHRoaXMuZmxvYXRzUGVyVmVydDtcclxuICAgICAgICBsZXQgdmVydHMgPSB0aGlzLl9yZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgc3JjT2Zmc2V0ID0gaSAqIDI7XHJcbiAgICAgICAgICAgIGxldCBkc3RPZmZzZXQgPSBmbG9hdHNQZXJWZXJ0ICogaSArIHV2T2Zmc2V0O1xyXG4gICAgICAgICAgICB2ZXJ0c1tkc3RPZmZzZXRdID0gdXZbc3JjT2Zmc2V0XTtcclxuICAgICAgICAgICAgdmVydHNbZHN0T2Zmc2V0ICsgMV0gPSB1dltzcmNPZmZzZXQgKyAxXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVmVydHMoc3ByaXRlKSB7XHJcbiAgICAgICAgbGV0IG5vZGUgPSBzcHJpdGUubm9kZSxcclxuICAgICAgICAgICAgY3cgPSBub2RlLndpZHRoLCBjaCA9IG5vZGUuaGVpZ2h0LFxyXG4gICAgICAgICAgICBhcHB4ID0gbm9kZS5hbmNob3JYICogY3csIGFwcHkgPSBub2RlLmFuY2hvclkgKiBjaCxcclxuICAgICAgICAgICAgbCwgYiwgciwgdDtcclxuICAgICAgICBpZiAoc3ByaXRlLnRyaW0pIHtcclxuICAgICAgICAgICAgbCA9IC1hcHB4O1xyXG4gICAgICAgICAgICBiID0gLWFwcHk7XHJcbiAgICAgICAgICAgIHIgPSBjdyAtIGFwcHg7XHJcbiAgICAgICAgICAgIHQgPSBjaCAtIGFwcHk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgZnJhbWUgPSBzcHJpdGUuc3ByaXRlRnJhbWUsXHJcbiAgICAgICAgICAgICAgICBvdyA9IGZyYW1lLl9vcmlnaW5hbFNpemUud2lkdGgsIG9oID0gZnJhbWUuX29yaWdpbmFsU2l6ZS5oZWlnaHQsXHJcbiAgICAgICAgICAgICAgICBydyA9IGZyYW1lLl9yZWN0LndpZHRoLCByaCA9IGZyYW1lLl9yZWN0LmhlaWdodCxcclxuICAgICAgICAgICAgICAgIG9mZnNldCA9IGZyYW1lLl9vZmZzZXQsXHJcbiAgICAgICAgICAgICAgICBzY2FsZVggPSBjdyAvIG93LCBzY2FsZVkgPSBjaCAvIG9oO1xyXG4gICAgICAgICAgICBsZXQgdHJpbUxlZnQgPSBvZmZzZXQueCArIChvdyAtIHJ3KSAvIDI7XHJcbiAgICAgICAgICAgIGxldCB0cmltUmlnaHQgPSBvZmZzZXQueCAtIChvdyAtIHJ3KSAvIDI7XHJcbiAgICAgICAgICAgIGxldCB0cmltQm90dG9tID0gb2Zmc2V0LnkgKyAob2ggLSByaCkgLyAyO1xyXG4gICAgICAgICAgICBsZXQgdHJpbVRvcCA9IG9mZnNldC55IC0gKG9oIC0gcmgpIC8gMjtcclxuICAgICAgICAgICAgbCA9IHRyaW1MZWZ0ICogc2NhbGVYIC0gYXBweDtcclxuICAgICAgICAgICAgYiA9IHRyaW1Cb3R0b20gKiBzY2FsZVkgLSBhcHB5O1xyXG4gICAgICAgICAgICByID0gY3cgKyB0cmltUmlnaHQgKiBzY2FsZVggLSBhcHB4O1xyXG4gICAgICAgICAgICB0ID0gY2ggKyB0cmltVG9wICogc2NhbGVZIC0gYXBweTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBsb2NhbCA9IHRoaXMuX2xvY2FsO1xyXG4gICAgICAgIGxvY2FsWzBdID0gbDtcclxuICAgICAgICBsb2NhbFsxXSA9IGI7XHJcbiAgICAgICAgbG9jYWxbMl0gPSByO1xyXG4gICAgICAgIGxvY2FsWzNdID0gdDtcclxuICAgICAgICB0aGlzLnVwZGF0ZVdvcmxkVmVydHMoc3ByaXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmVydGljZXNGbG9hdHMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmVydGljZXNDb3VudCAqIHRoaXMuZmxvYXRzUGVyVmVydDtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVDb2xvckZ1bmMoY29tcCwgY29sb3IpIHtcclxuICAgICAgICBsZXQgdWludFZlcnRzID0gdGhpcy5fcmVuZGVyRGF0YS51aW50VkRhdGFzWzBdO1xyXG4gICAgICAgIGlmICghdWludFZlcnRzKSByZXR1cm47XHJcbiAgICAgICAgY29sb3IgPSBjb2xvciAhPSBudWxsID8gY29sb3IgOiBjb21wLm5vZGUuY29sb3IuX3ZhbDtcclxuICAgICAgICBsZXQgZmxvYXRzUGVyVmVydCA9IHRoaXMuZmxvYXRzUGVyVmVydDtcclxuICAgICAgICBsZXQgY29sb3JPZmZzZXQgPSB0aGlzLmNvbG9yT2Zmc2V0O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSBjb2xvck9mZnNldCwgbCA9IHVpbnRWZXJ0cy5sZW5ndGg7IGkgPCBsOyBpICs9IGZsb2F0c1BlclZlcnQpIHtcclxuICAgICAgICAgICAgdWludFZlcnRzW2ldID0gY29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVdvcmxkVmVydHMoY29tcCkge1xyXG4gICAgICAgIGlmIChDQ19OQVRJVkVSRU5ERVJFUikge1xyXG4gICAgICAgICAgICAvLyDljp/nlJ/lubPlj7Dlhbzlrrnku6PnoIEg5aSN5Yi25LqOanNiLWVuZ2luZS5qc+S4reeahGNjLkFzc2VtYmxlcjJELnByb3RvdHlwZS51cGRhdGVXb3JsZFZlcnRzXHJcbiAgICAgICAgICAgIHZhciBsb2NhbCA9IHRoaXMuX2xvY2FsO1xyXG4gICAgICAgICAgICB2YXIgdmVydHMgPSB0aGlzLl9yZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuICAgICAgICAgICAgdmFyIHZsID0gbG9jYWxbMF0sXHJcbiAgICAgICAgICAgICAgICB2ciA9IGxvY2FsWzJdLFxyXG4gICAgICAgICAgICAgICAgdmIgPSBsb2NhbFsxXSxcclxuICAgICAgICAgICAgICAgIHZ0ID0gbG9jYWxbM107XHJcbiAgICAgICAgICAgIHZhciBmbG9hdHNQZXJWZXJ0ID0gdGhpcy5mbG9hdHNQZXJWZXJ0O1xyXG4gICAgICAgICAgICB2YXIgdmVydGV4T2Zmc2V0ID0gMDsgLy8gbGVmdCBib3R0b21cclxuXHJcbiAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2bDtcclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2YjtcclxuICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7IC8vIHJpZ2h0IGJvdHRvbVxyXG5cclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IHZyO1xyXG4gICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IHZiO1xyXG4gICAgICAgICAgICB2ZXJ0ZXhPZmZzZXQgKz0gZmxvYXRzUGVyVmVydDsgLy8gbGVmdCB0b3BcclxuXHJcbiAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2bDtcclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2dDtcclxuICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7IC8vIHJpZ2h0IHRvcFxyXG5cclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IHZyO1xyXG4gICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IHZ0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBsb2NhbCA9IHRoaXMuX2xvY2FsO1xyXG4gICAgICAgICAgICBsZXQgdmVydHMgPSB0aGlzLl9yZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuXHJcbiAgICAgICAgICAgIGxldCBtYXRyaXggPSBjb21wLm5vZGUuX3dvcmxkTWF0cml4O1xyXG4gICAgICAgICAgICBsZXQgbWF0cml4bSA9IG1hdHJpeC5tLFxyXG4gICAgICAgICAgICAgICAgYSA9IG1hdHJpeG1bMF0sIGIgPSBtYXRyaXhtWzFdLCBjID0gbWF0cml4bVs0XSwgZCA9IG1hdHJpeG1bNV0sXHJcbiAgICAgICAgICAgICAgICB0eCA9IG1hdHJpeG1bMTJdLCB0eSA9IG1hdHJpeG1bMTNdO1xyXG5cclxuICAgICAgICAgICAgbGV0IHZsID0gbG9jYWxbMF0sIHZyID0gbG9jYWxbMl0sXHJcbiAgICAgICAgICAgICAgICB2YiA9IGxvY2FsWzFdLCB2dCA9IGxvY2FsWzNdO1xyXG5cclxuICAgICAgICAgICAgbGV0IGZsb2F0c1BlclZlcnQgPSB0aGlzLmZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgIGxldCB2ZXJ0ZXhPZmZzZXQgPSAwO1xyXG4gICAgICAgICAgICBsZXQganVzdFRyYW5zbGF0ZSA9IGEgPT09IDEgJiYgYiA9PT0gMCAmJiBjID09PSAwICYmIGQgPT09IDE7XHJcblxyXG4gICAgICAgICAgICBpZiAoanVzdFRyYW5zbGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gbGVmdCBib3R0b21cclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2bCArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2YiArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyByaWdodCBib3R0b21cclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2ciArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2YiArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyBsZWZ0IHRvcFxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IHZsICsgdHg7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IHZ0ICsgdHk7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0ZXhPZmZzZXQgKz0gZmxvYXRzUGVyVmVydDtcclxuICAgICAgICAgICAgICAgIC8vIHJpZ2h0IHRvcFxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IHZyICsgdHg7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IHZ0ICsgdHk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgYWwgPSBhICogdmwsIGFyID0gYSAqIHZyLFxyXG4gICAgICAgICAgICAgICAgICAgIGJsID0gYiAqIHZsLCBiciA9IGIgKiB2cixcclxuICAgICAgICAgICAgICAgICAgICBjYiA9IGMgKiB2YiwgY3QgPSBjICogdnQsXHJcbiAgICAgICAgICAgICAgICAgICAgZGIgPSBkICogdmIsIGR0ID0gZCAqIHZ0O1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIGxlZnQgYm90dG9tXHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXRdID0gYWwgKyBjYiArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSBibCArIGRiICsgdHk7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0ZXhPZmZzZXQgKz0gZmxvYXRzUGVyVmVydDtcclxuICAgICAgICAgICAgICAgIC8vIHJpZ2h0IGJvdHRvbVxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IGFyICsgY2IgKyB0eDtcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gYnIgKyBkYiArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyBsZWZ0IHRvcFxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IGFsICsgY3QgKyB0eDtcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gYmwgKyBkdCArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyByaWdodCB0b3BcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSBhciArIGN0ICsgdHg7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IGJyICsgZHQgKyB0eTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmaWxsQnVmZmVycyhjb21wLCByZW5kZXJlcikge1xyXG4gICAgICAgIGlmIChyZW5kZXJlci53b3JsZE1hdERpcnR5KSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlV29ybGRWZXJ0cyhjb21wKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCByZW5kZXJEYXRhID0gdGhpcy5fcmVuZGVyRGF0YTtcclxuICAgICAgICBsZXQgdkRhdGEgPSByZW5kZXJEYXRhLnZEYXRhc1swXTtcclxuICAgICAgICBsZXQgaURhdGEgPSByZW5kZXJEYXRhLmlEYXRhc1swXTtcclxuXHJcbiAgICAgICAgbGV0IGJ1ZmZlciA9IHRoaXMuZ2V0QnVmZmVyKHJlbmRlcmVyKTtcclxuICAgICAgICBsZXQgb2Zmc2V0SW5mbyA9IGJ1ZmZlci5yZXF1ZXN0KHRoaXMudmVydGljZXNDb3VudCwgdGhpcy5pbmRpY2VzQ291bnQpO1xyXG5cclxuICAgICAgICAvLyBidWZmZXIgZGF0YSBtYXkgYmUgcmVhbGxvYywgbmVlZCBnZXQgcmVmZXJlbmNlIGFmdGVyIHJlcXVlc3QuXHJcblxyXG4gICAgICAgIC8vIGZpbGwgdmVydGljZXNcclxuICAgICAgICBsZXQgdmVydGV4T2Zmc2V0ID0gb2Zmc2V0SW5mby5ieXRlT2Zmc2V0ID4+IDIsXHJcbiAgICAgICAgICAgIHZidWYgPSBidWZmZXIuX3ZEYXRhO1xyXG5cclxuICAgICAgICBpZiAodkRhdGEubGVuZ3RoICsgdmVydGV4T2Zmc2V0ID4gdmJ1Zi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdmJ1Zi5zZXQodkRhdGEuc3ViYXJyYXkoMCwgdmJ1Zi5sZW5ndGggLSB2ZXJ0ZXhPZmZzZXQpLCB2ZXJ0ZXhPZmZzZXQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZidWYuc2V0KHZEYXRhLCB2ZXJ0ZXhPZmZzZXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gZmlsbCBpbmRpY2VzXHJcbiAgICAgICAgbGV0IGlidWYgPSBidWZmZXIuX2lEYXRhLFxyXG4gICAgICAgICAgICBpbmRpY2VPZmZzZXQgPSBvZmZzZXRJbmZvLmluZGljZU9mZnNldCxcclxuICAgICAgICAgICAgdmVydGV4SWQgPSBvZmZzZXRJbmZvLnZlcnRleE9mZnNldDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbCA9IGlEYXRhLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBpYnVmW2luZGljZU9mZnNldCsrXSA9IHZlcnRleElkICsgaURhdGFbaV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHBhY2tUb0R5bmFtaWNBdGxhcyhjb21wLCBmcmFtZSkge1xyXG4gICAgICAgIGlmIChDQ19URVNUKSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmICghZnJhbWUuX29yaWdpbmFsICYmIGNjLmR5bmFtaWNBdGxhc01hbmFnZXIgJiYgZnJhbWUuX3RleHR1cmUucGFja2FibGUpIHtcclxuICAgICAgICAgICAgbGV0IHBhY2tlZEZyYW1lID0gY2MuZHluYW1pY0F0bGFzTWFuYWdlci5pbnNlcnRTcHJpdGVGcmFtZShmcmFtZSk7XHJcbiAgICAgICAgICAgIGlmIChwYWNrZWRGcmFtZSkge1xyXG4gICAgICAgICAgICAgICAgZnJhbWUuX3NldER5bmFtaWNBdGxhc0ZyYW1lKHBhY2tlZEZyYW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbWF0ZXJpYWwgPSBjb21wLl9tYXRlcmlhbHNbMF07XHJcbiAgICAgICAgaWYgKCFtYXRlcmlhbCkgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAobWF0ZXJpYWwuZ2V0UHJvcGVydHkoJ3RleHR1cmUnKSAhPT0gZnJhbWUuX3RleHR1cmUpIHtcclxuICAgICAgICAgICAgLy8gdGV4dHVyZSB3YXMgcGFja2VkIHRvIGR5bmFtaWMgYXRsYXMsIHNob3VsZCB1cGRhdGUgdXZzXHJcbiAgICAgICAgICAgIGNvbXAuX3ZlcnRzRGlydHkgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb21wLl91cGRhdGVNYXRlcmlhbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vQXNzZW1ibGVyLmpzIl0sIm5hbWVzIjpbImdmeCIsImNjIiwidmZtdFBvc1V2SW5kZXgiLCJWZXJ0ZXhGb3JtYXQiLCJuYW1lIiwiQVRUUl9QT1NJVElPTiIsInR5cGUiLCJBVFRSX1RZUEVfRkxPQVQzMiIsIm51bSIsIkFUVFJfVVYwIiwidmZtdFBvc1V2Q29sb3JJbmRleCIsIkFUVFJfQ09MT1IiLCJBVFRSX1RZUEVfVUlOVDgiLCJub3JtYWxpemUiLCJUbW9Bc3NlbWJsZXIiLCJfY2MkQXNzZW1ibGVyIiwiX2luaGVyaXRzTG9vc2UiLCJhcHBseSIsImFyZ3VtZW50cyIsIl9wcm90byIsInByb3RvdHlwZSIsImluaXQiLCJjb21wIiwiY2FsbCIsIl9ub0NvbG9yIiwiaXNOb0NvbG9yIiwidXBkYXRlQ29sb3IiLCJ1bmRlZmluZWQiLCJ1cGRhdGVDb2xvckZ1bmMiLCJ1dk9mZnNldCIsImNvbG9yT2Zmc2V0IiwidGV4dHVyZUluZGV4T2Zmc2V0IiwiZmxvYXRzUGVyVmVydCIsImluZGljZXNDb3VudCIsInZlcnRpY2VzQ291bnQiLCJfcmVuZGVyRGF0YSIsIlJlbmRlckRhdGEiLCJpbml0TG9jYWwiLCJpbml0RGF0YSIsIl9sb2NhbCIsImxlbmd0aCIsImRhdGEiLCJjcmVhdGVGbGV4RGF0YSIsImdldFZmbXQiLCJpbmRpY2VzIiwiaURhdGFzIiwiY291bnQiLCJpIiwiaWR4IiwidmVydGV4dElEIiwiZ2V0QnVmZmVyIiwicmVuZGVyZXIiLCJfaGFuZGxlIiwidXBkYXRlUmVuZGVyRGF0YSIsInNwcml0ZSIsInBhY2tUb0R5bmFtaWNBdGxhcyIsIl9zcHJpdGVGcmFtZSIsIl92ZXJ0c0RpcnR5IiwidXBkYXRlVVZzIiwidXBkYXRlVmVydHMiLCJ1cGRhdGVUZXh0dXJlSWR4IiwidGV4dHVyZUlkeCIsIl90ZXh0dXJlSWR4IiwidmVydHMiLCJ2RGF0YXMiLCJpbmRleCIsInV2Iiwic3JjT2Zmc2V0IiwiZHN0T2Zmc2V0Iiwibm9kZSIsImN3Iiwid2lkdGgiLCJjaCIsImhlaWdodCIsImFwcHgiLCJhbmNob3JYIiwiYXBweSIsImFuY2hvclkiLCJsIiwiYiIsInIiLCJ0IiwidHJpbSIsImZyYW1lIiwic3ByaXRlRnJhbWUiLCJvdyIsIl9vcmlnaW5hbFNpemUiLCJvaCIsInJ3IiwiX3JlY3QiLCJyaCIsIm9mZnNldCIsIl9vZmZzZXQiLCJzY2FsZVgiLCJzY2FsZVkiLCJ0cmltTGVmdCIsIngiLCJ0cmltUmlnaHQiLCJ0cmltQm90dG9tIiwieSIsInRyaW1Ub3AiLCJsb2NhbCIsInVwZGF0ZVdvcmxkVmVydHMiLCJjb2xvciIsInVpbnRWZXJ0cyIsInVpbnRWRGF0YXMiLCJfdmFsIiwiQ0NfTkFUSVZFUkVOREVSRVIiLCJ2bCIsInZyIiwidmIiLCJ2dCIsInZlcnRleE9mZnNldCIsIm1hdHJpeCIsIl93b3JsZE1hdHJpeCIsIm1hdHJpeG0iLCJtIiwiYSIsImMiLCJkIiwidHgiLCJ0eSIsImp1c3RUcmFuc2xhdGUiLCJhbCIsImFyIiwiYmwiLCJiciIsImNiIiwiY3QiLCJkYiIsImR0IiwiZmlsbEJ1ZmZlcnMiLCJ3b3JsZE1hdERpcnR5IiwicmVuZGVyRGF0YSIsInZEYXRhIiwiaURhdGEiLCJidWZmZXIiLCJvZmZzZXRJbmZvIiwicmVxdWVzdCIsImJ5dGVPZmZzZXQiLCJ2YnVmIiwiX3ZEYXRhIiwic2V0Iiwic3ViYXJyYXkiLCJpYnVmIiwiX2lEYXRhIiwiaW5kaWNlT2Zmc2V0IiwidmVydGV4SWQiLCJDQ19URVNUIiwiX29yaWdpbmFsIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsIl90ZXh0dXJlIiwicGFja2FibGUiLCJwYWNrZWRGcmFtZSIsImluc2VydFNwcml0ZUZyYW1lIiwiX3NldER5bmFtaWNBdGxhc0ZyYW1lIiwibWF0ZXJpYWwiLCJfbWF0ZXJpYWxzIiwiZ2V0UHJvcGVydHkiLCJfdXBkYXRlTWF0ZXJpYWwiLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJn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QUFDcUosbUJBQW1CLENBQUNJLGlCQUFpQixDQUFDdkUsS0FBSyxDQUFDO01BQ2pFLElBQUlzRSxXQUFXLEVBQUU7UUFDYnRFLEtBQUssQ0FBQ3dFLHFCQUFxQixDQUFDRixXQUFXLENBQUM7TUFDNUM7SUFDSjtJQUNBLElBQUlHLFFBQVEsR0FBR3RJLElBQUksQ0FBQ3VJLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDakMsSUFBSSxDQUFDRCxRQUFRLEVBQUU7SUFFZixJQUFJQSxRQUFRLENBQUNFLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSzNFLEtBQUssQ0FBQ29FLFFBQVEsRUFBRTtNQUNwRDtNQUNBakksSUFBSSxDQUFDbUMsV0FBVyxHQUFHLElBQUk7TUFDdkJuQyxJQUFJLENBQUN5SSxlQUFlLEVBQUU7SUFDMUI7RUFDSixDQUFDO0VBQUFDLFlBQUEsQ0FBQWxKLFlBQUE7SUFBQW1KLEdBQUE7SUFBQUMsR0FBQSxFQXBKRCxTQUFBQSxJQUFBLEVBQXFCO01BQ2pCLE9BQU8sSUFBSSxDQUFDaEksYUFBYSxHQUFHLElBQUksQ0FBQ0YsYUFBYTtJQUNsRDtFQUFDO0VBQUEsT0FBQWxCLFlBQUE7QUFBQSxFQXBJNkJiLEVBQUUsQ0FBQ2tLLFNBQVM7QUFBQUMsT0FBQSxDQUFBdEosWUFBQSxHQUFBQSxZQUFBIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgZ2Z4ID0gY2MuZ2Z4O1xyXG4vLyDpopzoibLljrvpmaQgKyDnianku7blm77pm4blkIjmiblcclxudmFyIHZmbXRQb3NVdkluZGV4ID0gbmV3IGdmeC5WZXJ0ZXhGb3JtYXQoW1xyXG4gICAgeyBuYW1lOiBnZnguQVRUUl9QT1NJVElPTiwgdHlwZTogZ2Z4LkFUVFJfVFlQRV9GTE9BVDMyLCBudW06IDIgfSxcclxuICAgIHsgbmFtZTogZ2Z4LkFUVFJfVVYwLCB0eXBlOiBnZnguQVRUUl9UWVBFX0ZMT0FUMzIsIG51bTogMiB9LFxyXG4gICAgeyBuYW1lOiBcImFfdGV4dHVyZV9pZHhcIiwgdHlwZTogZ2Z4LkFUVFJfVFlQRV9GTE9BVDMyLCBudW06IDEgfSxcclxuXSk7XHJcblxyXG4vLyDku4Xnianku7blm77pm4blkIjmiblcclxudmFyIHZmbXRQb3NVdkNvbG9ySW5kZXggPSBuZXcgZ2Z4LlZlcnRleEZvcm1hdChbXHJcbiAgICB7IG5hbWU6IGdmeC5BVFRSX1BPU0lUSU9OLCB0eXBlOiBnZnguQVRUUl9UWVBFX0ZMT0FUMzIsIG51bTogMiB9LFxyXG4gICAgeyBuYW1lOiBnZnguQVRUUl9VVjAsIHR5cGU6IGdmeC5BVFRSX1RZUEVfRkxPQVQzMiwgbnVtOiAyIH0sXHJcbiAgICB7IG5hbWU6IFwiYV90ZXh0dXJlX2lkeFwiLCB0eXBlOiBnZnguQVRUUl9UWVBFX0ZMT0FUMzIsIG51bTogMSB9LFxyXG4gICAgeyBuYW1lOiBnZnguQVRUUl9DT0xPUiwgdHlwZTogZ2Z4LkFUVFJfVFlQRV9VSU5UOCwgbnVtOiA0LCBub3JtYWxpemU6IHRydWUgfSxcclxuXSk7XHJcblxyXG5leHBvcnQgY2xhc3MgVG1vQXNzZW1ibGVyIGV4dGVuZHMgY2MuQXNzZW1ibGVyIHtcclxuICAgIGluaXQoY29tcCkge1xyXG4gICAgICAgIHN1cGVyLmluaXQoY29tcCk7XHJcblxyXG4gICAgICAgIHRoaXMuX25vQ29sb3IgPSBjb21wLmlzTm9Db2xvcigpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlQ29sb3IgPSB0aGlzLl9ub0NvbG9yID8gdW5kZWZpbmVkIDogdGhpcy51cGRhdGVDb2xvckZ1bmM7XHJcblxyXG4gICAgICAgIHRoaXMudXZPZmZzZXQgPSAyO1xyXG4gICAgICAgIHRoaXMuY29sb3JPZmZzZXQgPSA1O1xyXG4gICAgICAgIHRoaXMudGV4dHVyZUluZGV4T2Zmc2V0ID0gNDtcclxuICAgICAgICB0aGlzLmZsb2F0c1BlclZlcnQgPSB0aGlzLl9ub0NvbG9yID8gNSA6IDY7XHJcblxyXG4gICAgICAgIHRoaXMuaW5kaWNlc0NvdW50ID0gNjtcclxuICAgICAgICB0aGlzLnZlcnRpY2VzQ291bnQgPSA0O1xyXG5cclxuICAgICAgICB0aGlzLl9yZW5kZXJEYXRhID0gbmV3IGNjLlJlbmRlckRhdGEoKTtcclxuICAgICAgICB0aGlzLl9yZW5kZXJEYXRhLmluaXQodGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdExvY2FsKCk7XHJcbiAgICAgICAgdGhpcy5pbml0RGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRMb2NhbCgpIHtcclxuICAgICAgICB0aGlzLl9sb2NhbCA9IFtdO1xyXG4gICAgICAgIHRoaXMuX2xvY2FsLmxlbmd0aCA9IDQ7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdERhdGEoKSB7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB0aGlzLl9yZW5kZXJEYXRhO1xyXG4gICAgICAgIGRhdGEuY3JlYXRlRmxleERhdGEoMCwgdGhpcy52ZXJ0aWNlc0NvdW50LCB0aGlzLmluZGljZXNDb3VudCwgdGhpcy5nZXRWZm10KCkpO1xyXG5cclxuICAgICAgICAvLyDloavlhYXpobbngrnntKLlvJXkv6Hmga9cclxuICAgICAgICBsZXQgaW5kaWNlcyA9IGRhdGEuaURhdGFzWzBdO1xyXG4gICAgICAgIGxldCBjb3VudCA9IGluZGljZXMubGVuZ3RoIC8gNjtcclxuICAgICAgICBmb3IgKGxldCBpID0gMCwgaWR4ID0gMDsgaSA8IGNvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IHZlcnRleHRJRCA9IGkgKiA0O1xyXG4gICAgICAgICAgICBpbmRpY2VzW2lkeCsrXSA9IHZlcnRleHRJRDtcclxuICAgICAgICAgICAgaW5kaWNlc1tpZHgrK10gPSB2ZXJ0ZXh0SUQgKyAxO1xyXG4gICAgICAgICAgICBpbmRpY2VzW2lkeCsrXSA9IHZlcnRleHRJRCArIDI7XHJcbiAgICAgICAgICAgIGluZGljZXNbaWR4KytdID0gdmVydGV4dElEICsgMTtcclxuICAgICAgICAgICAgaW5kaWNlc1tpZHgrK10gPSB2ZXJ0ZXh0SUQgKyAzO1xyXG4gICAgICAgICAgICBpbmRpY2VzW2lkeCsrXSA9IHZlcnRleHRJRCArIDI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldEJ1ZmZlcigpIHtcclxuICAgICAgICByZXR1cm4gY2MucmVuZGVyZXIuX2hhbmRsZS5nZXRCdWZmZXIoXCJtZXNoXCIsIHRoaXMuZ2V0VmZtdCgpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRWZm10KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9ub0NvbG9yID8gdmZtdFBvc1V2SW5kZXggOiB2Zm10UG9zVXZDb2xvckluZGV4O1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVJlbmRlckRhdGEoc3ByaXRlKSB7XHJcbiAgICAgICAgdGhpcy5wYWNrVG9EeW5hbWljQXRsYXMoc3ByaXRlLCBzcHJpdGUuX3Nwcml0ZUZyYW1lKTtcclxuXHJcbiAgICAgICAgaWYgKHNwcml0ZS5fdmVydHNEaXJ0eSkge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVVWcyhzcHJpdGUpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZlcnRzKHNwcml0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVGV4dHVyZUlkeChzcHJpdGUpO1xyXG4gICAgICAgICAgICBzcHJpdGUuX3ZlcnRzRGlydHkgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDloavlhYV0ZXh0dXJlSW5kZXjmlbDmja5cclxuICAgICAqIEBwYXJhbSB7Y2MuU3ByaXRlfSBzcHJpdGUgXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZVRleHR1cmVJZHgoc3ByaXRlKSB7XHJcbiAgICAgICAgbGV0IHRleHR1cmVJZHggPSBzcHJpdGUuX3RleHR1cmVJZHg7XHJcbiAgICAgICAgbGV0IHZlcnRzID0gdGhpcy5fcmVuZGVyRGF0YS52RGF0YXNbMF07XHJcblxyXG4gICAgICAgIGxldCB2ZXJ0aWNlc0NvdW50ID0gdGhpcy52ZXJ0aWNlc0NvdW50O1xyXG4gICAgICAgIGxldCBmbG9hdHNQZXJWZXJ0ID0gdGhpcy5mbG9hdHNQZXJWZXJ0O1xyXG4gICAgICAgIGxldCB0ZXh0dXJlSW5kZXhPZmZzZXQgPSB0aGlzLnRleHR1cmVJbmRleE9mZnNldDtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2ZXJ0aWNlc0NvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGluZGV4ID0gaSAqIGZsb2F0c1BlclZlcnQgKyB0ZXh0dXJlSW5kZXhPZmZzZXQ7XHJcbiAgICAgICAgICAgIHZlcnRzW2luZGV4XSA9IHRleHR1cmVJZHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVVWcyhzcHJpdGUpIHtcclxuICAgICAgICBsZXQgdXYgPSBzcHJpdGUuX3Nwcml0ZUZyYW1lLnV2O1xyXG4gICAgICAgIGxldCB1dk9mZnNldCA9IHRoaXMudXZPZmZzZXQ7XHJcbiAgICAgICAgbGV0IGZsb2F0c1BlclZlcnQgPSB0aGlzLmZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgbGV0IHZlcnRzID0gdGhpcy5fcmVuZGVyRGF0YS52RGF0YXNbMF07XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0OyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IHNyY09mZnNldCA9IGkgKiAyO1xyXG4gICAgICAgICAgICBsZXQgZHN0T2Zmc2V0ID0gZmxvYXRzUGVyVmVydCAqIGkgKyB1dk9mZnNldDtcclxuICAgICAgICAgICAgdmVydHNbZHN0T2Zmc2V0XSA9IHV2W3NyY09mZnNldF07XHJcbiAgICAgICAgICAgIHZlcnRzW2RzdE9mZnNldCArIDFdID0gdXZbc3JjT2Zmc2V0ICsgMV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVZlcnRzKHNwcml0ZSkge1xyXG4gICAgICAgIGxldCBub2RlID0gc3ByaXRlLm5vZGUsXHJcbiAgICAgICAgICAgIGN3ID0gbm9kZS53aWR0aCwgY2ggPSBub2RlLmhlaWdodCxcclxuICAgICAgICAgICAgYXBweCA9IG5vZGUuYW5jaG9yWCAqIGN3LCBhcHB5ID0gbm9kZS5hbmNob3JZICogY2gsXHJcbiAgICAgICAgICAgIGwsIGIsIHIsIHQ7XHJcbiAgICAgICAgaWYgKHNwcml0ZS50cmltKSB7XHJcbiAgICAgICAgICAgIGwgPSAtYXBweDtcclxuICAgICAgICAgICAgYiA9IC1hcHB5O1xyXG4gICAgICAgICAgICByID0gY3cgLSBhcHB4O1xyXG4gICAgICAgICAgICB0ID0gY2ggLSBhcHB5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IGZyYW1lID0gc3ByaXRlLnNwcml0ZUZyYW1lLFxyXG4gICAgICAgICAgICAgICAgb3cgPSBmcmFtZS5fb3JpZ2luYWxTaXplLndpZHRoLCBvaCA9IGZyYW1lLl9vcmlnaW5hbFNpemUuaGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgcncgPSBmcmFtZS5fcmVjdC53aWR0aCwgcmggPSBmcmFtZS5fcmVjdC5oZWlnaHQsXHJcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBmcmFtZS5fb2Zmc2V0LFxyXG4gICAgICAgICAgICAgICAgc2NhbGVYID0gY3cgLyBvdywgc2NhbGVZID0gY2ggLyBvaDtcclxuICAgICAgICAgICAgbGV0IHRyaW1MZWZ0ID0gb2Zmc2V0LnggKyAob3cgLSBydykgLyAyO1xyXG4gICAgICAgICAgICBsZXQgdHJpbVJpZ2h0ID0gb2Zmc2V0LnggLSAob3cgLSBydykgLyAyO1xyXG4gICAgICAgICAgICBsZXQgdHJpbUJvdHRvbSA9IG9mZnNldC55ICsgKG9oIC0gcmgpIC8gMjtcclxuICAgICAgICAgICAgbGV0IHRyaW1Ub3AgPSBvZmZzZXQueSAtIChvaCAtIHJoKSAvIDI7XHJcbiAgICAgICAgICAgIGwgPSB0cmltTGVmdCAqIHNjYWxlWCAtIGFwcHg7XHJcbiAgICAgICAgICAgIGIgPSB0cmltQm90dG9tICogc2NhbGVZIC0gYXBweTtcclxuICAgICAgICAgICAgciA9IGN3ICsgdHJpbVJpZ2h0ICogc2NhbGVYIC0gYXBweDtcclxuICAgICAgICAgICAgdCA9IGNoICsgdHJpbVRvcCAqIHNjYWxlWSAtIGFwcHk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgbG9jYWwgPSB0aGlzLl9sb2NhbDtcclxuICAgICAgICBsb2NhbFswXSA9IGw7XHJcbiAgICAgICAgbG9jYWxbMV0gPSBiO1xyXG4gICAgICAgIGxvY2FsWzJdID0gcjtcclxuICAgICAgICBsb2NhbFszXSA9IHQ7XHJcbiAgICAgICAgdGhpcy51cGRhdGVXb3JsZFZlcnRzKHNwcml0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHZlcnRpY2VzRmxvYXRzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZlcnRpY2VzQ291bnQgKiB0aGlzLmZsb2F0c1BlclZlcnQ7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlQ29sb3JGdW5jKGNvbXAsIGNvbG9yKSB7XHJcbiAgICAgICAgbGV0IHVpbnRWZXJ0cyA9IHRoaXMuX3JlbmRlckRhdGEudWludFZEYXRhc1swXTtcclxuICAgICAgICBpZiAoIXVpbnRWZXJ0cykgcmV0dXJuO1xyXG4gICAgICAgIGNvbG9yID0gY29sb3IgIT0gbnVsbCA/IGNvbG9yIDogY29tcC5ub2RlLmNvbG9yLl92YWw7XHJcbiAgICAgICAgbGV0IGZsb2F0c1BlclZlcnQgPSB0aGlzLmZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgbGV0IGNvbG9yT2Zmc2V0ID0gdGhpcy5jb2xvck9mZnNldDtcclxuICAgICAgICBmb3IgKGxldCBpID0gY29sb3JPZmZzZXQsIGwgPSB1aW50VmVydHMubGVuZ3RoOyBpIDwgbDsgaSArPSBmbG9hdHNQZXJWZXJ0KSB7XHJcbiAgICAgICAgICAgIHVpbnRWZXJ0c1tpXSA9IGNvbG9yO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVXb3JsZFZlcnRzKGNvbXApIHtcclxuICAgICAgICBpZiAoQ0NfTkFUSVZFUkVOREVSRVIpIHtcclxuICAgICAgICAgICAgLy8g5Y6f55Sf5bmz5Y+w5YW85a655Luj56CBIOWkjeWItuS6jmpzYi1lbmdpbmUuanPkuK3nmoRjYy5Bc3NlbWJsZXIyRC5wcm90b3R5cGUudXBkYXRlV29ybGRWZXJ0c1xyXG4gICAgICAgICAgICB2YXIgbG9jYWwgPSB0aGlzLl9sb2NhbDtcclxuICAgICAgICAgICAgdmFyIHZlcnRzID0gdGhpcy5fcmVuZGVyRGF0YS52RGF0YXNbMF07XHJcbiAgICAgICAgICAgIHZhciB2bCA9IGxvY2FsWzBdLFxyXG4gICAgICAgICAgICAgICAgdnIgPSBsb2NhbFsyXSxcclxuICAgICAgICAgICAgICAgIHZiID0gbG9jYWxbMV0sXHJcbiAgICAgICAgICAgICAgICB2dCA9IGxvY2FsWzNdO1xyXG4gICAgICAgICAgICB2YXIgZmxvYXRzUGVyVmVydCA9IHRoaXMuZmxvYXRzUGVyVmVydDtcclxuICAgICAgICAgICAgdmFyIHZlcnRleE9mZnNldCA9IDA7IC8vIGxlZnQgYm90dG9tXHJcblxyXG4gICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXRdID0gdmw7XHJcbiAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gdmI7XHJcbiAgICAgICAgICAgIHZlcnRleE9mZnNldCArPSBmbG9hdHNQZXJWZXJ0OyAvLyByaWdodCBib3R0b21cclxuXHJcbiAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2cjtcclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2YjtcclxuICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7IC8vIGxlZnQgdG9wXHJcblxyXG4gICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXRdID0gdmw7XHJcbiAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gdnQ7XHJcbiAgICAgICAgICAgIHZlcnRleE9mZnNldCArPSBmbG9hdHNQZXJWZXJ0OyAvLyByaWdodCB0b3BcclxuXHJcbiAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2cjtcclxuICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2dDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgbG9jYWwgPSB0aGlzLl9sb2NhbDtcclxuICAgICAgICAgICAgbGV0IHZlcnRzID0gdGhpcy5fcmVuZGVyRGF0YS52RGF0YXNbMF07XHJcblxyXG4gICAgICAgICAgICBsZXQgbWF0cml4ID0gY29tcC5ub2RlLl93b3JsZE1hdHJpeDtcclxuICAgICAgICAgICAgbGV0IG1hdHJpeG0gPSBtYXRyaXgubSxcclxuICAgICAgICAgICAgICAgIGEgPSBtYXRyaXhtWzBdLCBiID0gbWF0cml4bVsxXSwgYyA9IG1hdHJpeG1bNF0sIGQgPSBtYXRyaXhtWzVdLFxyXG4gICAgICAgICAgICAgICAgdHggPSBtYXRyaXhtWzEyXSwgdHkgPSBtYXRyaXhtWzEzXTtcclxuXHJcbiAgICAgICAgICAgIGxldCB2bCA9IGxvY2FsWzBdLCB2ciA9IGxvY2FsWzJdLFxyXG4gICAgICAgICAgICAgICAgdmIgPSBsb2NhbFsxXSwgdnQgPSBsb2NhbFszXTtcclxuXHJcbiAgICAgICAgICAgIGxldCBmbG9hdHNQZXJWZXJ0ID0gdGhpcy5mbG9hdHNQZXJWZXJ0O1xyXG4gICAgICAgICAgICBsZXQgdmVydGV4T2Zmc2V0ID0gMDtcclxuICAgICAgICAgICAgbGV0IGp1c3RUcmFuc2xhdGUgPSBhID09PSAxICYmIGIgPT09IDAgJiYgYyA9PT0gMCAmJiBkID09PSAxO1xyXG5cclxuICAgICAgICAgICAgaWYgKGp1c3RUcmFuc2xhdGUpIHtcclxuICAgICAgICAgICAgICAgIC8vIGxlZnQgYm90dG9tXHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXRdID0gdmwgKyB0eDtcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gdmIgKyB0eTtcclxuICAgICAgICAgICAgICAgIHZlcnRleE9mZnNldCArPSBmbG9hdHNQZXJWZXJ0O1xyXG4gICAgICAgICAgICAgICAgLy8gcmlnaHQgYm90dG9tXHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXRdID0gdnIgKyB0eDtcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gdmIgKyB0eTtcclxuICAgICAgICAgICAgICAgIHZlcnRleE9mZnNldCArPSBmbG9hdHNQZXJWZXJ0O1xyXG4gICAgICAgICAgICAgICAgLy8gbGVmdCB0b3BcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2bCArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2dCArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyByaWdodCB0b3BcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSB2ciArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSB2dCArIHR5O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IGFsID0gYSAqIHZsLCBhciA9IGEgKiB2cixcclxuICAgICAgICAgICAgICAgICAgICBibCA9IGIgKiB2bCwgYnIgPSBiICogdnIsXHJcbiAgICAgICAgICAgICAgICAgICAgY2IgPSBjICogdmIsIGN0ID0gYyAqIHZ0LFxyXG4gICAgICAgICAgICAgICAgICAgIGRiID0gZCAqIHZiLCBkdCA9IGQgKiB2dDtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBsZWZ0IGJvdHRvbVxyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0XSA9IGFsICsgY2IgKyB0eDtcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldCArIDFdID0gYmwgKyBkYiArIHR5O1xyXG4gICAgICAgICAgICAgICAgdmVydGV4T2Zmc2V0ICs9IGZsb2F0c1BlclZlcnQ7XHJcbiAgICAgICAgICAgICAgICAvLyByaWdodCBib3R0b21cclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSBhciArIGNiICsgdHg7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IGJyICsgZGIgKyB0eTtcclxuICAgICAgICAgICAgICAgIHZlcnRleE9mZnNldCArPSBmbG9hdHNQZXJWZXJ0O1xyXG4gICAgICAgICAgICAgICAgLy8gbGVmdCB0b3BcclxuICAgICAgICAgICAgICAgIHZlcnRzW3ZlcnRleE9mZnNldF0gPSBhbCArIGN0ICsgdHg7XHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXQgKyAxXSA9IGJsICsgZHQgKyB0eTtcclxuICAgICAgICAgICAgICAgIHZlcnRleE9mZnNldCArPSBmbG9hdHNQZXJWZXJ0O1xyXG4gICAgICAgICAgICAgICAgLy8gcmlnaHQgdG9wXHJcbiAgICAgICAgICAgICAgICB2ZXJ0c1t2ZXJ0ZXhPZmZzZXRdID0gYXIgKyBjdCArIHR4O1xyXG4gICAgICAgICAgICAgICAgdmVydHNbdmVydGV4T2Zmc2V0ICsgMV0gPSBiciArIGR0ICsgdHk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZmlsbEJ1ZmZlcnMoY29tcCwgcmVuZGVyZXIpIHtcclxuICAgICAgICBpZiAocmVuZGVyZXIud29ybGRNYXREaXJ0eSkge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVdvcmxkVmVydHMoY29tcCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgcmVuZGVyRGF0YSA9IHRoaXMuX3JlbmRlckRhdGE7XHJcbiAgICAgICAgbGV0IHZEYXRhID0gcmVuZGVyRGF0YS52RGF0YXNbMF07XHJcbiAgICAgICAgbGV0IGlEYXRhID0gcmVuZGVyRGF0YS5pRGF0YXNbMF07XHJcblxyXG4gICAgICAgIGxldCBidWZmZXIgPSB0aGlzLmdldEJ1ZmZlcihyZW5kZXJlcik7XHJcbiAgICAgICAgbGV0IG9mZnNldEluZm8gPSBidWZmZXIucmVxdWVzdCh0aGlzLnZlcnRpY2VzQ291bnQsIHRoaXMuaW5kaWNlc0NvdW50KTtcclxuXHJcbiAgICAgICAgLy8gYnVmZmVyIGRhdGEgbWF5IGJlIHJlYWxsb2MsIG5lZWQgZ2V0IHJlZmVyZW5jZSBhZnRlciByZXF1ZXN0LlxyXG5cclxuICAgICAgICAvLyBmaWxsIHZlcnRpY2VzXHJcbiAgICAgICAgbGV0IHZlcnRleE9mZnNldCA9IG9mZnNldEluZm8uYnl0ZU9mZnNldCA+PiAyLFxyXG4gICAgICAgICAgICB2YnVmID0gYnVmZmVyLl92RGF0YTtcclxuXHJcbiAgICAgICAgaWYgKHZEYXRhLmxlbmd0aCArIHZlcnRleE9mZnNldCA+IHZidWYubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHZidWYuc2V0KHZEYXRhLnN1YmFycmF5KDAsIHZidWYubGVuZ3RoIC0gdmVydGV4T2Zmc2V0KSwgdmVydGV4T2Zmc2V0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB2YnVmLnNldCh2RGF0YSwgdmVydGV4T2Zmc2V0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGZpbGwgaW5kaWNlc1xyXG4gICAgICAgIGxldCBpYnVmID0gYnVmZmVyLl9pRGF0YSxcclxuICAgICAgICAgICAgaW5kaWNlT2Zmc2V0ID0gb2Zmc2V0SW5mby5pbmRpY2VPZmZzZXQsXHJcbiAgICAgICAgICAgIHZlcnRleElkID0gb2Zmc2V0SW5mby52ZXJ0ZXhPZmZzZXQ7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBpRGF0YS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcclxuICAgICAgICAgICAgaWJ1ZltpbmRpY2VPZmZzZXQrK10gPSB2ZXJ0ZXhJZCArIGlEYXRhW2ldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwYWNrVG9EeW5hbWljQXRsYXMoY29tcCwgZnJhbWUpIHtcclxuICAgICAgICBpZiAoQ0NfVEVTVCkgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAoIWZyYW1lLl9vcmlnaW5hbCAmJiBjYy5keW5hbWljQXRsYXNNYW5hZ2VyICYmIGZyYW1lLl90ZXh0dXJlLnBhY2thYmxlKSB7XHJcbiAgICAgICAgICAgIGxldCBwYWNrZWRGcmFtZSA9IGNjLmR5bmFtaWNBdGxhc01hbmFnZXIuaW5zZXJ0U3ByaXRlRnJhbWUoZnJhbWUpO1xyXG4gICAgICAgICAgICBpZiAocGFja2VkRnJhbWUpIHtcclxuICAgICAgICAgICAgICAgIGZyYW1lLl9zZXREeW5hbWljQXRsYXNGcmFtZShwYWNrZWRGcmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG1hdGVyaWFsID0gY29tcC5fbWF0ZXJpYWxzWzBdO1xyXG4gICAgICAgIGlmICghbWF0ZXJpYWwpIHJldHVybjtcclxuXHJcbiAgICAgICAgaWYgKG1hdGVyaWFsLmdldFByb3BlcnR5KCd0ZXh0dXJlJykgIT09IGZyYW1lLl90ZXh0dXJlKSB7XHJcbiAgICAgICAgICAgIC8vIHRleHR1cmUgd2FzIHBhY2tlZCB0byBkeW5hbWljIGF0bGFzLCBzaG91bGQgdXBkYXRlIHV2c1xyXG4gICAgICAgICAgICBjb21wLl92ZXJ0c0RpcnR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgY29tcC5fdXBkYXRlTWF0ZXJpYWwoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0= \ No newline at end of file diff --git a/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoObjectGroup.js b/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoObjectGroup.js index 26789e7..2cd51c9 100644 --- a/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoObjectGroup.js +++ b/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoObjectGroup.js @@ -17,15 +17,14 @@ cc._RF.push(module, '30e2eSQWDNKI69FbaYfN62j', 'TmoObjectGroup'); 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 TmoSprite = require("./TmoSprite"); var _default = cc.Class({ "extends": cc.TiledObjectGroup, _init: function _init(groupInfo, mapInfo, texGrids, tiledMap) { @@ -46,8 +45,7 @@ var _default = cc.Class({ var mapSize = mapInfo._mapSize; var tileSize = mapInfo._tileSize; var width = 0, - height = 0; - + height = 0; if (mapInfo.orientation === Orientation.HEX) { if (mapInfo.getStaggerAxis() === StaggerAxis.STAGGERAXIS_X) { height = tileSize.height * (mapSize.height + 0.5); @@ -64,31 +62,28 @@ var _default = cc.Class({ 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 = {}; // 生成映射Map { Texture2D: textureIndex } + 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; } } - if (Orientation.ISO !== mapInfo.orientation) { object.y = height - object.y; } else { @@ -97,16 +92,13 @@ var _default = cc.Class({ 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; @@ -119,11 +111,9 @@ var _default = cc.Class({ 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; @@ -133,7 +123,6 @@ var _default = cc.Class({ textNode.width = object.width; textNode.height = object.height; } - if (objType === TMXObjectType.IMAGE) { var gid = object.gid; var grid = texGrids[(gid & FLIPPED_MASK) >>> 0]; @@ -145,19 +134,18 @@ var _default = cc.Class({ 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 + 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; @@ -165,7 +153,6 @@ var _default = cc.Class({ imgNode.anchorX = tileOffsetX / imgWidth; imgNode.anchorY = tileOffsetY / imgHeight; } - imgNode.active = object.visible; imgNode.angle = -object.rotation; imgNode.x = object.x - leftTopX; @@ -176,53 +163,48 @@ var _default = cc.Class({ 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 + sp.setVertsDirty(); + // object group may has no width or height info imgNode.width = imgWidth; - imgNode.height = imgHeight; // 收集图集 更新textureIndexMap + imgNode.height = imgHeight; + // 收集图集 更新textureIndexMap if (!textureIndexMap.has(sourceImage)) { textureIndexMap.set(sourceImage, objectTextures.length); objectTextures.push(sourceImage); - } // 设置textureIndex - + } + // 设置textureIndex var textureIndex = textureIndexMap.get(sourceImage); sp.setTextureIdx(textureIndex + 1); } } + this._objects = objects; - this._objects = objects; // destroy useless node - + // 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; @@ -231,7 +213,6 @@ var _default = cc.Class({ } } }); - exports["default"] = _default; module.exports = exports["default"]; @@ -246,4 +227,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vT2JqZWN0R3JvdXAuanMiXSwibmFtZXMiOlsiVG1vU3ByaXRlIiwicmVxdWlyZSIsImNjIiwiQ2xhc3MiLCJUaWxlZE9iamVjdEdyb3VwIiwiX2luaXQiLCJncm91cEluZm8iLCJtYXBJbmZvIiwidGV4R3JpZHMiLCJ0aWxlZE1hcCIsIlRpbGVkTWFwIiwiVE1YT2JqZWN0VHlwZSIsIk9yaWVudGF0aW9uIiwiU3RhZ2dlckF4aXMiLCJUaWxlRmxhZyIsIkZMSVBQRURfTUFTSyIsIkZMQUdfSE9SSVpPTlRBTCIsIkhPUklaT05UQUwiLCJGTEFHX1ZFUlRJQ0FMIiwiVkVSVElDQUwiLCJfZ3JvdXBOYW1lIiwibmFtZSIsIl9wb3NpdGlvbk9mZnNldCIsIm9mZnNldCIsIl9tYXBJbmZvIiwiX3Byb3BlcnRpZXMiLCJnZXRQcm9wZXJ0aWVzIiwiX29mZnNldCIsInYyIiwieCIsInkiLCJfb3BhY2l0eSIsIm1hcFNpemUiLCJfbWFwU2l6ZSIsInRpbGVTaXplIiwiX3RpbGVTaXplIiwid2lkdGgiLCJoZWlnaHQiLCJvcmllbnRhdGlvbiIsIkhFWCIsImdldFN0YWdnZXJBeGlzIiwiU1RBR0dFUkFYSVNfWCIsImdldEhleFNpZGVMZW5ndGgiLCJNYXRoIiwiZmxvb3IiLCJJU08iLCJ3aCIsIm5vZGUiLCJzZXRDb250ZW50U2l6ZSIsImxlZnRUb3BYIiwiYW5jaG9yWCIsImxlZnRUb3BZIiwiYW5jaG9yWSIsIm9iamVjdHMiLCJfb2JqZWN0cyIsImFsaXZlTm9kZXMiLCJ0ZXh0dXJlSW5kZXhNYXAiLCJNYXAiLCJvYmplY3RUZXh0dXJlcyIsImdldE9iamVjdFRleHR1cmVzIiwiZm9yRWFjaCIsInRleHR1cmUiLCJpZHgiLCJzZXQiLCJpIiwibCIsImxlbmd0aCIsIm9iamVjdCIsIm9ialR5cGUiLCJ0eXBlIiwicG9pbnRzIiwicG9seWxpbmVQb2ludHMiLCJwaSIsInBvc0lkeFgiLCJwb3NJZHhZIiwiVEVYVCIsInRleHROYW1lIiwiaWQiLCJ0ZXh0Tm9kZSIsImdldENoaWxkQnlOYW1lIiwiTm9kZSIsImFjdGl2ZSIsInZpc2libGUiLCJhbmdsZSIsInJvdGF0aW9uIiwicGFyZW50IiwiY29sb3IiLCJvcGFjaXR5Iiwic2V0U2libGluZ0luZGV4IiwibGFiZWwiLCJnZXRDb21wb25lbnQiLCJMYWJlbCIsImFkZENvbXBvbmVudCIsIm92ZXJmbG93IiwiT3ZlcmZsb3ciLCJTSFJJTksiLCJsaW5lSGVpZ2h0Iiwic3RyaW5nIiwidGV4dCIsImhvcml6b250YWxBbGlnbiIsImhhbGlnbiIsInZlcnRpY2FsQWxpZ24iLCJ2YWxpZ24iLCJmb250U2l6ZSIsInBpeGVsc2l6ZSIsIklNQUdFIiwiZ2lkIiwiZ3JpZCIsInRpbGVzZXQiLCJpbWdOYW1lIiwiaW1nTm9kZSIsImltZ1dpZHRoIiwiaW1nSGVpZ2h0IiwidGlsZU9mZnNldFgiLCJ0aWxlT2Zmc2V0IiwidGlsZU9mZnNldFkiLCJQcml2YXRlTm9kZSIsInJlbW92ZUZyb21QYXJlbnQiLCJkZXN0cm95IiwiX3RpbGVkTWFwIiwic3AiLCJzcGYiLCJzcHJpdGVGcmFtZSIsIlNwcml0ZUZyYW1lIiwic2V0RmxpcFgiLCJzZXRGbGlwWSIsInNvdXJjZUltYWdlIiwic2V0VGV4dHVyZSIsInJlY3QiLCJzZXRWZXJ0c0RpcnR5IiwiaGFzIiwicHVzaCIsInRleHR1cmVJbmRleCIsImdldCIsInNldFRleHR1cmVJZHgiLCJjaGlsZHJlbiIsInVzZWxlc3NFeHAiLCJuIiwiYyIsImNOYW1lIiwiX25hbWUiLCJpc1VzZWxlc3MiLCJ0ZXN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQU1BLFNBQVMsR0FBR0MsT0FBTyxDQUFDLGFBQUQsQ0FBekI7O2VBRWVDLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ3BCLGFBQVNELEVBQUUsQ0FBQ0UsZ0JBRFE7QUFH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QyxFQUFpRDtBQUM3QyxVQUFJMEUsQ0FBQyxHQUFHSCxRQUFRLENBQUN2RSxFQUFELENBQWhCO0FBQ0EsVUFBSTJFLEtBQUssR0FBR0QsQ0FBQyxDQUFDRSxLQUFkO0FBQ0EsVUFBSUMsU0FBUyxHQUFHTCxVQUFVLENBQUNNLElBQVgsQ0FBZ0JILEtBQWhCLENBQWhCO0FBQ0EsVUFBSUUsU0FBUyxJQUFJLENBQUN0RixVQUFVLENBQUNvRixLQUFELENBQTVCLEVBQXFDRCxDQUFDLENBQUNwQixPQUFGO0FBQ3hDO0FBRUo7QUEvTW1CLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuY29uc3QgVG1vU3ByaXRlID0gcmVxdWlyZShcIi4vVG1vU3ByaXRlXCIpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuVGlsZWRPYmplY3RHcm91cCxcclxuXHJcbiAgICBfaW5pdChncm91cEluZm8sIG1hcEluZm8sIHRleEdyaWRzLCB0aWxlZE1hcCkge1xyXG4gICAgICAgIGNvbnN0IFRpbGVkTWFwID0gY2MuVGlsZWRNYXA7XHJcbiAgICAgICAgY29uc3QgVE1YT2JqZWN0VHlwZSA9IFRpbGVkTWFwLlRNWE9iamVjdFR5cGU7XHJcbiAgICAgICAgY29uc3QgT3JpZW50YXRpb24gPSBUaWxlZE1hcC5PcmllbnRhdGlvbjtcclxuICAgICAgICBjb25zdCBTdGFnZ2VyQXhpcyA9IFRpbGVkTWFwLlN0YWdnZXJBeGlzO1xyXG4gICAgICAgIGNvbnN0IFRpbGVGbGFnID0gVGlsZWRNYXAuVGlsZUZsYWc7XHJcbiAgICAgICAgY29uc3QgRkxJUFBFRF9NQVNLID0gVGlsZUZsYWcuRkxJUFBFRF9NQVNLO1xyXG4gICAgICAgIGNvbnN0IEZMQUdfSE9SSVpPTlRBTCA9IFRpbGVGbGFnLkhPUklaT05UQUw7XHJcbiAgICAgICAgY29uc3QgRkxBR19WRVJUSUNBTCA9IFRpbGVGbGFnLlZFUlRJQ0FMO1xyXG5cclxuICAgICAgICB0aGlzLl9ncm91cE5hbWUgPSBncm91cEluZm8ubmFtZTtcclxuICAgICAgICB0aGlzLl9wb3NpdGlvbk9mZnNldCA9IGdyb3VwSW5mby5vZmZzZXQ7XHJcbiAgICAgICAgdGhpcy5fbWFwSW5mbyA9IG1hcEluZm87XHJcbiAgICAgICAgdGhpcy5fcHJvcGVydGllcyA9IGdyb3VwSW5mby5nZXRQcm9wZXJ0aWVzKCk7XHJcbiAgICAgICAgdGhpcy5fb2Zmc2V0ID0gY2MudjIoZ3JvdXBJbmZvLm9mZnNldC54LCAtZ3JvdXBJbmZvLm9mZnNldC55KTtcclxuICAgICAgICB0aGlzLl9vcGFjaXR5ID0gZ3JvdXBJbmZvLl9vcGFjaXR5O1xyXG5cclxuICAgICAgICBsZXQgbWFwU2l6ZSA9IG1hcEluZm8uX21hcFNpemU7XHJcbiAgICAgICAgbGV0IHRpbGVTaXplID0gbWFwSW5mby5fdGlsZVNpemU7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDtcclxuICAgICAgICBpZiAobWFwSW5mby5vcmllbnRhdGlvbiA9PT0gT3JpZW50YXRpb24uSEVYKSB7XHJcbiAgICAgICAgICAgIGlmIChtYXBJbmZvLmdldFN0YWdnZXJBeGlzKCkgPT09IFN0YWdnZXJBeGlzLlNUQUdHRVJBWElTX1gpIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IHRpbGVTaXplLmhlaWdodCAqIChtYXBTaXplLmhlaWdodCArIDAuNSk7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA9ICh0aWxlU2l6ZS53aWR0aCArIG1hcEluZm8uZ2V0SGV4U2lkZUxlbmd0aCgpKSAqIE1hdGguZmxvb3IobWFwU2l6ZS53aWR0aCAvIDIpICsgdGlsZVNpemUud2lkdGggKiAobWFwU2l6ZS53aWR0aCAlIDIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgd2lkdGggPSB0aWxlU2l6ZS53aWR0aCAqIChtYXBTaXplLndpZHRoICsgMC41KTtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9ICh0aWxlU2l6ZS5oZWlnaHQgKyBtYXBJbmZvLmdldEhleFNpZGVMZW5ndGgoKSkgKiBNYXRoLmZsb29yKG1hcFNpemUuaGVpZ2h0IC8gMikgKyB0aWxlU2l6ZS5oZWlnaHQgKiAobWFwU2l6ZS5oZWlnaHQgJSAyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAobWFwSW5mby5vcmllbnRhdGlvbiA9PT0gT3JpZW50YXRpb24uSVNPKSB7XHJcbiAgICAgICAgICAgIGxldCB3aCA9IG1hcFNpemUud2lkdGggKyBtYXBTaXplLmhlaWdodDtcclxuICAgICAgICAgICAgd2lkdGggPSB0aWxlU2l6ZS53aWR0aCAqIDAuNSAqIHdoO1xyXG4gICAgICAgICAgICBoZWlnaHQgPSB0aWxlU2l6ZS5oZWlnaHQgKiAwLjUgKiB3aDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB3aWR0aCA9IG1hcFNpemUud2lkdGggKiB0aWxlU2l6ZS53aWR0aDtcclxuICAgICAgICAgICAgaGVpZ2h0ID0gbWFwU2l6ZS5oZWlnaHQgKiB0aWxlU2l6ZS5oZWlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5zZXRDb250ZW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgbGV0IGxlZnRUb3BYID0gd2lkdGggKiB0aGlzLm5vZGUuYW5jaG9yWDtcclxuICAgICAgICBsZXQgbGVmdFRvcFkgPSBoZWlnaHQgKiAoMSAtIHRoaXMubm9kZS5hbmNob3JZKTtcclxuXHJcbiAgICAgICAgbGV0IG9iamVjdHMgPSBncm91cEluZm8uX29iamVjdHM7XHJcbiAgICAgICAgbGV0IGFsaXZlTm9kZXMgPSB7fTtcclxuXHJcbiAgICAgICAgLy8g55Sf5oiQ5pig5bCETWFwICAgeyBUZXh0dXJlMkQ6IHRleHR1cmVJbmRleCB9XHJcbiAgICAgICAgbGV0IHRleHR1cmVJbmRleE1hcCA9IG5ldyBNYXAoKTtcclxuICAgICAgICBsZXQgb2JqZWN0VGV4dHVyZXMgPSB0aWxlZE1hcC5nZXRPYmplY3RUZXh0dXJlcygpO1xyXG4gICAgICAgIG9iamVjdFRleHR1cmVzLmZvckVhY2goKHRleHR1cmUsIGlkeCkgPT4gdGV4dHVyZUluZGV4TWFwLnNldCh0ZXh0dXJlLCBpZHgpKTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBvYmplY3RzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgb2JqZWN0ID0gb2JqZWN0c1tpXTtcclxuICAgICAgICAgICAgbGV0IG9ialR5cGUgPSBvYmplY3QudHlwZTtcclxuICAgICAgICAgICAgb2JqZWN0Lm9mZnNldCA9IGNjLnYyKG9iamVjdC54LCBvYmplY3QueSk7XHJcblxyXG4gICAgICAgICAgICBsZXQgcG9pbnRzID0gb2JqZWN0LnBvaW50cyB8fCBvYmplY3QucG9seWxpbmVQb2ludHM7XHJcbiAgICAgICAgICAgIGlmIChwb2ludHMpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IHBpID0gMDsgcGkgPCBwb2ludHMubGVuZ3RoOyBwaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRzW3BpXS55ICo9IC0xO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoT3JpZW50YXRpb24uSVNPICE9PSBtYXBJbmZvLm9yaWVudGF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QueSA9IGhlaWdodCAtIG9iamVjdC55O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvc0lkeFggPSBvYmplY3QueCAvIHRpbGVTaXplLmhlaWdodDtcclxuICAgICAgICAgICAgICAgIGxldCBwb3NJZHhZID0gb2JqZWN0LnkgLyB0aWxlU2l6ZS5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QueCA9IHRpbGVTaXplLndpZHRoICogMC41ICogKG1hcFNpemUuaGVpZ2h0ICsgcG9zSWR4WCAtIHBvc0lkeFkpO1xyXG4gICAgICAgICAgICAgICAgb2JqZWN0LnkgPSB0aWxlU2l6ZS5oZWlnaHQgKiAwLjUgKiAobWFwU2l6ZS53aWR0aCArIG1hcFNpemUuaGVpZ2h0IC0gcG9zSWR4WCAtIHBvc0lkeFkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAob2JqVHlwZSA9PT0gVE1YT2JqZWN0VHlwZS5URVhUKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGV4dE5hbWUgPSBcInRleHRcIiArIG9iamVjdC5pZDtcclxuICAgICAgICAgICAgICAgIGFsaXZlTm9kZXNbdGV4dE5hbWVdID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgdGV4dE5vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUodGV4dE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0ZXh0Tm9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHROb2RlID0gbmV3IGNjLk5vZGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5hY3RpdmUgPSBvYmplY3QudmlzaWJsZTtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLmFuY2hvclggPSAwO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUuYW5jaG9yWSA9IDE7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5hbmdsZSA9IC1vYmplY3Qucm90YXRpb247XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS54ID0gb2JqZWN0LnggLSBsZWZ0VG9wWDtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLnkgPSBvYmplY3QueSAtIGxlZnRUb3BZO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUubmFtZSA9IHRleHROYW1lO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUuY29sb3IgPSBvYmplY3QuY29sb3I7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5vcGFjaXR5ID0gdGhpcy5fb3BhY2l0eTtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLnNldFNpYmxpbmdJbmRleChpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgbGFiZWwgPSB0ZXh0Tm9kZS5nZXRDb21wb25lbnQoY2MuTGFiZWwpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFsYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsID0gdGV4dE5vZGUuYWRkQ29tcG9uZW50KGNjLkxhYmVsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsYWJlbC5vdmVyZmxvdyA9IGNjLkxhYmVsLk92ZXJmbG93LlNIUklOSztcclxuICAgICAgICAgICAgICAgIGxhYmVsLmxpbmVIZWlnaHQgPSBvYmplY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgbGFiZWwuc3RyaW5nID0gb2JqZWN0LnRleHQ7XHJcbiAgICAgICAgICAgICAgICBsYWJlbC5ob3Jpem9udGFsQWxpZ24gPSBvYmplY3QuaGFsaWduO1xyXG4gICAgICAgICAgICAgICAgbGFiZWwudmVydGljYWxBbGlnbiA9IG9iamVjdC52YWxpZ247XHJcbiAgICAgICAgICAgICAgICBsYWJlbC5mb250U2l6ZSA9IG9iamVjdC5waXhlbHNpemU7XHJcblxyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUud2lkdGggPSBvYmplY3Qud2lkdGg7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5oZWlnaHQgPSBvYmplY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAob2JqVHlwZSA9PT0gVE1YT2JqZWN0VHlwZS5JTUFHRSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGdpZCA9IG9iamVjdC5naWQ7XHJcbiAgICAgICAgICAgICAgICBsZXQgZ3JpZCA9IHRleEdyaWRzWyhnaWQgJiBGTElQUEVEX01BU0spID4+PiAwXTtcclxuICAgICAgICAgICAgICAgIGlmICghZ3JpZCkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGlsZXNldCA9IGdyaWQudGlsZXNldDtcclxuICAgICAgICAgICAgICAgIGxldCBpbWdOYW1lID0gXCJpbWdcIiArIG9iamVjdC5pZDtcclxuICAgICAgICAgICAgICAgIGFsaXZlTm9kZXNbaW1nTmFtZV0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgbGV0IGltZ05vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoaW1nTmFtZSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgaW1nV2lkdGggPSBvYmplY3Qud2lkdGggfHwgZ3JpZC53aWR0aDtcclxuICAgICAgICAgICAgICAgIGxldCBpbWdIZWlnaHQgPSBvYmplY3QuaGVpZ2h0IHx8IGdyaWQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgbGV0IHRpbGVPZmZzZXRYID0gdGlsZXNldC50aWxlT2Zmc2V0Lng7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGlsZU9mZnNldFkgPSB0aWxlc2V0LnRpbGVPZmZzZXQueTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBEZWxldGUgaW1hZ2Ugbm9kZXMgaW1wbGVtZW50ZWQgYXMgcHJpdmF0ZSBub2Rlc1xyXG4gICAgICAgICAgICAgICAgLy8gVXNlIGNjLk5vZGUgdG8gaW1wbGVtZW50IG5vZGUtbGV2ZWwgcmVxdWlyZW1lbnRzXHJcbiAgICAgICAgICAgICAgICBpZiAoaW1nTm9kZSBpbnN0YW5jZW9mIGNjLlByaXZhdGVOb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCFpbWdOb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZSA9IG5ldyBjYy5Ob2RlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKE9yaWVudGF0aW9uLklTTyA9PSBtYXBJbmZvLm9yaWVudGF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5hbmNob3JYID0gMC41ICsgdGlsZU9mZnNldFggLyBpbWdXaWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBpbWdOb2RlLmFuY2hvclkgPSB0aWxlT2Zmc2V0WSAvIGltZ0hlaWdodDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5hbmNob3JYID0gdGlsZU9mZnNldFggLyBpbWdXaWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBpbWdOb2RlLmFuY2hvclkgPSB0aWxlT2Zmc2V0WSAvIGltZ0hlaWdodDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGltZ05vZGUuYWN0aXZlID0gb2JqZWN0LnZpc2libGU7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLmFuZ2xlID0gLW9iamVjdC5yb3RhdGlvbjtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUueCA9IG9iamVjdC54IC0gbGVmdFRvcFg7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLnkgPSBvYmplY3QueSAtIGxlZnRUb3BZO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5uYW1lID0gaW1nTmFtZTtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5vcGFjaXR5ID0gdGhpcy5fb3BhY2l0eTtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUuc2V0U2libGluZ0luZGV4KGkpO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5fdGlsZWRNYXAgPSB0aWxlZE1hcDtcclxuXHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHNwID0gaW1nTm9kZS5nZXRDb21wb25lbnQoVG1vU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgIGlmICghc3ApIHtcclxuICAgICAgICAgICAgICAgICAgICBzcCA9IGltZ05vZGUuYWRkQ29tcG9uZW50KFRtb1Nwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgc3BmID0gc3Auc3ByaXRlRnJhbWU7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXNwZikge1xyXG4gICAgICAgICAgICAgICAgICAgIHNwZiA9IG5ldyBjYy5TcHJpdGVGcmFtZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmICgoZ2lkICYgRkxBR19IT1JJWk9OVEFMKSA+Pj4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNwZi5zZXRGbGlwWCh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldEZsaXBYKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoKGdpZCAmIEZMQUdfVkVSVElDQUwpID4+PiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldEZsaXBZKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBzcGYuc2V0RmxpcFkoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCBzb3VyY2VJbWFnZSA9IGdyaWQudGlsZXNldC5zb3VyY2VJbWFnZTtcclxuICAgICAgICAgICAgICAgIHNwZi5zZXRUZXh0dXJlKHNvdXJjZUltYWdlLCBjYy5yZWN0KGdyaWQpKTtcclxuICAgICAgICAgICAgICAgIHNwLnNwcml0ZUZyYW1lID0gc3BmO1xyXG4gICAgICAgICAgICAgICAgc3Auc2V0VmVydHNEaXJ0eSgpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIG9iamVjdCBncm91cCBtYXkgaGFzIG5vIHdpZHRoIG9yIGhlaWdodCBpbmZvXHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLndpZHRoID0gaW1nV2lkdGg7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLmhlaWdodCA9IGltZ0hlaWdodDtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyDmlLbpm4blm77pm4Yg5pu05pawdGV4dHVyZUluZGV4TWFwXHJcbiAgICAgICAgICAgICAgICBpZiAoIXRleHR1cmVJbmRleE1hcC5oYXMoc291cmNlSW1hZ2UpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dHVyZUluZGV4TWFwLnNldChzb3VyY2VJbWFnZSwgb2JqZWN0VGV4dHVyZXMubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgICAgICBvYmplY3RUZXh0dXJlcy5wdXNoKHNvdXJjZUltYWdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyDorr7nva50ZXh0dXJlSW5kZXhcclxuICAgICAgICAgICAgICAgIGxldCB0ZXh0dXJlSW5kZXggPSB0ZXh0dXJlSW5kZXhNYXAuZ2V0KHNvdXJjZUltYWdlKTtcclxuICAgICAgICAgICAgICAgIHNwLnNldFRleHR1cmVJZHgodGV4dHVyZUluZGV4ICsgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fb2JqZWN0cyA9IG9iamVjdHM7XHJcblxyXG5cclxuICAgICAgICAvLyBkZXN0cm95IHVzZWxlc3Mgbm9kZVxyXG4gICAgICAgIGxldCBjaGlsZHJlbiA9IHRoaXMubm9kZS5jaGlsZHJlbjtcclxuICAgICAgICBsZXQgdXNlbGVzc0V4cCA9IC9eKD86aW1nfHRleHQpXFxkKyQvO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBuID0gY2hpbGRyZW4ubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBjID0gY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgIGxldCBjTmFtZSA9IGMuX25hbWU7XHJcbiAgICAgICAgICAgIGxldCBpc1VzZWxlc3MgPSB1c2VsZXNzRXhwLnRlc3QoY05hbWUpO1xyXG4gICAgICAgICAgICBpZiAoaXNVc2VsZXNzICYmICFhbGl2ZU5vZGVzW2NOYW1lXSkgYy5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxufSk7XHJcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vT2JqZWN0R3JvdXAuanMiXSwibmFtZXMiOlsiVG1vU3ByaXRlIiwicmVxdWlyZSIsIl9kZWZhdWx0IiwiY2MiLCJDbGFzcyIsIlRpbGVkT2JqZWN0R3JvdXAiLCJfaW5pdCIsImdyb3VwSW5mbyIsIm1hcEluZm8iLCJ0ZXhHcmlkcyIsInRpbGVkTWFwIiwiVGlsZWRNYXAiLCJUTVhPYmplY3RUeXBlIiwiT3JpZW50YXRpb24iLCJTdGFnZ2VyQXhpcyIsIlRpbGVGbGFnIiwiRkxJUFBFRF9NQVNLIiwiRkxBR19IT1JJWk9OVEFMIiwiSE9SSVpPTlRBTCIsIkZMQUdfVkVSVElDQUwiLCJWRVJUSUNBTCIsIl9ncm91cE5hbWUiLCJuYW1lIiwiX3Bvc2l0aW9uT2Zmc2V0Iiwib2Zmc2V0IiwiX21hcEluZm8iLCJfcHJvcGVydGllcyIsImdldFByb3BlcnRpZXMiLCJfb2Zmc2V0IiwidjIiLCJ4IiwieSIsIl9vcGFjaXR5IiwibWFwU2l6ZSIsIl9tYXBTaXplIiwidGlsZVNpemUiLCJfdGlsZVNpemUiLCJ3aWR0aCIsImhlaWdodCIsIm9yaWVudGF0aW9uIiwiSEVYIiwiZ2V0U3RhZ2dlckF4aXMiLCJTVEFHR0VSQVhJU19YIiwiZ2V0SGV4U2lkZUxlbmd0aCIsIk1hdGgiLCJmbG9vciIsIklTTyIsIndoIiwibm9kZSIsInNldENvbnRlbnRTaXplIiwibGVmdFRvcFgiLCJhbmNob3JYIiwibGVmdFRvcFkiLCJhbmNob3JZIiwib2JqZWN0cyIsIl9vYmplY3RzIiwiYWxpdmVOb2RlcyIsInRleHR1cmVJbmRleE1hcCIsIk1hcCIsIm9iamVjdFRleHR1cmVzIiwiZ2V0T2JqZWN0VGV4dHVyZXMiLCJmb3JFYWNoIiwidGV4dHVyZSIsImlkeCIsInNldCIsImkiLCJsIiwibGVuZ3RoIiwib2JqZWN0Iiwib2JqVHlwZSIsInR5cGUiLCJwb2ludHMiLCJwb2x5bGluZVBvaW50cyIsInBpIiwicG9zSWR4WCIsInBvc0lkeFkiLCJURVhUIiwidGV4dE5hbWUiLCJpZCIsInRleHROb2RlIiwiZ2V0Q2hpbGRCeU5hbWUiLCJOb2RlIiwiYWN0aXZlIiwidmlzaWJsZSIsImFuZ2xlIiwicm90YXRpb24iLCJwYXJlbnQiLCJjb2xvciIsIm9wYWNpdHkiLCJzZXRTaWJsaW5nSW5kZXgiLCJsYWJlbCIsImdldENvbXBvbmVudCIsIkxhYmVsIiwiYWRkQ29tcG9uZW50Iiwib3ZlcmZsb3ciLCJPdmVyZmxvdyIsIlNIUklOSyIsImxpbmVIZWlnaHQiLCJzdHJpbmciLCJ0ZXh0IiwiaG9yaXpvbnRhbEFsaWduIiwiaGFsaWduIiwidmVydGljYWxBbGlnbiIsInZhbGlnbiIsImZvbnRTaXplIiwicGl4ZWxzaXplIiwiSU1BR0UiLCJnaWQiLCJncmlkIiwidGlsZXNldCIsImltZ05hbWUiLCJpbWdOb2RlIiwiaW1nV2lkdGgiLCJpbWdIZWlnaHQiLCJ0aWxlT2Zmc2V0WCIsInRpbGVPZmZzZXQiLCJ0aWxlT2Zmc2V0WSIsIlByaXZhdGVOb2RlIiwicmVtb3ZlRnJvbVBhcmVudCIsImRlc3Ryb3kiLCJfdGlsZWRNYXAiLCJzcCIsInNwZiIsInNwcml0ZUZyYW1lIiwiU3ByaXRlRnJhbWUiLCJzZXRGbGlwWCIsInNldEZsaXBZIiwic291cmNlSW1hZ2UiLCJzZXRUZXh0dXJlIiwicmVjdCIsInNldFZlcnRzRGlydHkiLCJoYXMiLCJwdXNoIiwidGV4dHVyZUluZGV4IiwiZ2V0Iiwic2V0VGV4dHVyZUlkeCIsImNoaWxkcmVuIiwidXNlbGVzc0V4cCIsIm4iLCJjIiwiY05hbWUiLCJfbmFtZSIsImlzVXNlbGVzcyIsInRlc3QiLCJleHBvcnRzIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQU1BLFNBQVMsR0FBR0MsT0FBTyxDQUFDLGFBQWEsQ0FBQztBQUFDLElBQUFDLFFBQUEsR0FFMUJDLEVBQUUsQ0FB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RyxDQUFDSixXQUFXLENBQUMsRUFBRTtVQUNuQ3RFLGVBQWUsQ0FBQ08sR0FBRyxDQUFDK0QsV0FBVyxFQUFFcEUsY0FBYyxDQUFDUSxNQUFNLENBQUM7VUFDdkRSLGNBQWMsQ0FBQ3lFLElBQUksQ0FBQ0wsV0FBVyxDQUFDO1FBQ3BDOztRQUVBO1FBQ0EsSUFBSU0sWUFBWSxHQUFHNUUsZUFBZSxDQUFDNkUsR0FBRyxDQUFDUCxXQUFXLENBQUM7UUFDbkROLEVBQUUsQ0FBQ2MsYUFBYSxDQUFDRixZQUFZLEdBQUcsQ0FBQyxDQUFDO01BQ3RDO0lBQ0o7SUFDQSxJQUFJLENBQUM5RSxRQUFRLEdBQUdELE9BQU87O0lBR3ZCO0lBQ0EsSUFBSWtGLFFBQVEsR0FBRyxJQUFJLENBQUN4RixJQUFJLENBQUN3RixRQUFRO0lBQ2pDLElBQUlDLFVBQVUsR0FBRyxtQkFBbUI7SUFDcEMsS0FBSyxJQUFJeEUsRUFBQyxHQUFHLENBQUMsRUFBRXlFLENBQUMsR0FBR0YsUUFBUSxDQUFDckUsTUFBTSxFQUFFRixFQUFDLEdBQUd5RSxDQUFDLEVBQUV6RSxFQUFDLEVBQUUsRUFBRTtNQUM3QyxJQUFJMEUsQ0FBQyxHQUFHSCxRQUFRLENBQUN2RSxFQUFDLENBQUM7TUFDbkIsSUFBSTJFLEtBQUssR0FBR0QsQ0FBQyxDQUFDRSxLQUFLO01BQ25CLElBQUlDLFNBQVMsR0FBR0wsVUFBVSxDQUFDTSxJQUFJLENBQUNILEtBQUssQ0FBQztNQUN0QyxJQUFJRSxTQUFTLElBQUksQ0FBQ3RGLFVBQVUsQ0FBQ29GLEtBQUssQ0FBQyxFQUFFRCxDQUFDLENBQUNwQixPQUFPLEVBQUU7SUFDcEQ7RUFFSjtBQUNKLENBQUMsQ0FBQztBQUFBeUIsT0FBQSxjQUFBOUksUUFBQTtBQUFBK0ksTUFBQSxDQUFBRCxPQUFBLEdBQUFBLE9BQUEiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuY29uc3QgVG1vU3ByaXRlID0gcmVxdWlyZShcIi4vVG1vU3ByaXRlXCIpO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuVGlsZWRPYmplY3RHcm91cCxcclxuXHJcbiAgICBfaW5pdChncm91cEluZm8sIG1hcEluZm8sIHRleEdyaWRzLCB0aWxlZE1hcCkge1xyXG4gICAgICAgIGNvbnN0IFRpbGVkTWFwID0gY2MuVGlsZWRNYXA7XHJcbiAgICAgICAgY29uc3QgVE1YT2JqZWN0VHlwZSA9IFRpbGVkTWFwLlRNWE9iamVjdFR5cGU7XHJcbiAgICAgICAgY29uc3QgT3JpZW50YXRpb24gPSBUaWxlZE1hcC5PcmllbnRhdGlvbjtcclxuICAgICAgICBjb25zdCBTdGFnZ2VyQXhpcyA9IFRpbGVkTWFwLlN0YWdnZXJBeGlzO1xyXG4gICAgICAgIGNvbnN0IFRpbGVGbGFnID0gVGlsZWRNYXAuVGlsZUZsYWc7XHJcbiAgICAgICAgY29uc3QgRkxJUFBFRF9NQVNLID0gVGlsZUZsYWcuRkxJUFBFRF9NQVNLO1xyXG4gICAgICAgIGNvbnN0IEZMQUdfSE9SSVpPTlRBTCA9IFRpbGVGbGFnLkhPUklaT05UQUw7XHJcbiAgICAgICAgY29uc3QgRkxBR19WRVJUSUNBTCA9IFRpbGVGbGFnLlZFUlRJQ0FMO1xyXG5cclxuICAgICAgICB0aGlzLl9ncm91cE5hbWUgPSBncm91cEluZm8ubmFtZTtcclxuICAgICAgICB0aGlzLl9wb3NpdGlvbk9mZnNldCA9IGdyb3VwSW5mby5vZmZzZXQ7XHJcbiAgICAgICAgdGhpcy5fbWFwSW5mbyA9IG1hcEluZm87XHJcbiAgICAgICAgdGhpcy5fcHJvcGVydGllcyA9IGdyb3VwSW5mby5nZXRQcm9wZXJ0aWVzKCk7XHJcbiAgICAgICAgdGhpcy5fb2Zmc2V0ID0gY2MudjIoZ3JvdXBJbmZvLm9mZnNldC54LCAtZ3JvdXBJbmZvLm9mZnNldC55KTtcclxuICAgICAgICB0aGlzLl9vcGFjaXR5ID0gZ3JvdXBJbmZvLl9vcGFjaXR5O1xyXG5cclxuICAgICAgICBsZXQgbWFwU2l6ZSA9IG1hcEluZm8uX21hcFNpemU7XHJcbiAgICAgICAgbGV0IHRpbGVTaXplID0gbWFwSW5mby5fdGlsZVNpemU7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDtcclxuICAgICAgICBpZiAobWFwSW5mby5vcmllbnRhdGlvbiA9PT0gT3JpZW50YXRpb24uSEVYKSB7XHJcbiAgICAgICAgICAgIGlmIChtYXBJbmZvLmdldFN0YWdnZXJBeGlzKCkgPT09IFN0YWdnZXJBeGlzLlNUQUdHRVJBWElTX1gpIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IHRpbGVTaXplLmhlaWdodCAqIChtYXBTaXplLmhlaWdodCArIDAuNSk7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA9ICh0aWxlU2l6ZS53aWR0aCArIG1hcEluZm8uZ2V0SGV4U2lkZUxlbmd0aCgpKSAqIE1hdGguZmxvb3IobWFwU2l6ZS53aWR0aCAvIDIpICsgdGlsZVNpemUud2lkdGggKiAobWFwU2l6ZS53aWR0aCAlIDIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgd2lkdGggPSB0aWxlU2l6ZS53aWR0aCAqIChtYXBTaXplLndpZHRoICsgMC41KTtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9ICh0aWxlU2l6ZS5oZWlnaHQgKyBtYXBJbmZvLmdldEhleFNpZGVMZW5ndGgoKSkgKiBNYXRoLmZsb29yKG1hcFNpemUuaGVpZ2h0IC8gMikgKyB0aWxlU2l6ZS5oZWlnaHQgKiAobWFwU2l6ZS5oZWlnaHQgJSAyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAobWFwSW5mby5vcmllbnRhdGlvbiA9PT0gT3JpZW50YXRpb24uSVNPKSB7XHJcbiAgICAgICAgICAgIGxldCB3aCA9IG1hcFNpemUud2lkdGggKyBtYXBTaXplLmhlaWdodDtcclxuICAgICAgICAgICAgd2lkdGggPSB0aWxlU2l6ZS53aWR0aCAqIDAuNSAqIHdoO1xyXG4gICAgICAgICAgICBoZWlnaHQgPSB0aWxlU2l6ZS5oZWlnaHQgKiAwLjUgKiB3aDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB3aWR0aCA9IG1hcFNpemUud2lkdGggKiB0aWxlU2l6ZS53aWR0aDtcclxuICAgICAgICAgICAgaGVpZ2h0ID0gbWFwU2l6ZS5oZWlnaHQgKiB0aWxlU2l6ZS5oZWlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm9kZS5zZXRDb250ZW50U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgbGV0IGxlZnRUb3BYID0gd2lkdGggKiB0aGlzLm5vZGUuYW5jaG9yWDtcclxuICAgICAgICBsZXQgbGVmdFRvcFkgPSBoZWlnaHQgKiAoMSAtIHRoaXMubm9kZS5hbmNob3JZKTtcclxuXHJcbiAgICAgICAgbGV0IG9iamVjdHMgPSBncm91cEluZm8uX29iamVjdHM7XHJcbiAgICAgICAgbGV0IGFsaXZlTm9kZXMgPSB7fTtcclxuXHJcbiAgICAgICAgLy8g55Sf5oiQ5pig5bCETWFwICAgeyBUZXh0dXJlMkQ6IHRleHR1cmVJbmRleCB9XHJcbiAgICAgICAgbGV0IHRleHR1cmVJbmRleE1hcCA9IG5ldyBNYXAoKTtcclxuICAgICAgICBsZXQgb2JqZWN0VGV4dHVyZXMgPSB0aWxlZE1hcC5nZXRPYmplY3RUZXh0dXJlcygpO1xyXG4gICAgICAgIG9iamVjdFRleHR1cmVzLmZvckVhY2goKHRleHR1cmUsIGlkeCkgPT4gdGV4dHVyZUluZGV4TWFwLnNldCh0ZXh0dXJlLCBpZHgpKTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBvYmplY3RzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgb2JqZWN0ID0gb2JqZWN0c1tpXTtcclxuICAgICAgICAgICAgbGV0IG9ialR5cGUgPSBvYmplY3QudHlwZTtcclxuICAgICAgICAgICAgb2JqZWN0Lm9mZnNldCA9IGNjLnYyKG9iamVjdC54LCBvYmplY3QueSk7XHJcblxyXG4gICAgICAgICAgICBsZXQgcG9pbnRzID0gb2JqZWN0LnBvaW50cyB8fCBvYmplY3QucG9seWxpbmVQb2ludHM7XHJcbiAgICAgICAgICAgIGlmIChwb2ludHMpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IHBpID0gMDsgcGkgPCBwb2ludHMubGVuZ3RoOyBwaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRzW3BpXS55ICo9IC0xO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoT3JpZW50YXRpb24uSVNPICE9PSBtYXBJbmZvLm9yaWVudGF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QueSA9IGhlaWdodCAtIG9iamVjdC55O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvc0lkeFggPSBvYmplY3QueCAvIHRpbGVTaXplLmhlaWdodDtcclxuICAgICAgICAgICAgICAgIGxldCBwb3NJZHhZID0gb2JqZWN0LnkgLyB0aWxlU2l6ZS5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QueCA9IHRpbGVTaXplLndpZHRoICogMC41ICogKG1hcFNpemUuaGVpZ2h0ICsgcG9zSWR4WCAtIHBvc0lkeFkpO1xyXG4gICAgICAgICAgICAgICAgb2JqZWN0LnkgPSB0aWxlU2l6ZS5oZWlnaHQgKiAwLjUgKiAobWFwU2l6ZS53aWR0aCArIG1hcFNpemUuaGVpZ2h0IC0gcG9zSWR4WCAtIHBvc0lkeFkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAob2JqVHlwZSA9PT0gVE1YT2JqZWN0VHlwZS5URVhUKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGV4dE5hbWUgPSBcInRleHRcIiArIG9iamVjdC5pZDtcclxuICAgICAgICAgICAgICAgIGFsaXZlTm9kZXNbdGV4dE5hbWVdID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgdGV4dE5vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUodGV4dE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0ZXh0Tm9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHROb2RlID0gbmV3IGNjLk5vZGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5hY3RpdmUgPSBvYmplY3QudmlzaWJsZTtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLmFuY2hvclggPSAwO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUuYW5jaG9yWSA9IDE7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5hbmdsZSA9IC1vYmplY3Qucm90YXRpb247XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS54ID0gb2JqZWN0LnggLSBsZWZ0VG9wWDtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLnkgPSBvYmplY3QueSAtIGxlZnRUb3BZO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUubmFtZSA9IHRleHROYW1lO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUuY29sb3IgPSBvYmplY3QuY29sb3I7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5vcGFjaXR5ID0gdGhpcy5fb3BhY2l0eTtcclxuICAgICAgICAgICAgICAgIHRleHROb2RlLnNldFNpYmxpbmdJbmRleChpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgbGFiZWwgPSB0ZXh0Tm9kZS5nZXRDb21wb25lbnQoY2MuTGFiZWwpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFsYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsID0gdGV4dE5vZGUuYWRkQ29tcG9uZW50KGNjLkxhYmVsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsYWJlbC5vdmVyZmxvdyA9IGNjLkxhYmVsLk92ZXJmbG93LlNIUklOSztcclxuICAgICAgICAgICAgICAgIGxhYmVsLmxpbmVIZWlnaHQgPSBvYmplY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgbGFiZWwuc3RyaW5nID0gb2JqZWN0LnRleHQ7XHJcbiAgICAgICAgICAgICAgICBsYWJlbC5ob3Jpem9udGFsQWxpZ24gPSBvYmplY3QuaGFsaWduO1xyXG4gICAgICAgICAgICAgICAgbGFiZWwudmVydGljYWxBbGlnbiA9IG9iamVjdC52YWxpZ247XHJcbiAgICAgICAgICAgICAgICBsYWJlbC5mb250U2l6ZSA9IG9iamVjdC5waXhlbHNpemU7XHJcblxyXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUud2lkdGggPSBvYmplY3Qud2lkdGg7XHJcbiAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5oZWlnaHQgPSBvYmplY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAob2JqVHlwZSA9PT0gVE1YT2JqZWN0VHlwZS5JTUFHRSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGdpZCA9IG9iamVjdC5naWQ7XHJcbiAgICAgICAgICAgICAgICBsZXQgZ3JpZCA9IHRleEdyaWRzWyhnaWQgJiBGTElQUEVEX01BU0spID4+PiAwXTtcclxuICAgICAgICAgICAgICAgIGlmICghZ3JpZCkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGlsZXNldCA9IGdyaWQudGlsZXNldDtcclxuICAgICAgICAgICAgICAgIGxldCBpbWdOYW1lID0gXCJpbWdcIiArIG9iamVjdC5pZDtcclxuICAgICAgICAgICAgICAgIGFsaXZlTm9kZXNbaW1nTmFtZV0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgbGV0IGltZ05vZGUgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoaW1nTmFtZSk7XHJcbiAgICAgICAgICAgICAgICBsZXQgaW1nV2lkdGggPSBvYmplY3Qud2lkdGggfHwgZ3JpZC53aWR0aDtcclxuICAgICAgICAgICAgICAgIGxldCBpbWdIZWlnaHQgPSBvYmplY3QuaGVpZ2h0IHx8IGdyaWQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgbGV0IHRpbGVPZmZzZXRYID0gdGlsZXNldC50aWxlT2Zmc2V0Lng7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGlsZU9mZnNldFkgPSB0aWxlc2V0LnRpbGVPZmZzZXQueTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBEZWxldGUgaW1hZ2Ugbm9kZXMgaW1wbGVtZW50ZWQgYXMgcHJpdmF0ZSBub2Rlc1xyXG4gICAgICAgICAgICAgICAgLy8gVXNlIGNjLk5vZGUgdG8gaW1wbGVtZW50IG5vZGUtbGV2ZWwgcmVxdWlyZW1lbnRzXHJcbiAgICAgICAgICAgICAgICBpZiAoaW1nTm9kZSBpbnN0YW5jZW9mIGNjLlByaXZhdGVOb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCFpbWdOb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZSA9IG5ldyBjYy5Ob2RlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKE9yaWVudGF0aW9uLklTTyA9PSBtYXBJbmZvLm9yaWVudGF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5hbmNob3JYID0gMC41ICsgdGlsZU9mZnNldFggLyBpbWdXaWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBpbWdOb2RlLmFuY2hvclkgPSB0aWxlT2Zmc2V0WSAvIGltZ0hlaWdodDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nTm9kZS5hbmNob3JYID0gdGlsZU9mZnNldFggLyBpbWdXaWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBpbWdOb2RlLmFuY2hvclkgPSB0aWxlT2Zmc2V0WSAvIGltZ0hlaWdodDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGltZ05vZGUuYWN0aXZlID0gb2JqZWN0LnZpc2libGU7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLmFuZ2xlID0gLW9iamVjdC5yb3RhdGlvbjtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUueCA9IG9iamVjdC54IC0gbGVmdFRvcFg7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLnkgPSBvYmplY3QueSAtIGxlZnRUb3BZO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5uYW1lID0gaW1nTmFtZTtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUucGFyZW50ID0gdGhpcy5ub2RlO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5vcGFjaXR5ID0gdGhpcy5fb3BhY2l0eTtcclxuICAgICAgICAgICAgICAgIGltZ05vZGUuc2V0U2libGluZ0luZGV4KGkpO1xyXG4gICAgICAgICAgICAgICAgaW1nTm9kZS5fdGlsZWRNYXAgPSB0aWxlZE1hcDtcclxuXHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHNwID0gaW1nTm9kZS5nZXRDb21wb25lbnQoVG1vU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgIGlmICghc3ApIHtcclxuICAgICAgICAgICAgICAgICAgICBzcCA9IGltZ05vZGUuYWRkQ29tcG9uZW50KFRtb1Nwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgc3BmID0gc3Auc3ByaXRlRnJhbWU7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXNwZikge1xyXG4gICAgICAgICAgICAgICAgICAgIHNwZiA9IG5ldyBjYy5TcHJpdGVGcmFtZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmICgoZ2lkICYgRkxBR19IT1JJWk9OVEFMKSA+Pj4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNwZi5zZXRGbGlwWCh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldEZsaXBYKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoKGdpZCAmIEZMQUdfVkVSVElDQUwpID4+PiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldEZsaXBZKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBzcGYuc2V0RmxpcFkoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCBzb3VyY2VJbWFnZSA9IGdyaWQudGlsZXNldC5zb3VyY2VJbWFnZTtcclxuICAgICAgICAgICAgICAgIHNwZi5zZXRUZXh0dXJlKHNvdXJjZUltYWdlLCBjYy5yZWN0KGdyaWQpKTtcclxuICAgICAgICAgICAgICAgIHNwLnNwcml0ZUZyYW1lID0gc3BmO1xyXG4gICAgICAgICAgICAgICAgc3Auc2V0VmVydHNEaXJ0eSgpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIG9iamVjdCBncm91cCBtYXkgaGFzIG5vIHdpZHRoIG9yIGhlaWdodCBpbmZvXHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLndpZHRoID0gaW1nV2lkdGg7XHJcbiAgICAgICAgICAgICAgICBpbWdOb2RlLmhlaWdodCA9IGltZ0hlaWdodDtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyDmlLbpm4blm77pm4Yg5pu05pawdGV4dHVyZUluZGV4TWFwXHJcbiAgICAgICAgICAgICAgICBpZiAoIXRleHR1cmVJbmRleE1hcC5oYXMoc291cmNlSW1hZ2UpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dHVyZUluZGV4TWFwLnNldChzb3VyY2VJbWFnZSwgb2JqZWN0VGV4dHVyZXMubGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgICAgICBvYmplY3RUZXh0dXJlcy5wdXNoKHNvdXJjZUltYWdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyDorr7nva50ZXh0dXJlSW5kZXhcclxuICAgICAgICAgICAgICAgIGxldCB0ZXh0dXJlSW5kZXggPSB0ZXh0dXJlSW5kZXhNYXAuZ2V0KHNvdXJjZUltYWdlKTtcclxuICAgICAgICAgICAgICAgIHNwLnNldFRleHR1cmVJZHgodGV4dHVyZUluZGV4ICsgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fb2JqZWN0cyA9IG9iamVjdHM7XHJcblxyXG5cclxuICAgICAgICAvLyBkZXN0cm95IHVzZWxlc3Mgbm9kZVxyXG4gICAgICAgIGxldCBjaGlsZHJlbiA9IHRoaXMubm9kZS5jaGlsZHJlbjtcclxuICAgICAgICBsZXQgdXNlbGVzc0V4cCA9IC9eKD86aW1nfHRleHQpXFxkKyQvO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBuID0gY2hpbGRyZW4ubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBjID0gY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgIGxldCBjTmFtZSA9IGMuX25hbWU7XHJcbiAgICAgICAgICAgIGxldCBpc1VzZWxlc3MgPSB1c2VsZXNzRXhwLnRlc3QoY05hbWUpO1xyXG4gICAgICAgICAgICBpZiAoaXNVc2VsZXNzICYmICFhbGl2ZU5vZGVzW2NOYW1lXSkgYy5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxufSk7XHJcbiJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoSprite.js b/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoSprite.js index f49746a..93e8126 100644 --- a/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoSprite.js +++ b/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoSprite.js @@ -17,12 +17,9 @@ cc._RF.push(module, '4fa6cO05aBKGoM+5EX9zhkC', 'TmoSprite'); exports.__esModule = true; exports["default"] = void 0; - var _TmoAssembler = require("./TmoAssembler"); - var _default = cc.Class({ "extends": cc.Sprite, - /** * 设置TextureIndex */ @@ -37,28 +34,24 @@ var _default = cc.Class({ _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宏定义 + } + // 手动设置哈希值,避免无法合批 + 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() { @@ -68,7 +61,6 @@ var _default = cc.Class({ return this._getTiledMap().isNoColor(); } }); - exports["default"] = _default; module.exports = exports["default"]; @@ -83,4 +75,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vU3ByaXRlLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJTcHJpdGUiLCJzZXRUZXh0dXJlSWR4IiwiaWR4IiwiX3RleHR1cmVJZHgiLCJzZXRWZXJ0c0RpcnR5IiwiX2dldERlZmF1bHRNYXRlcmlhbCIsIl9nZXRUaWxlZE1hcCIsImdldE9iamVjdE1hdGVyaWFsIiwiX3VwZGF0ZU1hdGVyaWFsIiwibWF0ZXJpYWwiLCJnZXRNYXRlcmlhbCIsImdldERlZmluZSIsInVuZGVmaW5lZCIsImRlZmluZSIsInVwZGF0ZUhhc2giLCJub0NvbG9yIiwiaXNOb0NvbG9yIiwiQmxlbmRGdW5jIiwicHJvdG90eXBlIiwiY2FsbCIsIl9yZXNldEFzc2VtYmxlciIsImFzc2VtYmxlciIsIl9hc3NlbWJsZXIiLCJUbW9Bc3NlbWJsZXIiLCJpbml0IiwiX3VwZGF0ZUNvbG9yIiwibm9kZSIsIl90aWxlZE1hcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7ZUFFZUEsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDcEIsYUFBU0QsRUFBRSxDQUFDRSxNQURROztBQUdwQjtBQUNKO0FBQ0E7QUFDSUMsRUFBQUEsYUFOb0IseUJBTU5DLEdBTk0sRUFNRDtBQUNmLFNBQUtDLFdBQUwsR0FBbUJELEdBQW5CO0FBQ0EsU0FBS0UsYUFBTDtBQUNILEdBVG1CO0FBV3BCQyxFQUFBQSxtQkFYb0IsaUNBV0U7QUFDbEI7QUFDQSxXQUFPLEtBQUtDLFlBQUwsR0FBb0JDLGlCQUFwQixFQUFQO0FBQ0gsR0FkbUI7QUFnQnBCQyxFQUFBQSxlQWhCb0IsNkJBZ0JGO0FBQ2Q7QUFDQSxRQUFJQyxRQUFRLEdBQUcsS0FBS0MsV0FBTCxDQUFpQixDQUFqQixDQUFmOztBQUNBLFFBQUlELFFBQUosRUFBYztBQUNWLFVBQUlBLFFBQVEsQ0FBQ0UsU0FBVCxDQUFtQixhQUFuQixNQUFzQ0MsU0FBMUMsRUFBcUQ7QUFDakRILFFBQUFBLFFBQVEsQ0FBQ0ksTUFBVCxDQUFnQixhQUFoQixFQUErQixJQUEvQjtBQUNILE9BSFMsQ0FJVjs7O0FBQ0FKLE1BQUFBLFFBQVEsQ0FBQ0ssVUFBVCxDQUFvQixNQUFwQixFQUxVLENBT1Y7O0FBQ0EsVUFBSUMsT0FBTyxHQUFHLEtBQUtDLFNBQUwsRUFBZDtBQUNBUCxNQUFBQSxRQUFRLENBQUNJLE1BQVQsQ0FBZ0IsWUFBaEIsRUFBOEIsQ0FBQ0UsT0FBL0I7QUFDSDs7QUFFRGpCLElBQUFBLEVBQUUsQ0FBQ21CLFNBQUgsQ0FBYUMsU0FBYixDQUF1QlYsZUFBdkIsQ0FBdUNXLElBQXZDLENBQTRDLElBQTVDO0FBQ0gsR0FoQ21CO0FBa0NwQkMsRUFBQUEsZUFsQ29CLDZCQWtDRjtBQUNkO0FBQ0EsUUFBSUMsU0FBUyxHQUFHLEtBQUtDLFVBQUwsR0FBa0IsSUFBSUMsMEJBQUosRUFBbEM7QUFDQUYsSUFBQUEsU0FBUyxDQUFDRyxJQUFWLENBQWUsSUFBZjs7QUFFQSxTQUFLQyxZQUFMOztBQUNBLFNBQUtyQixhQUFMO0FBQ0gsR0F6Q21CO0FBMkNwQkUsRUFBQUEsWUEzQ29CLDBCQTJDTDtBQUNYLFdBQU8sS0FBS29CLElBQUwsQ0FBVUMsU0FBakI7QUFDSCxHQTdDbUI7QUErQ3BCWCxFQUFBQSxTQS9Db0IsdUJBK0NSO0FBQ1IsV0FBTyxLQUFLVixZQUFMLEdBQW9CVSxTQUFwQixFQUFQO0FBQ0g7QUFqRG1CLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRtb0Fzc2VtYmxlciB9IGZyb20gXCIuL1Rtb0Fzc2VtYmxlclwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuU3ByaXRlLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6K6+572uVGV4dHVyZUluZGV4XHJcbiAgICAgKi9cclxuICAgIHNldFRleHR1cmVJZHgoaWR4KSB7XHJcbiAgICAgICAgdGhpcy5fdGV4dHVyZUlkeCA9IGlkeFxyXG4gICAgICAgIHRoaXMuc2V0VmVydHNEaXJ0eSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICBfZ2V0RGVmYXVsdE1hdGVyaWFsKCkge1xyXG4gICAgICAgIC8vIOS7jlRpbGVkTWFw5Y+W5b6X6buY6K6k55qE5p2Q6LSoXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFRpbGVkTWFwKCkuZ2V0T2JqZWN0TWF0ZXJpYWwoKTtcclxuICAgIH0sXHJcblxyXG4gICAgX3VwZGF0ZU1hdGVyaWFsKCkge1xyXG4gICAgICAgIC8vIG1ha2Ugc3VyZSBtYXRlcmlhbCBpcyBiZWxvbmcgdG8gc2VsZi5cclxuICAgICAgICBsZXQgbWF0ZXJpYWwgPSB0aGlzLmdldE1hdGVyaWFsKDApO1xyXG4gICAgICAgIGlmIChtYXRlcmlhbCkge1xyXG4gICAgICAgICAgICBpZiAobWF0ZXJpYWwuZ2V0RGVmaW5lKCdVU0VfVEVYVFVSRScpICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmRlZmluZSgnVVNFX1RFWFRVUkUnLCB0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDmiYvliqjorr7nva7lk4jluIzlgLzvvIzpgb/lhY3ml6Dms5XlkIjmiblcclxuICAgICAgICAgICAgbWF0ZXJpYWwudXBkYXRlSGFzaCg5OTk5OTkpO1xyXG5cclxuICAgICAgICAgICAgLy8g5aKe5YqgV0lUSF9DT0xPUuWuj+WumuS5iVxyXG4gICAgICAgICAgICBsZXQgbm9Db2xvciA9IHRoaXMuaXNOb0NvbG9yKCk7XHJcbiAgICAgICAgICAgIG1hdGVyaWFsLmRlZmluZSgnV0lUSF9DT0xPUicsICFub0NvbG9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNjLkJsZW5kRnVuYy5wcm90b3R5cGUuX3VwZGF0ZU1hdGVyaWFsLmNhbGwodGhpcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIF9yZXNldEFzc2VtYmxlcigpIHtcclxuICAgICAgICAvLyDkv67mlLnpu5jorqRBc3NlbWJsZXJcclxuICAgICAgICBsZXQgYXNzZW1ibGVyID0gdGhpcy5fYXNzZW1ibGVyID0gbmV3IFRtb0Fzc2VtYmxlcigpO1xyXG4gICAgICAgIGFzc2VtYmxlci5pbml0KHRoaXMpO1xyXG5cclxuICAgICAgICB0aGlzLl91cGRhdGVDb2xvcigpO1xyXG4gICAgICAgIHRoaXMuc2V0VmVydHNEaXJ0eSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICBfZ2V0VGlsZWRNYXAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZS5fdGlsZWRNYXA7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzTm9Db2xvcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0VGlsZWRNYXAoKS5pc05vQ29sb3IoKTtcclxuICAgIH1cclxufSk7XHJcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vU3ByaXRlLmpzIl0sIm5hbWVzIjpbIl9UbW9Bc3NlbWJsZXIiLCJyZXF1aXJlIiwiX2RlZmF1bHQiLCJjYyIsIkNsYXNzIiwiU3ByaXRlIiwic2V0VGV4dHVyZUlkeCIsImlkeCIsIl90ZXh0dXJlSWR4Iiwic2V0VmVydHNEaXJ0eSIsIl9nZXREZWZhdWx0TWF0ZXJpYWwiLCJfZ2V0VGlsZWRNYXAiLCJnZXRPYmplY3RNYXRlcmlhbCIsIl91cGRhdGVNYXRlcmlhbCIsIm1hdGVyaWFsIiwiZ2V0TWF0ZXJpYWwiLCJnZXREZWZpbmUiLCJ1bmRlZmluZWQiLCJkZWZpbmUiLCJ1cGRhdGVIYXNoIiwibm9Db2xvciIsImlzTm9Db2xvciIsIkJsZW5kRnVuYyIsInByb3RvdHlwZSIsImNhbGwiLCJfcmVzZXRBc3NlbWJsZXIiLCJhc3NlbWJsZXIiLCJfYXNzZW1ibGVyIiwiVG1vQXNzZW1ibGVyIiwiaW5pdCIsIl91cGRhdGVDb2xvciIsIm5vZGUiLCJfdGlsZWRNYXAiLCJleHBvcnRzIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsYUFBQSxHQUFBQyxPQUFBO0FBQThDLElBQUFDLFFBQUEsR0FFL0JDLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDO0VBQ3BCLFdBQVNELEVBQUUsQ0FBQ0UsTUFBTTtFQUVsQjtBQUNKO0FBQ0E7RUFDSUMsYUFBYSxXQUFBQSxjQUFDQyxHQUFHLEVBQUU7SUFDZixJQUFJLENBQUNDLFdBQVcsR0FBR0QsR0FBRztJQUN0QixJQUFJLENBQUNFLGFBQWEsRUFBRTtFQUN4QixDQUFDO0VBRURDLG1CQUFtQixXQUFBQSxvQkFBQSxFQUFHO0lBQ2xCO0lBQ0EsT0FBTyxJQUFJLENBQUNDLFlBQVksRUFBRSxDQUFDQyxpQkFBaUIsRUFBRTtFQUNsRCxDQUFDO0VBRURDLGVBQWUsV0FBQUEsZ0JBQUEsRUFBRztJQUNkO0lBQ0EsSUFBSUMsUUFBUSxHQUFHLElBQUksQ0FBQ0MsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNsQyxJQUFJRCxRQUFRLEVBQUU7TUFDVixJQUFJQSxRQUFRLENBQUNFLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBS0MsU0FBUyxFQUFFO1FBQ2pESCxRQUFRLENBQUNJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDO01BQ3hDO01BQ0E7TUFDQUosUUFBUSxDQUFDSyxVQUFVLENBQUMsTUFBTSxDQUFDOztNQUUzQjtNQUNBLElBQUlDLE9BQU8sR0FBRyxJQUFJLENBQUNDLFNBQVMsRUFBRTtNQUM5QlAsUUFBUSxDQUFDSSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUNFLE9BQU8sQ0FBQztJQUMzQztJQUVBakIsRUFBRSxDQUFDbUIsU0FBUyxDQUFDQyxTQUFTLENBQUNWLGVBQWUsQ0FBQ1csSUFBSSxDQUFDLElBQUksQ0FBQztFQUNyRCxDQUFDO0VBRURDLGVBQWUsV0FBQUEsZ0JBQUEsRUFBRztJQUNkO0lBQ0EsSUFBSUMsU0FBUyxHQUFHLElBQUksQ0FBQ0MsVUFBVSxHQUFHLElBQUlDLDBCQUFZLEVBQUU7SUFDcERGLFNBQVMsQ0FBQ0csSUFBSSxDQUFDLElBQUksQ0FBQztJQUVwQixJQUFJLENBQUNDLFlBQVksRUFBRTtJQUNuQixJQUFJLENBQUNyQixhQUFhLEVBQUU7RUFDeEIsQ0FBQztFQUVERSxZQUFZLFdBQUFBLGFBQUEsRUFBRztJQUNYLE9BQU8sSUFBSSxDQUFDb0IsSUFBSSxDQUFDQyxTQUFTO0VBQzlCLENBQUM7RUFFRFgsU0FBUyxXQUFBQSxVQUFBLEVBQUc7SUFDUixPQUFPLElBQUksQ0FBQ1YsWUFBWSxFQUFFLENBQUNVLFNBQVMsRUFBRTtFQUMxQztBQUNKLENBQUMsQ0FBQztBQUFBWSxPQUFBLGNBQUEvQixRQUFBO0FBQUFnQyxNQUFBLENBQUFELE9BQUEsR0FBQUEsT0FBQSIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG1vQXNzZW1ibGVyIH0gZnJvbSBcIi4vVG1vQXNzZW1ibGVyXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjYy5DbGFzcyh7XHJcbiAgICBleHRlbmRzOiBjYy5TcHJpdGUsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDorr7nva5UZXh0dXJlSW5kZXhcclxuICAgICAqL1xyXG4gICAgc2V0VGV4dHVyZUlkeChpZHgpIHtcclxuICAgICAgICB0aGlzLl90ZXh0dXJlSWR4ID0gaWR4XHJcbiAgICAgICAgdGhpcy5zZXRWZXJ0c0RpcnR5KCk7XHJcbiAgICB9LFxyXG5cclxuICAgIF9nZXREZWZhdWx0TWF0ZXJpYWwoKSB7XHJcbiAgICAgICAgLy8g5LuOVGlsZWRNYXDlj5blvpfpu5jorqTnmoTmnZDotKhcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0VGlsZWRNYXAoKS5nZXRPYmplY3RNYXRlcmlhbCgpO1xyXG4gICAgfSxcclxuXHJcbiAgICBfdXBkYXRlTWF0ZXJpYWwoKSB7XHJcbiAgICAgICAgLy8gbWFrZSBzdXJlIG1hdGVyaWFsIGlzIGJlbG9uZyB0byBzZWxmLlxyXG4gICAgICAgIGxldCBtYXRlcmlhbCA9IHRoaXMuZ2V0TWF0ZXJpYWwoMCk7XHJcbiAgICAgICAgaWYgKG1hdGVyaWFsKSB7XHJcbiAgICAgICAgICAgIGlmIChtYXRlcmlhbC5nZXREZWZpbmUoJ1VTRV9URVhUVVJFJykgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgbWF0ZXJpYWwuZGVmaW5lKCdVU0VfVEVYVFVSRScsIHRydWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIOaJi+WKqOiuvue9ruWTiOW4jOWAvO+8jOmBv+WFjeaXoOazleWQiOaJuVxyXG4gICAgICAgICAgICBtYXRlcmlhbC51cGRhdGVIYXNoKDk5OTk5OSk7XHJcblxyXG4gICAgICAgICAgICAvLyDlop7liqBXSVRIX0NPTE9S5a6P5a6a5LmJXHJcbiAgICAgICAgICAgIGxldCBub0NvbG9yID0gdGhpcy5pc05vQ29sb3IoKTtcclxuICAgICAgICAgICAgbWF0ZXJpYWwuZGVmaW5lKCdXSVRIX0NPTE9SJywgIW5vQ29sb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2MuQmxlbmRGdW5jLnByb3RvdHlwZS5fdXBkYXRlTWF0ZXJpYWwuY2FsbCh0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgX3Jlc2V0QXNzZW1ibGVyKCkge1xyXG4gICAgICAgIC8vIOS/ruaUuem7mOiupEFzc2VtYmxlclxyXG4gICAgICAgIGxldCBhc3NlbWJsZXIgPSB0aGlzLl9hc3NlbWJsZXIgPSBuZXcgVG1vQXNzZW1ibGVyKCk7XHJcbiAgICAgICAgYXNzZW1ibGVyLmluaXQodGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbG9yKCk7XHJcbiAgICAgICAgdGhpcy5zZXRWZXJ0c0RpcnR5KCk7XHJcbiAgICB9LFxyXG5cclxuICAgIF9nZXRUaWxlZE1hcCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5ub2RlLl90aWxlZE1hcDtcclxuICAgIH0sXHJcblxyXG4gICAgaXNOb0NvbG9yKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRUaWxlZE1hcCgpLmlzTm9Db2xvcigpO1xyXG4gICAgfVxyXG59KTtcclxuIl19 \ No newline at end of file diff --git a/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoTiledLayer.js b/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoTiledLayer.js index 7e109f8..93df759 100644 --- a/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoTiledLayer.js +++ b/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoTiledLayer.js @@ -17,19 +17,16 @@ cc._RF.push(module, 'd60cfrGbXBLBbplLoT7TBn7', 'TmoTiledLayer'); 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 _mat4_temp = cc.mat4(); - var _vec2_temp = cc.v2(); - var _vec2_temp2 = cc.v2(); - var _default = cc.Class({ "extends": cc.TiledLayer, // 此处修改 增加firstTmxLayer参数 @@ -37,13 +34,15 @@ var _default = cc.Class({ // 修改结束 this._cullingDirty = true; this._layerInfo = layerInfo; - this._mapInfo = mapInfo; // 此处修改 保存firstTmxLayer参数 - + this._mapInfo = mapInfo; + // 此处修改 保存firstTmxLayer参数 this._firstTmxLayer = firstTmxLayer; - this._tiledMap = tiledMap; // 修改结束 + this._tiledMap = tiledMap; + // 修改结束 - var size = layerInfo._layerSize; // layerInfo + var size = layerInfo._layerSize; + // layerInfo this._layerName = layerInfo.name; this._tiles = layerInfo._tiles; this._properties = layerInfo.properties; @@ -55,30 +54,30 @@ var _default = cc.Class({ this._staggerAxis = mapInfo.getStaggerAxis(); this._staggerIndex = mapInfo.getStaggerIndex(); this._hexSideLength = mapInfo.getHexSideLength(); - this._animations = mapInfo.getTileAnimations(); // tilesets + this._animations = mapInfo.getTileAnimations(); - this._tilesets = tilesets; // textures - - this._textures = textures; // grid texture - - this._texGrids = texGrids; // mapInfo + // 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; + 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; @@ -90,22 +89,19 @@ var _default = cc.Class({ 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); - + } + // 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() { @@ -115,20 +111,17 @@ var _default = cc.Class({ // 此处修改 若不为首个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; @@ -138,15 +131,13 @@ var _default = cc.Class({ 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。 + 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; - } // 修改结束 - + } + // 修改结束 } } }, @@ -158,35 +149,30 @@ var _default = cc.Class({ 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); // 此处修改 当只有一个图集时 可以直接停止遍历 + tilesetIndexArr.push(tilesetIdx); + // 此处修改 当只有一个图集时 可以直接停止遍历 if (singleTexture) { break; - } // 修改结束 - + } + // 修改结束 } } }); - exports["default"] = _default; module.exports = exports["default"]; @@ -201,4 +187,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vVGlsZWRMYXllci5qcyJdLCJuYW1lcyI6WyJfbWF0NF90ZW1wIiwiY2MiLCJtYXQ0IiwiX3ZlYzJfdGVtcCIsInYyIiwiX3ZlYzJfdGVtcDIiLCJDbGFzcyIsIlRpbGVkTGF5ZXIiLCJfaW5pdCIsImxheWVySW5mbyIsIm1hcEluZm8iLCJ0aWxlc2V0cyIsInRleHR1cmVzIiwidGV4R3JpZHMiLCJ0aWxlZE1hcCIsImZpcnN0VG14TGF5ZXIiLCJfY3VsbGluZ0RpcnR5IiwiX2xheWVySW5mbyIsIl9tYXBJbmZvIiwiX2ZpcnN0VG14TGF5ZXIiLCJfdGlsZWRNYXAiLCJzaXplIiwiX2xheWVyU2l6ZSIsIl9sYXllck5hbWUiLCJuYW1lIiwiX3RpbGVzIiwiX3Byb3BlcnRpZXMiLCJwcm9wZXJ0aWVzIiwiX21pbkdJRCIsIl9tYXhHSUQiLCJfb3BhY2l0eSIsIl9yZW5kZXJPcmRlciIsInJlbmRlck9yZGVyIiwiX3N0YWdnZXJBeGlzIiwiZ2V0U3RhZ2dlckF4aXMiLCJfc3RhZ2dlckluZGV4IiwiZ2V0U3RhZ2dlckluZGV4IiwiX2hleFNpZGVMZW5ndGgiLCJnZXRIZXhTaWRlTGVuZ3RoIiwiX2FuaW1hdGlvbnMiLCJnZXRUaWxlQW5pbWF0aW9ucyIsIl90aWxlc2V0cyIsIl90ZXh0dXJlcyIsIl90ZXhHcmlkcyIsIl9sYXllck9yaWVudGF0aW9uIiwib3JpZW50YXRpb24iLCJfbWFwVGlsZVNpemUiLCJnZXRUaWxlU2l6ZSIsIm1hcHR3Iiwid2lkdGgiLCJtYXB0aCIsImhlaWdodCIsImxheWVyVyIsImxheWVySCIsIlRpbGVkTWFwIiwiT3JpZW50YXRpb24iLCJIRVgiLCJTdGFnZ2VyQXhpcyIsIlN0YWdnZXJJbmRleCIsIl9vZGRfZXZlbiIsIlNUQUdHRVJJTkRFWF9PREQiLCJTVEFHR0VSQVhJU19YIiwiX2RpZmZYMSIsIl9kaWZmWTEiLCJNYXRoIiwiZmxvb3IiLCJub2RlIiwic2V0Q29udGVudFNpemUiLCJJU08iLCJ3aCIsIl9vZmZzZXQiLCJvZmZzZXQiLCJ4IiwieSIsIl91c2VBdXRvbWF0aWNWZXJ0ZXhaIiwiX3ZlcnRleFp2YWx1ZSIsIl9zeW5jQW5jaG9yUG9pbnQiLCJfcHJlcGFyZVRvUmVuZGVyIiwiX3VwZGF0ZUN1bGxpbmciLCJDQ19FRElUT1IiLCJlbmFibGVDdWxsaW5nIiwiX2VuYWJsZUN1bGxpbmciLCJfY3VsbGluZ1JlY3QiLCJfY2FjaGVDdWxsaW5nRGlydHkiLCJfdXBkYXRlV29ybGRNYXRyaXgiLCJNYXQ0IiwiaW52ZXJ0IiwiX3dvcmxkTWF0cml4IiwicmVjdCIsInZpc2libGVSZWN0IiwiY2FtZXJhIiwiQ2FtZXJhIiwiZmluZENhbWVyYSIsImdldFNjcmVlblRvV29ybGRQb2ludCIsIlZlYzIiLCJ0cmFuc2Zvcm1NYXQ0IiwiX3VwZGF0ZVZpZXdQb3J0IiwiX3RyYXZlcnNlQWxsR3JpZCIsInRpbGVzIiwidGlsZXNldEluZGV4QXJyIiwiX3RpbGVzZXRJbmRleEFyciIsInRpbGVzZXRJbmRleFRvQXJySW5kZXgiLCJfdGlsZXNldEluZGV4VG9BcnJJbmRleCIsIlRpbGVGbGFnIiwiRkxJUFBFRF9NQVNLIiwic2luZ2xlVGV4dHVyZSIsImlzU2luZ2xlVGV4dHVyZSIsImxlbmd0aCIsImkiLCJnaWQiLCJncmlkIiwiZXJyb3IiLCJ0aWxlc2V0SWR4IiwidGV4SWQiLCJ1bmRlZmluZWQiLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQUlBLFVBQVUsR0FBR0MsRUFBRSxDQUFDQyxJQUFILEVBQWpCOztBQUNBLElBQUlDLFVBQVUsR0FBR0YsRUFBRSxDQUFDRyxFQUFILEVBQWpCOztBQUNBLElBQUlDLFdBQVcsR0FBR0osRUFBRSxDQUFDRyxFQUFILEVBQWxCOztlQUVlSCxFQUFFLENBQUNLLEtBQUgsQ0FBUztBQUNwQixhQUFTTCxFQUFFLENB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akQsUUFBUSxDQUFDaUQsUUFBMUI7QUFDQSxRQUFNQyxZQUFZLEdBQUdELFFBQVEsQ0FBQ0MsWUFBOUI7O0FBRUEsUUFBSUMsYUFBYSxHQUFHLEtBQUtyRixTQUFMLENBQWVzRixlQUFmLEVBQXBCOztBQUVBUCxJQUFBQSxlQUFlLENBQUNRLE1BQWhCLEdBQXlCLENBQXpCOztBQUNBLFNBQUssSUFBSUMsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR1YsS0FBSyxDQUFDUyxNQUExQixFQUFrQ0MsQ0FBQyxFQUFuQyxFQUF1QztBQUNuQyxVQUFJQyxHQUFHLEdBQUdYLEtBQUssQ0FBQ1UsQ0FBRCxDQUFmO0FBQ0EsVUFBSUMsR0FBRyxLQUFLLENBQVosRUFBZTtBQUNmQSxNQUFBQSxHQUFHLEdBQUksQ0FBQ0EsR0FBRyxHQUFHTCxZQUFQLE1BQXlCLENBQWhDO0FBQ0EsVUFBSU0sSUFBSSxHQUFHakcsUUFBUSxDQUFDZ0csR0FBRCxDQUFuQjs7QUFDQSxVQUFJLENBQUNDLElBQUwsRUFBVztBQUNQN0csUUFBQUEsRUFBRSxDQUFDOEcsS0FBSCxDQUFTLHFEQUFULEVBQWdFRixHQUFoRTtBQUNBO0FBQ0g7O0FBQ0QsVUFBSUcsVUFBVSxHQUFHRixJQUFJLENBQUNHLEtBQXRCO0FBQ0EsVUFBSVosc0JBQXNCLENBQUNXLFVBQUQsQ0FBdEIsS0FBdUNFLFNBQTNDLEVBQXNEO0FBQ3REYixNQUFBQSxzQkFBc0IsQ0FBQ1csVUFBRCxDQUF0QixHQUFxQ2IsZUFBZSxDQUFDUSxNQUFyRDtBQUNBUixNQUFBQSxlQUFlLENBQUNnQixJQUFoQixDQUFxQkgsVUFBckIsRUFabUMsQ0FjbkM7O0FBQ0EsVUFBSVAsYUFBSixFQUFtQjtBQUNmO0FBQ0gsT0FqQmtDLENBa0JuQzs7QUFDSDtBQUNKO0FBdkptQixDQUFUIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBjYy5DbGFzczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvY2xhc3MuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmxldCBfbWF0NF90ZW1wID0gY2MubWF0NCgpO1xyXG5sZXQgX3ZlYzJfdGVtcCA9IGNjLnYyKCk7XHJcbmxldCBfdmVjMl90ZW1wMiA9IGNjLnYyKCk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjYy5DbGFzcyh7XHJcbiAgICBleHRlbmRzOiBjYy5UaWxlZExheWVyLFxyXG5cclxuICAgIC8vIOatpOWkhOS/ruaUuSDlop7liqBmaXJzdFRteExheWVy5Y+C5pWwXHJcbiAgICBfaW5pdChsYXllckluZm8sIG1hcEluZm8sIHRpbGVzZXRzLCB0ZXh0dXJlcywgdGV4R3JpZHMsIHRpbGVkTWFwLCBmaXJzdFRteExheWVyKSB7XHJcbiAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcbiAgICAgICAgdGhpcy5fY3VsbGluZ0RpcnR5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9sYXllckluZm8gPSBsYXllckluZm87XHJcbiAgICAgICAgdGhpcy5fbWFwSW5mbyA9IG1hcEluZm87XHJcbiAgICAgICAgLy8g5q2k5aSE5L+u5pS5IOS/neWtmGZpcnN0VG14TGF5ZXLlj4LmlbBcclxuICAgICAgICB0aGlzLl9maXJzdFRteExheWVyID0gZmlyc3RUbXhMYXllcjtcclxuICAgICAgICB0aGlzLl90aWxlZE1hcCA9IHRpbGVkTWFwO1xyXG4gICAgICAgIC8vIOS/ruaUuee7k+adn1xyXG5cclxuICAgICAgICBsZXQgc2l6ZSA9IGxheWVySW5mby5fbGF5ZXJTaXplO1xyXG5cclxuICAgICAgICAvLyBsYXllckluZm9cclxuICAgICAgICB0aGlzLl9sYXllck5hbWUgPSBsYXllckluZm8ubmFtZTtcclxuICAgICAgICB0aGlzLl90aWxlcyA9IGxheWVySW5mby5fdGlsZXM7XHJcbiAgICAgICAgdGhpcy5fcHJvcGVydGllcyA9IGxheWVySW5mby5wcm9wZXJ0aWVzO1xyXG4gICAgICAgIHRoaXMuX2xheWVyU2l6ZSA9IHNpemU7XHJcbiAgICAgICAgdGhpcy5fbWluR0lEID0gbGF5ZXJJbmZvLl9taW5HSUQ7XHJcbiAgICAgICAgdGhpcy5fbWF4R0lEID0gbGF5ZXJJbmZvLl9tYXhHSUQ7XHJcbiAgICAgICAgdGhpcy5fb3BhY2l0eSA9IGxheWVySW5mby5fb3BhY2l0eTtcclxuICAgICAgICB0aGlzLl9yZW5kZXJPcmRlciA9IG1hcEluZm8ucmVuZGVyT3JkZXI7XHJcbiAgICAgICAgdGhpcy5fc3RhZ2dlckF4aXMgPSBtYXBJbmZvLmdldFN0YWdnZXJBeGlzKCk7XHJcbiAgICAgICAgdGhpcy5fc3RhZ2dlckluZGV4ID0gbWFwSW5mby5nZXRTdGFnZ2VySW5kZXgoKTtcclxuICAgICAgICB0aGlzLl9oZXhTaWRlTGVuZ3RoID0gbWFwSW5mby5nZXRIZXhTaWRlTGVuZ3RoKCk7XHJcbiAgICAgICAgdGhpcy5fYW5pbWF0aW9ucyA9IG1hcEluZm8uZ2V0VGlsZUFuaW1hdGlvbnMoKTtcclxuXHJcbiAgICAgICAgLy8gdGlsZXNldHNcclxuICAgICAgICB0aGlzLl90aWxlc2V0cyA9IHRpbGVzZXRzO1xyXG4gICAgICAgIC8vIHRleHR1cmVzXHJcbiAgICAgICAgdGhpcy5fdGV4dHVyZXMgPSB0ZXh0dXJlcztcclxuICAgICAgICAvLyBncmlkIHRleHR1cmVcclxuICAgICAgICB0aGlzLl90ZXhHcmlkcyA9IHRleEdyaWRzO1xyXG5cclxuICAgICAgICAvLyBtYXBJbmZvXHJcbiAgICAgICAgdGhpcy5fbGF5ZXJPcmllbnRhdGlvbiA9IG1hcEluZm8ub3JpZW50YXRpb247XHJcbiAgICAgICAgdGhpcy5fbWFwVGlsZVNpemUgPSBtYXBJbmZvLmdldFRpbGVTaXplKCk7XHJcblxyXG4gICAgICAgIGxldCBtYXB0dyA9IHRoaXMuX21hcFRpbGVTaXplLndpZHRoO1xyXG4gICAgICAgIGxldCBtYXB0aCA9IHRoaXMuX21hcFRpbGVTaXplLmhlaWdodDtcclxuICAgICAgICBsZXQgbGF5ZXJXID0gdGhpcy5fbGF5ZXJTaXplLndpZHRoO1xyXG4gICAgICAgIGxldCBsYXllckggPSB0aGlzLl9sYXllclNpemUuaGVpZ2h0O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fbGF5ZXJPcmllbnRhdGlvbiA9PT0gY2MuVGlsZWRNYXAuT3JpZW50YXRpb24uSEVYKSB7XHJcbiAgICAgICAgICAgIC8vIGhhbmRsZSBoZXggbWFwXHJcbiAgICAgICAgICAgIGNvbnN0IFRpbGVkTWFwID0gY2MuVGlsZWRNYXA7XHJcbiAgICAgICAgICAgIGNvbnN0IFN0YWdnZXJBeGlzID0gVGlsZWRNYXAuU3RhZ2dlckF4aXM7XHJcbiAgICAgICAgICAgIGNvbnN0IFN0YWdnZXJJbmRleCA9IFRpbGVkTWFwLlN0YWdnZXJJbmRleDtcclxuICAgICAgICAgICAgbGV0IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX29kZF9ldmVuID0gKHRoaXMuX3N0YWdnZXJJbmRleCA9PT0gU3RhZ2dlckluZGV4LlNUQUdHRVJJTkRFWF9PREQpID8gMSA6IC0xO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fc3RhZ2dlckF4aXMgPT09IFN0YWdnZXJBeGlzLlNUQUdHRVJBWElTX1gpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZmZYMSA9IChtYXB0dyAtIHRoaXMuX2hleFNpZGVMZW5ndGgpIC8gMjtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZmZZMSA9IDA7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSBtYXB0aCAqIChsYXllckggKyAwLjUpO1xyXG4gICAgICAgICAgICAgICAgd2lkdGggPSAobWFwdHcgKyB0aGlzLl9oZXhTaWRlTGVuZ3RoKSAqIE1hdGguZmxvb3IobGF5ZXJXIC8gMikgKyBtYXB0dyAqIChsYXllclcgJSAyKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZmZYMSA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kaWZmWTEgPSAobWFwdGggLSB0aGlzLl9oZXhTaWRlTGVuZ3RoKSAvIDI7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG1hcHR3ICogKGxheWVyVyArIDAuNSk7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSAobWFwdGggKyB0aGlzLl9oZXhTaWRlTGVuZ3RoKSAqIE1hdGguZmxvb3IobGF5ZXJIIC8gMikgKyBtYXB0aCAqIChsYXllckggJSAyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuc2V0Q29udGVudFNpemUod2lkdGgsIGhlaWdodCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9sYXllck9yaWVudGF0aW9uID09PSBjYy5UaWxlZE1hcC5PcmllbnRhdGlvbi5JU08pIHtcclxuICAgICAgICAgICAgbGV0IHdoID0gbGF5ZXJXICsgbGF5ZXJIO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuc2V0Q29udGVudFNpemUobWFwdHcgKiAwLjUgKiB3aCwgbWFwdGggKiAwLjUgKiB3aCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnNldENvbnRlbnRTaXplKGxheWVyVyAqIG1hcHR3LCBsYXllckggKiBtYXB0aCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBvZmZzZXQgKGFmdGVyIGxheWVyIG9yaWVudGF0aW9uIGlzIHNldCk7XHJcbiAgICAgICAgdGhpcy5fb2Zmc2V0ID0gY2MudjIobGF5ZXJJbmZvLm9mZnNldC54LCAtbGF5ZXJJbmZvLm9mZnNldC55KTtcclxuICAgICAgICB0aGlzLl91c2VBdXRvbWF0aWNWZXJ0ZXhaID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fdmVydGV4WnZhbHVlID0gMDtcclxuICAgICAgICB0aGlzLl9zeW5jQW5jaG9yUG9pbnQoKTtcclxuICAgICAgICB0aGlzLl9wcmVwYXJlVG9SZW5kZXIoKTtcclxuICAgIH0sXHJcbiAgICBfdXBkYXRlQ3VsbGluZygpIHtcclxuICAgICAgICBpZiAoQ0NfRURJVE9SKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlQ3VsbGluZyhmYWxzZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9lbmFibGVDdWxsaW5nKSB7XHJcbiAgICAgICAgICAgIC8vIOatpOWkhOS/ruaUuSDoi6XkuI3kuLrpppbkuKpsYXllciDnm7TmjqXlpI3nlKhmaXJzdExheWVy55qE57uT5p6cXHJcbiAgICAgICAgICAgIC8vIHRoaXMuX2ZpcnN0VG14TGF5ZXLkuI3kuLrnqbrml7Yg6KGo56S65b2T5YmNbGF5ZXLkuI3mmK/pppbkuKpsYXllclxyXG4gICAgICAgICAgICBsZXQgZmlyc3RUbXhMYXllciA9IHRoaXMuX2ZpcnN0VG14TGF5ZXI7XHJcbiAgICAgICAgICAgIGlmICghIWZpcnN0VG14TGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2N1bGxpbmdSZWN0ID0gZmlyc3RUbXhMYXllci5fY3VsbGluZ1JlY3Q7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jdWxsaW5nRGlydHkgPSBmaXJzdFRteExheWVyLl9jYWNoZUN1bGxpbmdEaXJ0eTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyDkv67mlLnnu5PmnZ9cclxuXHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5fdXBkYXRlV29ybGRNYXRyaXgoKTtcclxuICAgICAgICAgICAgY2MuTWF0NC5pbnZlcnQoX21hdDRfdGVtcCwgdGhpcy5ub2RlLl93b3JsZE1hdHJpeCk7XHJcbiAgICAgICAgICAgIGxldCByZWN0ID0gY2MudmlzaWJsZVJlY3Q7XHJcbiAgICAgICAgICAgIGxldCBjYW1lcmEgPSBjYy5DYW1lcmEuZmluZENhbWVyYSh0aGlzLm5vZGUpO1xyXG4gICAgICAgICAgICBpZiAoY2FtZXJhKSB7XHJcbiAgICAgICAgICAgICAgICBfdmVjMl90ZW1wLnggPSAwO1xyXG4gICAgICAgICAgICAgICAgX3ZlYzJfdGVtcC55ID0gMDtcclxuICAgICAgICAgICAgICAgIF92ZWMyX3RlbXAyLnggPSBfdmVjMl90ZW1wLnggKyByZWN0LndpZHRoO1xyXG4gICAgICAgICAgICAgICAgX3ZlYzJfdGVtcDIueSA9IF92ZWMyX3RlbXAueSArIHJlY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgY2FtZXJhLmdldFNjcmVlblRvV29ybGRQb2ludChfdmVjMl90ZW1wLCBfdmVjMl90ZW1wKTtcclxuICAgICAgICAgICAgICAgIGNhbWVyYS5nZXRTY3JlZW5Ub1dvcmxkUG9pbnQoX3ZlYzJfdGVtcDIsIF92ZWMyX3RlbXAyKTtcclxuICAgICAgICAgICAgICAgIGNjLlZlYzIudHJhbnNmb3JtTWF0NChfdmVjMl90ZW1wLCBfdmVjMl90ZW1wLCBfbWF0NF90ZW1wKTtcclxuICAgICAgICAgICAgICAgIGNjLlZlYzIudHJhbnNmb3JtTWF0NChfdmVjMl90ZW1wMiwgX3ZlYzJfdGVtcDIsIF9tYXQ0X3RlbXApO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZpZXdQb3J0KF92ZWMyX3RlbXAueCwgX3ZlYzJfdGVtcC55LCBfdmVjMl90ZW1wMi54IC0gX3ZlYzJfdGVtcC54LCBfdmVjMl90ZW1wMi55IC0gX3ZlYzJfdGVtcC55KTtcclxuICAgICAgICAgICAgICAgIC8vIOatpOWkhOS/ruaUuSDoi6XkuLrpppbkuKpsYXllciDnvJPlrZhfY3VsbGluZ0RpcnR544CCXHJcbiAgICAgICAgICAgICAgICAvLyBfY3VsbGluZ0RpcnR55Lya5Zyo5aGr5YWF5riy5p+T5pWw5o2u5ZCO6KKr5pS55Li6ZmFsc2Ug5omA5Lul6ZyA6KaB57yT5a2Y6L+Z6YeM55qE57uT5p6cXHJcbiAgICAgICAgICAgICAgICBpZiAoIWZpcnN0VG14TGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZUN1bGxpbmdEaXJ0eSA9IHRoaXMuX2N1bGxpbmdEaXJ0eTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIOS/ruaUuee7k+adn1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIF90cmF2ZXJzZUFsbEdyaWQgKCkge1xyXG4gICAgICAgIGxldCB0aWxlcyA9IHRoaXMuX3RpbGVzO1xyXG4gICAgICAgIGxldCB0ZXhHcmlkcyA9IHRoaXMuX3RleEdyaWRzO1xyXG4gICAgICAgIGxldCB0aWxlc2V0SW5kZXhBcnIgPSB0aGlzLl90aWxlc2V0SW5kZXhBcnI7XHJcbiAgICAgICAgbGV0IHRpbGVzZXRJbmRleFRvQXJySW5kZXggPSB0aGlzLl90aWxlc2V0SW5kZXhUb0FyckluZGV4ID0ge307XHJcblxyXG4gICAgICAgIGNvbnN0IFRpbGVkTWFwID0gY2MuVGlsZWRNYXA7XHJcbiAgICAgICAgY29uc3QgVGlsZUZsYWcgPSBUaWxlZE1hcC5UaWxlRmxhZztcclxuICAgICAgICBjb25zdCBGTElQUEVEX01BU0sgPSBUaWxlRmxhZy5GTElQUEVEX01BU0s7XHJcblxyXG4gICAgICAgIGxldCBzaW5nbGVUZXh0dXJlID0gdGhpcy5fdGlsZWRNYXAuaXNTaW5nbGVUZXh0dXJlKCk7XHJcblxyXG4gICAgICAgIHRpbGVzZXRJbmRleEFyci5sZW5ndGggPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGdpZCA9IHRpbGVzW2ldO1xyXG4gICAgICAgICAgICBpZiAoZ2lkID09PSAwKSBjb250aW51ZTtcclxuICAgICAgICAgICAgZ2lkID0gKChnaWQgJiBGTElQUEVEX01BU0spID4+PiAwKTtcclxuICAgICAgICAgICAgbGV0IGdyaWQgPSB0ZXhHcmlkc1tnaWRdO1xyXG4gICAgICAgICAgICBpZiAoIWdyaWQpIHtcclxuICAgICAgICAgICAgICAgIGNjLmVycm9yKFwiQ0NUaWxlZExheWVyOl90cmF2ZXJzZUFsbEdyaWQgZ3JpZCBpcyBudWxsLCBnaWQgaXM6XCIsIGdpZCk7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgdGlsZXNldElkeCA9IGdyaWQudGV4SWQ7XHJcbiAgICAgICAgICAgIGlmICh0aWxlc2V0SW5kZXhUb0FyckluZGV4W3RpbGVzZXRJZHhdICE9PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB0aWxlc2V0SW5kZXhUb0FyckluZGV4W3RpbGVzZXRJZHhdID0gdGlsZXNldEluZGV4QXJyLmxlbmd0aDtcclxuICAgICAgICAgICAgdGlsZXNldEluZGV4QXJyLnB1c2godGlsZXNldElkeCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvLyDmraTlpITkv67mlLkg5b2T5Y+q5pyJ5LiA5Liq5Zu+6ZuG5pe2IOWPr+S7peebtOaOpeWBnOatoumBjeWOhlxyXG4gICAgICAgICAgICBpZiAoc2luZ2xlVGV4dHVyZSkge1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxufSk7XHJcbiJdfQ== \ No newline at end of file +//# 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 \ No newline at end of file diff --git a/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoTiledMap.js b/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoTiledMap.js index d830e1d..2049cc0 100644 --- a/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoTiledMap.js +++ b/temp/quick-scripts/dst/tiledmap-optimize-resource/Script/TmoTiledMap.js @@ -22,9 +22,7 @@ cc._RF.push(module, '0b9eetmSUdJRZCQS91TYCw/', 'TmoTiledMap'); // 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: { @@ -38,7 +36,6 @@ cc.Class({ cc.error("TiledmapOptimize: 未设置objectMaterial!"); return; } - this._super(); }, _buildLayerAndGroup: function _buildLayerAndGroup() { @@ -46,32 +43,25 @@ cc.Class({ 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 = []; @@ -83,49 +73,40 @@ cc.Class({ 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; + // 修改结束 - 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; @@ -133,11 +114,9 @@ cc.Class({ 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; @@ -145,33 +124,26 @@ cc.Class({ child.height = texture.height; images.push(child); } - maxWidth = Math.max(maxWidth, child.width); maxHeight = Math.max(maxHeight, child.height); } - } // 设置材质的texture属性 - + } + // 设置材质的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() { @@ -199,4 +171,4 @@ cc._RF.pop(); }); } })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vVGlsZWRNYXAuanMiXSwibmFtZXMiOlsiVG1vVGlsZWRMYXllciIsInJlcXVpcmUiLCJUbW9PYmplY3RHcm91cCIsImNjIiwiQ2xhc3MiLCJUaWxlZE1hcCIsInByb3BlcnRpZXMiLCJvYmplY3RNYXRlcmlhbCIsIk1hdGVyaWFsIiwibm9Db2xvciIsInNpbmdsZVRleHR1cmUiLCJfb2JqZWN0VGV4dHVyZXMiLCJfYXBwbHlGaWxlIiwiZXJyb3IiLCJfc3VwZXIiLCJfYnVpbGRMYXllckFuZEdyb3VwIiwidGlsZXNldHMiLCJfdGlsZXNldHMiLCJ0ZXhHcmlkcyIsIl90ZXhHcmlkcyIsImFuaW1hdGlvbnMiLCJfYW5pbWF0aW9ucyIsImxlbmd0aCIsImkiLCJsIiwidGlsZXNldEluZm8iLCJmaWxsVGV4dHVyZUdyaWRzIiwiX2ZpbGxBbmlHcmlkcyIsImxheWVycyIsIl9sYXllcnMiLCJncm91cHMiLCJfZ3JvdXBzIiwiaW1hZ2VzIiwiX2ltYWdlcyIsIm9sZE5vZGVOYW1lcyIsIm4iLCJub2RlIiwiX25hbWUiLCJtYXBJbmZvIiwiX21hcEluZm8iLCJsYXllckluZm9zIiwiZ2V0QWxsQ2hpbGRyZW4iLCJ0ZXh0dXJlcyIsIl90ZXh0dXJlcyIsIm1heFdpZHRoIiwibWF4SGVpZ2h0IiwiZmlyc3RUbXhMYXllciIsImxlbiIsImxheWVySW5mbyIsIm5hbWUiLCJjaGlsZCIsImdldENoaWxkQnlOYW1lIiwiTm9kZSIsImFkZENoaWxkIiwic2V0U2libGluZ0luZGV4IiwiYWN0aXZlIiwidmlzaWJsZSIsIlRNWExheWVySW5mbyIsImxheWVyIiwiZ2V0Q29tcG9uZW50IiwiYWRkQ29tcG9uZW50IiwiX2luaXQiLCJvd25UaWxlcyIsInB1c2giLCJUTVhPYmplY3RHcm91cEluZm8iLCJncm91cCIsIlRNWEltYWdlTGF5ZXJJbmZvIiwidGV4dHVyZSIsInNvdXJjZUltYWdlIiwib3BhY2l0eSIsIl9vZmZzZXQiLCJ2MiIsIm9mZnNldCIsIngiLCJ5IiwiaW1hZ2UiLCJTcHJpdGUiLCJzcGYiLCJzcHJpdGVGcmFtZSIsIlNwcml0ZUZyYW1lIiwic2V0VGV4dHVyZSIsIndpZHRoIiwiaGVpZ2h0IiwiTWF0aCIsIm1heCIsIm9iamVjdFRleHR1cmVzIiwiaWR4Iiwic2V0UHJvcGVydHkiLCJjaGlsZHJlbiIsImMiLCJkZXN0cm95IiwiX3N5bmNBbmNob3JQb2ludCIsImdldE9iamVjdE1hdGVyaWFsIiwiaXNOb0NvbG9yIiwiaXNTaW5nbGVUZXh0dXJlIiwiZ2V0T2JqZWN0VGV4dHVyZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUEsYUFBYSxHQUFHQyxPQUFPLENBQUMsaUJBQUQsQ0FBN0I7O0FBQ0EsSUFBTUMsY0FBYyxHQUFHRCxPQUFPLENBQUMsa0JBQUQsQ0FBOUI7O0FBQ0FFLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ0wsYUFBU0QsRUFBRSxDQUFDRSxRQURQO0FBRUxDLEVBQUFBLFVBQVUsRUFBRTtBQUNSQyxJQUFBQSxjQUFjLEVBQUVKLEVBQUUsQ0FBQ0ssUUFEWDtBQUVSQyxJQUFBQSxPQUFPLEVBQUUsSUFGRDtBQUdSQyxJQUFBQSxhQUFhLEVBQUUsSUFIUDtBQUtSQyxJQUFBQSxlQUFlLEVBQUU7QUFMVCxHQUZQO0FBV0xDLEVBQUFBLFVBQVUsRUFBRSxzQkFBWTtBQUNwQixRQUFJLENBQUMsS0FBS0wsY0FBVixFQUEwQjtBQUN0QkosTUFBQUEsRUFBRSxDQUFDVSxLQUFILENBQVMsc0NBQVQ7QUFDQTtBQUNIOztBQUVELFNBQUtDLE1BQUw7QUFDSCxHQWxCSTtBQW9CTEMsRUFBQUEsbUJBQW1CLEVBQUUsK0JBQVk7QUFDN0IsUUFBSUMsUUFBUSxHQUFHLEtBQUtDLFNBQXBCO0FBQ0EsUUFBSUMsUUFBUSxHQUFHLEtBQUtDLFNBQXBCO0FBQ0EsUUFBSUMsVUFBVSxHQUFHLEtB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SDtBQUNKOztBQUVELFNBQUt0RCxJQUFMLENBQVU2QyxLQUFWLEdBQWtCckMsUUFBbEI7QUFDQSxTQUFLUixJQUFMLENBQVU4QyxNQUFWLEdBQW1CckMsU0FBbkI7O0FBQ0EsU0FBSzhDLGdCQUFMO0FBQ0gsR0FqSkk7QUFtSkxDLEVBQUFBLGlCQUFpQixFQUFFLDZCQUFZO0FBQzNCLFdBQU8sS0FBS3JGLGNBQVo7QUFDSCxHQXJKSTtBQXVKTHNGLEVBQUFBLFNBQVMsRUFBRSxxQkFBWTtBQUNuQixXQUFPLEtBQUtwRixPQUFaO0FBQ0gsR0F6Skk7QUEySkxxRixFQUFBQSxlQUFlLEVBQUUsMkJBQVk7QUFDekIsV0FBTyxLQUFLcEYsYUFBWjtBQUNILEdBN0pJO0FBK0pMcUYsRUFBQUEsaUJBQWlCLEVBQUUsNkJBQVk7QUFDM0IsV0FBTyxLQUFLcEYsZUFBWjtBQUNIO0FBaktJLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5jb25zdCBUbW9UaWxlZExheWVyID0gcmVxdWlyZShcIi4vVG1vVGlsZWRMYXllclwiKTtcclxuY29uc3QgVG1vT2JqZWN0R3JvdXAgPSByZXF1aXJlKFwiLi9UbW9PYmplY3RHcm91cFwiKTtcclxuY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuVGlsZWRNYXAsXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgICAgb2JqZWN0TWF0ZXJpYWw6IGNjLk1hdGVyaWFsLFxyXG4gICAgICAgIG5vQ29sb3I6IHRydWUsXHJcbiAgICAgICAgc2luZ2xlVGV4dHVyZTogdHJ1ZSxcclxuXHJcbiAgICAgICAgX29iamVjdFRleHR1cmVzOiBbXSxcclxuICAgIH0sXHJcbiAgICBcclxuXHJcbiAgICBfYXBwbHlGaWxlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm9iamVjdE1hdGVyaWFsKSB7XHJcbiAgICAgICAgICAgIGNjLmVycm9yKFwiVGlsZWRtYXBPcHRpbWl6ZTog5pyq6K6+572ub2JqZWN0TWF0ZXJpYWwhXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zdXBlcigpO1xyXG4gICAgfSxcclxuXHJcbiAgICBfYnVpbGRMYXllckFuZEdyb3VwOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgbGV0IHRpbGVzZXRzID0gdGhpcy5fdGlsZXNldHM7XHJcbiAgICAgICAgbGV0IHRleEdyaWRzID0gdGhpcy5fdGV4R3JpZHM7XHJcbiAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSB0aGlzLl9hbmltYXRpb25zO1xyXG4gICAgICAgIHRleEdyaWRzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aWxlc2V0cy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcclxuICAgICAgICAgICAgbGV0IHRpbGVzZXRJbmZvID0gdGlsZXNldHNbaV07XHJcbiAgICAgICAgICAgIGlmICghdGlsZXNldEluZm8pIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBjYy5UaWxlZE1hcC5maWxsVGV4dHVyZUdyaWRzKHRpbGVzZXRJbmZvLCB0ZXhHcmlkcywgaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2ZpbGxBbmlHcmlkcyh0ZXhHcmlkcywgYW5pbWF0aW9ucyk7XHJcblxyXG4gICAgICAgIGxldCBsYXllcnMgPSB0aGlzLl9sYXllcnM7XHJcbiAgICAgICAgbGV0IGdyb3VwcyA9IHRoaXMuX2dyb3VwcztcclxuICAgICAgICBsZXQgaW1hZ2VzID0gdGhpcy5faW1hZ2VzO1xyXG4gICAgICAgIGxldCBvbGROb2RlTmFtZXMgPSB7fTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbiA9IGxheWVycy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgb2xkTm9kZU5hbWVzW2xheWVyc1tpXS5ub2RlLl9uYW1lXSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBuID0gZ3JvdXBzLmxlbmd0aDsgaSA8IG47IGkrKykge1xyXG4gICAgICAgICAgICBvbGROb2RlTmFtZXNbZ3JvdXBzW2ldLm5vZGUuX25hbWVdID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIG4gPSBpbWFnZXMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIG9sZE5vZGVOYW1lc1tpbWFnZXNbaV0uX25hbWVdID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxheWVycyA9IHRoaXMuX2xheWVycyA9IFtdO1xyXG4gICAgICAgIGdyb3VwcyA9IHRoaXMuX2dyb3VwcyA9IFtdO1xyXG4gICAgICAgIGltYWdlcyA9IHRoaXMuX2ltYWdlcyA9IFtdO1xyXG5cclxuICAgICAgICBsZXQgbWFwSW5mbyA9IHRoaXMuX21hcEluZm87XHJcbiAgICAgICAgbGV0IG5vZGUgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgbGV0IGxheWVySW5mb3MgPSBtYXBJbmZvLmdldEFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgbGV0IHRleHR1cmVzID0gdGhpcy5fdGV4dHVyZXM7XHJcbiAgICAgICAgbGV0IG1heFdpZHRoID0gMDtcclxuICAgICAgICBsZXQgbWF4SGVpZ2h0ID0gMDtcclxuXHJcbiAgICAgICAgdGhpcy5fb2JqZWN0VGV4dHVyZXMgPSBbXTtcclxuICAgICAgICBsZXQgZmlyc3RUbXhMYXllciA9IG51bGw7XHJcblxyXG4gICAgICAgIGlmIChsYXllckluZm9zICYmIGxheWVySW5mb3MubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gbGF5ZXJJbmZvcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGxheWVySW5mbyA9IGxheWVySW5mb3NbaV07XHJcbiAgICAgICAgICAgICAgICBsZXQgbmFtZSA9IGxheWVySW5mby5uYW1lO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBjaGlsZCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShuYW1lKTtcclxuICAgICAgICAgICAgICAgIG9sZE5vZGVOYW1lc1tuYW1lXSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICghY2hpbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZCA9IG5ldyBjYy5Ob2RlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQubmFtZSA9IG5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hZGRDaGlsZChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY2hpbGQuc2V0U2libGluZ0luZGV4KGkpO1xyXG4gICAgICAgICAgICAgICAgY2hpbGQuYWN0aXZlID0gbGF5ZXJJbmZvLnZpc2libGU7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGxheWVySW5mbyBpbnN0YW5jZW9mIGNjLlRNWExheWVySW5mbykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOatpOWkhOS/ruaUuSDmlLnkuLrliJvlu7pNeVRpbGVkTGF5ZXJcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbGF5ZXIgPSBjaGlsZC5nZXRDb21wb25lbnQoVG1vVGlsZWRMYXllcik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFsYXllcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXllciA9IGNoaWxkLmFkZENvbXBvbmVudChUbW9UaWxlZExheWVyKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5q2k5aSE5L+u5pS5IOS8oOmAkmZpcnN0VG14TGF5ZXIg6K6w5b2VZmlyc3RUbXhMYXllclxyXG4gICAgICAgICAgICAgICAgICAgIGxheWVyLl9pbml0KGxheWVySW5mbywgbWFwSW5mbywgdGlsZXNldHMsIHRleHR1cmVzLCB0ZXhHcmlkcywgdGhpcywgZmlyc3RUbXhMYXllcik7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RUbXhMYXllciA9IGZpcnN0VG14TGF5ZXIgfHwgbGF5ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHRlbGwgdGhlIGxheWVyaW5mbyB0byByZWxlYXNlIHRoZSBvd25lcnNoaXAgb2YgdGhlIHRpbGVzIG1hcC5cclxuICAgICAgICAgICAgICAgICAgICBsYXllckluZm8ub3duVGlsZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBsYXllcnMucHVzaChsYXllcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChsYXllckluZm8gaW5zdGFuY2VvZiBjYy5UTVhPYmplY3RHcm91cEluZm8pIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXAgPSBjaGlsZC5nZXRDb21wb25lbnQoVG1vT2JqZWN0R3JvdXApO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghZ3JvdXApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAgPSBjaGlsZC5hZGRDb21wb25lbnQoVG1vT2JqZWN0R3JvdXApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAuX2luaXQobGF5ZXJJbmZvLCBtYXBJbmZvLCB0ZXhHcmlkcywgdGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBzLnB1c2goZ3JvdXApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobGF5ZXJJbmZvIGluc3RhbmNlb2YgY2MuVE1YSW1hZ2VMYXllckluZm8pIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGV4dHVyZSA9IGxheWVySW5mby5zb3VyY2VJbWFnZTtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZC5vcGFjaXR5ID0gbGF5ZXJJbmZvLm9wYWNpdHk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQubGF5ZXJJbmZvID0gbGF5ZXJJbmZvO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkLl9vZmZzZXQgPSBjYy52MihsYXllckluZm8ub2Zmc2V0LngsIC1sYXllckluZm8ub2Zmc2V0LnkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBsZXQgaW1hZ2UgPSBjaGlsZC5nZXRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWltYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlID0gY2hpbGQuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBsZXQgc3BmID0gaW1hZ2Uuc3ByaXRlRnJhbWUgfHwgbmV3IGNjLlNwcml0ZUZyYW1lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldFRleHR1cmUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2Uuc3ByaXRlRnJhbWUgPSBzcGY7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkLndpZHRoID0gdGV4dHVyZS53aWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZC5oZWlnaHQgPSB0ZXh0dXJlLmhlaWdodDtcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZXMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgbWF4V2lkdGggPSBNYXRoLm1heChtYXhXaWR0aCwgY2hpbGQud2lkdGgpO1xyXG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0ID0gTWF0aC5tYXgobWF4SGVpZ2h0LCBjaGlsZC5oZWlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDorr7nva7mnZDotKjnmoR0ZXh0dXJl5bGe5oCnXHJcbiAgICAgICAgbGV0IG9iamVjdFRleHR1cmVzID0gdGhpcy5fb2JqZWN0VGV4dHVyZXM7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmplY3RUZXh0dXJlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaWR4ID0gaSA9PT0gMCA/ICcnIDogaTtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RNYXRlcmlhbC5zZXRQcm9wZXJ0eShgdGV4dHVyZSR7aWR4fWAsIG9iamVjdFRleHR1cmVzW2ldLCAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW47XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIG4gPSBjaGlsZHJlbi5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGMgPSBjaGlsZHJlbltpXTtcclxuICAgICAgICAgICAgaWYgKG9sZE5vZGVOYW1lc1tjLl9uYW1lXSkge1xyXG4gICAgICAgICAgICAgICAgYy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubm9kZS53aWR0aCA9IG1heFdpZHRoO1xyXG4gICAgICAgIHRoaXMubm9kZS5oZWlnaHQgPSBtYXhIZWlnaHQ7XHJcbiAgICAgICAgdGhpcy5fc3luY0FuY2hvclBvaW50KCk7XHJcbiAgICB9LFxyXG5cclxuICAgIGdldE9iamVjdE1hdGVyaWFsOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0TWF0ZXJpYWw7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzTm9Db2xvcjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm5vQ29sb3I7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzU2luZ2xlVGV4dHVyZTogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNpbmdsZVRleHR1cmU7XHJcbiAgICB9LFxyXG5cclxuICAgIGdldE9iamVjdFRleHR1cmVzOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29iamVjdFRleHR1cmVzO1xyXG4gICAgfVxyXG59KTsiXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzXFxUaWxlZE1hcE9wdGltaXplclxccmVzb3VyY2VcXFNjcmlwdFxcVG1vVGlsZWRNYXAuanMiXSwibmFtZXMiOlsiVG1vVGlsZWRMYXllciIsInJlcXVpcmUiLCJUbW9PYmplY3RHcm91cCIsImNjIiwiQ2xhc3MiLCJUaWxlZE1hcCIsInByb3BlcnRpZXMiLCJvYmplY3RNYXRlcmlhbCIsIk1hdGVyaWFsIiwibm9Db2xvciIsInNpbmdsZVRleHR1cmUiLCJfb2JqZWN0VGV4dHVyZXMiLCJfYXBwbHlGaWxlIiwiZXJyb3IiLCJfc3VwZXIiLCJfYnVpbGRMYXllckFuZEdyb3VwIiwidGlsZXNldHMiLCJfdGlsZXNldHMiLCJ0ZXhHcmlkcyIsIl90ZXhHcmlkcyIsImFuaW1hdGlvbnMiLCJfYW5pbWF0aW9ucyIsImxlbmd0aCIsImkiLCJsIiwidGlsZXNldEluZm8iLCJmaWxsVGV4dHVyZUdyaWRzIiwiX2ZpbGxBbmlHcmlkcyIsImxheWVycyIsIl9sYXllcnMiLCJncm91cHMiLCJfZ3JvdXBzIiwiaW1hZ2VzIiwiX2ltYWdlcyIsIm9sZE5vZGVOYW1lcyIsIm4iLCJub2RlIiwiX25hbWUiLCJtYXBJbmZvIiwiX21hcEluZm8iLCJsYXllckluZm9zIiwiZ2V0QWxsQ2hpbGRyZW4iLCJ0ZXh0dXJlcyIsIl90ZXh0dXJlcyIsIm1heFdpZHRoIiwibWF4SGVpZ2h0IiwiZmlyc3RUbXhMYXllciIsImxlbiIsImxheWVySW5mbyIsIm5hbWUiLCJjaGlsZCIsImdldENoaWxkQnlOYW1lIiwiTm9kZSIsImFkZENoaWxkIiwic2V0U2libGluZ0luZGV4IiwiYWN0aXZlIiwidmlzaWJsZSIsIlRNWExheWVySW5mbyIsImxheWVyIiwiZ2V0Q29tcG9uZW50IiwiYWRkQ29tcG9uZW50IiwiX2luaXQiLCJvd25UaWxlcyIsInB1c2giLCJUTVhPYmplY3RHcm91cEluZm8iLCJncm91cCIsIlRNWEltYWdlTGF5ZXJJbmZvIiwidGV4dHVyZSIsInNvdXJjZUltYWdlIiwib3BhY2l0eSIsIl9vZmZzZXQiLCJ2MiIsIm9mZnNldCIsIngiLCJ5IiwiaW1hZ2UiLCJTcHJpdGUiLCJzcGYiLCJzcHJpdGVGcmFtZSIsIlNwcml0ZUZyYW1lIiwic2V0VGV4dHVyZSIsIndpZHRoIiwiaGVpZ2h0IiwiTWF0aCIsIm1heCIsIm9iamVjdFRleHR1cmVzIiwiaWR4Iiwic2V0UHJvcGVydHkiLCJjaGlsZHJlbiIsImMiLCJkZXN0cm95IiwiX3N5bmNBbmNob3JQb2ludCIsImdldE9iamVjdE1hdGVyaWFsIiwiaXNOb0NvbG9yIiwiaXNTaW5nbGVUZXh0dXJlIiwiZ2V0T2JqZWN0VGV4dHVyZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUEsYUFBYSxHQUFHQyxPQUFPLENBQUMsaUJBQWlCLENBQUM7QUFDaEQsSUFBTUMsY0FBYyxHQUFHRCxPQUFPLENBQUMsa0JBQWtCLENBQUM7QUFDbERFLEVBQUUsQ0FBQ0MsS0FBSyxDQUFDO0VBQ0wsV0FBU0QsRUFBRSxDQUFDRSxRQUFRO0VBQ3BCQyxVQUFVLEVBQUU7SUFDUkMsY0FBYyxFQUFFSixFQUFFLENBQUNLLFFBQVE7SUFDM0JDLE9BQU8sRUFBRSxJQUFJO0lBQ2JDLGFBQWEsRUFBRSxJQUFJO0lBRW5CQyxlQUFlLEVBQUU7RUFDckIsQ0FBQztFQUdEQyxVQUFVLEVBQUUsU0FBQUEsV0FBQSxFQUFZO0lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUNMLGNBQWMsRUFBRTtNQUN0QkosRUFBRSxDQUFDVSxLQUFLLENBQUMsc0NBQXNDLENBQUM7TUFDaEQ7SUFDSjtJQUVBLElBQUksQ0FBQ0MsTUFBTSxFQUFFO0VBQ2pCLENBQUM7RUFFREMsbUJBQW1CLEVBQUUsU0FBQUEsb0JBQUEsRUFBWTtJQUM3QixJQUFJQyxRQUFRLEdBQUcsSUFBSSxDQUFDQyxTQUFTO0lBQzdCLElBQUlDLFFBQVEsR0FBRyxJQUFJLENBQUNDLFNBQVM7SUFDN0IsSUFBSUMsVUFBVSxH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QUFDO0VBRURzRixTQUFTLEVBQUUsU0FBQUEsVUFBQSxFQUFZO0lBQ25CLE9BQU8sSUFBSSxDQUFDcEYsT0FBTztFQUN2QixDQUFDO0VBRURxRixlQUFlLEVBQUUsU0FBQUEsZ0JBQUEsRUFBWTtJQUN6QixPQUFPLElBQUksQ0FBQ3BGLGFBQWE7RUFDN0IsQ0FBQztFQUVEcUYsaUJBQWlCLEVBQUUsU0FBQUEsa0JBQUEsRUFBWTtJQUMzQixPQUFPLElBQUksQ0FBQ3BGLGVBQWU7RUFDL0I7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIGNjLkNsYXNzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9jbGFzcy5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5jb25zdCBUbW9UaWxlZExheWVyID0gcmVxdWlyZShcIi4vVG1vVGlsZWRMYXllclwiKTtcclxuY29uc3QgVG1vT2JqZWN0R3JvdXAgPSByZXF1aXJlKFwiLi9UbW9PYmplY3RHcm91cFwiKTtcclxuY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogY2MuVGlsZWRNYXAsXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgICAgb2JqZWN0TWF0ZXJpYWw6IGNjLk1hdGVyaWFsLFxyXG4gICAgICAgIG5vQ29sb3I6IHRydWUsXHJcbiAgICAgICAgc2luZ2xlVGV4dHVyZTogdHJ1ZSxcclxuXHJcbiAgICAgICAgX29iamVjdFRleHR1cmVzOiBbXSxcclxuICAgIH0sXHJcbiAgICBcclxuXHJcbiAgICBfYXBwbHlGaWxlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm9iamVjdE1hdGVyaWFsKSB7XHJcbiAgICAgICAgICAgIGNjLmVycm9yKFwiVGlsZWRtYXBPcHRpbWl6ZTog5pyq6K6+572ub2JqZWN0TWF0ZXJpYWwhXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zdXBlcigpO1xyXG4gICAgfSxcclxuXHJcbiAgICBfYnVpbGRMYXllckFuZEdyb3VwOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgbGV0IHRpbGVzZXRzID0gdGhpcy5fdGlsZXNldHM7XHJcbiAgICAgICAgbGV0IHRleEdyaWRzID0gdGhpcy5fdGV4R3JpZHM7XHJcbiAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSB0aGlzLl9hbmltYXRpb25zO1xyXG4gICAgICAgIHRleEdyaWRzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aWxlc2V0cy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcclxuICAgICAgICAgICAgbGV0IHRpbGVzZXRJbmZvID0gdGlsZXNldHNbaV07XHJcbiAgICAgICAgICAgIGlmICghdGlsZXNldEluZm8pIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBjYy5UaWxlZE1hcC5maWxsVGV4dHVyZUdyaWRzKHRpbGVzZXRJbmZvLCB0ZXhHcmlkcywgaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2ZpbGxBbmlHcmlkcyh0ZXhHcmlkcywgYW5pbWF0aW9ucyk7XHJcblxyXG4gICAgICAgIGxldCBsYXllcnMgPSB0aGlzLl9sYXllcnM7XHJcbiAgICAgICAgbGV0IGdyb3VwcyA9IHRoaXMuX2dyb3VwcztcclxuICAgICAgICBsZXQgaW1hZ2VzID0gdGhpcy5faW1hZ2VzO1xyXG4gICAgICAgIGxldCBvbGROb2RlTmFtZXMgPSB7fTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbiA9IGxheWVycy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgb2xkTm9kZU5hbWVzW2xheWVyc1tpXS5ub2RlLl9uYW1lXSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBuID0gZ3JvdXBzLmxlbmd0aDsgaSA8IG47IGkrKykge1xyXG4gICAgICAgICAgICBvbGROb2RlTmFtZXNbZ3JvdXBzW2ldLm5vZGUuX25hbWVdID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIG4gPSBpbWFnZXMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIG9sZE5vZGVOYW1lc1tpbWFnZXNbaV0uX25hbWVdID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxheWVycyA9IHRoaXMuX2xheWVycyA9IFtdO1xyXG4gICAgICAgIGdyb3VwcyA9IHRoaXMuX2dyb3VwcyA9IFtdO1xyXG4gICAgICAgIGltYWdlcyA9IHRoaXMuX2ltYWdlcyA9IFtdO1xyXG5cclxuICAgICAgICBsZXQgbWFwSW5mbyA9IHRoaXMuX21hcEluZm87XHJcbiAgICAgICAgbGV0IG5vZGUgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgbGV0IGxheWVySW5mb3MgPSBtYXBJbmZvLmdldEFsbENoaWxkcmVuKCk7XHJcbiAgICAgICAgbGV0IHRleHR1cmVzID0gdGhpcy5fdGV4dHVyZXM7XHJcbiAgICAgICAgbGV0IG1heFdpZHRoID0gMDtcclxuICAgICAgICBsZXQgbWF4SGVpZ2h0ID0gMDtcclxuXHJcbiAgICAgICAgdGhpcy5fb2JqZWN0VGV4dHVyZXMgPSBbXTtcclxuICAgICAgICBsZXQgZmlyc3RUbXhMYXllciA9IG51bGw7XHJcblxyXG4gICAgICAgIGlmIChsYXllckluZm9zICYmIGxheWVySW5mb3MubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gbGF5ZXJJbmZvcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGxheWVySW5mbyA9IGxheWVySW5mb3NbaV07XHJcbiAgICAgICAgICAgICAgICBsZXQgbmFtZSA9IGxheWVySW5mby5uYW1lO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBjaGlsZCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShuYW1lKTtcclxuICAgICAgICAgICAgICAgIG9sZE5vZGVOYW1lc1tuYW1lXSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICghY2hpbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZCA9IG5ldyBjYy5Ob2RlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQubmFtZSA9IG5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hZGRDaGlsZChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY2hpbGQuc2V0U2libGluZ0luZGV4KGkpO1xyXG4gICAgICAgICAgICAgICAgY2hpbGQuYWN0aXZlID0gbGF5ZXJJbmZvLnZpc2libGU7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGxheWVySW5mbyBpbnN0YW5jZW9mIGNjLlRNWExheWVySW5mbykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIOatpOWkhOS/ruaUuSDmlLnkuLrliJvlu7pNeVRpbGVkTGF5ZXJcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbGF5ZXIgPSBjaGlsZC5nZXRDb21wb25lbnQoVG1vVGlsZWRMYXllcik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFsYXllcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXllciA9IGNoaWxkLmFkZENvbXBvbmVudChUbW9UaWxlZExheWVyKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5q2k5aSE5L+u5pS5IOS8oOmAkmZpcnN0VG14TGF5ZXIg6K6w5b2VZmlyc3RUbXhMYXllclxyXG4gICAgICAgICAgICAgICAgICAgIGxheWVyLl9pbml0KGxheWVySW5mbywgbWFwSW5mbywgdGlsZXNldHMsIHRleHR1cmVzLCB0ZXhHcmlkcywgdGhpcywgZmlyc3RUbXhMYXllcik7XHJcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RUbXhMYXllciA9IGZpcnN0VG14TGF5ZXIgfHwgbGF5ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g5L+u5pS557uT5p2fXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHRlbGwgdGhlIGxheWVyaW5mbyB0byByZWxlYXNlIHRoZSBvd25lcnNoaXAgb2YgdGhlIHRpbGVzIG1hcC5cclxuICAgICAgICAgICAgICAgICAgICBsYXllckluZm8ub3duVGlsZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBsYXllcnMucHVzaChsYXllcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChsYXllckluZm8gaW5zdGFuY2VvZiBjYy5UTVhPYmplY3RHcm91cEluZm8pIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXAgPSBjaGlsZC5nZXRDb21wb25lbnQoVG1vT2JqZWN0R3JvdXApO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghZ3JvdXApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAgPSBjaGlsZC5hZGRDb21wb25lbnQoVG1vT2JqZWN0R3JvdXApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAuX2luaXQobGF5ZXJJbmZvLCBtYXBJbmZvLCB0ZXhHcmlkcywgdGhpcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBzLnB1c2goZ3JvdXApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobGF5ZXJJbmZvIGluc3RhbmNlb2YgY2MuVE1YSW1hZ2VMYXllckluZm8pIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdGV4dHVyZSA9IGxheWVySW5mby5zb3VyY2VJbWFnZTtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZC5vcGFjaXR5ID0gbGF5ZXJJbmZvLm9wYWNpdHk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQubGF5ZXJJbmZvID0gbGF5ZXJJbmZvO1xyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkLl9vZmZzZXQgPSBjYy52MihsYXllckluZm8ub2Zmc2V0LngsIC1sYXllckluZm8ub2Zmc2V0LnkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBsZXQgaW1hZ2UgPSBjaGlsZC5nZXRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWltYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlID0gY2hpbGQuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBsZXQgc3BmID0gaW1hZ2Uuc3ByaXRlRnJhbWUgfHwgbmV3IGNjLlNwcml0ZUZyYW1lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BmLnNldFRleHR1cmUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2Uuc3ByaXRlRnJhbWUgPSBzcGY7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkLndpZHRoID0gdGV4dHVyZS53aWR0aDtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZC5oZWlnaHQgPSB0ZXh0dXJlLmhlaWdodDtcclxuICAgICAgICAgICAgICAgICAgICBpbWFnZXMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgbWF4V2lkdGggPSBNYXRoLm1heChtYXhXaWR0aCwgY2hpbGQud2lkdGgpO1xyXG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0ID0gTWF0aC5tYXgobWF4SGVpZ2h0LCBjaGlsZC5oZWlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyDorr7nva7mnZDotKjnmoR0ZXh0dXJl5bGe5oCnXHJcbiAgICAgICAgbGV0IG9iamVjdFRleHR1cmVzID0gdGhpcy5fb2JqZWN0VGV4dHVyZXM7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmplY3RUZXh0dXJlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaWR4ID0gaSA9PT0gMCA/ICcnIDogaTtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RNYXRlcmlhbC5zZXRQcm9wZXJ0eShgdGV4dHVyZSR7aWR4fWAsIG9iamVjdFRleHR1cmVzW2ldLCAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW47XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIG4gPSBjaGlsZHJlbi5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGMgPSBjaGlsZHJlbltpXTtcclxuICAgICAgICAgICAgaWYgKG9sZE5vZGVOYW1lc1tjLl9uYW1lXSkge1xyXG4gICAgICAgICAgICAgICAgYy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubm9kZS53aWR0aCA9IG1heFdpZHRoO1xyXG4gICAgICAgIHRoaXMubm9kZS5oZWlnaHQgPSBtYXhIZWlnaHQ7XHJcbiAgICAgICAgdGhpcy5fc3luY0FuY2hvclBvaW50KCk7XHJcbiAgICB9LFxyXG5cclxuICAgIGdldE9iamVjdE1hdGVyaWFsOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0TWF0ZXJpYWw7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzTm9Db2xvcjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm5vQ29sb3I7XHJcbiAgICB9LFxyXG5cclxuICAgIGlzU2luZ2xlVGV4dHVyZTogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNpbmdsZVRleHR1cmU7XHJcbiAgICB9LFxyXG5cclxuICAgIGdldE9iamVjdFRleHR1cmVzOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29iamVjdFRleHR1cmVzO1xyXG4gICAgfVxyXG59KTsiXX0= \ 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 95aef55..d4b62d0 100644 --- a/temp/quick-scripts/src/__qc_index__.js +++ b/temp/quick-scripts/src/__qc_index__.js @@ -58,6 +58,8 @@ require('./assets/animation/NewScript'); require('./assets/effect/融化'); require('./assets/migration/use_v2.1-2.2.1_cc.Toggle_event'); require('./assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1'); +require('./assets/shop/script/item'); +require('./assets/shop/script/shop'); require('./tiledmap-optimize-resource/Script/TmoAssembler'); require('./tiledmap-optimize-resource/Script/TmoObjectGroup'); require('./tiledmap-optimize-resource/Script/TmoSprite'); diff --git a/temp/quick-scripts/src/assets/Script/Barrier.js b/temp/quick-scripts/src/assets/Script/Barrier.js index 3f7c7c8..099ff53 100644 --- a/temp/quick-scripts/src/assets/Script/Barrier.js +++ b/temp/quick-scripts/src/assets/Script/Barrier.js @@ -79,6 +79,7 @@ var Block = /** @class */ (function (_super) { 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 方法判断点是否在矩形范围内 diff --git a/temp/quick-scripts/src/assets/Script/Barrier.js.map b/temp/quick-scripts/src/assets/Script/Barrier.js.map index 47e637c..5e81e94 100644 --- a/temp/quick-scripts/src/assets/Script/Barrier.js.map +++ b/temp/quick-scripts/src/assets/Script/Barrier.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\Barrier.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import CollisionDetection from \"./CollisionDetection\";\r\nimport MapConroler from \"./Map\";\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class Block extends cc.Component {\r\n\r\n // 新增缓存变量\r\n private selfBoxColliders: cc.BoxCollider[] = [];\r\n private allBoxColliders: cc.BoxCollider[] = [];\r\n // @property({\r\n // tooltip: '碰撞形状,None就是无敌,不参与碰撞',\r\n // type: cc.Enum(BlockType),\r\n // // default: BlockType.Nomal,\r\n // displayName: '碰撞形状'\r\n // })\r\n\r\n\r\n\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n // @property(cc.SpriteAtlas)\r\n // UI: cc.SpriteAtlas = null;\r\n private initialTouchOffset: cc.Vec2 = null;\r\n private offsetTolerance = 100; // 偏移容忍度; \r\n\r\n allBlocks:any; //所有的方块,用于计算posX,posY消除\r\n touchPoint: cc.Vec2 = null; //触摸点\r\n isTouch: boolean = false; //是否触摸\r\n posX: number = 0; //地图块的X坐标\r\n posY: number = 0; //地图块的Y坐标\r\n moveLeft: boolean = true; //是否可以左移;\r\n moveRight: boolean = true; //是否可以右移;\r\n moveUp: boolean = true; //是否可以上移;\r\n moveDown: boolean = true; //是否可以下移;\r\n moveCorner: number = 0; //是否碰撞角落\r\n moveY:number = 0; //是否可以上下移动;\r\n moveX:number = 0; //是否可以左右移动;\r\n touchPointX: number = 0; //触摸点X坐标;\r\n touchPointY: number = 0; //触摸点Y坐标;\r\n blockId: number = 0; //方块ID;\r\n stacking: cc.Vec2; //叠加方块\r\n level: number = 0; //叠加方块层数;\r\n pz: boolean = false;\r\n collider: any;\r\n block_Info:any;\r\n _touchListener: any;\r\n relative_Position:cc.Vec2; //点击和方块相对位置\r\n private _eventManager: any;\r\n hit: cc.Node;\r\n\r\n\r\n\r\n onLoad () {\r\n // this.node.on(cc.Node.EventType.TOUCH_START, this.touchStart, this);\r\n // this.node.on(cc.Node.EventType.TOUCH_MOVE, this.touchMove, this); \r\n // this.node.on(cc.Node.EventType.TOUCH_CANCEL, this.touchEnd, this); \r\n // this.node.on(cc.Node.EventType.TOUCH_END, this.touchEnd, this); \r\n this.pz = false;\r\n this.stacking = cc.v2(0,0);\r\n // this.selfBoxColliders = this.node.getComponentsInChildren(cc.BoxCollider)\r\n // .filter(collider => collider.tag < 4);\r\n }\r\n\r\n\r\n start () {\r\n\r\n }\r\n\r\n jsonDeepClone(obj: T): T {\r\n return JSON.parse(JSON.stringify(obj));\r\n }\r\n\r\n init(block_Info,posX,posY,node){\r\n this.block_Info = this.jsonDeepClone(block_Info);\r\n let mapInfo = MapConroler._instance.mapInfo;\r\n for(let i=0; i collider.tag < 4);\r\n }\r\n\r\n\r\n start() {\r\n\r\n }\r\n\r\n jsonDeepClone(obj: T): T {\r\n return JSON.parse(JSON.stringify(obj));\r\n }\r\n\r\n init(block_Info, posX, posY, node) {\r\n this.block_Info = this.jsonDeepClone(block_Info);\r\n let mapInfo = MapConroler._instance.mapInfo;\r\n console.log(\"block_Info\", this.block_Info);\r\n for (let i = 0; i < mapInfo.length; i++) {\r\n let blockRect = mapInfo[i].getBoundingBox();\r\n // 使用 cc.Intersection.pointInRect 方法判断点是否在矩形范围内\r\n let point = cc.v2(this.node.position.x - 5, this.node.position.y + 10)\r\n if (blockRect.contains(point)) {\r\n this.posX = mapInfo[i].getComponent(\"MapBlock\").posX;\r\n this.posY = mapInfo[i].getComponent(\"MapBlock\").posY;\r\n this.level = 50 + this.posX - this.posY * 3;\r\n this.node.zIndex = this.level;\r\n this.node.x = mapInfo[i].x + 65;\r\n this.node.y = mapInfo[i].y - 60;\r\n i = 10000;\r\n break;\r\n }\r\n }\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/DynamicAtlasManager.js.map b/temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js.map index 73cca2f..52cfcb9 100644 --- a/temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js.map +++ b/temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\DynamicAtlasManager.js"],"names":["cc","Class","Component","properties","onLoad","dynamicAtlasManager","enabled"],"mappings":";;;;;;AAAAA,EAAE,CAACC,KAAH,CAAS;AACL,aAASD,EAAE,CAACE,SADP;AAGLC,EAAAA,UAAU,EAAE,EAHP;AAMLC,EAAAA,MANK,oBAMK;AACNJ,IAAAA,EAAE,CAACK,mBAAH,CAAuBC,OAAvB,GAAiC,KAAjC;AACH;AARI,CAAT","sourceRoot":"/","sourcesContent":["cc.Class({\r\n extends: cc.Component,\r\n\r\n properties: {\r\n },\r\n\r\n onLoad () {\r\n cc.dynamicAtlasManager.enabled = false;\r\n },\r\n});\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\DynamicAtlasManager.js"],"names":["cc","Class","Component","properties","onLoad","dynamicAtlasManager","enabled"],"mappings":";;;;;;AAAAA,EAAE,CAACC,KAAK,CAAC;EACL,WAASD,EAAE,CAACE,SAAS;EAErBC,UAAU,EAAE,CACZ,CAAC;EAEDC,MAAM,WAAAA,OAAA,EAAI;IACNJ,EAAE,CAACK,mBAAmB,CAACC,OAAO,GAAG,KAAK;EAC1C;AACJ,CAAC,CAAC","sourceRoot":"/","sourcesContent":["cc.Class({\r\n extends: cc.Component,\r\n\r\n properties: {\r\n },\r\n\r\n onLoad () {\r\n cc.dynamicAtlasManager.enabled = false;\r\n },\r\n});\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/GameManager.js b/temp/quick-scripts/src/assets/Script/GameManager.js index fb71e2f..07c6b41 100644 --- a/temp/quick-scripts/src/assets/Script/GameManager.js +++ b/temp/quick-scripts/src/assets/Script/GameManager.js @@ -82,6 +82,7 @@ var GameManager = /** @class */ (function (_super) { } // 将加载的 Prefab 赋值给 Block_Array _this.Block_Array = assets; + console.log('方块加载成功,共加载了', _this.Block_Array.length, '个方块'); _this.setSort(); _this.load1 = true; }); @@ -94,6 +95,7 @@ var GameManager = /** @class */ (function (_super) { // 将加载的 Prefab 赋值给 Block_Array _this.Wall_Prefab = assets; _this.load2 = true; + console.log('墙加载成功,共加载了', _this.Wall_Prefab.length, '个墙'); _this.setWallPrefabSort(); }); // debugger; diff --git a/temp/quick-scripts/src/assets/Script/GameManager.js.map b/temp/quick-scripts/src/assets/Script/GameManager.js.map index c28c802..eedca5c 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 \r\n console.error('动态加载 Prefab 失败:', 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 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.error('动态加载 Prefab 失败:', 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 this.setWallPrefabSort();\r\n });\r\n\r\n // debugger;\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 // });\r\n // }, 1000);\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 }\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 = 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 \r\n console.error('动态加载 Prefab 失败:', 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.error('动态加载 Prefab 失败:', 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 // debugger;\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 // });\r\n // }, 1000);\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 }\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 diff --git a/temp/quick-scripts/src/assets/Script/GameScene.js b/temp/quick-scripts/src/assets/Script/GameScene.js index 1dc8e4f..24fd759 100644 --- a/temp/quick-scripts/src/assets/Script/GameScene.js +++ b/temp/quick-scripts/src/assets/Script/GameScene.js @@ -2,6 +2,7 @@ cc._RF.push(module, 'e8b235WjRBErajwLmN8xFUz', 'GameScene'); // Script/GameScene.js + // cc.Class({ // extends: cc.Component, // properties: { @@ -32,15 +33,21 @@ cc._RF.push(module, 'e8b235WjRBErajwLmN8xFUz', 'GameScene'); // daojishi: cc.Label, // pause_anniu: cc.Sprite, // mask: cc.Node, + // flashUI: { // default: null, // type: cc.SpriteAtlas // }, // }, + // onLoad() { + // }, + // update(dt) { + // }, + // }); "use strict"; diff --git a/temp/quick-scripts/src/assets/Script/GameScene.js.map b/temp/quick-scripts/src/assets/Script/GameScene.js.map index 7b1d114..34b992f 100644 --- a/temp/quick-scripts/src/assets/Script/GameScene.js.map +++ b/temp/quick-scripts/src/assets/Script/GameScene.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\GameScene.js"],"names":[],"mappings":";;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAGA;AAEA;AAEA;AAEA","sourceRoot":"/","sourcesContent":["\r\n// cc.Class({\r\n// extends: cc.Component,\r\n// properties: {\r\n// localTest: {\r\n// default: false,\r\n// tooltip: '本地测试时勾选,避免tz_url和Configure报错,提交前勾掉'\r\n// },\r\n// clientTest: {\r\n// default: false,\r\n// tooltip: '客户端测试时勾选,展示版本标记方便测试区分,上线前勾掉'\r\n// },\r\n// clientTestVersion: {\r\n// default: '',\r\n// tooltip: '版本标记'\r\n// },\r\n// testVersion: cc.Label,\r\n// score: cc.Label,\r\n// double_hit: cc.Node,\r\n// add: cc.Node,\r\n// add2: cc.Node,\r\n// double_title: cc.Node,\r\n// count_time: cc.Node,\r\n// beginNode: cc.Node,\r\n// ball_nomal: [cc.SpriteFrame],\r\n// bg_nomal: [cc.SpriteFrame],\r\n// ball_light: [cc.SpriteFrame],\r\n// kuang_Frame: [cc.SpriteFrame],\r\n// daojishi: cc.Label,\r\n// pause_anniu: cc.Sprite,\r\n// mask: cc.Node,\r\n\r\n// flashUI: {\r\n// default: null,\r\n// type: cc.SpriteAtlas\r\n// },\r\n// },\r\n\r\n// onLoad() {\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\\GameScene.js"],"names":[],"mappings":";;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAGA;;AAEA;;AAEA;;AAEA;AAAA","sourceRoot":"/","sourcesContent":["\r\n// cc.Class({\r\n// extends: cc.Component,\r\n// properties: {\r\n// localTest: {\r\n// default: false,\r\n// tooltip: '本地测试时勾选,避免tz_url和Configure报错,提交前勾掉'\r\n// },\r\n// clientTest: {\r\n// default: false,\r\n// tooltip: '客户端测试时勾选,展示版本标记方便测试区分,上线前勾掉'\r\n// },\r\n// clientTestVersion: {\r\n// default: '',\r\n// tooltip: '版本标记'\r\n// },\r\n// testVersion: cc.Label,\r\n// score: cc.Label,\r\n// double_hit: cc.Node,\r\n// add: cc.Node,\r\n// add2: cc.Node,\r\n// double_title: cc.Node,\r\n// count_time: cc.Node,\r\n// beginNode: cc.Node,\r\n// ball_nomal: [cc.SpriteFrame],\r\n// bg_nomal: [cc.SpriteFrame],\r\n// ball_light: [cc.SpriteFrame],\r\n// kuang_Frame: [cc.SpriteFrame],\r\n// daojishi: cc.Label,\r\n// pause_anniu: cc.Sprite,\r\n// mask: cc.Node,\r\n\r\n// flashUI: {\r\n// default: null,\r\n// type: cc.SpriteAtlas\r\n// },\r\n// },\r\n\r\n// onLoad() {\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/temp/quick-scripts/src/assets/Script/JiaZai.js b/temp/quick-scripts/src/assets/Script/JiaZai.js index 87e031d..7a1b8cc 100644 --- a/temp/quick-scripts/src/assets/Script/JiaZai.js +++ b/temp/quick-scripts/src/assets/Script/JiaZai.js @@ -169,6 +169,24 @@ var NewClass = /** @class */ (function (_super) { // } } }; + //打开商店 + 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; }; diff --git a/temp/quick-scripts/src/assets/Script/JiaZai.js.map b/temp/quick-scripts/src/assets/Script/JiaZai.js.map index 983aef0..7acb276 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 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\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 diff --git a/temp/quick-scripts/src/assets/Script/Map.js b/temp/quick-scripts/src/assets/Script/Map.js index 0ff42c8..5a6640b 100644 --- a/temp/quick-scripts/src/assets/Script/Map.js +++ b/temp/quick-scripts/src/assets/Script/Map.js @@ -222,6 +222,7 @@ var MapConroler = /** @class */ (function (_super) { var _this = this; var blockArray = cc.fx.GameConfig.BLOCK_INFO[0]; blockArray = this.sortBlock(blockArray); + console.log("创建方块", blockArray); var index = 0; // 当前要创建的方块索引 var BLOCKS_PER_FRAME = 1; // 初始每帧创建的方块数量 var MAX_PER_FRAME = 10; // 每帧最大创建数量 diff --git a/temp/quick-scripts/src/assets/Script/Map.js.map b/temp/quick-scripts/src/assets/Script/Map.js.map index 07b4659..5d40fbb 100644 --- a/temp/quick-scripts/src/assets/Script/Map.js.map +++ b/temp/quick-scripts/src/assets/Script/Map.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 \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 {\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\nsortBlock(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\nwallInit() {\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 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 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 0){\r\n for(let i=0; i= 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 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 {\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 {\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 {\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 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{\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 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 {\r\n if(count != 0){\r\n for(let i=0; i 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 = [];\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\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 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\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 let timeData = {\r\n count_Time: this.count_Time,\r\n add_Time: this.add_Time\r\n }\r\n cc.fx.GameTool.addLevel(timeData);\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/temp/quick-scripts/src/assets/Script/SceneManager.js b/temp/quick-scripts/src/assets/Script/SceneManager.js index 0c9f0ff..a08b95a 100644 --- a/temp/quick-scripts/src/assets/Script/SceneManager.js +++ b/temp/quick-scripts/src/assets/Script/SceneManager.js @@ -237,6 +237,24 @@ var SceneManager = /** @class */ (function (_super) { 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"); diff --git a/temp/quick-scripts/src/assets/Script/SceneManager.js.map b/temp/quick-scripts/src/assets/Script/SceneManager.js.map index d4c3876..63d071b 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":";;;;;AAAA,oBAAoB;AACpB,wEAAwE;AACxE,mBAAmB;AACnB,kFAAkF;AAClF,8BAA8B;AAC9B,kFAAkF;;;;;;;;;;;;;;;;;;;;;AAElF,6BAAgC;AAChC,iDAAgD;AAE1C,IAAA,KAAsB,EAAE,CAAC,UAAU,EAAlC,OAAO,aAAA,EAAE,QAAQ,cAAiB,CAAC;AAG1C;IAA0C,gCAAY;IAAtD;QAAA,qEAmQC;QAhQG,WAAK,GAAa,IAAI,CAAC;QAGvB,UAAI,GAAW,OAAO,CAAC;QAGvB,YAAM,GAAY,IAAI,CAAC;QAGvB,YAAM,GAAY,IAAI,CAAC;QAGvB,gBAAU,GAAY,IAAI,CAAC;QAG3B,WAAK,GAAY,IAAI,CAAC;QAItB,iBAAW,GAAsB,EAAE,CAAC;QAGpC,iBAAW,GAAsB,EAAE,CAAC;QAGpC,yDAAyD;QACzD,mDAAmD;QAEnD,WAAK,GAAY,KAAK,CAAC;QACvB,WAAK,GAAY,KAAK,CAAC;QACvB,WAAK,GAAY,KAAK,CAAC;QACvB,aAAO,GAAW,EAAE,CAAC;;IAiOzB,CAAC;IA7NG,wBAAwB;IAExB,6BAAM,GAAN;QACI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,UAAU,CAAC;YACP,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,UAAC,GAAG;gBACtC,IAAI,GAAG,EAAE;oBACL,6CAA6C;oBAC7C,OAAO;iBACV;gBACD,qCAAqC;YACzC,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,IAAI,CAAC,CAAC;IAEb,CAAC;IAED,+BAAQ,GAAR;QAAA,iBAUC;QATG,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAM,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,UAAC,GAAG,EAAE,WAA2B;YACrE,IAAI,GAAG,EAAE;gBACL,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;gBACjC,OAAO;aACV;YACD,KAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;QAC5G,CAAC,CAAC,CAAA;IACN,CAAC;IAED,0CAAmB,GAAnB;QAAA,iBAaC;QAZG,IAAM,IAAI,GAAG,UAAU,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,UAAC,GAAG,EAAE,MAA0B;YACzE,IAAI,GAAG,EAAE;gBACL,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;gBAClC,OAAO;aACV;YAED,KAAI,CAAC,eAAe,GAAG,MAAM,CAAC;YAC9B,KAAI,CAAC,eAAe,EAAE,CAAC;YACvB,KAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,qEAAqE;QACzE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,wCAAiB,GAAjB;QACI,IAAM,KAAK,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,CAAC,CAAC;QACxF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;YACvB,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrC,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,MAAM,KAAK,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;YAC5B,IAAI,MAAM,KAAK,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC7B,OAAO,MAAM,GAAG,MAAM,CAAC;QAC3B,CAAC,CAAC,CAAC;IAEP,CAAC;IAED,sCAAe,GAAf;QACI,IAAM,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;YAC3B,sDAAsD;YACtD,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;YACjD,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,MAAM,KAAK,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;YAC5B,IAAI,MAAM,KAAK,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC7B,OAAO,MAAM,GAAG,MAAM,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,8BAAO,GAAP;QACI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC;;YACvB,aAAa;YACb,IAAM,OAAO,GAAG,QAAQ,CAAC,OAAA,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,0CAAG,CAAC,MAAK,GAAG,EAAE,EAAE,CAAC,CAAC;YAC9D,IAAM,OAAO,GAAG,QAAQ,CAAC,OAAA,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,0CAAG,CAAC,MAAK,GAAG,EAAE,EAAE,CAAC,CAAC;YAC9D,OAAO,OAAO,GAAG,OAAO,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,4BAAK,GAAL;IAEA,CAAC;IAED,gCAAS,GAAT;QACI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,UAAC,GAAG;YACnC,IAAI,GAAG,EAAE;gBACL,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;aAC5C;iBAAM;gBACH,qCAAqC;gBACrC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;aACtC;QACL,CAAC,CAAC,CAAC;IAEP,CAAC;IAED,iCAAU,GAAV;QACI,IAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,MAAM,EAAC;YACzF,IAAG,aAAW,CAAC,SAAS,CAAC,SAAS,IAAI,IAAI,EAAC;gBACvC,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACnC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAC,UAAC,IAAI;gBACrC,CAAC,CAAC,CAAA;gBACF,IAAI,IAAI,GAAG;oBACP,IAAI,EAAC,aAAW,CAAC,SAAS,CAAC,UAAU;oBACrC,QAAQ,EAAC,aAAW,CAAC,SAAS,CAAC,QAAQ;oBACvC,MAAM,EAAC,SAAS;iBACnB,CAAA;gBACD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAC,IAAI,CAAC,CAAC;aACpD;YACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACnG,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAC,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YACrD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,EAAC,IAAI,EAAC,KAAK,CAAC,CAAC;YAC5F,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,UAAC,GAAG,EAAE,KAAK;gBAC7C,IAAI,GAAG,EAAE;oBACL,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;oBACtC,OAAO;iBACV;YAEL,CAAC,CAAC,CAAC;YACH,UAAU,CAAC;gBACP,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACvC,CAAC,EAAE,IAAI,CAAC,CAAC;SACZ;IACL,CAAC;IAGD,2CAAoB,GAApB,UAAqB,KAAgB,EAAE,QAAoB;QAA3D,iBAwBC;QAvBG,IAAM,UAAU,GAAG,EAAE,CAAC,CAAC,YAAY;QACnC,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,IAAM,YAAY,GAAG;YACjB,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,GAAG,UAAU,EAAE;gBAC/C,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,IAAI,EAAE;oBAEN,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;iBACvB;gBACD,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;aACX;YAED,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE;gBACtB,KAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;aACtC;iBAAM;gBACH,QAAQ,EAAE,CAAC;aACd;QACL,CAAC,CAAC;QAEF,YAAY,EAAE,CAAC;IACnB,CAAC;IAED,aAAa;IACb,yCAAkB,GAAlB;QACI,IAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACjD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE;YAChC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gCAAS,GAAT;QACI,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,EAAC,IAAI,CAAC,CAAC;QAC7D,IAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,MAAM,EAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YAChD,aAAW,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;SACtC;IAEL,CAAC;IAED,iCAAU,GAAV;QACI,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,EAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QACjD,IAAG,aAAW,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,KAAK,EAAC;YACvE,aAAW,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;SACvC;IACL,CAAC;IAED,kCAAW,GAAX,UAAY,IAAI;QACZ,aAAW,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC/E,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;QACzB,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QACnD,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QACnD,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QAClD,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/E,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;IAClD,CAAC;IAED,+BAAQ,GAAR;QACI,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,EAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC/E,IAAG,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,MAAM,EAAC;YACpE,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAChF,IAAG,IAAI,CAAC,OAAO,IAAI,QAAQ;gBACzB,aAAW,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;iBAC/B,IAAG,IAAI,CAAC,OAAO,IAAI,QAAQ;gBAC9B,aAAW,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;iBAC/B,IAAG,IAAI,CAAC,OAAO,IAAI,OAAO;gBAC7B,aAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;SACxC;IACL,CAAC;IAID,mCAAY,GAAZ;QACI,aAAW,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;QACpC,IAAI,SAAS,GAAG,aAAW,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACrG,IAAI,SAAS,GAAG,aAAW,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACxG,IAAI,QAAQ,GAAG,aAAW,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACrG,IAAG,IAAI,CAAC,OAAO,IAAI,QAAQ;YAAE,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC5E,IAAG,IAAI,CAAC,OAAO,IAAI,QAAQ;YAAE,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACjF,IAAG,IAAI,CAAC,OAAO,IAAI,OAAO;YAAE,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEpF,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;IACjF,CAAC;IAED,6BAAM,GAAN,UAAQ,EAAE;IAEV,CAAC;IA/PD;QADC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;+CACI;IAGvB;QADC,QAAQ;8CACc;IAGvB;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;gDACK;IAGvB;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;gDACK;IAGvB;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;oDACS;IAG3B;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;+CACI;IAItB;QADC,QAAQ,CAAC,EAAC,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAC,MAAM,EAAC,CAAC;qDACV;IAGpC;QADC,QAAQ,CAAC,EAAC,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAC,MAAM,EAAC,CAAC;qDACV;IAzBnB,YAAY;QADhC,OAAO;OACa,YAAY,CAmQhC;IAAD,mBAAC;CAnQD,AAmQC,CAnQyC,EAAE,CAAC,SAAS,GAmQrD;kBAnQoB,YAAY","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 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 }\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\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 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 }\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/btnControl.js b/temp/quick-scripts/src/assets/Script/btnControl.js index acd9840..5a033ca 100644 --- a/temp/quick-scripts/src/assets/Script/btnControl.js +++ b/temp/quick-scripts/src/assets/Script/btnControl.js @@ -3,12 +3,6 @@ cc._RF.push(module, '6ee6czJ4eVNb4Feiqps5SIa', 'btnControl'); // Script/btnControl.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 || diff --git a/temp/quick-scripts/src/assets/Script/btnControl.js.map b/temp/quick-scripts/src/assets/Script/btnControl.js.map index 138c700..fbd599f 100644 --- a/temp/quick-scripts/src/assets/Script/btnControl.js.map +++ b/temp/quick-scripts/src/assets/Script/btnControl.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\btnControl.ts"],"names":[],"mappings":";;;;;AAAA,oBAAoB;AACpB,wEAAwE;AACxE,mBAAmB;AACnB,kFAAkF;AAClF,8BAA8B;AAC9B,kFAAkF;;;;;;;;;;;;;;;;;;;;;AAG5E,IAAA,KAAsB,EAAE,CAAC,UAAU,EAAlC,OAAO,aAAA,EAAE,QAAQ,cAAiB,CAAC;AAI1C;IAAwC,8BAAY;IAApD;;IAkBA,CAAC;IAbG,2BAAM,GAAN;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,0BAAK,GAAL;IACA,CAAC;IAED,6BAAQ,GAAR,UAAS,IAAI;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,2BAAM,GAAN,UAAQ,EAAE;IACV,CAAC;IAjBgB,UAAU;QAD9B,OAAO;OACa,UAAU,CAkB9B;IAAD,iBAAC;CAlBD,AAkBC,CAlBuC,EAAE,CAAC,SAAS,GAkBnD;kBAlBoB,UAAU","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\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n\r\n@ccclass\r\nexport default class btnControl extends cc.Component {\r\n static _instance: any;\r\n _touch: boolean;\r\n\r\n\r\n onLoad () { \r\n this._touch = true;\r\n } \r\n\r\n start () {\r\n }\r\n\r\n setTouch(type){\r\n this._touch = type;\r\n }\r\n\r\n update (dt) {\r\n }\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\btnControl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAGM,IAAA,KAAsB,EAAE,CAAC,UAAU,EAAlC,OAAO,aAAA,EAAE,QAAQ,cAAiB,CAAC;AAI1C;IAAwC,8BAAY;IAApD;;IAkBA,CAAC;IAbG,2BAAM,GAAN;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,0BAAK,GAAL;IACA,CAAC;IAED,6BAAQ,GAAR,UAAS,IAAI;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,2BAAM,GAAN,UAAQ,EAAE;IACV,CAAC;IAjBgB,UAAU;QAD9B,OAAO;OACa,UAAU,CAkB9B;IAAD,iBAAC;CAlBD,AAkBC,CAlBuC,EAAE,CAAC,SAAS,GAkBnD;kBAlBoB,UAAU","file":"","sourceRoot":"/","sourcesContent":["\r\n\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n\r\n@ccclass\r\nexport default class btnControl extends cc.Component {\r\n static _instance: any;\r\n _touch: boolean;\r\n\r\n\r\n onLoad () { \r\n this._touch = true;\r\n } \r\n\r\n start () {\r\n }\r\n\r\n setTouch(type){\r\n this._touch = type;\r\n }\r\n\r\n update (dt) {\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js b/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js index 39fbf83..262af2e 100644 --- a/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js +++ b/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js @@ -9,259 +9,216 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }(void 0, function () { var t = t || function (t, r) { var e = Object.create || function () { - function t() {} - - return function (r) { - var e; - return t.prototype = r, e = new t(), t.prototype = null, e; - }; - }(), - i = {}, - n = i.lib = {}, - o = n.Base = function () { - return { - extend: function extend(t) { - var r = e(this); - return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { - r.$super.init.apply(this, arguments); - }), r.init.prototype = r, r.$super = this, r; - }, - create: function create() { - var t = this.extend(); - return t.init.apply(t, arguments), t; - }, - init: function init() {}, - mixIn: function mixIn(t) { - for (var r in t) { - t.hasOwnProperty(r) && (this[r] = t[r]); + function t() {} + return function (r) { + var e; + return t.prototype = r, e = new t(), t.prototype = null, e; + }; + }(), + i = {}, + n = i.lib = {}, + o = n.Base = function () { + return { + extend: function extend(t) { + var r = e(this); + return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { + r.$super.init.apply(this, arguments); + }), r.init.prototype = r, r.$super = this, r; + }, + create: function create() { + var t = this.extend(); + return t.init.apply(t, arguments), t; + }, + init: function init() {}, + mixIn: function mixIn(t) { + for (var r in t) t.hasOwnProperty(r) && (this[r] = t[r]); + t.hasOwnProperty("toString") && (this.toString = t.toString); + }, + clone: function clone() { + return this.init.prototype.extend(this); } - - t.hasOwnProperty("toString") && (this.toString = t.toString); + }; + }(), + s = n.WordArray = o.extend({ + init: function init(t, e) { + t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length; }, - clone: function clone() { - return this.init.prototype.extend(this); - } - }; - }(), - s = n.WordArray = o.extend({ - init: function init(t, e) { - t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length; - }, - toString: function toString(t) { - return (t || c).stringify(this); - }, - concat: function concat(t) { - var r = this.words, + toString: function toString(t) { + return (t || c).stringify(this); + }, + concat: function concat(t) { + var r = this.words, e = t.words, i = this.sigBytes, n = t.sigBytes; - if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { - var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; - r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8; - } else for (var o = 0; o < n; o += 4) { - r[i + o >>> 2] = e[o >>> 2]; - } - return this.sigBytes += n, this; - }, - clamp: function clamp() { - var r = this.words, + if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { + var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; + r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8; + } else for (var o = 0; o < n; o += 4) r[i + o >>> 2] = e[o >>> 2]; + return this.sigBytes += n, this; + }, + clamp: function clamp() { + var r = this.words, e = this.sigBytes; - r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4); - }, - clone: function clone() { - var t = o.clone.call(this); - return t.words = this.words.slice(0), t; - }, - random: function random(r) { - for (var e, i = [], n = function n(r) { - var r = r, - e = 987654321, - i = 4294967295; - return function () { - e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; - var n = (e << 16) + r & i; - return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1); - }; - }, o = 0; o < r; o += 4) { - var a = n(4294967296 * (e || t.random())); - e = 987654071 * a(), i.push(4294967296 * a() | 0); + r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4); + }, + clone: function clone() { + var t = o.clone.call(this); + return t.words = this.words.slice(0), t; + }, + random: function random(r) { + for (var e, i = [], n = function n(r) { + var r = r, + e = 987654321, + i = 4294967295; + return function () { + e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; + var n = (e << 16) + r & i; + return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1); + }; + }, o = 0; o < r; o += 4) { + var a = n(4294967296 * (e || t.random())); + e = 987654071 * a(), i.push(4294967296 * a() | 0); + } + return new s.init(i, r); } - - return new s.init(i, r); - } - }), - a = i.enc = {}, - c = a.Hex = { - stringify: function stringify(t) { - for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { - var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; - i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)); - } - - return i.join(""); - }, - parse: function parse(t) { - for (var r = t.length, e = [], i = 0; i < r; i += 2) { - e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; - } - - return new s.init(e, r / 2); - } - }, - h = a.Latin1 = { - stringify: function stringify(t) { - for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { - var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; - i.push(String.fromCharCode(o)); - } - - return i.join(""); - }, - parse: function parse(t) { - for (var r = t.length, e = [], i = 0; i < r; i++) { - e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; - } - - return new s.init(e, r); - } - }, - l = a.Utf8 = { - stringify: function stringify(t) { - try { - return decodeURIComponent(escape(h.stringify(t))); - } catch (t) { - throw new Error("Malformed UTF-8 data"); + }), + a = i.enc = {}, + c = a.Hex = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { + var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; + i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)); + } + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i += 2) e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; + return new s.init(e, r / 2); } }, - parse: function parse(t) { - return h.parse(unescape(encodeURIComponent(t))); - } - }, - f = n.BufferedBlockAlgorithm = o.extend({ - reset: function reset() { - this._data = new s.init(), this._nDataBytes = 0; + h = a.Latin1 = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { + var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; + i.push(String.fromCharCode(o)); + } + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i++) e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; + return new s.init(e, r); + } }, - _append: function _append(t) { - "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes; + l = a.Utf8 = { + stringify: function stringify(t) { + try { + return decodeURIComponent(escape(h.stringify(t))); + } catch (t) { + throw new Error("Malformed UTF-8 data"); + } + }, + parse: function parse(t) { + return h.parse(unescape(encodeURIComponent(t))); + } }, - _process: function _process(r) { - var e = this._data, + f = n.BufferedBlockAlgorithm = o.extend({ + reset: function reset() { + this._data = new s.init(), this._nDataBytes = 0; + }, + _append: function _append(t) { + "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes; + }, + _process: function _process(r) { + var e = this._data, i = e.words, n = e.sigBytes, o = this.blockSize, a = 4 * o, c = n / a; - c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); - var h = c * o, + c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); + var h = c * o, l = t.min(4 * h, n); - - if (h) { - for (var f = 0; f < h; f += o) { - this._doProcessBlock(i, f); + if (h) { + for (var f = 0; f < h; f += o) this._doProcessBlock(i, f); + var u = i.splice(0, h); + e.sigBytes -= l; } - - var u = i.splice(0, h); - e.sigBytes -= l; + return new s.init(u, l); + }, + clone: function clone() { + var t = o.clone.call(this); + return t._data = this._data.clone(), t; + }, + _minBufferSize: 0 + }), + u = (n.Hasher = f.extend({ + cfg: o.extend(), + init: function init(t) { + this.cfg = this.cfg.extend(t), this.reset(); + }, + reset: function reset() { + f.reset.call(this), this._doReset(); + }, + update: function update(t) { + return this._append(t), this._process(), this; + }, + finalize: function finalize(t) { + t && this._append(t); + var r = this._doFinalize(); + return r; + }, + blockSize: 16, + _createHelper: function _createHelper(t) { + return function (r, e) { + return new t.init(e).finalize(r); + }; + }, + _createHmacHelper: function _createHmacHelper(t) { + return function (r, e) { + return new u.HMAC.init(t, e).finalize(r); + }; } - - return new s.init(u, l); - }, - clone: function clone() { - var t = o.clone.call(this); - return t._data = this._data.clone(), t; - }, - _minBufferSize: 0 - }), - u = (n.Hasher = f.extend({ - cfg: o.extend(), - init: function init(t) { - this.cfg = this.cfg.extend(t), this.reset(); - }, - reset: function reset() { - f.reset.call(this), this._doReset(); - }, - update: function update(t) { - return this._append(t), this._process(), this; - }, - finalize: function finalize(t) { - t && this._append(t); - - var r = this._doFinalize(); - - return r; - }, - blockSize: 16, - _createHelper: function _createHelper(t) { - return function (r, e) { - return new t.init(e).finalize(r); - }; - }, - _createHmacHelper: function _createHmacHelper(t) { - return function (r, e) { - return new u.HMAC.init(t, e).finalize(r); - }; - } - }), i.algo = {}); - + }), i.algo = {}); return i; }(Math); - return function () { function r(t, r, e) { - for (var i = [], o = 0, s = 0; s < r; s++) { - if (s % 4) { - var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, - c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; - i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++; - } + for (var i = [], o = 0, s = 0; s < r; s++) if (s % 4) { + var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, + c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; + i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++; } - return n.create(i, o); } - var e = t, - i = e.lib, - n = i.WordArray, - o = e.enc; + i = e.lib, + n = i.WordArray, + o = e.enc; o.Base64 = { stringify: function stringify(t) { var r = t.words, - e = t.sigBytes, - i = this._map; + e = t.sigBytes, + i = this._map; t.clamp(); - - for (var n = [], o = 0; o < e; o += 3) { - for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++) { - n.push(i.charAt(h >>> 6 * (3 - l) & 63)); - } - } - + for (var n = [], o = 0; o < e; o += 3) for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++) n.push(i.charAt(h >>> 6 * (3 - l) & 63)); var f = i.charAt(64); - if (f) for (; n.length % 4;) { - n.push(f); - } + if (f) for (; n.length % 4;) n.push(f); return n.join(""); }, parse: function parse(t) { var e = t.length, - i = this._map, - n = this._reverseMap; - + i = this._map, + n = this._reverseMap; if (!n) { n = this._reverseMap = []; - - for (var o = 0; o < i.length; o++) { - n[i.charCodeAt(o)] = o; - } + for (var o = 0; o < i.length; o++) n[i.charCodeAt(o)] = o; } - var s = i.charAt(64); - if (s) { var a = t.indexOf(s); a !== -1 && (e = a); } - return r(t, e, n); }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" @@ -271,32 +228,26 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); var a = t + (r & e | ~r & i) + n + s; return (a << o | a >>> 32 - o) + r; } - function i(t, r, e, i, n, o, s) { var a = t + (r & i | e & ~i) + n + s; return (a << o | a >>> 32 - o) + r; } - function n(t, r, e, i, n, o, s) { var a = t + (r ^ e ^ i) + n + s; return (a << o | a >>> 32 - o) + r; } - function o(t, r, e, i, n, o, s) { var a = t + (e ^ (r | ~i)) + n + s; return (a << o | a >>> 32 - o) + r; } - var s = t, - a = s.lib, - c = a.WordArray, - h = a.Hasher, - l = s.algo, - f = []; + a = s.lib, + c = a.WordArray, + h = a.Hasher, + l = s.algo, + f = []; !function () { - for (var t = 0; t < 64; t++) { - f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0; - } + for (var t = 0; t < 64; t++) f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0; }(); var u = l.MD5 = h.extend({ _doReset: function _doReset() { @@ -305,48 +256,45 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); _doProcessBlock: function _doProcessBlock(t, r) { for (var s = 0; s < 16; s++) { var a = r + s, - c = t[a]; + c = t[a]; t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8); } - var h = this._hash.words, - l = t[r + 0], - u = t[r + 1], - d = t[r + 2], - v = t[r + 3], - p = t[r + 4], - _ = t[r + 5], - y = t[r + 6], - g = t[r + 7], - B = t[r + 8], - w = t[r + 9], - k = t[r + 10], - S = t[r + 11], - m = t[r + 12], - x = t[r + 13], - b = t[r + 14], - H = t[r + 15], - z = h[0], - A = h[1], - C = h[2], - D = h[3]; + l = t[r + 0], + u = t[r + 1], + d = t[r + 2], + v = t[r + 3], + p = t[r + 4], + _ = t[r + 5], + y = t[r + 6], + g = t[r + 7], + B = t[r + 8], + w = t[r + 9], + k = t[r + 10], + S = t[r + 11], + m = t[r + 12], + x = t[r + 13], + b = t[r + 14], + H = t[r + 15], + z = h[0], + A = h[1], + C = h[2], + D = h[3]; z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0; }, _doFinalize: function _doFinalize() { var t = this._data, - e = t.words, - i = 8 * this._nDataBytes, - n = 8 * t.sigBytes; + e = t.words, + i = 8 * this._nDataBytes, + n = 8 * t.sigBytes; e[n >>> 5] |= 128 << 24 - n % 32; var o = r.floor(i / 4294967296), - s = i; + s = i; e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); - for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { var l = c[h]; c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); } - return a; }, clone: function clone() { @@ -357,126 +305,112 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u); }(Math), function () { var r = t, - e = r.lib, - i = e.WordArray, - n = e.Hasher, - o = r.algo, - s = [], - a = o.SHA1 = n.extend({ - _doReset: function _doReset() { - this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { - if (h < 16) s[h] = 0 | t[r + h];else { - var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; - s[h] = l << 1 | l >>> 31; + e = r.lib, + i = e.WordArray, + n = e.Hasher, + o = r.algo, + s = [], + a = o.SHA1 = n.extend({ + _doReset: function _doReset() { + this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { + if (h < 16) s[h] = 0 | t[r + h];else { + var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; + s[h] = l << 1 | l >>> 31; + } + var f = (i << 5 | i >>> 27) + c + s[h]; + f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f; } - var f = (i << 5 | i >>> 27) + c + s[h]; - f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f; - } - - e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0; - }, - _doFinalize: function _doFinalize() { - var t = this._data, + e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; - return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash; - }, - clone: function clone() { - var t = n.clone.call(this); - return t._hash = this._hash.clone(), t; - } - }); + return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash; + }, + clone: function clone() { + var t = n.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a); }(), function (r) { var e = t, - i = e.lib, - n = i.WordArray, - o = i.Hasher, - s = e.algo, - a = [], - c = []; + i = e.lib, + n = i.WordArray, + o = i.Hasher, + s = e.algo, + a = [], + c = []; !function () { function t(t) { - for (var e = r.sqrt(t), i = 2; i <= e; i++) { - if (!(t % i)) return !1; - } - + for (var e = r.sqrt(t), i = 2; i <= e; i++) if (!(t % i)) return !1; return !0; } - function e(t) { return 4294967296 * (t - (0 | t)) | 0; } - - for (var i = 2, n = 0; n < 64;) { - t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++; - } + for (var i = 2, n = 0; n < 64;) t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++; }(); var h = [], - l = s.SHA256 = o.extend({ - _doReset: function _doReset() { - this._hash = new n.init(a.slice(0)); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { - if (d < 16) h[d] = 0 | t[r + d];else { - var v = h[d - 15], + l = s.SHA256 = o.extend({ + _doReset: function _doReset() { + this._hash = new n.init(a.slice(0)); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { + if (d < 16) h[d] = 0 | t[r + d];else { + var v = h[d - 15], p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, _ = h[d - 2], y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; - h[d] = p + h[d - 7] + y + h[d - 16]; - } - var g = a & l ^ ~a & f, + h[d] = p + h[d - 7] + y + h[d - 16]; + } + var g = a & l ^ ~a & f, B = i & n ^ i & o ^ n & o, w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), S = u + k + g + c[d] + h[d], m = w + B; - u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0; - } - - e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0; - }, - _doFinalize: function _doFinalize() { - var t = this._data, + u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0; + } + e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, e = t.words, i = 8 * this._nDataBytes, n = 8 * t.sigBytes; - return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash; - }, - clone: function clone() { - var t = o.clone.call(this); - return t._hash = this._hash.clone(), t; - } - }); + return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash; + }, + clone: function clone() { + var t = o.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l); }(Math), function () { function r(t) { return t << 8 & 4278255360 | t >>> 8 & 16711935; } - var e = t, - i = e.lib, - n = i.WordArray, - o = e.enc; + i = e.lib, + n = i.WordArray, + o = e.enc; o.Utf16 = o.Utf16BE = { stringify: function stringify(t) { for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; i.push(String.fromCharCode(o)); } - return i.join(""); }, parse: function parse(t) { - for (var r = t.length, e = [], i = 0; i < r; i++) { - e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; - } - + for (var r = t.length, e = [], i = 0; i < r; i++) e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; return n.create(e, 2 * r); } }; @@ -486,83 +420,68 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); n.push(String.fromCharCode(s)); } - return n.join(""); }, parse: function parse(t) { - for (var e = t.length, i = [], o = 0; o < e; o++) { - i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); - } - + for (var e = t.length, i = [], o = 0; o < e; o++) i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); return n.create(i, 2 * e); } }; }(), function () { if ("function" == typeof ArrayBuffer) { var r = t, - e = r.lib, - i = e.WordArray, - n = i.init, - o = i.init = function (t) { - if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { - for (var r = t.byteLength, e = [], i = 0; i < r; i++) { - e[i >>> 2] |= t[i] << 24 - i % 4 * 8; - } - - n.call(this, e, r); - } else n.apply(this, arguments); - }; - + e = r.lib, + i = e.WordArray, + n = i.init, + o = i.init = function (t) { + if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { + for (var r = t.byteLength, e = [], i = 0; i < r; i++) e[i >>> 2] |= t[i] << 24 - i % 4 * 8; + n.call(this, e, r); + } else n.apply(this, arguments); + }; o.prototype = i; } }(), function (r) { function e(t, r, e) { return t ^ r ^ e; } - function i(t, r, e) { return t & r | ~t & e; } - function n(t, r, e) { return (t | ~r) ^ e; } - function o(t, r, e) { return t & e | r & ~e; } - function s(t, r, e) { return t ^ (r | ~e); } - function a(t, r) { return t << r | t >>> 32 - r; } - var c = t, - h = c.lib, - l = h.WordArray, - f = h.Hasher, - u = c.algo, - d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), - v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), - p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), - _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), - y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), - g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), - B = u.RIPEMD160 = f.extend({ - _doReset: function _doReset() { - this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - for (var c = 0; c < 16; c++) { - var h = r + c, + h = c.lib, + l = h.WordArray, + f = h.Hasher, + u = c.algo, + d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), + v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), + p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), + _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), + y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), + g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), + B = u.RIPEMD160 = f.extend({ + _doReset: function _doReset() { + this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var c = 0; c < 16; c++) { + var h = r + c, l = t[h]; - t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); - } - - var f, + t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); + } + var f, u, B, w, @@ -579,53 +498,42 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); R = v.words, E = p.words, M = _.words; - S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; - - for (var F, c = 0; c < 80; c += 1) { - F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; - } - - F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F; - }, - _doFinalize: function _doFinalize() { - var t = this._data, + S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; + for (var F, c = 0; c < 80; c += 1) F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; + F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F; + }, + _doFinalize: function _doFinalize() { + var t = this._data, r = t.words, e = 8 * this._nDataBytes, i = 8 * t.sigBytes; - r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); - - for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { - var a = o[s]; - o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8); + r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); + for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { + var a = o[s]; + o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8); + } + return n; + }, + clone: function clone() { + var t = f.clone.call(this); + return t._hash = this._hash.clone(), t; } - - return n; - }, - clone: function clone() { - var t = f.clone.call(this); - return t._hash = this._hash.clone(), t; - } - }); - + }); c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B); }(Math), function () { var r = t, - e = r.lib, - i = e.Base, - n = r.enc, - o = n.Utf8, - s = r.algo; + e = r.lib, + i = e.Base, + n = r.enc, + o = n.Utf8, + s = r.algo; s.HMAC = i.extend({ init: function init(t, r) { t = this._hasher = new t.init(), "string" == typeof r && (r = o.parse(r)); var e = t.blockSize, - i = 4 * e; + i = 4 * e; r.sigBytes > i && (r = t.finalize(r)), r.clamp(); - - for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++) { - a[h] ^= 1549556828, c[h] ^= 909522486; - } - + for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++) a[h] ^= 1549556828, c[h] ^= 909522486; n.sigBytes = s.sigBytes = i, this.reset(); }, reset: function reset() { @@ -637,7 +545,7 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }, finalize: function finalize(t) { var r = this._hasher, - e = r.finalize(t); + e = r.finalize(t); r.reset(); var i = r.finalize(this._oKey.clone().concat(e)); return i; @@ -645,103 +553,89 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }); }(), function () { var r = t, - e = r.lib, - i = e.Base, - n = e.WordArray, - o = r.algo, - s = o.SHA1, - a = o.HMAC, - c = o.PBKDF2 = i.extend({ - cfg: i.extend({ - keySize: 4, - hasher: s, - iterations: 1 - }), - init: function init(t) { - this.cfg = this.cfg.extend(t); - }, - compute: function compute(t, r) { - for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { - var u = i.update(r).finalize(s); - i.reset(); - - for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { - p = i.finalize(p), i.reset(); - - for (var y = p.words, g = 0; g < v; g++) { - d[g] ^= y[g]; + e = r.lib, + i = e.Base, + n = e.WordArray, + o = r.algo, + s = o.SHA1, + a = o.HMAC, + c = o.PBKDF2 = i.extend({ + cfg: i.extend({ + keySize: 4, + hasher: s, + iterations: 1 + }), + init: function init(t) { + this.cfg = this.cfg.extend(t); + }, + compute: function compute(t, r) { + for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { + var u = i.update(r).finalize(s); + i.reset(); + for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { + p = i.finalize(p), i.reset(); + for (var y = p.words, g = 0; g < v; g++) d[g] ^= y[g]; } + o.concat(u), h[0]++; } - - o.concat(u), h[0]++; + return o.sigBytes = 4 * l, o; } - - return o.sigBytes = 4 * l, o; - } - }); - + }); r.PBKDF2 = function (t, r, e) { return c.create(e).compute(t, r); }; }(), function () { var r = t, - e = r.lib, - i = e.Base, - n = e.WordArray, - o = r.algo, - s = o.MD5, - a = o.EvpKDF = i.extend({ - cfg: i.extend({ - keySize: 4, - hasher: s, - iterations: 1 - }), - init: function init(t) { - this.cfg = this.cfg.extend(t); - }, - compute: function compute(t, r) { - for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { - h && i.update(h); - var h = i.update(t).finalize(r); - i.reset(); - - for (var l = 1; l < c; l++) { - h = i.finalize(h), i.reset(); + e = r.lib, + i = e.Base, + n = e.WordArray, + o = r.algo, + s = o.MD5, + a = o.EvpKDF = i.extend({ + cfg: i.extend({ + keySize: 4, + hasher: s, + iterations: 1 + }), + init: function init(t) { + this.cfg = this.cfg.extend(t); + }, + compute: function compute(t, r) { + for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { + h && i.update(h); + var h = i.update(t).finalize(r); + i.reset(); + for (var l = 1; l < c; l++) h = i.finalize(h), i.reset(); + o.concat(h); } - - o.concat(h); + return o.sigBytes = 4 * a, o; } - - return o.sigBytes = 4 * a, o; - } - }); - + }); r.EvpKDF = function (t, r, e) { return a.create(e).compute(t, r); }; }(), function () { var r = t, - e = r.lib, - i = e.WordArray, - n = r.algo, - o = n.SHA256, - s = n.SHA224 = o.extend({ - _doReset: function _doReset() { - this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]); - }, - _doFinalize: function _doFinalize() { - var t = o._doFinalize.call(this); - - return t.sigBytes -= 4, t; - } - }); + e = r.lib, + i = e.WordArray, + n = r.algo, + o = n.SHA256, + s = n.SHA224 = o.extend({ + _doReset: function _doReset() { + this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]); + }, + _doFinalize: function _doFinalize() { + var t = o._doFinalize.call(this); + return t.sigBytes -= 4, t; + } + }); r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s); }(), function (r) { var e = t, - i = e.lib, - n = i.Base, - o = i.WordArray, - s = e.x64 = {}; + i = e.lib, + n = i.Base, + o = i.WordArray, + s = e.x64 = {}; s.Word = n.extend({ init: function init(t, r) { this.high = t, this.low = r; @@ -755,152 +649,119 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); var n = t[i]; e.push(n.high), e.push(n.low); } - return o.create(e, this.sigBytes); }, clone: function clone() { - for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++) { - r[i] = r[i].clone(); - } - + for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++) r[i] = r[i].clone(); return t; } }); }(), function (r) { var e = t, - i = e.lib, - n = i.WordArray, - o = i.Hasher, - s = e.x64, - a = s.Word, - c = e.algo, - h = [], - l = [], - f = []; + i = e.lib, + n = i.WordArray, + o = i.Hasher, + s = e.x64, + a = s.Word, + c = e.algo, + h = [], + l = [], + f = []; !function () { for (var t = 1, r = 0, e = 0; e < 24; e++) { h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; var i = r % 5, - n = (2 * t + 3 * r) % 5; + n = (2 * t + 3 * r) % 5; t = i, r = n; } - - for (var t = 0; t < 5; t++) { - for (var r = 0; r < 5; r++) { - l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; - } - } - + for (var t = 0; t < 5; t++) for (var r = 0; r < 5; r++) l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; for (var o = 1, s = 0; s < 24; s++) { for (var c = 0, u = 0, d = 0; d < 7; d++) { if (1 & o) { var v = (1 << d) - 1; v < 32 ? u ^= 1 << v : c ^= 1 << v - 32; } - 128 & o ? o = o << 1 ^ 113 : o <<= 1; } - f[s] = a.create(c, u); } }(); var u = []; !function () { - for (var t = 0; t < 25; t++) { - u[t] = a.create(); - } + for (var t = 0; t < 25; t++) u[t] = a.create(); }(); var d = c.SHA3 = o.extend({ cfg: o.cfg.extend({ outputLength: 512 }), _doReset: function _doReset() { - for (var t = this._state = [], r = 0; r < 25; r++) { - t[r] = new a.init(); - } - + for (var t = this._state = [], r = 0; r < 25; r++) t[r] = new a.init(); this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; }, _doProcessBlock: function _doProcessBlock(t, r) { for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { var o = t[r + 2 * n], - s = t[r + 2 * n + 1]; + s = t[r + 2 * n + 1]; o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); var a = e[n]; a.high ^= s, a.low ^= o; } - for (var c = 0; c < 24; c++) { for (var d = 0; d < 5; d++) { for (var v = 0, p = 0, _ = 0; _ < 5; _++) { var a = e[d + 5 * _]; v ^= a.high, p ^= a.low; } - var y = u[d]; y.high = v, y.low = p; } - - for (var d = 0; d < 5; d++) { - for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { - var a = e[d + 5 * _]; - a.high ^= v, a.low ^= p; - } + for (var d = 0; d < 5; d++) for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { + var a = e[d + 5 * _]; + a.high ^= v, a.low ^= p; } - for (var S = 1; S < 25; S++) { var a = e[S], - m = a.high, - x = a.low, - b = h[S]; + m = a.high, + x = a.low, + b = h[S]; if (b < 32) var v = m << b | x >>> 32 - b, - p = x << b | m >>> 32 - b;else var v = x << b - 32 | m >>> 64 - b, - p = m << b - 32 | x >>> 64 - b; + p = x << b | m >>> 32 - b;else var v = x << b - 32 | m >>> 64 - b, + p = m << b - 32 | x >>> 64 - b; var H = u[l[S]]; H.high = v, H.low = p; } - var z = u[0], - A = e[0]; + A = e[0]; z.high = A.high, z.low = A.low; - - for (var d = 0; d < 5; d++) { - for (var _ = 0; _ < 5; _++) { - var S = d + 5 * _, - a = e[S], - C = u[S], - D = u[(d + 1) % 5 + 5 * _], - R = u[(d + 2) % 5 + 5 * _]; - a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low; - } + for (var d = 0; d < 5; d++) for (var _ = 0; _ < 5; _++) { + var S = d + 5 * _, + a = e[S], + C = u[S], + D = u[(d + 1) % 5 + 5 * _], + R = u[(d + 2) % 5 + 5 * _]; + a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low; } - var a = e[0], - E = f[c]; + E = f[c]; a.high ^= E.high, a.low ^= E.low; } }, _doFinalize: function _doFinalize() { var t = this._data, - e = t.words, - i = (8 * this._nDataBytes, 8 * t.sigBytes), - o = 32 * this.blockSize; + e = t.words, + i = (8 * this._nDataBytes, 8 * t.sigBytes), + o = 32 * this.blockSize; e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); - for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { var f = s[l], - u = f.high, - d = f.low; + u = f.high, + d = f.low; u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u); } - return new n.init(h, a); }, clone: function clone() { - for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++) { - r[e] = r[e].clone(); - } - + for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++) r[e] = r[e].clone(); return t; } }); @@ -909,20 +770,17 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); function r() { return s.create.apply(s, arguments); } - var e = t, - i = e.lib, - n = i.Hasher, - o = e.x64, - s = o.Word, - a = o.WordArray, - c = e.algo, - h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], - l = []; + i = e.lib, + n = i.Hasher, + o = e.x64, + s = o.Word, + a = o.WordArray, + c = e.algo, + h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], + l = []; !function () { - for (var t = 0; t < 80; t++) { - l[t] = r(); - } + for (var t = 0; t < 80; t++) l[t] = r(); }(); var f = c.SHA512 = n.extend({ _doReset: function _doReset() { @@ -932,68 +790,63 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { var Z = l[T]; if (T < 16) var q = Z.high = 0 | t[r + 2 * T], - G = Z.low = 0 | t[r + 2 * T + 1];else { + G = Z.low = 0 | t[r + 2 * T + 1];else { var J = l[T - 15], - $ = J.high, - Q = J.low, - V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, - Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), - tt = l[T - 2], - rt = tt.high, - et = tt.low, - it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, - nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), - ot = l[T - 7], - st = ot.high, - at = ot.low, - ct = l[T - 16], - ht = ct.high, - lt = ct.low, - G = Y + at, - q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), - G = G + nt, - q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), - G = G + lt, - q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); + $ = J.high, + Q = J.low, + V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, + Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), + tt = l[T - 2], + rt = tt.high, + et = tt.low, + it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, + nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), + ot = l[T - 7], + st = ot.high, + at = ot.low, + ct = l[T - 16], + ht = ct.high, + lt = ct.low, + G = Y + at, + q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), + G = G + nt, + q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), + G = G + lt, + q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); Z.high = q, Z.low = G; } - var ft = O & I ^ ~O & X, - ut = U & K ^ ~U & L, - dt = C & R ^ C & M ^ R & M, - vt = D & E ^ D & F ^ E & F, - pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), - _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), - yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), - gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), - Bt = h[T], - wt = Bt.high, - kt = Bt.low, - St = N + gt, - mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), - St = St + ut, - mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), - St = St + kt, - mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), - St = St + G, - mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), - xt = _t + vt, - bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); - + ut = U & K ^ ~U & L, + dt = C & R ^ C & M ^ R & M, + vt = D & E ^ D & F ^ E & F, + pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), + _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), + yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), + gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), + Bt = h[T], + wt = Bt.high, + kt = Bt.low, + St = N + gt, + mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), + St = St + ut, + mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), + St = St + kt, + mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), + St = St + G, + mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), + xt = _t + vt, + bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0; } - v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0); }, _doFinalize: function _doFinalize() { var t = this._data, - r = t.words, - e = 8 * this._nDataBytes, - i = 8 * t.sigBytes; + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); - var n = this._hash.toX32(); - return n; }, clone: function clone() { @@ -1005,298 +858,273 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f); }(), function () { var r = t, - e = r.x64, - i = e.Word, - n = e.WordArray, - o = r.algo, - s = o.SHA512, - a = o.SHA384 = s.extend({ - _doReset: function _doReset() { - this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]); - }, - _doFinalize: function _doFinalize() { - var t = s._doFinalize.call(this); - - return t.sigBytes -= 16, t; - } - }); + e = r.x64, + i = e.Word, + n = e.WordArray, + o = r.algo, + s = o.SHA512, + a = o.SHA384 = s.extend({ + _doReset: function _doReset() { + this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]); + }, + _doFinalize: function _doFinalize() { + var t = s._doFinalize.call(this); + return t.sigBytes -= 16, t; + } + }); r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a); }(), t.lib.Cipher || function (r) { var e = t, - i = e.lib, - n = i.Base, - o = i.WordArray, - s = i.BufferedBlockAlgorithm, - a = e.enc, - c = (a.Utf8, a.Base64), - h = e.algo, - l = h.EvpKDF, - f = i.Cipher = s.extend({ - cfg: n.extend(), - createEncryptor: function createEncryptor(t, r) { - return this.create(this._ENC_XFORM_MODE, t, r); - }, - createDecryptor: function createDecryptor(t, r) { - return this.create(this._DEC_XFORM_MODE, t, r); - }, - init: function init(t, r, e) { - this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset(); - }, - reset: function reset() { - s.reset.call(this), this._doReset(); - }, - process: function process(t) { - return this._append(t), this._process(); - }, - finalize: function finalize(t) { - t && this._append(t); - - var r = this._doFinalize(); - - return r; - }, - keySize: 4, - ivSize: 4, - _ENC_XFORM_MODE: 1, - _DEC_XFORM_MODE: 2, - _createHelper: function () { - function t(t) { - return "string" == typeof t ? m : w; - } - - return function (r) { - return { - encrypt: function encrypt(e, i, n) { - return t(i).encrypt(r, e, i, n); - }, - decrypt: function decrypt(e, i, n) { - return t(i).decrypt(r, e, i, n); - } + i = e.lib, + n = i.Base, + o = i.WordArray, + s = i.BufferedBlockAlgorithm, + a = e.enc, + c = (a.Utf8, a.Base64), + h = e.algo, + l = h.EvpKDF, + f = i.Cipher = s.extend({ + cfg: n.extend(), + createEncryptor: function createEncryptor(t, r) { + return this.create(this._ENC_XFORM_MODE, t, r); + }, + createDecryptor: function createDecryptor(t, r) { + return this.create(this._DEC_XFORM_MODE, t, r); + }, + init: function init(t, r, e) { + this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset(); + }, + reset: function reset() { + s.reset.call(this), this._doReset(); + }, + process: function process(t) { + return this._append(t), this._process(); + }, + finalize: function finalize(t) { + t && this._append(t); + var r = this._doFinalize(); + return r; + }, + keySize: 4, + ivSize: 4, + _ENC_XFORM_MODE: 1, + _DEC_XFORM_MODE: 2, + _createHelper: function () { + function t(t) { + return "string" == typeof t ? m : w; + } + return function (r) { + return { + encrypt: function encrypt(e, i, n) { + return t(i).encrypt(r, e, i, n); + }, + decrypt: function decrypt(e, i, n) { + return t(i).decrypt(r, e, i, n); + } + }; }; - }; - }() - }), - u = (i.StreamCipher = f.extend({ - _doFinalize: function _doFinalize() { - var t = this._process(!0); - - return t; - }, - blockSize: 1 - }), e.mode = {}), - d = i.BlockCipherMode = n.extend({ - createEncryptor: function createEncryptor(t, r) { - return this.Encryptor.create(t, r); - }, - createDecryptor: function createDecryptor(t, r) { - return this.Decryptor.create(t, r); - }, - init: function init(t, r) { - this._cipher = t, this._iv = r; - } - }), - v = u.CBC = function () { - function t(t, e, i) { - var n = this._iv; - - if (n) { - var o = n; - this._iv = r; - } else var o = this._prevBlock; - - for (var s = 0; s < i; s++) { - t[e + s] ^= o[s]; + }() + }), + u = (i.StreamCipher = f.extend({ + _doFinalize: function _doFinalize() { + var t = this._process(!0); + return t; + }, + blockSize: 1 + }), e.mode = {}), + d = i.BlockCipherMode = n.extend({ + createEncryptor: function createEncryptor(t, r) { + return this.Encryptor.create(t, r); + }, + createDecryptor: function createDecryptor(t, r) { + return this.Decryptor.create(t, r); + }, + init: function init(t, r) { + this._cipher = t, this._iv = r; } - } - - var e = d.extend(); - return e.Encryptor = e.extend({ - processBlock: function processBlock(r, e) { - var i = this._cipher, + }), + v = u.CBC = function () { + function t(t, e, i) { + var n = this._iv; + if (n) { + var o = n; + this._iv = r; + } else var o = this._prevBlock; + for (var s = 0; s < i; s++) t[e + s] ^= o[s]; + } + var e = d.extend(); + return e.Encryptor = e.extend({ + processBlock: function processBlock(r, e) { + var i = this._cipher, n = i.blockSize; - t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n); - } - }), e.Decryptor = e.extend({ - processBlock: function processBlock(r, e) { - var i = this._cipher, + t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n); + } + }), e.Decryptor = e.extend({ + processBlock: function processBlock(r, e) { + var i = this._cipher, n = i.blockSize, o = r.slice(e, e + n); - i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o; + i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o; + } + }), e; + }(), + p = e.pad = {}, + _ = p.Pkcs7 = { + pad: function pad(t, r) { + for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4) s.push(n); + var c = o.create(s, i); + t.concat(c); + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; } - }), e; - }(), - p = e.pad = {}, - _ = p.Pkcs7 = { - pad: function pad(t, r) { - for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4) { - s.push(n); - } - - var c = o.create(s, i); - t.concat(c); }, - unpad: function unpad(t) { - var r = 255 & t.words[t.sigBytes - 1 >>> 2]; - t.sigBytes -= r; - } - }, - y = (i.BlockCipher = f.extend({ - cfg: f.cfg.extend({ - mode: v, - padding: _ - }), - reset: function reset() { - f.reset.call(this); - var t = this.cfg, + y = (i.BlockCipher = f.extend({ + cfg: f.cfg.extend({ + mode: v, + padding: _ + }), + reset: function reset() { + f.reset.call(this); + var t = this.cfg, r = t.iv, e = t.mode; - if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor;else { - var i = e.createDecryptor; - this._minBufferSize = 1; + if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor;else { + var i = e.createDecryptor; + this._minBufferSize = 1; + } + this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + this._mode.processBlock(t, r); + }, + _doFinalize: function _doFinalize() { + var t = this.cfg.padding; + if (this._xformMode == this._ENC_XFORM_MODE) { + t.pad(this._data, this.blockSize); + var r = this._process(!0); + } else { + var r = this._process(!0); + t.unpad(r); + } + return r; + }, + blockSize: 4 + }), i.CipherParams = n.extend({ + init: function init(t) { + this.mixIn(t); + }, + toString: function toString(t) { + return (t || this.formatter).stringify(this); } - this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i); - }, - _doProcessBlock: function _doProcessBlock(t, r) { - this._mode.processBlock(t, r); - }, - _doFinalize: function _doFinalize() { - var t = this.cfg.padding; - - if (this._xformMode == this._ENC_XFORM_MODE) { - t.pad(this._data, this.blockSize); - - var r = this._process(!0); - } else { - var r = this._process(!0); - - t.unpad(r); - } - - return r; - }, - blockSize: 4 - }), i.CipherParams = n.extend({ - init: function init(t) { - this.mixIn(t); - }, - toString: function toString(t) { - return (t || this.formatter).stringify(this); - } - })), - g = e.format = {}, - B = g.OpenSSL = { - stringify: function stringify(t) { - var r = t.ciphertext, + })), + g = e.format = {}, + B = g.OpenSSL = { + stringify: function stringify(t) { + var r = t.ciphertext, e = t.salt; - if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r);else var i = r; - return i.toString(c); - }, - parse: function parse(t) { - var r = c.parse(t), + if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r);else var i = r; + return i.toString(c); + }, + parse: function parse(t) { + var r = c.parse(t), e = r.words; - - if (1398893684 == e[0] && 1701076831 == e[1]) { - var i = o.create(e.slice(2, 4)); - e.splice(0, 4), r.sigBytes -= 16; + if (1398893684 == e[0] && 1701076831 == e[1]) { + var i = o.create(e.slice(2, 4)); + e.splice(0, 4), r.sigBytes -= 16; + } + return y.create({ + ciphertext: r, + salt: i + }); } - - return y.create({ - ciphertext: r, - salt: i - }); - } - }, - w = i.SerializableCipher = n.extend({ - cfg: n.extend({ - format: B - }), - encrypt: function encrypt(t, r, e, i) { - i = this.cfg.extend(i); - var n = t.createEncryptor(e, i), + }, + w = i.SerializableCipher = n.extend({ + cfg: n.extend({ + format: B + }), + encrypt: function encrypt(t, r, e, i) { + i = this.cfg.extend(i); + var n = t.createEncryptor(e, i), o = n.finalize(r), s = n.cfg; - return y.create({ - ciphertext: o, - key: e, - iv: s.iv, - algorithm: t, - mode: s.mode, - padding: s.padding, - blockSize: t.blockSize, - formatter: i.format - }); - }, - decrypt: function decrypt(t, r, e, i) { - i = this.cfg.extend(i), r = this._parse(r, i.format); - var n = t.createDecryptor(e, i).finalize(r.ciphertext); - return n; - }, - _parse: function _parse(t, r) { - return "string" == typeof t ? r.parse(t, this) : t; - } - }), - k = e.kdf = {}, - S = k.OpenSSL = { - execute: function execute(t, r, e, i) { - i || (i = o.random(8)); - var n = l.create({ - keySize: r + e - }).compute(t, i), - s = o.create(n.words.slice(r), 4 * e); - return n.sigBytes = 4 * r, y.create({ - key: n, - iv: s, - salt: i - }); - } - }, - m = i.PasswordBasedCipher = w.extend({ - cfg: w.cfg.extend({ - kdf: S + return y.create({ + ciphertext: o, + key: e, + iv: s.iv, + algorithm: t, + mode: s.mode, + padding: s.padding, + blockSize: t.blockSize, + formatter: i.format + }); + }, + decrypt: function decrypt(t, r, e, i) { + i = this.cfg.extend(i), r = this._parse(r, i.format); + var n = t.createDecryptor(e, i).finalize(r.ciphertext); + return n; + }, + _parse: function _parse(t, r) { + return "string" == typeof t ? r.parse(t, this) : t; + } }), - encrypt: function encrypt(t, r, e, i) { - i = this.cfg.extend(i); - var n = i.kdf.execute(e, t.keySize, t.ivSize); - i.iv = n.iv; - var o = w.encrypt.call(this, t, r, n.key, i); - return o.mixIn(n), o; + k = e.kdf = {}, + S = k.OpenSSL = { + execute: function execute(t, r, e, i) { + i || (i = o.random(8)); + var n = l.create({ + keySize: r + e + }).compute(t, i), + s = o.create(n.words.slice(r), 4 * e); + return n.sigBytes = 4 * r, y.create({ + key: n, + iv: s, + salt: i + }); + } }, - decrypt: function decrypt(t, r, e, i) { - i = this.cfg.extend(i), r = this._parse(r, i.format); - var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); - i.iv = n.iv; - var o = w.decrypt.call(this, t, r, n.key, i); - return o; - } - }); + m = i.PasswordBasedCipher = w.extend({ + cfg: w.cfg.extend({ + kdf: S + }), + encrypt: function encrypt(t, r, e, i) { + i = this.cfg.extend(i); + var n = i.kdf.execute(e, t.keySize, t.ivSize); + i.iv = n.iv; + var o = w.encrypt.call(this, t, r, n.key, i); + return o.mixIn(n), o; + }, + decrypt: function decrypt(t, r, e, i) { + i = this.cfg.extend(i), r = this._parse(r, i.format); + var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); + i.iv = n.iv; + var o = w.decrypt.call(this, t, r, n.key, i); + return o; + } + }); }(), t.mode.CFB = function () { function r(t, r, e, i) { var n = this._iv; - if (n) { var o = n.slice(0); this._iv = void 0; } else var o = this._prevBlock; - i.encryptBlock(o, 0); - - for (var s = 0; s < e; s++) { - t[r + s] ^= o[s]; - } + for (var s = 0; s < e; s++) t[r + s] ^= o[s]; } - var e = t.lib.BlockCipherMode.extend(); return e.Encryptor = e.extend({ processBlock: function processBlock(t, e) { var i = this._cipher, - n = i.blockSize; + n = i.blockSize; r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n); } }), e.Decryptor = e.extend({ processBlock: function processBlock(t, e) { var i = this._cipher, - n = i.blockSize, - o = t.slice(e, e + n); + n = i.blockSize, + o = t.slice(e, e + n); r.call(this, t, e, n, i), this._prevBlock = o; } }), e; @@ -1314,9 +1142,9 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }(), t.pad.AnsiX923 = { pad: function pad(t, r) { var e = t.sigBytes, - i = 4 * r, - n = i - e % i, - o = e + n - 1; + i = 4 * r, + n = i - e % i, + o = e + n - 1; t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n; }, unpad: function unpad(t) { @@ -1326,7 +1154,7 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }, t.pad.Iso10126 = { pad: function pad(r, e) { var i = 4 * e, - n = i - r.sigBytes % i; + n = i - r.sigBytes % i; r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)); }, unpad: function unpad(t) { @@ -1342,30 +1170,27 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); } }, t.mode.OFB = function () { var r = t.lib.BlockCipherMode.extend(), - e = r.Encryptor = r.extend({ - processBlock: function processBlock(t, r) { - var e = this._cipher, + e = r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + var e = this._cipher, i = e.blockSize, n = this._iv, o = this._keystream; - n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); - - for (var s = 0; s < i; s++) { - t[r + s] ^= o[s]; + n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); + for (var s = 0; s < i; s++) t[r + s] ^= o[s]; } - } - }); + }); return r.Decryptor = e, r; }(), t.pad.NoPadding = { pad: function pad() {}, unpad: function unpad() {} }, function (r) { var e = t, - i = e.lib, - n = i.CipherParams, - o = e.enc, - s = o.Hex, - a = e.format; + i = e.lib, + n = i.CipherParams, + o = e.enc, + s = o.Hex, + a = e.format; a.Hex = { stringify: function stringify(t) { return t.ciphertext.toString(s); @@ -1379,680 +1204,651 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }; }(), function () { var r = t, - e = r.lib, - i = e.BlockCipher, - n = r.algo, - o = [], - s = [], - a = [], - c = [], - h = [], - l = [], - f = [], - u = [], - d = [], - v = []; + e = r.lib, + i = e.BlockCipher, + n = r.algo, + o = [], + s = [], + a = [], + c = [], + h = [], + l = [], + f = [], + u = [], + d = [], + v = []; !function () { - for (var t = [], r = 0; r < 256; r++) { - r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; - } - + for (var t = [], r = 0; r < 256; r++) r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; for (var e = 0, i = 0, r = 0; r < 256; r++) { var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; var p = t[e], - _ = t[p], - y = t[_], - g = 257 * t[n] ^ 16843008 * n; + _ = t[p], + y = t[_], + g = 257 * t[n] ^ 16843008 * n; a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1; } }(); - var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], - _ = n.AES = i.extend({ - _doReset: function _doReset() { - if (!this._nRounds || this._keyPriorReset !== this._key) { - for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++) { - if (a < e) s[a] = r[a];else { + _ = n.AES = i.extend({ + _doReset: function _doReset() { + if (!this._nRounds || this._keyPriorReset !== this._key) { + for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++) if (a < e) s[a] = r[a];else { var c = s[a - 1]; a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c; } + for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { + var a = n - l; + if (l % 4) var c = s[a];else var c = s[a - 4]; + l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]]; + } } - - for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { - var a = n - l; - if (l % 4) var c = s[a];else var c = s[a - 4]; - l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]]; - } - } - }, - encryptBlock: function encryptBlock(t, r) { - this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o); - }, - decryptBlock: function decryptBlock(t, r) { - var e = t[r + 1]; - t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); - var e = t[r + 1]; - t[r + 1] = t[r + 3], t[r + 3] = e; - }, - _doCryptBlock: function _doCryptBlock(t, r, e, i, n, o, s, a) { - for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { - var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], + }, + encryptBlock: function encryptBlock(t, r) { + this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o); + }, + decryptBlock: function decryptBlock(t, r) { + var e = t[r + 1]; + t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); + var e = t[r + 1]; + t[r + 1] = t[r + 3], t[r + 3] = e; + }, + _doCryptBlock: function _doCryptBlock(t, r, e, i, n, o, s, a) { + for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { + var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; - - h = p, l = _, f = y, u = g; - } - - var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], + h = p, l = _, f = y, u = g; + } + var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; - - t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g; - }, - keySize: 8 - }); - + t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g; + }, + keySize: 8 + }); r.AES = i._createHelper(_); }(), function () { function r(t, r) { var e = (this._lBlock >>> t ^ this._rBlock) & r; this._rBlock ^= e, this._lBlock ^= e << t; } - function e(t, r) { var e = (this._rBlock >>> t ^ this._lBlock) & r; this._lBlock ^= e, this._rBlock ^= e << t; } - var i = t, - n = i.lib, - o = n.WordArray, - s = n.BlockCipher, - a = i.algo, - c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], - h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], - l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], - f = [{ - 0: 8421888, - 268435456: 32768, - 536870912: 8421378, - 805306368: 2, - 1073741824: 512, - 1342177280: 8421890, - 1610612736: 8389122, - 1879048192: 8388608, - 2147483648: 514, - 2415919104: 8389120, - 2684354560: 33280, - 2952790016: 8421376, - 3221225472: 32770, - 3489660928: 8388610, - 3758096384: 0, - 4026531840: 33282, - 134217728: 0, - 402653184: 8421890, - 671088640: 33282, - 939524096: 32768, - 1207959552: 8421888, - 1476395008: 512, - 1744830464: 8421378, - 2013265920: 2, - 2281701376: 8389120, - 2550136832: 33280, - 2818572288: 8421376, - 3087007744: 8389122, - 3355443200: 8388610, - 3623878656: 32770, - 3892314112: 514, - 4160749568: 8388608, - 1: 32768, - 268435457: 2, - 536870913: 8421888, - 805306369: 8388608, - 1073741825: 8421378, - 1342177281: 33280, - 1610612737: 512, - 1879048193: 8389122, - 2147483649: 8421890, - 2415919105: 8421376, - 2684354561: 8388610, - 2952790017: 33282, - 3221225473: 514, - 3489660929: 8389120, - 3758096385: 32770, - 4026531841: 0, - 134217729: 8421890, - 402653185: 8421376, - 671088641: 8388608, - 939524097: 512, - 1207959553: 32768, - 1476395009: 8388610, - 1744830465: 2, - 2013265921: 33282, - 2281701377: 32770, - 2550136833: 8389122, - 2818572289: 514, - 3087007745: 8421888, - 3355443201: 8389120, - 3623878657: 0, - 3892314113: 33280, - 4160749569: 8421378 - }, { - 0: 1074282512, - 16777216: 16384, - 33554432: 524288, - 50331648: 1074266128, - 67108864: 1073741840, - 83886080: 1074282496, - 100663296: 1073758208, - 117440512: 16, - 134217728: 540672, - 150994944: 1073758224, - 167772160: 1073741824, - 184549376: 540688, - 201326592: 524304, - 218103808: 0, - 234881024: 16400, - 251658240: 1074266112, - 8388608: 1073758208, - 25165824: 540688, - 41943040: 16, - 58720256: 1073758224, - 75497472: 1074282512, - 92274688: 1073741824, - 109051904: 524288, - 125829120: 1074266128, - 142606336: 524304, - 159383552: 0, - 176160768: 16384, - 192937984: 1074266112, - 209715200: 1073741840, - 226492416: 540672, - 243269632: 1074282496, - 260046848: 16400, - 268435456: 0, - 285212672: 1074266128, - 301989888: 1073758224, - 318767104: 1074282496, - 335544320: 1074266112, - 352321536: 16, - 369098752: 540688, - 385875968: 16384, - 402653184: 16400, - 419430400: 524288, - 436207616: 524304, - 452984832: 1073741840, - 469762048: 540672, - 486539264: 1073758208, - 503316480: 1073741824, - 520093696: 1074282512, - 276824064: 540688, - 293601280: 524288, - 310378496: 1074266112, - 327155712: 16384, - 343932928: 1073758208, - 360710144: 1074282512, - 377487360: 16, - 394264576: 1073741824, - 411041792: 1074282496, - 427819008: 1073741840, - 444596224: 1073758224, - 461373440: 524304, - 478150656: 0, - 494927872: 16400, - 511705088: 1074266128, - 528482304: 540672 - }, { - 0: 260, - 1048576: 0, - 2097152: 67109120, - 3145728: 65796, - 4194304: 65540, - 5242880: 67108868, - 6291456: 67174660, - 7340032: 67174400, - 8388608: 67108864, - 9437184: 67174656, - 10485760: 65792, - 11534336: 67174404, - 12582912: 67109124, - 13631488: 65536, - 14680064: 4, - 15728640: 256, - 524288: 67174656, - 1572864: 67174404, - 2621440: 0, - 3670016: 67109120, - 4718592: 67108868, - 5767168: 65536, - 6815744: 65540, - 7864320: 260, - 8912896: 4, - 9961472: 256, - 11010048: 67174400, - 12058624: 65796, - 13107200: 65792, - 14155776: 67109124, - 15204352: 67174660, - 16252928: 67108864, - 16777216: 67174656, - 17825792: 65540, - 18874368: 65536, - 19922944: 67109120, - 20971520: 256, - 22020096: 67174660, - 23068672: 67108868, - 24117248: 0, - 25165824: 67109124, - 26214400: 67108864, - 27262976: 4, - 28311552: 65792, - 29360128: 67174400, - 30408704: 260, - 31457280: 65796, - 32505856: 67174404, - 17301504: 67108864, - 18350080: 260, - 19398656: 67174656, - 20447232: 0, - 21495808: 65540, - 22544384: 67109120, - 23592960: 256, - 24641536: 67174404, - 25690112: 65536, - 26738688: 67174660, - 27787264: 65796, - 28835840: 67108868, - 29884416: 67109124, - 30932992: 67174400, - 31981568: 4, - 33030144: 65792 - }, { - 0: 2151682048, - 65536: 2147487808, - 131072: 4198464, - 196608: 2151677952, - 262144: 0, - 327680: 4198400, - 393216: 2147483712, - 458752: 4194368, - 524288: 2147483648, - 589824: 4194304, - 655360: 64, - 720896: 2147487744, - 786432: 2151678016, - 851968: 4160, - 917504: 4096, - 983040: 2151682112, - 32768: 2147487808, - 98304: 64, - 163840: 2151678016, - 229376: 2147487744, - 294912: 4198400, - 360448: 2151682112, - 425984: 0, - 491520: 2151677952, - 557056: 4096, - 622592: 2151682048, - 688128: 4194304, - 753664: 4160, - 819200: 2147483648, - 884736: 4194368, - 950272: 4198464, - 1015808: 2147483712, - 1048576: 4194368, - 1114112: 4198400, - 1179648: 2147483712, - 1245184: 0, - 1310720: 4160, - 1376256: 2151678016, - 1441792: 2151682048, - 1507328: 2147487808, - 1572864: 2151682112, - 1638400: 2147483648, - 1703936: 2151677952, - 1769472: 4198464, - 1835008: 2147487744, - 1900544: 4194304, - 1966080: 64, - 2031616: 4096, - 1081344: 2151677952, - 1146880: 2151682112, - 1212416: 0, - 1277952: 4198400, - 1343488: 4194368, - 1409024: 2147483648, - 1474560: 2147487808, - 1540096: 64, - 1605632: 2147483712, - 1671168: 4096, - 1736704: 2147487744, - 1802240: 2151678016, - 1867776: 4160, - 1933312: 2151682048, - 1998848: 4194304, - 2064384: 4198464 - }, { - 0: 128, - 4096: 17039360, - 8192: 262144, - 12288: 536870912, - 16384: 537133184, - 20480: 16777344, - 24576: 553648256, - 28672: 262272, - 32768: 16777216, - 36864: 537133056, - 40960: 536871040, - 45056: 553910400, - 49152: 553910272, - 53248: 0, - 57344: 17039488, - 61440: 553648128, - 2048: 17039488, - 6144: 553648256, - 10240: 128, - 14336: 17039360, - 18432: 262144, - 22528: 537133184, - 26624: 553910272, - 30720: 536870912, - 34816: 537133056, - 38912: 0, - 43008: 553910400, - 47104: 16777344, - 51200: 536871040, - 55296: 553648128, - 59392: 16777216, - 63488: 262272, - 65536: 262144, - 69632: 128, - 73728: 536870912, - 77824: 553648256, - 81920: 16777344, - 86016: 553910272, - 90112: 537133184, - 94208: 16777216, - 98304: 553910400, - 102400: 553648128, - 106496: 17039360, - 110592: 537133056, - 114688: 262272, - 118784: 536871040, - 122880: 0, - 126976: 17039488, - 67584: 553648256, - 71680: 16777216, - 75776: 17039360, - 79872: 537133184, - 83968: 536870912, - 88064: 17039488, - 92160: 128, - 96256: 553910272, - 100352: 262272, - 104448: 553910400, - 108544: 0, - 112640: 553648128, - 116736: 16777344, - 120832: 262144, - 124928: 537133056, - 129024: 536871040 - }, { - 0: 268435464, - 256: 8192, - 512: 270532608, - 768: 270540808, - 1024: 268443648, - 1280: 2097152, - 1536: 2097160, - 1792: 268435456, - 2048: 0, - 2304: 268443656, - 2560: 2105344, - 2816: 8, - 3072: 270532616, - 3328: 2105352, - 3584: 8200, - 3840: 270540800, - 128: 270532608, - 384: 270540808, - 640: 8, - 896: 2097152, - 1152: 2105352, - 1408: 268435464, - 1664: 268443648, - 1920: 8200, - 2176: 2097160, - 2432: 8192, - 2688: 268443656, - 2944: 270532616, - 3200: 0, - 3456: 270540800, - 3712: 2105344, - 3968: 268435456, - 4096: 268443648, - 4352: 270532616, - 4608: 270540808, - 4864: 8200, - 5120: 2097152, - 5376: 268435456, - 5632: 268435464, - 5888: 2105344, - 6144: 2105352, - 6400: 0, - 6656: 8, - 6912: 270532608, - 7168: 8192, - 7424: 268443656, - 7680: 270540800, - 7936: 2097160, - 4224: 8, - 4480: 2105344, - 4736: 2097152, - 4992: 268435464, - 5248: 268443648, - 5504: 8200, - 5760: 270540808, - 6016: 270532608, - 6272: 270540800, - 6528: 270532616, - 6784: 8192, - 7040: 2105352, - 7296: 2097160, - 7552: 0, - 7808: 268435456, - 8064: 268443656 - }, { - 0: 1048576, - 16: 33555457, - 32: 1024, - 48: 1049601, - 64: 34604033, - 80: 0, - 96: 1, - 112: 34603009, - 128: 33555456, - 144: 1048577, - 160: 33554433, - 176: 34604032, - 192: 34603008, - 208: 1025, - 224: 1049600, - 240: 33554432, - 8: 34603009, - 24: 0, - 40: 33555457, - 56: 34604032, - 72: 1048576, - 88: 33554433, - 104: 33554432, - 120: 1025, - 136: 1049601, - 152: 33555456, - 168: 34603008, - 184: 1048577, - 200: 1024, - 216: 34604033, - 232: 1, - 248: 1049600, - 256: 33554432, - 272: 1048576, - 288: 33555457, - 304: 34603009, - 320: 1048577, - 336: 33555456, - 352: 34604032, - 368: 1049601, - 384: 1025, - 400: 34604033, - 416: 1049600, - 432: 1, - 448: 0, - 464: 34603008, - 480: 33554433, - 496: 1024, - 264: 1049600, - 280: 33555457, - 296: 34603009, - 312: 1, - 328: 33554432, - 344: 1048576, - 360: 1025, - 376: 34604032, - 392: 33554433, - 408: 34603008, - 424: 0, - 440: 34604033, - 456: 1049601, - 472: 1024, - 488: 33555456, - 504: 1048577 - }, { - 0: 134219808, - 1: 131072, - 2: 134217728, - 3: 32, - 4: 131104, - 5: 134350880, - 6: 134350848, - 7: 2048, - 8: 134348800, - 9: 134219776, - 10: 133120, - 11: 134348832, - 12: 2080, - 13: 0, - 14: 134217760, - 15: 133152, - 2147483648: 2048, - 2147483649: 134350880, - 2147483650: 134219808, - 2147483651: 134217728, - 2147483652: 134348800, - 2147483653: 133120, - 2147483654: 133152, - 2147483655: 32, - 2147483656: 134217760, - 2147483657: 2080, - 2147483658: 131104, - 2147483659: 134350848, - 2147483660: 0, - 2147483661: 134348832, - 2147483662: 134219776, - 2147483663: 131072, - 16: 133152, - 17: 134350848, - 18: 32, - 19: 2048, - 20: 134219776, - 21: 134217760, - 22: 134348832, - 23: 131072, - 24: 0, - 25: 131104, - 26: 134348800, - 27: 134219808, - 28: 134350880, - 29: 133120, - 30: 2080, - 31: 134217728, - 2147483664: 131072, - 2147483665: 2048, - 2147483666: 134348832, - 2147483667: 133152, - 2147483668: 32, - 2147483669: 134348800, - 2147483670: 134217728, - 2147483671: 134219808, - 2147483672: 134350880, - 2147483673: 134217760, - 2147483674: 134219776, - 2147483675: 0, - 2147483676: 133120, - 2147483677: 2080, - 2147483678: 131104, - 2147483679: 134350848 - }], - u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], - d = a.DES = s.extend({ - _doReset: function _doReset() { - for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { - var n = c[i] - 1; - e[i] = r[n >>> 5] >>> 31 - n % 32 & 1; - } - - for (var o = this._subKeys = [], s = 0; s < 16; s++) { - for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++) { - a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; + n = i.lib, + o = n.WordArray, + s = n.BlockCipher, + a = i.algo, + c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], + h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], + l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], + f = [{ + 0: 8421888, + 268435456: 32768, + 536870912: 8421378, + 805306368: 2, + 1073741824: 512, + 1342177280: 8421890, + 1610612736: 8389122, + 1879048192: 8388608, + 2147483648: 514, + 2415919104: 8389120, + 2684354560: 33280, + 2952790016: 8421376, + 3221225472: 32770, + 3489660928: 8388610, + 3758096384: 0, + 4026531840: 33282, + 134217728: 0, + 402653184: 8421890, + 671088640: 33282, + 939524096: 32768, + 1207959552: 8421888, + 1476395008: 512, + 1744830464: 8421378, + 2013265920: 2, + 2281701376: 8389120, + 2550136832: 33280, + 2818572288: 8421376, + 3087007744: 8389122, + 3355443200: 8388610, + 3623878656: 32770, + 3892314112: 514, + 4160749568: 8388608, + 1: 32768, + 268435457: 2, + 536870913: 8421888, + 805306369: 8388608, + 1073741825: 8421378, + 1342177281: 33280, + 1610612737: 512, + 1879048193: 8389122, + 2147483649: 8421890, + 2415919105: 8421376, + 2684354561: 8388610, + 2952790017: 33282, + 3221225473: 514, + 3489660929: 8389120, + 3758096385: 32770, + 4026531841: 0, + 134217729: 8421890, + 402653185: 8421376, + 671088641: 8388608, + 939524097: 512, + 1207959553: 32768, + 1476395009: 8388610, + 1744830465: 2, + 2013265921: 33282, + 2281701377: 32770, + 2550136833: 8389122, + 2818572289: 514, + 3087007745: 8421888, + 3355443201: 8389120, + 3623878657: 0, + 3892314113: 33280, + 4160749569: 8421378 + }, { + 0: 1074282512, + 16777216: 16384, + 33554432: 524288, + 50331648: 1074266128, + 67108864: 1073741840, + 83886080: 1074282496, + 100663296: 1073758208, + 117440512: 16, + 134217728: 540672, + 150994944: 1073758224, + 167772160: 1073741824, + 184549376: 540688, + 201326592: 524304, + 218103808: 0, + 234881024: 16400, + 251658240: 1074266112, + 8388608: 1073758208, + 25165824: 540688, + 41943040: 16, + 58720256: 1073758224, + 75497472: 1074282512, + 92274688: 1073741824, + 109051904: 524288, + 125829120: 1074266128, + 142606336: 524304, + 159383552: 0, + 176160768: 16384, + 192937984: 1074266112, + 209715200: 1073741840, + 226492416: 540672, + 243269632: 1074282496, + 260046848: 16400, + 268435456: 0, + 285212672: 1074266128, + 301989888: 1073758224, + 318767104: 1074282496, + 335544320: 1074266112, + 352321536: 16, + 369098752: 540688, + 385875968: 16384, + 402653184: 16400, + 419430400: 524288, + 436207616: 524304, + 452984832: 1073741840, + 469762048: 540672, + 486539264: 1073758208, + 503316480: 1073741824, + 520093696: 1074282512, + 276824064: 540688, + 293601280: 524288, + 310378496: 1074266112, + 327155712: 16384, + 343932928: 1073758208, + 360710144: 1074282512, + 377487360: 16, + 394264576: 1073741824, + 411041792: 1074282496, + 427819008: 1073741840, + 444596224: 1073758224, + 461373440: 524304, + 478150656: 0, + 494927872: 16400, + 511705088: 1074266128, + 528482304: 540672 + }, { + 0: 260, + 1048576: 0, + 2097152: 67109120, + 3145728: 65796, + 4194304: 65540, + 5242880: 67108868, + 6291456: 67174660, + 7340032: 67174400, + 8388608: 67108864, + 9437184: 67174656, + 10485760: 65792, + 11534336: 67174404, + 12582912: 67109124, + 13631488: 65536, + 14680064: 4, + 15728640: 256, + 524288: 67174656, + 1572864: 67174404, + 2621440: 0, + 3670016: 67109120, + 4718592: 67108868, + 5767168: 65536, + 6815744: 65540, + 7864320: 260, + 8912896: 4, + 9961472: 256, + 11010048: 67174400, + 12058624: 65796, + 13107200: 65792, + 14155776: 67109124, + 15204352: 67174660, + 16252928: 67108864, + 16777216: 67174656, + 17825792: 65540, + 18874368: 65536, + 19922944: 67109120, + 20971520: 256, + 22020096: 67174660, + 23068672: 67108868, + 24117248: 0, + 25165824: 67109124, + 26214400: 67108864, + 27262976: 4, + 28311552: 65792, + 29360128: 67174400, + 30408704: 260, + 31457280: 65796, + 32505856: 67174404, + 17301504: 67108864, + 18350080: 260, + 19398656: 67174656, + 20447232: 0, + 21495808: 65540, + 22544384: 67109120, + 23592960: 256, + 24641536: 67174404, + 25690112: 65536, + 26738688: 67174660, + 27787264: 65796, + 28835840: 67108868, + 29884416: 67109124, + 30932992: 67174400, + 31981568: 4, + 33030144: 65792 + }, { + 0: 2151682048, + 65536: 2147487808, + 131072: 4198464, + 196608: 2151677952, + 262144: 0, + 327680: 4198400, + 393216: 2147483712, + 458752: 4194368, + 524288: 2147483648, + 589824: 4194304, + 655360: 64, + 720896: 2147487744, + 786432: 2151678016, + 851968: 4160, + 917504: 4096, + 983040: 2151682112, + 32768: 2147487808, + 98304: 64, + 163840: 2151678016, + 229376: 2147487744, + 294912: 4198400, + 360448: 2151682112, + 425984: 0, + 491520: 2151677952, + 557056: 4096, + 622592: 2151682048, + 688128: 4194304, + 753664: 4160, + 819200: 2147483648, + 884736: 4194368, + 950272: 4198464, + 1015808: 2147483712, + 1048576: 4194368, + 1114112: 4198400, + 1179648: 2147483712, + 1245184: 0, + 1310720: 4160, + 1376256: 2151678016, + 1441792: 2151682048, + 1507328: 2147487808, + 1572864: 2151682112, + 1638400: 2147483648, + 1703936: 2151677952, + 1769472: 4198464, + 1835008: 2147487744, + 1900544: 4194304, + 1966080: 64, + 2031616: 4096, + 1081344: 2151677952, + 1146880: 2151682112, + 1212416: 0, + 1277952: 4198400, + 1343488: 4194368, + 1409024: 2147483648, + 1474560: 2147487808, + 1540096: 64, + 1605632: 2147483712, + 1671168: 4096, + 1736704: 2147487744, + 1802240: 2151678016, + 1867776: 4160, + 1933312: 2151682048, + 1998848: 4194304, + 2064384: 4198464 + }, { + 0: 128, + 4096: 17039360, + 8192: 262144, + 12288: 536870912, + 16384: 537133184, + 20480: 16777344, + 24576: 553648256, + 28672: 262272, + 32768: 16777216, + 36864: 537133056, + 40960: 536871040, + 45056: 553910400, + 49152: 553910272, + 53248: 0, + 57344: 17039488, + 61440: 553648128, + 2048: 17039488, + 6144: 553648256, + 10240: 128, + 14336: 17039360, + 18432: 262144, + 22528: 537133184, + 26624: 553910272, + 30720: 536870912, + 34816: 537133056, + 38912: 0, + 43008: 553910400, + 47104: 16777344, + 51200: 536871040, + 55296: 553648128, + 59392: 16777216, + 63488: 262272, + 65536: 262144, + 69632: 128, + 73728: 536870912, + 77824: 553648256, + 81920: 16777344, + 86016: 553910272, + 90112: 537133184, + 94208: 16777216, + 98304: 553910400, + 102400: 553648128, + 106496: 17039360, + 110592: 537133056, + 114688: 262272, + 118784: 536871040, + 122880: 0, + 126976: 17039488, + 67584: 553648256, + 71680: 16777216, + 75776: 17039360, + 79872: 537133184, + 83968: 536870912, + 88064: 17039488, + 92160: 128, + 96256: 553910272, + 100352: 262272, + 104448: 553910400, + 108544: 0, + 112640: 553648128, + 116736: 16777344, + 120832: 262144, + 124928: 537133056, + 129024: 536871040 + }, { + 0: 268435464, + 256: 8192, + 512: 270532608, + 768: 270540808, + 1024: 268443648, + 1280: 2097152, + 1536: 2097160, + 1792: 268435456, + 2048: 0, + 2304: 268443656, + 2560: 2105344, + 2816: 8, + 3072: 270532616, + 3328: 2105352, + 3584: 8200, + 3840: 270540800, + 128: 270532608, + 384: 270540808, + 640: 8, + 896: 2097152, + 1152: 2105352, + 1408: 268435464, + 1664: 268443648, + 1920: 8200, + 2176: 2097160, + 2432: 8192, + 2688: 268443656, + 2944: 270532616, + 3200: 0, + 3456: 270540800, + 3712: 2105344, + 3968: 268435456, + 4096: 268443648, + 4352: 270532616, + 4608: 270540808, + 4864: 8200, + 5120: 2097152, + 5376: 268435456, + 5632: 268435464, + 5888: 2105344, + 6144: 2105352, + 6400: 0, + 6656: 8, + 6912: 270532608, + 7168: 8192, + 7424: 268443656, + 7680: 270540800, + 7936: 2097160, + 4224: 8, + 4480: 2105344, + 4736: 2097152, + 4992: 268435464, + 5248: 268443648, + 5504: 8200, + 5760: 270540808, + 6016: 270532608, + 6272: 270540800, + 6528: 270532616, + 6784: 8192, + 7040: 2105352, + 7296: 2097160, + 7552: 0, + 7808: 268435456, + 8064: 268443656 + }, { + 0: 1048576, + 16: 33555457, + 32: 1024, + 48: 1049601, + 64: 34604033, + 80: 0, + 96: 1, + 112: 34603009, + 128: 33555456, + 144: 1048577, + 160: 33554433, + 176: 34604032, + 192: 34603008, + 208: 1025, + 224: 1049600, + 240: 33554432, + 8: 34603009, + 24: 0, + 40: 33555457, + 56: 34604032, + 72: 1048576, + 88: 33554433, + 104: 33554432, + 120: 1025, + 136: 1049601, + 152: 33555456, + 168: 34603008, + 184: 1048577, + 200: 1024, + 216: 34604033, + 232: 1, + 248: 1049600, + 256: 33554432, + 272: 1048576, + 288: 33555457, + 304: 34603009, + 320: 1048577, + 336: 33555456, + 352: 34604032, + 368: 1049601, + 384: 1025, + 400: 34604033, + 416: 1049600, + 432: 1, + 448: 0, + 464: 34603008, + 480: 33554433, + 496: 1024, + 264: 1049600, + 280: 33555457, + 296: 34603009, + 312: 1, + 328: 33554432, + 344: 1048576, + 360: 1025, + 376: 34604032, + 392: 33554433, + 408: 34603008, + 424: 0, + 440: 34604033, + 456: 1049601, + 472: 1024, + 488: 33555456, + 504: 1048577 + }, { + 0: 134219808, + 1: 131072, + 2: 134217728, + 3: 32, + 4: 131104, + 5: 134350880, + 6: 134350848, + 7: 2048, + 8: 134348800, + 9: 134219776, + 10: 133120, + 11: 134348832, + 12: 2080, + 13: 0, + 14: 134217760, + 15: 133152, + 2147483648: 2048, + 2147483649: 134350880, + 2147483650: 134219808, + 2147483651: 134217728, + 2147483652: 134348800, + 2147483653: 133120, + 2147483654: 133152, + 2147483655: 32, + 2147483656: 134217760, + 2147483657: 2080, + 2147483658: 131104, + 2147483659: 134350848, + 2147483660: 0, + 2147483661: 134348832, + 2147483662: 134219776, + 2147483663: 131072, + 16: 133152, + 17: 134350848, + 18: 32, + 19: 2048, + 20: 134219776, + 21: 134217760, + 22: 134348832, + 23: 131072, + 24: 0, + 25: 131104, + 26: 134348800, + 27: 134219808, + 28: 134350880, + 29: 133120, + 30: 2080, + 31: 134217728, + 2147483664: 131072, + 2147483665: 2048, + 2147483666: 134348832, + 2147483667: 133152, + 2147483668: 32, + 2147483669: 134348800, + 2147483670: 134217728, + 2147483671: 134219808, + 2147483672: 134350880, + 2147483673: 134217760, + 2147483674: 134219776, + 2147483675: 0, + 2147483676: 133120, + 2147483677: 2080, + 2147483678: 131104, + 2147483679: 134350848 + }], + u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], + d = a.DES = s.extend({ + _doReset: function _doReset() { + for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { + var n = c[i] - 1; + e[i] = r[n >>> 5] >>> 31 - n % 32 & 1; } - - a[0] = a[0] << 1 | a[0] >>> 31; - - for (var i = 1; i < 7; i++) { - a[i] = a[i] >>> 4 * (i - 1) + 3; + for (var o = this._subKeys = [], s = 0; s < 16; s++) { + for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++) a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; + a[0] = a[0] << 1 | a[0] >>> 31; + for (var i = 1; i < 7; i++) a[i] = a[i] >>> 4 * (i - 1) + 3; + a[7] = a[7] << 5 | a[7] >>> 27; } - - a[7] = a[7] << 5 | a[7] >>> 27; - } - - for (var u = this._invSubKeys = [], i = 0; i < 16; i++) { - u[i] = o[15 - i]; - } - }, - encryptBlock: function encryptBlock(t, r) { - this._doCryptBlock(t, r, this._subKeys); - }, - decryptBlock: function decryptBlock(t, r) { - this._doCryptBlock(t, r, this._invSubKeys); - }, - _doCryptBlock: function _doCryptBlock(t, i, n) { - this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); - - for (var o = 0; o < 16; o++) { - for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++) { - h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; + for (var u = this._invSubKeys = [], i = 0; i < 16; i++) u[i] = o[15 - i]; + }, + encryptBlock: function encryptBlock(t, r) { + this._doCryptBlock(t, r, this._subKeys); + }, + decryptBlock: function decryptBlock(t, r) { + this._doCryptBlock(t, r, this._invSubKeys); + }, + _doCryptBlock: function _doCryptBlock(t, i, n) { + this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); + for (var o = 0; o < 16; o++) { + for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++) h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; + this._lBlock = c, this._rBlock = a ^ h; } - - this._lBlock = c, this._rBlock = a ^ h; - } - - var d = this._lBlock; - this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock; - }, - keySize: 2, - ivSize: 2, - blockSize: 2 - }); + var d = this._lBlock; + this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock; + }, + keySize: 2, + ivSize: 2, + blockSize: 2 + }); i.DES = s._createHelper(d); var v = a.TripleDES = s.extend({ _doReset: function _doReset() { var t = this._key, - r = t.words; + r = t.words; this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))); }, encryptBlock: function encryptBlock(t, r) { @@ -2073,36 +1869,30 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); var o = t[r]; t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n; } - return this._i = r, this._j = e, i; } - var e = t, - i = e.lib, - n = i.StreamCipher, - o = e.algo, - s = o.RC4 = n.extend({ - _doReset: function _doReset() { - for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++) { - i[n] = n; - } - - for (var n = 0, o = 0; n < 256; n++) { - var s = n % e, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = o.RC4 = n.extend({ + _doReset: function _doReset() { + for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++) i[n] = n; + for (var n = 0, o = 0; n < 256; n++) { + var s = n % e, a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; - o = (o + i[n] + a) % 256; - var c = i[n]; - i[n] = i[o], i[o] = c; - } - - this._i = this._j = 0; - }, - _doProcessBlock: function _doProcessBlock(t, e) { - t[e] ^= r.call(this); - }, - keySize: 8, - ivSize: 0 - }); + o = (o + i[n] + a) % 256; + var c = i[n]; + i[n] = i[o], i[o] = c; + } + this._i = this._j = 0; + }, + _doProcessBlock: function _doProcessBlock(t, e) { + t[e] ^= r.call(this); + }, + keySize: 8, + ivSize: 0 + }); e.RC4 = n._createHelper(s); var a = o.RC4Drop = s.extend({ cfg: s.cfg.extend({ @@ -2110,10 +1900,7 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); }), _doReset: function _doReset() { s._doReset.call(this); - - for (var t = this.cfg.drop; t > 0; t--) { - r.call(this); - } + for (var t = this.cfg.drop; t > 0; t--) r.call(this); } }); e.RC4Drop = n._createHelper(a); @@ -2121,194 +1908,144 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); function r(t) { if (255 === (t >> 24 & 255)) { var r = t >> 16 & 255, - e = t >> 8 & 255, - i = 255 & t; + e = t >> 8 & 255, + i = 255 & t; 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i; } else t += 1 << 24; - return t; } - function e(t) { return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t; } - var i = t.lib.BlockCipherMode.extend(), - n = i.Encryptor = i.extend({ - processBlock: function processBlock(t, r) { - var i = this._cipher, + n = i.Encryptor = i.extend({ + processBlock: function processBlock(t, r) { + var i = this._cipher, n = i.blockSize, o = this._iv, s = this._counter; - o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); - var a = s.slice(0); - i.encryptBlock(a, 0); - - for (var c = 0; c < n; c++) { - t[r + c] ^= a[c]; + o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); + var a = s.slice(0); + i.encryptBlock(a, 0); + for (var c = 0; c < n; c++) t[r + c] ^= a[c]; } - } - }); + }); return i.Decryptor = n, i; }(), function () { function r() { - for (var t = this._X, r = this._C, e = 0; e < 8; e++) { - a[e] = r[e]; - } - + for (var t = this._X, r = this._C, e = 0; e < 8; e++) a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; - for (var e = 0; e < 8; e++) { var i = t[e] + r[e], - n = 65535 & i, - o = i >>> 16, - s = ((n * n >>> 17) + n * o >>> 15) + o * o, - h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); + n = 65535 & i, + o = i >>> 16, + s = ((n * n >>> 17) + n * o >>> 15) + o * o, + h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h; } - t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; } - var e = t, - i = e.lib, - n = i.StreamCipher, - o = e.algo, - s = [], - a = [], - c = [], - h = o.Rabbit = n.extend({ - _doReset: function _doReset() { - for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++) { - t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); - } - - var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = [], + a = [], + c = [], + h = o.Rabbit = n.extend({ + _doReset: function _doReset() { + for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++) t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); + var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; - this._b = 0; - - for (var i = 0; i < 4; i++) { - r.call(this); - } - - for (var i = 0; i < 8; i++) { - o[i] ^= n[i + 4 & 7]; - } - - if (e) { - var s = e.words, + this._b = 0; + for (var i = 0; i < 4; i++) r.call(this); + for (var i = 0; i < 8; i++) o[i] ^= n[i + 4 & 7]; + if (e) { + var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; - o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; - - for (var i = 0; i < 4; i++) { - r.call(this); + o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; + for (var i = 0; i < 4; i++) r.call(this); } - } - }, - _doProcessBlock: function _doProcessBlock(t, e) { - var i = this._X; - r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; - - for (var n = 0; n < 4; n++) { - s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; - } - }, - blockSize: 4, - ivSize: 2 - }); + }, + _doProcessBlock: function _doProcessBlock(t, e) { + var i = this._X; + r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; + for (var n = 0; n < 4; n++) s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; + }, + blockSize: 4, + ivSize: 2 + }); e.Rabbit = n._createHelper(h); }(), t.mode.CTR = function () { var r = t.lib.BlockCipherMode.extend(), - e = r.Encryptor = r.extend({ - processBlock: function processBlock(t, r) { - var e = this._cipher, + e = r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + var e = this._cipher, i = e.blockSize, n = this._iv, o = this._counter; - n && (o = this._counter = n.slice(0), this._iv = void 0); - var s = o.slice(0); - e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; - - for (var a = 0; a < i; a++) { - t[r + a] ^= s[a]; + n && (o = this._counter = n.slice(0), this._iv = void 0); + var s = o.slice(0); + e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; + for (var a = 0; a < i; a++) t[r + a] ^= s[a]; } - } - }); + }); return r.Decryptor = e, r; }(), function () { function r() { - for (var t = this._X, r = this._C, e = 0; e < 8; e++) { - a[e] = r[e]; - } - + for (var t = this._X, r = this._C, e = 0; e < 8; e++) a[e] = r[e]; r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; - for (var e = 0; e < 8; e++) { var i = t[e] + r[e], - n = 65535 & i, - o = i >>> 16, - s = ((n * n >>> 17) + n * o >>> 15) + o * o, - h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); + n = 65535 & i, + o = i >>> 16, + s = ((n * n >>> 17) + n * o >>> 15) + o * o, + h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); c[e] = s ^ h; } - t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; } - var e = t, - i = e.lib, - n = i.StreamCipher, - o = e.algo, - s = [], - a = [], - c = [], - h = o.RabbitLegacy = n.extend({ - _doReset: function _doReset() { - var t = this._key.words, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = [], + a = [], + c = [], + h = o.RabbitLegacy = n.extend({ + _doReset: function _doReset() { + var t = this._key.words, e = this.cfg.iv, i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; - this._b = 0; - - for (var o = 0; o < 4; o++) { - r.call(this); - } - - for (var o = 0; o < 8; o++) { - n[o] ^= i[o + 4 & 7]; - } - - if (e) { - var s = e.words, + this._b = 0; + for (var o = 0; o < 4; o++) r.call(this); + for (var o = 0; o < 8; o++) n[o] ^= i[o + 4 & 7]; + if (e) { + var s = e.words, a = s[0], c = s[1], h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), f = h >>> 16 | 4294901760 & l, u = l << 16 | 65535 & h; - n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; - - for (var o = 0; o < 4; o++) { - r.call(this); + n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; + for (var o = 0; o < 4; o++) r.call(this); } - } - }, - _doProcessBlock: function _doProcessBlock(t, e) { - var i = this._X; - r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; - - for (var n = 0; n < 4; n++) { - s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; - } - }, - blockSize: 4, - ivSize: 2 - }); + }, + _doProcessBlock: function _doProcessBlock(t, e) { + var i = this._X; + r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; + for (var n = 0; n < 4; n++) s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; + }, + blockSize: 4, + ivSize: 2 + }); e.RabbitLegacy = n._createHelper(h); }(), t.pad.ZeroPadding = { pad: function pad(t, r) { @@ -2316,13 +2053,11 @@ cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); t.clamp(), t.sigBytes += e - (t.sigBytes % e || e); }, unpad: function unpad(t) { - for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);) { - e--; - } - + for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);) e--; t.sigBytes = e + 1; } }, t; -}); //# sourceMappingURL=crypto-js.min.js.map +}); +//# sourceMappingURL=crypto-js.min.js.map cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js.map b/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js.map index baf63da..ede8743 100644 --- a/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js.map +++ b/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\module\\Crypto\\crypto-js.min.js"],"names":["t","r","exports","module","define","amd","CryptoJS","e","Object","create","prototype","i","n","lib","o","Base","extend","mixIn","hasOwnProperty","init","$super","apply","arguments","toString","clone","s","WordArray","words","sigBytes","length","c","stringify","concat","clamp","ceil","call","slice","random","a","push","enc","Hex","join","parse","parseInt","substr","h","Latin1","String","fromCharCode","charCodeAt","l","Utf8","decodeURIComponent","escape","Error","unescape","encodeURIComponent","f","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","_process","blockSize","max","_minBufferSize","min","_doProcessBlock","u","splice","Hasher","cfg","_doReset","update","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","Math","Base64","_map","charAt","_reverseMap","indexOf","abs","sin","MD5","_hash","d","v","p","_","y","g","B","w","k","S","m","x","b","H","z","A","C","D","floor","HmacMD5","SHA1","HmacSHA1","sqrt","pow","SHA256","HmacSHA256","Utf16","Utf16BE","Utf16LE","ArrayBuffer","Uint8Array","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","buffer","byteOffset","byteLength","RIPEMD160","R","E","M","F","HmacRIPEMD160","_hasher","_oKey","_iKey","PBKDF2","keySize","hasher","iterations","compute","EvpKDF","SHA224","HmacSHA224","x64","Word","high","low","toX32","SHA3","outputLength","_state","HmacSHA3","SHA512","P","W","O","U","I","K","X","L","j","N","T","Z","q","G","J","$","Q","V","Y","tt","rt","et","it","nt","ot","st","at","ct","ht","lt","ft","ut","dt","vt","pt","_t","yt","gt","Bt","wt","kt","St","mt","xt","bt","HmacSHA512","SHA384","HmacSHA384","Cipher","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","_xformMode","_key","process","ivSize","encrypt","decrypt","StreamCipher","mode","BlockCipherMode","Encryptor","Decryptor","_cipher","_iv","CBC","_prevBlock","processBlock","encryptBlock","decryptBlock","pad","Pkcs7","unpad","BlockCipher","padding","iv","_mode","__creator","CipherParams","formatter","format","OpenSSL","ciphertext","salt","SerializableCipher","key","algorithm","_parse","kdf","execute","PasswordBasedCipher","CFB","ECB","AnsiX923","Iso10126","Iso97971","ZeroPadding","OFB","_keystream","NoPadding","AES","_nRounds","_keyPriorReset","_keySchedule","_invKeySchedule","_doCryptBlock","_lBlock","_rBlock","DES","_subKeys","_invSubKeys","TripleDES","_des1","_des2","_des3","_S","_i","_j","RC4","RC4Drop","drop","CTRGladman","_counter","_X","_C","_b","Rabbit","CTR","RabbitLegacy"],"mappings":"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","sourceRoot":"/","sourcesContent":["!function(t,r){\"object\"==typeof exports?module.exports=exports=r():\"function\"==typeof define&&define.amd?define([],r):t.CryptoJS=r()}(this,function(){var t=t||function(t,r){var e=Object.create||function(){function t(){}return function(r){var e;return t.prototype=r,e=new t,t.prototype=null,e}}(),i={},n=i.lib={},o=n.Base=function(){return{extend:function(t){var r=e(this);return t&&r.mixIn(t),r.hasOwnProperty(\"init\")&&this.init!==r.init||(r.init=function(){r.$super.init.apply(this,arguments)}),r.init.prototype=r,r.$super=this,r},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r]);t.hasOwnProperty(\"toString\")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),s=n.WordArray=o.extend({init:function(t,e){t=this.words=t||[],e!=r?this.sigBytes=e:this.sigBytes=4*t.length},toString:function(t){return(t||c).stringify(this)},concat:function(t){var r=this.words,e=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;r[i+o>>>2]|=s<<24-(i+o)%4*8}else for(var o=0;o>>2]=e[o>>>2];return this.sigBytes+=n,this},clamp:function(){var r=this.words,e=this.sigBytes;r[e>>>2]&=4294967295<<32-e%4*8,r.length=t.ceil(e/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(r){for(var e,i=[],n=function(r){var r=r,e=987654321,i=4294967295;return function(){e=36969*(65535&e)+(e>>16)&i,r=18e3*(65535&r)+(r>>16)&i;var n=(e<<16)+r&i;return n/=4294967296,n+=.5,n*(t.random()>.5?1:-1)}},o=0;o>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new s.init(e,r/2)}},h=a.Latin1={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new s.init(e,r)}},l=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(h.stringify(t)))}catch(t){throw new Error(\"Malformed UTF-8 data\")}},parse:function(t){return h.parse(unescape(encodeURIComponent(t)))}},f=n.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(t){\"string\"==typeof t&&(t=l.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(r){var e=this._data,i=e.words,n=e.sigBytes,o=this.blockSize,a=4*o,c=n/a;c=r?t.ceil(c):t.max((0|c)-this._minBufferSize,0);var h=c*o,l=t.min(4*h,n);if(h){for(var f=0;f>>6-s%4*2;i[o>>>2]|=(a|c)<<24-o%4*8,o++}return n.create(i,o)}var e=t,i=e.lib,n=i.WordArray,o=e.enc;o.Base64={stringify:function(t){var r=t.words,e=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255,a=r[o+1>>>2]>>>24-(o+1)%4*8&255,c=r[o+2>>>2]>>>24-(o+2)%4*8&255,h=s<<16|a<<8|c,l=0;l<4&&o+.75*l>>6*(3-l)&63));var f=i.charAt(64);if(f)for(;n.length%4;)n.push(f);return n.join(\"\")},parse:function(t){var e=t.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>32-o)+r}function i(t,r,e,i,n,o,s){var a=t+(r&i|e&~i)+n+s;return(a<>>32-o)+r}function n(t,r,e,i,n,o,s){var a=t+(r^e^i)+n+s;return(a<>>32-o)+r}function o(t,r,e,i,n,o,s){var a=t+(e^(r|~i))+n+s;return(a<>>32-o)+r}var s=t,a=s.lib,c=a.WordArray,h=a.Hasher,l=s.algo,f=[];!function(){for(var t=0;t<64;t++)f[t]=4294967296*r.abs(r.sin(t+1))|0}();var u=l.MD5=h.extend({_doReset:function(){this._hash=new c.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,r){for(var s=0;s<16;s++){var a=r+s,c=t[a];t[a]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}var h=this._hash.words,l=t[r+0],u=t[r+1],d=t[r+2],v=t[r+3],p=t[r+4],_=t[r+5],y=t[r+6],g=t[r+7],B=t[r+8],w=t[r+9],k=t[r+10],S=t[r+11],m=t[r+12],x=t[r+13],b=t[r+14],H=t[r+15],z=h[0],A=h[1],C=h[2],D=h[3];z=e(z,A,C,D,l,7,f[0]),D=e(D,z,A,C,u,12,f[1]),C=e(C,D,z,A,d,17,f[2]),A=e(A,C,D,z,v,22,f[3]),z=e(z,A,C,D,p,7,f[4]),D=e(D,z,A,C,_,12,f[5]),C=e(C,D,z,A,y,17,f[6]),A=e(A,C,D,z,g,22,f[7]),z=e(z,A,C,D,B,7,f[8]),D=e(D,z,A,C,w,12,f[9]),C=e(C,D,z,A,k,17,f[10]),A=e(A,C,D,z,S,22,f[11]),z=e(z,A,C,D,m,7,f[12]),D=e(D,z,A,C,x,12,f[13]),C=e(C,D,z,A,b,17,f[14]),A=e(A,C,D,z,H,22,f[15]),z=i(z,A,C,D,u,5,f[16]),D=i(D,z,A,C,y,9,f[17]),C=i(C,D,z,A,S,14,f[18]),A=i(A,C,D,z,l,20,f[19]),z=i(z,A,C,D,_,5,f[20]),D=i(D,z,A,C,k,9,f[21]),C=i(C,D,z,A,H,14,f[22]),A=i(A,C,D,z,p,20,f[23]),z=i(z,A,C,D,w,5,f[24]),D=i(D,z,A,C,b,9,f[25]),C=i(C,D,z,A,v,14,f[26]),A=i(A,C,D,z,B,20,f[27]),z=i(z,A,C,D,x,5,f[28]),D=i(D,z,A,C,d,9,f[29]),C=i(C,D,z,A,g,14,f[30]),A=i(A,C,D,z,m,20,f[31]),z=n(z,A,C,D,_,4,f[32]),D=n(D,z,A,C,B,11,f[33]),C=n(C,D,z,A,S,16,f[34]),A=n(A,C,D,z,b,23,f[35]),z=n(z,A,C,D,u,4,f[36]),D=n(D,z,A,C,p,11,f[37]),C=n(C,D,z,A,g,16,f[38]),A=n(A,C,D,z,k,23,f[39]),z=n(z,A,C,D,x,4,f[40]),D=n(D,z,A,C,l,11,f[41]),C=n(C,D,z,A,v,16,f[42]),A=n(A,C,D,z,y,23,f[43]),z=n(z,A,C,D,w,4,f[44]),D=n(D,z,A,C,m,11,f[45]),C=n(C,D,z,A,H,16,f[46]),A=n(A,C,D,z,d,23,f[47]),z=o(z,A,C,D,l,6,f[48]),D=o(D,z,A,C,g,10,f[49]),C=o(C,D,z,A,b,15,f[50]),A=o(A,C,D,z,_,21,f[51]),z=o(z,A,C,D,m,6,f[52]),D=o(D,z,A,C,v,10,f[53]),C=o(C,D,z,A,k,15,f[54]),A=o(A,C,D,z,u,21,f[55]),z=o(z,A,C,D,B,6,f[56]),D=o(D,z,A,C,H,10,f[57]),C=o(C,D,z,A,y,15,f[58]),A=o(A,C,D,z,x,21,f[59]),z=o(z,A,C,D,p,6,f[60]),D=o(D,z,A,C,S,10,f[61]),C=o(C,D,z,A,d,15,f[62]),A=o(A,C,D,z,w,21,f[63]),h[0]=h[0]+z|0,h[1]=h[1]+A|0,h[2]=h[2]+C|0,h[3]=h[3]+D|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32;var o=r.floor(i/4294967296),s=i;e[(n+64>>>9<<4)+15]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),e[(n+64>>>9<<4)+14]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),t.sigBytes=4*(e.length+1),this._process();for(var a=this._hash,c=a.words,h=0;h<4;h++){var l=c[h];c[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return a},clone:function(){var t=h.clone.call(this);return t._hash=this._hash.clone(),t}});s.MD5=h._createHelper(u),s.HmacMD5=h._createHmacHelper(u)}(Math),function(){var r=t,e=r.lib,i=e.WordArray,n=e.Hasher,o=r.algo,s=[],a=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],a=e[3],c=e[4],h=0;h<80;h++){if(h<16)s[h]=0|t[r+h];else{var l=s[h-3]^s[h-8]^s[h-14]^s[h-16];s[h]=l<<1|l>>>31}var f=(i<<5|i>>>27)+c+s[h];f+=h<20?(n&o|~n&a)+1518500249:h<40?(n^o^a)+1859775393:h<60?(n&o|n&a|o&a)-1894007588:(n^o^a)-899497514,c=a,a=o,o=n<<30|n>>>2,n=i,i=f}e[0]=e[0]+i|0,e[1]=e[1]+n|0,e[2]=e[2]+o|0,e[3]=e[3]+a|0,e[4]=e[4]+c|0},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;return r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=Math.floor(e/4294967296),r[(i+64>>>9<<4)+15]=e,t.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});r.SHA1=n._createHelper(a),r.HmacSHA1=n._createHmacHelper(a)}(),function(r){var e=t,i=e.lib,n=i.WordArray,o=i.Hasher,s=e.algo,a=[],c=[];!function(){function t(t){for(var e=r.sqrt(t),i=2;i<=e;i++)if(!(t%i))return!1;return!0}function e(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)t(i)&&(n<8&&(a[n]=e(r.pow(i,.5))),c[n]=e(r.pow(i,1/3)),n++),i++}();var h=[],l=s.SHA256=o.extend({_doReset:function(){this._hash=new n.init(a.slice(0))},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],s=e[3],a=e[4],l=e[5],f=e[6],u=e[7],d=0;d<64;d++){if(d<16)h[d]=0|t[r+d];else{var v=h[d-15],p=(v<<25|v>>>7)^(v<<14|v>>>18)^v>>>3,_=h[d-2],y=(_<<15|_>>>17)^(_<<13|_>>>19)^_>>>10;h[d]=p+h[d-7]+y+h[d-16]}var g=a&l^~a&f,B=i&n^i&o^n&o,w=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),k=(a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25),S=u+k+g+c[d]+h[d],m=w+B;u=f,f=l,l=a,a=s+S|0,s=o,o=n,n=i,i=S+m|0}e[0]=e[0]+i|0,e[1]=e[1]+n|0,e[2]=e[2]+o|0,e[3]=e[3]+s|0,e[4]=e[4]+a|0,e[5]=e[5]+l|0,e[6]=e[6]+f|0,e[7]=e[7]+u|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[(n+64>>>9<<4)+14]=r.floor(i/4294967296),e[(n+64>>>9<<4)+15]=i,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(l),e.HmacSHA256=o._createHmacHelper(l)}(Math),function(){function r(t){return t<<8&4278255360|t>>>8&16711935}var e=t,i=e.lib,n=i.WordArray,o=e.enc;o.Utf16=o.Utf16BE={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>1]|=t.charCodeAt(i)<<16-i%2*16;return n.create(e,2*r)}};o.Utf16LE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join(\"\")},parse:function(t){for(var e=t.length,i=[],o=0;o>>1]|=r(t.charCodeAt(o)<<16-o%2*16);return n.create(i,2*e)}}}(),function(){if(\"function\"==typeof ArrayBuffer){var r=t,e=r.lib,i=e.WordArray,n=i.init,o=i.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||\"undefined\"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,e=[],i=0;i>>2]|=t[i]<<24-i%4*8;n.call(this,e,r)}else n.apply(this,arguments)};o.prototype=i}}(),function(r){function e(t,r,e){return t^r^e}function i(t,r,e){return t&r|~t&e}function n(t,r,e){return(t|~r)^e}function o(t,r,e){return t&e|r&~e}function s(t,r,e){return t^(r|~e)}function a(t,r){return t<>>32-r}var c=t,h=c.lib,l=h.WordArray,f=h.Hasher,u=c.algo,d=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),v=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),p=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),_=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=l.create([0,1518500249,1859775393,2400959708,2840853838]),g=l.create([1352829926,1548603684,1836072691,2053994217,0]),B=u.RIPEMD160=f.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,r){for(var c=0;c<16;c++){var h=r+c,l=t[h];t[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}var f,u,B,w,k,S,m,x,b,H,z=this._hash.words,A=y.words,C=g.words,D=d.words,R=v.words,E=p.words,M=_.words;S=f=z[0],m=u=z[1],x=B=z[2],b=w=z[3],H=k=z[4];for(var F,c=0;c<80;c+=1)F=f+t[r+D[c]]|0,F+=c<16?e(u,B,w)+A[0]:c<32?i(u,B,w)+A[1]:c<48?n(u,B,w)+A[2]:c<64?o(u,B,w)+A[3]:s(u,B,w)+A[4],F|=0,F=a(F,E[c]),F=F+k|0,f=k,k=w,w=a(B,10),B=u,u=F,F=S+t[r+R[c]]|0,F+=c<16?s(m,x,b)+C[0]:c<32?o(m,x,b)+C[1]:c<48?n(m,x,b)+C[2]:c<64?i(m,x,b)+C[3]:e(m,x,b)+C[4],F|=0,F=a(F,M[c]),F=F+H|0,S=H,H=b,b=a(x,10),x=m,m=F;F=z[1]+B+b|0,z[1]=z[2]+w+H|0,z[2]=z[3]+k+S|0,z[3]=z[4]+f+m|0,z[4]=z[0]+u+x|0,z[0]=F},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8),t.sigBytes=4*(r.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var a=o[s];o[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return n},clone:function(){var t=f.clone.call(this);return t._hash=this._hash.clone(),t}});c.RIPEMD160=f._createHelper(B),c.HmacRIPEMD160=f._createHmacHelper(B)}(Math),function(){var r=t,e=r.lib,i=e.Base,n=r.enc,o=n.Utf8,s=r.algo;s.HMAC=i.extend({init:function(t,r){t=this._hasher=new t.init,\"string\"==typeof r&&(r=o.parse(r));var e=t.blockSize,i=4*e;r.sigBytes>i&&(r=t.finalize(r)),r.clamp();for(var n=this._oKey=r.clone(),s=this._iKey=r.clone(),a=n.words,c=s.words,h=0;h>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8);var a=e[n];a.high^=s,a.low^=o}for(var c=0;c<24;c++){for(var d=0;d<5;d++){for(var v=0,p=0,_=0;_<5;_++){var a=e[d+5*_];v^=a.high,p^=a.low}var y=u[d];y.high=v,y.low=p}for(var d=0;d<5;d++)for(var g=u[(d+4)%5],B=u[(d+1)%5],w=B.high,k=B.low,v=g.high^(w<<1|k>>>31),p=g.low^(k<<1|w>>>31),_=0;_<5;_++){var a=e[d+5*_];a.high^=v,a.low^=p}for(var S=1;S<25;S++){var a=e[S],m=a.high,x=a.low,b=h[S];if(b<32)var v=m<>>32-b,p=x<>>32-b;else var v=x<>>64-b,p=m<>>64-b;var H=u[l[S]];H.high=v,H.low=p}var z=u[0],A=e[0];z.high=A.high,z.low=A.low;for(var d=0;d<5;d++)for(var _=0;_<5;_++){var S=d+5*_,a=e[S],C=u[S],D=u[(d+1)%5+5*_],R=u[(d+2)%5+5*_];a.high=C.high^~D.high&R.high,a.low=C.low^~D.low&R.low}var a=e[0],E=f[c];a.high^=E.high,a.low^=E.low}},_doFinalize:function(){var t=this._data,e=t.words,i=(8*this._nDataBytes,8*t.sigBytes),o=32*this.blockSize;e[i>>>5]|=1<<24-i%32,e[(r.ceil((i+1)/o)*o>>>5)-1]|=128,t.sigBytes=4*e.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,c=a/8,h=[],l=0;l>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),h.push(d),h.push(u)}return new n.init(h,a)},clone:function(){for(var t=o.clone.call(this),r=t._state=this._state.slice(0),e=0;e<25;e++)r[e]=r[e].clone();return t}});e.SHA3=o._createHelper(d),e.HmacSHA3=o._createHmacHelper(d)}(Math),function(){function r(){return s.create.apply(s,arguments)}var e=t,i=e.lib,n=i.Hasher,o=e.x64,s=o.Word,a=o.WordArray,c=e.algo,h=[r(1116352408,3609767458),r(1899447441,602891725),r(3049323471,3964484399),r(3921009573,2173295548),r(961987163,4081628472),r(1508970993,3053834265),r(2453635748,2937671579),r(2870763221,3664609560),r(3624381080,2734883394),r(310598401,1164996542),r(607225278,1323610764),r(1426881987,3590304994),r(1925078388,4068182383),r(2162078206,991336113),r(2614888103,633803317),r(3248222580,3479774868),r(3835390401,2666613458),r(4022224774,944711139),r(264347078,2341262773),r(604807628,2007800933),r(770255983,1495990901),r(1249150122,1856431235),r(1555081692,3175218132),r(1996064986,2198950837),r(2554220882,3999719339),r(2821834349,766784016),r(2952996808,2566594879),r(3210313671,3203337956),r(3336571891,1034457026),r(3584528711,2466948901),r(113926993,3758326383),r(338241895,168717936),r(666307205,1188179964),r(773529912,1546045734),r(1294757372,1522805485),r(1396182291,2643833823),r(1695183700,2343527390),r(1986661051,1014477480),r(2177026350,1206759142),r(2456956037,344077627),r(2730485921,1290863460),r(2820302411,3158454273),r(3259730800,3505952657),r(3345764771,106217008),r(3516065817,3606008344),r(3600352804,1432725776),r(4094571909,1467031594),r(275423344,851169720),r(430227734,3100823752),r(506948616,1363258195),r(659060556,3750685593),r(883997877,3785050280),r(958139571,3318307427),r(1322822218,3812723403),r(1537002063,2003034995),r(1747873779,3602036899),r(1955562222,1575990012),r(2024104815,1125592928),r(2227730452,2716904306),r(2361852424,442776044),r(2428436474,593698344),r(2756734187,3733110249),r(3204031479,2999351573),r(3329325298,3815920427),r(3391569614,3928383900),r(3515267271,566280711),r(3940187606,3454069534),r(4118630271,4000239992),r(116418474,1914138554),r(174292421,2731055270),r(289380356,3203993006),r(460393269,320620315),r(685471733,587496836),r(852142971,1086792851),r(1017036298,365543100),r(1126000580,2618297676),r(1288033470,3409855158),r(1501505948,4234509866),r(1607167915,987167468),r(1816402316,1246189591)],l=[];!function(){for(var t=0;t<80;t++)l[t]=r()}();var f=c.SHA512=n.extend({_doReset:function(){this._hash=new a.init([new s.init(1779033703,4089235720),new s.init(3144134277,2227873595),new s.init(1013904242,4271175723),new s.init(2773480762,1595750129),new s.init(1359893119,2917565137),new s.init(2600822924,725511199),new s.init(528734635,4215389547),new s.init(1541459225,327033209)])},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],s=e[3],a=e[4],c=e[5],f=e[6],u=e[7],d=i.high,v=i.low,p=n.high,_=n.low,y=o.high,g=o.low,B=s.high,w=s.low,k=a.high,S=a.low,m=c.high,x=c.low,b=f.high,H=f.low,z=u.high,A=u.low,C=d,D=v,R=p,E=_,M=y,F=g,P=B,W=w,O=k,U=S,I=m,K=x,X=b,L=H,j=z,N=A,T=0;T<80;T++){var Z=l[T];if(T<16)var q=Z.high=0|t[r+2*T],G=Z.low=0|t[r+2*T+1];else{var J=l[T-15],$=J.high,Q=J.low,V=($>>>1|Q<<31)^($>>>8|Q<<24)^$>>>7,Y=(Q>>>1|$<<31)^(Q>>>8|$<<24)^(Q>>>7|$<<25),tt=l[T-2],rt=tt.high,et=tt.low,it=(rt>>>19|et<<13)^(rt<<3|et>>>29)^rt>>>6,nt=(et>>>19|rt<<13)^(et<<3|rt>>>29)^(et>>>6|rt<<26),ot=l[T-7],st=ot.high,at=ot.low,ct=l[T-16],ht=ct.high,lt=ct.low,G=Y+at,q=V+st+(G>>>0>>0?1:0),G=G+nt,q=q+it+(G>>>0>>0?1:0),G=G+lt,q=q+ht+(G>>>0>>0?1:0);Z.high=q,Z.low=G}var ft=O&I^~O&X,ut=U&K^~U&L,dt=C&R^C&M^R&M,vt=D&E^D&F^E&F,pt=(C>>>28|D<<4)^(C<<30|D>>>2)^(C<<25|D>>>7),_t=(D>>>28|C<<4)^(D<<30|C>>>2)^(D<<25|C>>>7),yt=(O>>>14|U<<18)^(O>>>18|U<<14)^(O<<23|U>>>9),gt=(U>>>14|O<<18)^(U>>>18|O<<14)^(U<<23|O>>>9),Bt=h[T],wt=Bt.high,kt=Bt.low,St=N+gt,mt=j+yt+(St>>>0>>0?1:0),St=St+ut,mt=mt+ft+(St>>>0>>0?1:0),St=St+kt,mt=mt+wt+(St>>>0>>0?1:0),St=St+G,mt=mt+q+(St>>>0>>0?1:0),xt=_t+vt,bt=pt+dt+(xt>>>0<_t>>>0?1:0);j=X,N=L,X=I,L=K,I=O,K=U,U=W+St|0,O=P+mt+(U>>>0>>0?1:0)|0,P=M,W=F,M=R,F=E,R=C,E=D,D=St+xt|0,C=mt+bt+(D>>>0>>0?1:0)|0}v=i.low=v+D,i.high=d+C+(v>>>0>>0?1:0),_=n.low=_+E,n.high=p+R+(_>>>0>>0?1:0),g=o.low=g+F,o.high=y+M+(g>>>0>>0?1:0),w=s.low=w+W,s.high=B+P+(w>>>0>>0?1:0),S=a.low=S+U,a.high=k+O+(S>>>0>>0?1:0),x=c.low=x+K,c.high=m+I+(x>>>0>>0?1:0),H=f.low=H+L,f.high=b+X+(H>>>0>>0?1:0),A=u.low=A+N,u.high=z+j+(A>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32,r[(i+128>>>10<<5)+30]=Math.floor(e/4294967296),r[(i+128>>>10<<5)+31]=e,t.sigBytes=4*r.length,this._process();var n=this._hash.toX32();return n},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});e.SHA512=n._createHelper(f),e.HmacSHA512=n._createHmacHelper(f)}(),function(){var r=t,e=r.x64,i=e.Word,n=e.WordArray,o=r.algo,s=o.SHA512,a=o.SHA384=s.extend({_doReset:function(){this._hash=new n.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var t=s._doFinalize.call(this);return t.sigBytes-=16,t}});r.SHA384=s._createHelper(a),r.HmacSHA384=s._createHmacHelper(a)}(),t.lib.Cipher||function(r){var e=t,i=e.lib,n=i.Base,o=i.WordArray,s=i.BufferedBlockAlgorithm,a=e.enc,c=(a.Utf8,a.Base64),h=e.algo,l=h.EvpKDF,f=i.Cipher=s.extend({cfg:n.extend(),createEncryptor:function(t,r){return this.create(this._ENC_XFORM_MODE,t,r)},createDecryptor:function(t,r){return this.create(this._DEC_XFORM_MODE,t,r)},init:function(t,r,e){this.cfg=this.cfg.extend(e),this._xformMode=t,this._key=r,this.reset()},reset:function(){s.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){t&&this._append(t);var r=this._doFinalize();return r},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return\"string\"==typeof t?m:w}return function(r){return{encrypt:function(e,i,n){return t(i).encrypt(r,e,i,n)},decrypt:function(e,i,n){return t(i).decrypt(r,e,i,n)}}}}()}),u=(i.StreamCipher=f.extend({_doFinalize:function(){var t=this._process(!0);return t},blockSize:1}),e.mode={}),d=i.BlockCipherMode=n.extend({createEncryptor:function(t,r){return this.Encryptor.create(t,r)},createDecryptor:function(t,r){return this.Decryptor.create(t,r)},init:function(t,r){this._cipher=t,this._iv=r}}),v=u.CBC=function(){function t(t,e,i){var n=this._iv;if(n){var o=n;this._iv=r}else var o=this._prevBlock;for(var s=0;s>>2];t.sigBytes-=r}},y=(i.BlockCipher=f.extend({cfg:f.cfg.extend({mode:v,padding:_}),reset:function(){f.reset.call(this);var t=this.cfg,r=t.iv,e=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var i=e.createEncryptor;else{var i=e.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==i?this._mode.init(this,r&&r.words):(this._mode=i.call(e,this,r&&r.words),this._mode.__creator=i)},_doProcessBlock:function(t,r){this._mode.processBlock(t,r)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var r=this._process(!0)}else{var r=this._process(!0);t.unpad(r)}return r},blockSize:4}),i.CipherParams=n.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),g=e.format={},B=g.OpenSSL={stringify:function(t){var r=t.ciphertext,e=t.salt;if(e)var i=o.create([1398893684,1701076831]).concat(e).concat(r);else var i=r;return i.toString(c)},parse:function(t){var r=c.parse(t),e=r.words;if(1398893684==e[0]&&1701076831==e[1]){var i=o.create(e.slice(2,4));e.splice(0,4),r.sigBytes-=16}return y.create({ciphertext:r,salt:i})}},w=i.SerializableCipher=n.extend({cfg:n.extend({format:B}),encrypt:function(t,r,e,i){i=this.cfg.extend(i);var n=t.createEncryptor(e,i),o=n.finalize(r),s=n.cfg;return y.create({ciphertext:o,key:e,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,r,e,i){i=this.cfg.extend(i),r=this._parse(r,i.format);var n=t.createDecryptor(e,i).finalize(r.ciphertext);return n},_parse:function(t,r){return\"string\"==typeof t?r.parse(t,this):t}}),k=e.kdf={},S=k.OpenSSL={execute:function(t,r,e,i){i||(i=o.random(8));var n=l.create({keySize:r+e}).compute(t,i),s=o.create(n.words.slice(r),4*e);return n.sigBytes=4*r,y.create({key:n,iv:s,salt:i})}},m=i.PasswordBasedCipher=w.extend({cfg:w.cfg.extend({kdf:S}),encrypt:function(t,r,e,i){i=this.cfg.extend(i);var n=i.kdf.execute(e,t.keySize,t.ivSize);i.iv=n.iv;var o=w.encrypt.call(this,t,r,n.key,i);return o.mixIn(n),o},decrypt:function(t,r,e,i){i=this.cfg.extend(i),r=this._parse(r,i.format);var n=i.kdf.execute(e,t.keySize,t.ivSize,r.salt);i.iv=n.iv;var o=w.decrypt.call(this,t,r,n.key,i);return o}})}(),t.mode.CFB=function(){function r(t,r,e,i){var n=this._iv;if(n){var o=n.slice(0);this._iv=void 0}else var o=this._prevBlock;i.encryptBlock(o,0);for(var s=0;s>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},t.pad.Iso10126={pad:function(r,e){var i=4*e,n=i-r.sigBytes%i;r.concat(t.lib.WordArray.random(n-1)).concat(t.lib.WordArray.create([n<<24],1))},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},t.pad.Iso97971={pad:function(r,e){r.concat(t.lib.WordArray.create([2147483648],1)),t.pad.ZeroPadding.pad(r,e)},unpad:function(r){t.pad.ZeroPadding.unpad(r),r.sigBytes--}},t.mode.OFB=function(){var r=t.lib.BlockCipherMode.extend(),e=r.Encryptor=r.extend({processBlock:function(t,r){var e=this._cipher,i=e.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),e.encryptBlock(o,0);for(var s=0;s>>8^255&n^99,o[e]=n,s[n]=e;var p=t[e],_=t[p],y=t[_],g=257*t[n]^16843008*n;a[e]=g<<24|g>>>8,c[e]=g<<16|g>>>16,h[e]=g<<8|g>>>24,l[e]=g;var g=16843009*y^65537*_^257*p^16843008*e;f[n]=g<<24|g>>>8,u[n]=g<<16|g>>>16,d[n]=g<<8|g>>>24,v[n]=g,e?(e=p^t[t[t[y^p]]],i^=t[t[i]]):e=i=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],_=n.AES=i.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,r=t.words,e=t.sigBytes/4,i=this._nRounds=e+6,n=4*(i+1),s=this._keySchedule=[],a=0;a6&&a%e==4&&(c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c]):(c=c<<8|c>>>24,c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c],c^=p[a/e|0]<<24),s[a]=s[a-e]^c}for(var h=this._invKeySchedule=[],l=0;l>>24]]^u[o[c>>>16&255]]^d[o[c>>>8&255]]^v[o[255&c]]}}},encryptBlock:function(t,r){this._doCryptBlock(t,r,this._keySchedule,a,c,h,l,o)},decryptBlock:function(t,r){var e=t[r+1];t[r+1]=t[r+3],t[r+3]=e,this._doCryptBlock(t,r,this._invKeySchedule,f,u,d,v,s);var e=t[r+1];t[r+1]=t[r+3],t[r+3]=e},_doCryptBlock:function(t,r,e,i,n,o,s,a){for(var c=this._nRounds,h=t[r]^e[0],l=t[r+1]^e[1],f=t[r+2]^e[2],u=t[r+3]^e[3],d=4,v=1;v>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&u]^e[d++],_=i[l>>>24]^n[f>>>16&255]^o[u>>>8&255]^s[255&h]^e[d++],y=i[f>>>24]^n[u>>>16&255]^o[h>>>8&255]^s[255&l]^e[d++],g=i[u>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^e[d++];h=p,l=_,f=y,u=g}var p=(a[h>>>24]<<24|a[l>>>16&255]<<16|a[f>>>8&255]<<8|a[255&u])^e[d++],_=(a[l>>>24]<<24|a[f>>>16&255]<<16|a[u>>>8&255]<<8|a[255&h])^e[d++],y=(a[f>>>24]<<24|a[u>>>16&255]<<16|a[h>>>8&255]<<8|a[255&l])^e[d++],g=(a[u>>>24]<<24|a[h>>>16&255]<<16|a[l>>>8&255]<<8|a[255&f])^e[d++];t[r]=p,t[r+1]=_,t[r+2]=y,t[r+3]=g},keySize:8});r.AES=i._createHelper(_)}(),function(){function r(t,r){var e=(this._lBlock>>>t^this._rBlock)&r;this._rBlock^=e,this._lBlock^=e<>>t^this._lBlock)&r;this._lBlock^=e,this._rBlock^=e<>>5]>>>31-n%32&1}for(var o=this._subKeys=[],s=0;s<16;s++){for(var a=o[s]=[],f=l[s],i=0;i<24;i++)a[i/6|0]|=e[(h[i]-1+f)%28]<<31-i%6,a[4+(i/6|0)]|=e[28+(h[i+24]-1+f)%28]<<31-i%6;a[0]=a[0]<<1|a[0]>>>31;for(var i=1;i<7;i++)a[i]=a[i]>>>4*(i-1)+3;a[7]=a[7]<<5|a[7]>>>27}for(var u=this._invSubKeys=[],i=0;i<16;i++)u[i]=o[15-i]},encryptBlock:function(t,r){this._doCryptBlock(t,r,this._subKeys)},decryptBlock:function(t,r){this._doCryptBlock(t,r,this._invSubKeys)},_doCryptBlock:function(t,i,n){this._lBlock=t[i],this._rBlock=t[i+1],r.call(this,4,252645135),r.call(this,16,65535),e.call(this,2,858993459),e.call(this,8,16711935),r.call(this,1,1431655765);for(var o=0;o<16;o++){for(var s=n[o],a=this._lBlock,c=this._rBlock,h=0,l=0;l<8;l++)h|=f[l][((c^s[l])&u[l])>>>0];this._lBlock=c,this._rBlock=a^h}var d=this._lBlock;this._lBlock=this._rBlock,this._rBlock=d,r.call(this,1,1431655765),e.call(this,8,16711935),e.call(this,2,858993459),r.call(this,16,65535),r.call(this,4,252645135),t[i]=this._lBlock,t[i+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});i.DES=s._createHelper(d);var v=a.TripleDES=s.extend({_doReset:function(){var t=this._key,r=t.words;this._des1=d.createEncryptor(o.create(r.slice(0,2))),this._des2=d.createEncryptor(o.create(r.slice(2,4))),this._des3=d.createEncryptor(o.create(r.slice(4,6)))},encryptBlock:function(t,r){this._des1.encryptBlock(t,r),this._des2.decryptBlock(t,r),this._des3.encryptBlock(t,r)},decryptBlock:function(t,r){this._des3.decryptBlock(t,r),this._des2.encryptBlock(t,r),this._des1.decryptBlock(t,r)},keySize:6,ivSize:2,blockSize:2});i.TripleDES=s._createHelper(v)}(),function(){function r(){for(var t=this._S,r=this._i,e=this._j,i=0,n=0;n<4;n++){r=(r+1)%256,e=(e+t[r])%256;var o=t[r];t[r]=t[e],t[e]=o,i|=t[(t[r]+t[e])%256]<<24-8*n}return this._i=r,this._j=e,i}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=o.RC4=n.extend({_doReset:function(){for(var t=this._key,r=t.words,e=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;for(var n=0,o=0;n<256;n++){var s=n%e,a=r[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+a)%256;var c=i[n];i[n]=i[o],i[o]=c}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=r.call(this)},keySize:8,ivSize:0});e.RC4=n._createHelper(s);var a=o.RC4Drop=s.extend({cfg:s.cfg.extend({drop:192}),_doReset:function(){s._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)r.call(this)}});e.RC4Drop=n._createHelper(a)}(),t.mode.CTRGladman=function(){function r(t){if(255===(t>>24&255)){var r=t>>16&255,e=t>>8&255,i=255&t;255===r?(r=0,255===e?(e=0,255===i?i=0:++i):++e):++r,t=0,t+=r<<16,t+=e<<8,t+=i}else t+=1<<24;return t}function e(t){return 0===(t[0]=r(t[0]))&&(t[1]=r(t[1])),t}var i=t.lib.BlockCipherMode.extend(),n=i.Encryptor=i.extend({processBlock:function(t,r){var i=this._cipher,n=i.blockSize,o=this._iv,s=this._counter;o&&(s=this._counter=o.slice(0),this._iv=void 0),e(s);var a=s.slice(0);i.encryptBlock(a,0);for(var c=0;c>>0>>0?1:0)|0,r[2]=r[2]+886263092+(r[1]>>>0>>0?1:0)|0,r[3]=r[3]+1295307597+(r[2]>>>0>>0?1:0)|0,r[4]=r[4]+3545052371+(r[3]>>>0>>0?1:0)|0,r[5]=r[5]+886263092+(r[4]>>>0>>0?1:0)|0,r[6]=r[6]+1295307597+(r[5]>>>0>>0?1:0)|0,r[7]=r[7]+3545052371+(r[6]>>>0>>0?1:0)|0,this._b=r[7]>>>0>>0?1:0;for(var e=0;e<8;e++){var i=t[e]+r[e],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,h=((4294901760&i)*i|0)+((65535&i)*i|0);c[e]=s^h}t[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,t[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,t[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,t[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,t[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,t[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,t[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,t[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=[],a=[],c=[],h=o.Rabbit=n.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,i=0;i<4;i++)t[i]=16711935&(t[i]<<8|t[i]>>>24)|4278255360&(t[i]<<24|t[i]>>>8);var n=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],o=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var i=0;i<4;i++)r.call(this);for(var i=0;i<8;i++)o[i]^=n[i+4&7];if(e){var s=e.words,a=s[0],c=s[1],h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;o[0]^=h,o[1]^=f,o[2]^=l,o[3]^=u,o[4]^=h,o[5]^=f,o[6]^=l,o[7]^=u;for(var i=0;i<4;i++)r.call(this)}},_doProcessBlock:function(t,e){var i=this._X;r.call(this),s[0]=i[0]^i[5]>>>16^i[3]<<16,s[1]=i[2]^i[7]>>>16^i[5]<<16,s[2]=i[4]^i[1]>>>16^i[7]<<16,s[3]=i[6]^i[3]>>>16^i[1]<<16;for(var n=0;n<4;n++)s[n]=16711935&(s[n]<<8|s[n]>>>24)|4278255360&(s[n]<<24|s[n]>>>8),t[e+n]^=s[n]},blockSize:4,ivSize:2});e.Rabbit=n._createHelper(h)}(),t.mode.CTR=function(){var r=t.lib.BlockCipherMode.extend(),e=r.Encryptor=r.extend({processBlock:function(t,r){var e=this._cipher,i=e.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);e.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var a=0;a>>0>>0?1:0)|0,r[2]=r[2]+886263092+(r[1]>>>0>>0?1:0)|0,r[3]=r[3]+1295307597+(r[2]>>>0>>0?1:0)|0,r[4]=r[4]+3545052371+(r[3]>>>0>>0?1:0)|0,r[5]=r[5]+886263092+(r[4]>>>0>>0?1:0)|0,r[6]=r[6]+1295307597+(r[5]>>>0>>0?1:0)|0,r[7]=r[7]+3545052371+(r[6]>>>0>>0?1:0)|0,this._b=r[7]>>>0>>0?1:0;for(var e=0;e<8;e++){var i=t[e]+r[e],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,h=((4294901760&i)*i|0)+((65535&i)*i|0);c[e]=s^h}t[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,t[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,t[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,t[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,t[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,t[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,t[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,t[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=[],a=[],c=[],h=o.RabbitLegacy=n.extend({_doReset:function(){var t=this._key.words,e=this.cfg.iv,i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var o=0;o<4;o++)r.call(this);for(var o=0;o<8;o++)n[o]^=i[o+4&7];if(e){var s=e.words,a=s[0],c=s[1],h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;n[0]^=h,n[1]^=f,n[2]^=l,n[3]^=u,n[4]^=h,n[5]^=f,n[6]^=l,n[7]^=u;for(var o=0;o<4;o++)r.call(this)}},_doProcessBlock:function(t,e){var i=this._X;r.call(this),s[0]=i[0]^i[5]>>>16^i[3]<<16,s[1]=i[2]^i[7]>>>16^i[5]<<16,s[2]=i[4]^i[1]>>>16^i[7]<<16,s[3]=i[6]^i[3]>>>16^i[1]<<16;for(var n=0;n<4;n++)s[n]=16711935&(s[n]<<8|s[n]>>>24)|4278255360&(s[n]<<24|s[n]>>>8),t[e+n]^=s[n]},blockSize:4,ivSize:2});e.RabbitLegacy=n._createHelper(h)}(),t.pad.ZeroPadding={pad:function(t,r){var e=4*r;t.clamp(),t.sigBytes+=e-(t.sigBytes%e||e)},unpad:function(t){for(var r=t.words,e=t.sigBytes-1;!(r[e>>>2]>>>24-e%4*8&255);)e--;t.sigBytes=e+1}},t});\n//# sourceMappingURL=crypto-js.min.js.map"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\module\\Crypto\\crypto-js.min.js"],"names":["t","r","exports","module","define","amd","CryptoJS","e","Object","create","prototype","i","n","lib","o","Base","extend","mixIn","hasOwnProperty","init","$super","apply","arguments","toString","clone","s","WordArray","words","sigBytes","length","c","stringify","concat","clamp","ceil","call","slice","random","a","push","enc","Hex","join","parse","parseInt","substr","h","Latin1","String","fromCharCode","charCodeAt","l","Utf8","decodeURIComponent","escape","Error","unescape","encodeURIComponent","f","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","_process","blockSize","max","_minBufferSize","min","_doProcessBlock","u","splice","Hasher","cfg","_doReset","update","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","Math","Base64","_map","charAt","_reverseMap","indexOf","abs","sin","MD5","_hash","d","v","p","_","y","g","B","w","k","S","m","x","b","H","z","A","C","D","floor","HmacMD5","SHA1","HmacSHA1","sqrt","pow","SHA256","HmacSHA256","Utf16","Utf16BE","Utf16LE","ArrayBuffer","Uint8Array","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","buffer","byteOffset","byteLength","RIPEMD160","R","E","M","F","HmacRIPEMD160","_hasher","_oKey","_iKey","PBKDF2","keySize","hasher","iterations","compute","EvpKDF","SHA224","HmacSHA224","x64","Word","high","low","toX32","SHA3","outputLength","_state","HmacSHA3","SHA512","P","W","O","U","I","K","X","L","j","N","T","Z","q","G","J","$","Q","V","Y","tt","rt","et","it","nt","ot","st","at","ct","ht","lt","ft","ut","dt","vt","pt","_t","yt","gt","Bt","wt","kt","St","mt","xt","bt","HmacSHA512","SHA384","HmacSHA384","Cipher","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","_xformMode","_key","process","ivSize","encrypt","decrypt","StreamCipher","mode","BlockCipherMode","Encryptor","Decryptor","_cipher","_iv","CBC","_prevBlock","processBlock","encryptBlock","decryptBlock","pad","Pkcs7","unpad","BlockCipher","padding","iv","_mode","__creator","CipherParams","formatter","format","OpenSSL","ciphertext","salt","SerializableCipher","key","algorithm","_parse","kdf","execute","PasswordBasedCipher","CFB","ECB","AnsiX923","Iso10126","Iso97971","ZeroPadding","OFB","_keystream","NoPadding","AES","_nRounds","_keyPriorReset","_keySchedule","_invKeySchedule","_doCryptBlock","_lBlock","_rBlock","DES","_subKeys","_invSubKeys","TripleDES","_des1","_des2","_des3","_S","_i","_j","RC4","RC4Drop","drop","CTRGladman","_counter","_X","_C","_b","Rabbit","CTR","RabbitLegacy"],"mappings":"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,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC;MAACqF,CAAC,GAAC3C,CAAC,CAAC1C,MAAM,CAAC,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;MAACsF,CAAC,GAAC5C,CAAC,CAAC1C,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,CAAC;MAACuF,CAAC,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C,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,SAAS,CAAC,EAACA,CAAC,CAAC,SAAS,EAAC,UAAU,CAAC,EAACA,CAAC,CAAC,UAAU,EAAC,SAAS,CAAC,EA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","sourceRoot":"/","sourcesContent":["!function(t,r){\"object\"==typeof exports?module.exports=exports=r():\"function\"==typeof define&&define.amd?define([],r):t.CryptoJS=r()}(this,function(){var t=t||function(t,r){var e=Object.create||function(){function t(){}return function(r){var e;return t.prototype=r,e=new t,t.prototype=null,e}}(),i={},n=i.lib={},o=n.Base=function(){return{extend:function(t){var r=e(this);return t&&r.mixIn(t),r.hasOwnProperty(\"init\")&&this.init!==r.init||(r.init=function(){r.$super.init.apply(this,arguments)}),r.init.prototype=r,r.$super=this,r},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r]);t.hasOwnProperty(\"toString\")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),s=n.WordArray=o.extend({init:function(t,e){t=this.words=t||[],e!=r?this.sigBytes=e:this.sigBytes=4*t.length},toString:function(t){return(t||c).stringify(this)},concat:function(t){var r=this.words,e=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;r[i+o>>>2]|=s<<24-(i+o)%4*8}else for(var o=0;o>>2]=e[o>>>2];return this.sigBytes+=n,this},clamp:function(){var r=this.words,e=this.sigBytes;r[e>>>2]&=4294967295<<32-e%4*8,r.length=t.ceil(e/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(r){for(var e,i=[],n=function(r){var r=r,e=987654321,i=4294967295;return function(){e=36969*(65535&e)+(e>>16)&i,r=18e3*(65535&r)+(r>>16)&i;var n=(e<<16)+r&i;return n/=4294967296,n+=.5,n*(t.random()>.5?1:-1)}},o=0;o>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new s.init(e,r/2)}},h=a.Latin1={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new s.init(e,r)}},l=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(h.stringify(t)))}catch(t){throw new Error(\"Malformed UTF-8 data\")}},parse:function(t){return h.parse(unescape(encodeURIComponent(t)))}},f=n.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(t){\"string\"==typeof t&&(t=l.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(r){var e=this._data,i=e.words,n=e.sigBytes,o=this.blockSize,a=4*o,c=n/a;c=r?t.ceil(c):t.max((0|c)-this._minBufferSize,0);var h=c*o,l=t.min(4*h,n);if(h){for(var f=0;f>>6-s%4*2;i[o>>>2]|=(a|c)<<24-o%4*8,o++}return n.create(i,o)}var e=t,i=e.lib,n=i.WordArray,o=e.enc;o.Base64={stringify:function(t){var r=t.words,e=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255,a=r[o+1>>>2]>>>24-(o+1)%4*8&255,c=r[o+2>>>2]>>>24-(o+2)%4*8&255,h=s<<16|a<<8|c,l=0;l<4&&o+.75*l>>6*(3-l)&63));var f=i.charAt(64);if(f)for(;n.length%4;)n.push(f);return n.join(\"\")},parse:function(t){var e=t.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>32-o)+r}function i(t,r,e,i,n,o,s){var a=t+(r&i|e&~i)+n+s;return(a<>>32-o)+r}function n(t,r,e,i,n,o,s){var a=t+(r^e^i)+n+s;return(a<>>32-o)+r}function o(t,r,e,i,n,o,s){var a=t+(e^(r|~i))+n+s;return(a<>>32-o)+r}var s=t,a=s.lib,c=a.WordArray,h=a.Hasher,l=s.algo,f=[];!function(){for(var t=0;t<64;t++)f[t]=4294967296*r.abs(r.sin(t+1))|0}();var u=l.MD5=h.extend({_doReset:function(){this._hash=new c.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,r){for(var s=0;s<16;s++){var a=r+s,c=t[a];t[a]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}var h=this._hash.words,l=t[r+0],u=t[r+1],d=t[r+2],v=t[r+3],p=t[r+4],_=t[r+5],y=t[r+6],g=t[r+7],B=t[r+8],w=t[r+9],k=t[r+10],S=t[r+11],m=t[r+12],x=t[r+13],b=t[r+14],H=t[r+15],z=h[0],A=h[1],C=h[2],D=h[3];z=e(z,A,C,D,l,7,f[0]),D=e(D,z,A,C,u,12,f[1]),C=e(C,D,z,A,d,17,f[2]),A=e(A,C,D,z,v,22,f[3]),z=e(z,A,C,D,p,7,f[4]),D=e(D,z,A,C,_,12,f[5]),C=e(C,D,z,A,y,17,f[6]),A=e(A,C,D,z,g,22,f[7]),z=e(z,A,C,D,B,7,f[8]),D=e(D,z,A,C,w,12,f[9]),C=e(C,D,z,A,k,17,f[10]),A=e(A,C,D,z,S,22,f[11]),z=e(z,A,C,D,m,7,f[12]),D=e(D,z,A,C,x,12,f[13]),C=e(C,D,z,A,b,17,f[14]),A=e(A,C,D,z,H,22,f[15]),z=i(z,A,C,D,u,5,f[16]),D=i(D,z,A,C,y,9,f[17]),C=i(C,D,z,A,S,14,f[18]),A=i(A,C,D,z,l,20,f[19]),z=i(z,A,C,D,_,5,f[20]),D=i(D,z,A,C,k,9,f[21]),C=i(C,D,z,A,H,14,f[22]),A=i(A,C,D,z,p,20,f[23]),z=i(z,A,C,D,w,5,f[24]),D=i(D,z,A,C,b,9,f[25]),C=i(C,D,z,A,v,14,f[26]),A=i(A,C,D,z,B,20,f[27]),z=i(z,A,C,D,x,5,f[28]),D=i(D,z,A,C,d,9,f[29]),C=i(C,D,z,A,g,14,f[30]),A=i(A,C,D,z,m,20,f[31]),z=n(z,A,C,D,_,4,f[32]),D=n(D,z,A,C,B,11,f[33]),C=n(C,D,z,A,S,16,f[34]),A=n(A,C,D,z,b,23,f[35]),z=n(z,A,C,D,u,4,f[36]),D=n(D,z,A,C,p,11,f[37]),C=n(C,D,z,A,g,16,f[38]),A=n(A,C,D,z,k,23,f[39]),z=n(z,A,C,D,x,4,f[40]),D=n(D,z,A,C,l,11,f[41]),C=n(C,D,z,A,v,16,f[42]),A=n(A,C,D,z,y,23,f[43]),z=n(z,A,C,D,w,4,f[44]),D=n(D,z,A,C,m,11,f[45]),C=n(C,D,z,A,H,16,f[46]),A=n(A,C,D,z,d,23,f[47]),z=o(z,A,C,D,l,6,f[48]),D=o(D,z,A,C,g,10,f[49]),C=o(C,D,z,A,b,15,f[50]),A=o(A,C,D,z,_,21,f[51]),z=o(z,A,C,D,m,6,f[52]),D=o(D,z,A,C,v,10,f[53]),C=o(C,D,z,A,k,15,f[54]),A=o(A,C,D,z,u,21,f[55]),z=o(z,A,C,D,B,6,f[56]),D=o(D,z,A,C,H,10,f[57]),C=o(C,D,z,A,y,15,f[58]),A=o(A,C,D,z,x,21,f[59]),z=o(z,A,C,D,p,6,f[60]),D=o(D,z,A,C,S,10,f[61]),C=o(C,D,z,A,d,15,f[62]),A=o(A,C,D,z,w,21,f[63]),h[0]=h[0]+z|0,h[1]=h[1]+A|0,h[2]=h[2]+C|0,h[3]=h[3]+D|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32;var o=r.floor(i/4294967296),s=i;e[(n+64>>>9<<4)+15]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),e[(n+64>>>9<<4)+14]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),t.sigBytes=4*(e.length+1),this._process();for(var a=this._hash,c=a.words,h=0;h<4;h++){var l=c[h];c[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return a},clone:function(){var t=h.clone.call(this);return t._hash=this._hash.clone(),t}});s.MD5=h._createHelper(u),s.HmacMD5=h._createHmacHelper(u)}(Math),function(){var r=t,e=r.lib,i=e.WordArray,n=e.Hasher,o=r.algo,s=[],a=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],a=e[3],c=e[4],h=0;h<80;h++){if(h<16)s[h]=0|t[r+h];else{var l=s[h-3]^s[h-8]^s[h-14]^s[h-16];s[h]=l<<1|l>>>31}var f=(i<<5|i>>>27)+c+s[h];f+=h<20?(n&o|~n&a)+1518500249:h<40?(n^o^a)+1859775393:h<60?(n&o|n&a|o&a)-1894007588:(n^o^a)-899497514,c=a,a=o,o=n<<30|n>>>2,n=i,i=f}e[0]=e[0]+i|0,e[1]=e[1]+n|0,e[2]=e[2]+o|0,e[3]=e[3]+a|0,e[4]=e[4]+c|0},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;return r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=Math.floor(e/4294967296),r[(i+64>>>9<<4)+15]=e,t.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});r.SHA1=n._createHelper(a),r.HmacSHA1=n._createHmacHelper(a)}(),function(r){var e=t,i=e.lib,n=i.WordArray,o=i.Hasher,s=e.algo,a=[],c=[];!function(){function t(t){for(var e=r.sqrt(t),i=2;i<=e;i++)if(!(t%i))return!1;return!0}function e(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)t(i)&&(n<8&&(a[n]=e(r.pow(i,.5))),c[n]=e(r.pow(i,1/3)),n++),i++}();var h=[],l=s.SHA256=o.extend({_doReset:function(){this._hash=new n.init(a.slice(0))},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],s=e[3],a=e[4],l=e[5],f=e[6],u=e[7],d=0;d<64;d++){if(d<16)h[d]=0|t[r+d];else{var v=h[d-15],p=(v<<25|v>>>7)^(v<<14|v>>>18)^v>>>3,_=h[d-2],y=(_<<15|_>>>17)^(_<<13|_>>>19)^_>>>10;h[d]=p+h[d-7]+y+h[d-16]}var g=a&l^~a&f,B=i&n^i&o^n&o,w=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),k=(a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25),S=u+k+g+c[d]+h[d],m=w+B;u=f,f=l,l=a,a=s+S|0,s=o,o=n,n=i,i=S+m|0}e[0]=e[0]+i|0,e[1]=e[1]+n|0,e[2]=e[2]+o|0,e[3]=e[3]+s|0,e[4]=e[4]+a|0,e[5]=e[5]+l|0,e[6]=e[6]+f|0,e[7]=e[7]+u|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[(n+64>>>9<<4)+14]=r.floor(i/4294967296),e[(n+64>>>9<<4)+15]=i,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(l),e.HmacSHA256=o._createHmacHelper(l)}(Math),function(){function r(t){return t<<8&4278255360|t>>>8&16711935}var e=t,i=e.lib,n=i.WordArray,o=e.enc;o.Utf16=o.Utf16BE={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>1]|=t.charCodeAt(i)<<16-i%2*16;return n.create(e,2*r)}};o.Utf16LE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join(\"\")},parse:function(t){for(var e=t.length,i=[],o=0;o>>1]|=r(t.charCodeAt(o)<<16-o%2*16);return n.create(i,2*e)}}}(),function(){if(\"function\"==typeof ArrayBuffer){var r=t,e=r.lib,i=e.WordArray,n=i.init,o=i.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||\"undefined\"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,e=[],i=0;i>>2]|=t[i]<<24-i%4*8;n.call(this,e,r)}else n.apply(this,arguments)};o.prototype=i}}(),function(r){function e(t,r,e){return t^r^e}function i(t,r,e){return t&r|~t&e}function n(t,r,e){return(t|~r)^e}function o(t,r,e){return t&e|r&~e}function s(t,r,e){return t^(r|~e)}function a(t,r){return t<>>32-r}var c=t,h=c.lib,l=h.WordArray,f=h.Hasher,u=c.algo,d=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),v=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),p=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),_=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=l.create([0,1518500249,1859775393,2400959708,2840853838]),g=l.create([1352829926,1548603684,1836072691,2053994217,0]),B=u.RIPEMD160=f.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,r){for(var c=0;c<16;c++){var h=r+c,l=t[h];t[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}var f,u,B,w,k,S,m,x,b,H,z=this._hash.words,A=y.words,C=g.words,D=d.words,R=v.words,E=p.words,M=_.words;S=f=z[0],m=u=z[1],x=B=z[2],b=w=z[3],H=k=z[4];for(var F,c=0;c<80;c+=1)F=f+t[r+D[c]]|0,F+=c<16?e(u,B,w)+A[0]:c<32?i(u,B,w)+A[1]:c<48?n(u,B,w)+A[2]:c<64?o(u,B,w)+A[3]:s(u,B,w)+A[4],F|=0,F=a(F,E[c]),F=F+k|0,f=k,k=w,w=a(B,10),B=u,u=F,F=S+t[r+R[c]]|0,F+=c<16?s(m,x,b)+C[0]:c<32?o(m,x,b)+C[1]:c<48?n(m,x,b)+C[2]:c<64?i(m,x,b)+C[3]:e(m,x,b)+C[4],F|=0,F=a(F,M[c]),F=F+H|0,S=H,H=b,b=a(x,10),x=m,m=F;F=z[1]+B+b|0,z[1]=z[2]+w+H|0,z[2]=z[3]+k+S|0,z[3]=z[4]+f+m|0,z[4]=z[0]+u+x|0,z[0]=F},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8),t.sigBytes=4*(r.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var a=o[s];o[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return n},clone:function(){var t=f.clone.call(this);return t._hash=this._hash.clone(),t}});c.RIPEMD160=f._createHelper(B),c.HmacRIPEMD160=f._createHmacHelper(B)}(Math),function(){var r=t,e=r.lib,i=e.Base,n=r.enc,o=n.Utf8,s=r.algo;s.HMAC=i.extend({init:function(t,r){t=this._hasher=new t.init,\"string\"==typeof r&&(r=o.parse(r));var e=t.blockSize,i=4*e;r.sigBytes>i&&(r=t.finalize(r)),r.clamp();for(var n=this._oKey=r.clone(),s=this._iKey=r.clone(),a=n.words,c=s.words,h=0;h>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8);var a=e[n];a.high^=s,a.low^=o}for(var c=0;c<24;c++){for(var d=0;d<5;d++){for(var v=0,p=0,_=0;_<5;_++){var a=e[d+5*_];v^=a.high,p^=a.low}var y=u[d];y.high=v,y.low=p}for(var d=0;d<5;d++)for(var g=u[(d+4)%5],B=u[(d+1)%5],w=B.high,k=B.low,v=g.high^(w<<1|k>>>31),p=g.low^(k<<1|w>>>31),_=0;_<5;_++){var a=e[d+5*_];a.high^=v,a.low^=p}for(var S=1;S<25;S++){var a=e[S],m=a.high,x=a.low,b=h[S];if(b<32)var v=m<>>32-b,p=x<>>32-b;else var v=x<>>64-b,p=m<>>64-b;var H=u[l[S]];H.high=v,H.low=p}var z=u[0],A=e[0];z.high=A.high,z.low=A.low;for(var d=0;d<5;d++)for(var _=0;_<5;_++){var S=d+5*_,a=e[S],C=u[S],D=u[(d+1)%5+5*_],R=u[(d+2)%5+5*_];a.high=C.high^~D.high&R.high,a.low=C.low^~D.low&R.low}var a=e[0],E=f[c];a.high^=E.high,a.low^=E.low}},_doFinalize:function(){var t=this._data,e=t.words,i=(8*this._nDataBytes,8*t.sigBytes),o=32*this.blockSize;e[i>>>5]|=1<<24-i%32,e[(r.ceil((i+1)/o)*o>>>5)-1]|=128,t.sigBytes=4*e.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,c=a/8,h=[],l=0;l>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),h.push(d),h.push(u)}return new n.init(h,a)},clone:function(){for(var t=o.clone.call(this),r=t._state=this._state.slice(0),e=0;e<25;e++)r[e]=r[e].clone();return t}});e.SHA3=o._createHelper(d),e.HmacSHA3=o._createHmacHelper(d)}(Math),function(){function r(){return s.create.apply(s,arguments)}var e=t,i=e.lib,n=i.Hasher,o=e.x64,s=o.Word,a=o.WordArray,c=e.algo,h=[r(1116352408,3609767458),r(1899447441,602891725),r(3049323471,3964484399),r(3921009573,2173295548),r(961987163,4081628472),r(1508970993,3053834265),r(2453635748,2937671579),r(2870763221,3664609560),r(3624381080,2734883394),r(310598401,1164996542),r(607225278,1323610764),r(1426881987,3590304994),r(1925078388,4068182383),r(2162078206,991336113),r(2614888103,633803317),r(3248222580,3479774868),r(3835390401,2666613458),r(4022224774,944711139),r(264347078,2341262773),r(604807628,2007800933),r(770255983,1495990901),r(1249150122,1856431235),r(1555081692,3175218132),r(1996064986,2198950837),r(2554220882,3999719339),r(2821834349,766784016),r(2952996808,2566594879),r(3210313671,3203337956),r(3336571891,1034457026),r(3584528711,2466948901),r(113926993,3758326383),r(338241895,168717936),r(666307205,1188179964),r(773529912,1546045734),r(1294757372,1522805485),r(1396182291,2643833823),r(1695183700,2343527390),r(1986661051,1014477480),r(2177026350,1206759142),r(2456956037,344077627),r(2730485921,1290863460),r(2820302411,3158454273),r(3259730800,3505952657),r(3345764771,106217008),r(3516065817,3606008344),r(3600352804,1432725776),r(4094571909,1467031594),r(275423344,851169720),r(430227734,3100823752),r(506948616,1363258195),r(659060556,3750685593),r(883997877,3785050280),r(958139571,3318307427),r(1322822218,3812723403),r(1537002063,2003034995),r(1747873779,3602036899),r(1955562222,1575990012),r(2024104815,1125592928),r(2227730452,2716904306),r(2361852424,442776044),r(2428436474,593698344),r(2756734187,3733110249),r(3204031479,2999351573),r(3329325298,3815920427),r(3391569614,3928383900),r(3515267271,566280711),r(3940187606,3454069534),r(4118630271,4000239992),r(116418474,1914138554),r(174292421,2731055270),r(289380356,3203993006),r(460393269,320620315),r(685471733,587496836),r(852142971,1086792851),r(1017036298,365543100),r(1126000580,2618297676),r(1288033470,3409855158),r(1501505948,4234509866),r(1607167915,987167468),r(1816402316,1246189591)],l=[];!function(){for(var t=0;t<80;t++)l[t]=r()}();var f=c.SHA512=n.extend({_doReset:function(){this._hash=new a.init([new s.init(1779033703,4089235720),new s.init(3144134277,2227873595),new s.init(1013904242,4271175723),new s.init(2773480762,1595750129),new s.init(1359893119,2917565137),new s.init(2600822924,725511199),new s.init(528734635,4215389547),new s.init(1541459225,327033209)])},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],s=e[3],a=e[4],c=e[5],f=e[6],u=e[7],d=i.high,v=i.low,p=n.high,_=n.low,y=o.high,g=o.low,B=s.high,w=s.low,k=a.high,S=a.low,m=c.high,x=c.low,b=f.high,H=f.low,z=u.high,A=u.low,C=d,D=v,R=p,E=_,M=y,F=g,P=B,W=w,O=k,U=S,I=m,K=x,X=b,L=H,j=z,N=A,T=0;T<80;T++){var Z=l[T];if(T<16)var q=Z.high=0|t[r+2*T],G=Z.low=0|t[r+2*T+1];else{var J=l[T-15],$=J.high,Q=J.low,V=($>>>1|Q<<31)^($>>>8|Q<<24)^$>>>7,Y=(Q>>>1|$<<31)^(Q>>>8|$<<24)^(Q>>>7|$<<25),tt=l[T-2],rt=tt.high,et=tt.low,it=(rt>>>19|et<<13)^(rt<<3|et>>>29)^rt>>>6,nt=(et>>>19|rt<<13)^(et<<3|rt>>>29)^(et>>>6|rt<<26),ot=l[T-7],st=ot.high,at=ot.low,ct=l[T-16],ht=ct.high,lt=ct.low,G=Y+at,q=V+st+(G>>>0>>0?1:0),G=G+nt,q=q+it+(G>>>0>>0?1:0),G=G+lt,q=q+ht+(G>>>0>>0?1:0);Z.high=q,Z.low=G}var ft=O&I^~O&X,ut=U&K^~U&L,dt=C&R^C&M^R&M,vt=D&E^D&F^E&F,pt=(C>>>28|D<<4)^(C<<30|D>>>2)^(C<<25|D>>>7),_t=(D>>>28|C<<4)^(D<<30|C>>>2)^(D<<25|C>>>7),yt=(O>>>14|U<<18)^(O>>>18|U<<14)^(O<<23|U>>>9),gt=(U>>>14|O<<18)^(U>>>18|O<<14)^(U<<23|O>>>9),Bt=h[T],wt=Bt.high,kt=Bt.low,St=N+gt,mt=j+yt+(St>>>0>>0?1:0),St=St+ut,mt=mt+ft+(St>>>0>>0?1:0),St=St+kt,mt=mt+wt+(St>>>0>>0?1:0),St=St+G,mt=mt+q+(St>>>0>>0?1:0),xt=_t+vt,bt=pt+dt+(xt>>>0<_t>>>0?1:0);j=X,N=L,X=I,L=K,I=O,K=U,U=W+St|0,O=P+mt+(U>>>0>>0?1:0)|0,P=M,W=F,M=R,F=E,R=C,E=D,D=St+xt|0,C=mt+bt+(D>>>0>>0?1:0)|0}v=i.low=v+D,i.high=d+C+(v>>>0>>0?1:0),_=n.low=_+E,n.high=p+R+(_>>>0>>0?1:0),g=o.low=g+F,o.high=y+M+(g>>>0>>0?1:0),w=s.low=w+W,s.high=B+P+(w>>>0>>0?1:0),S=a.low=S+U,a.high=k+O+(S>>>0>>0?1:0),x=c.low=x+K,c.high=m+I+(x>>>0>>0?1:0),H=f.low=H+L,f.high=b+X+(H>>>0>>0?1:0),A=u.low=A+N,u.high=z+j+(A>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32,r[(i+128>>>10<<5)+30]=Math.floor(e/4294967296),r[(i+128>>>10<<5)+31]=e,t.sigBytes=4*r.length,this._process();var n=this._hash.toX32();return n},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});e.SHA512=n._createHelper(f),e.HmacSHA512=n._createHmacHelper(f)}(),function(){var r=t,e=r.x64,i=e.Word,n=e.WordArray,o=r.algo,s=o.SHA512,a=o.SHA384=s.extend({_doReset:function(){this._hash=new n.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var t=s._doFinalize.call(this);return t.sigBytes-=16,t}});r.SHA384=s._createHelper(a),r.HmacSHA384=s._createHmacHelper(a)}(),t.lib.Cipher||function(r){var e=t,i=e.lib,n=i.Base,o=i.WordArray,s=i.BufferedBlockAlgorithm,a=e.enc,c=(a.Utf8,a.Base64),h=e.algo,l=h.EvpKDF,f=i.Cipher=s.extend({cfg:n.extend(),createEncryptor:function(t,r){return this.create(this._ENC_XFORM_MODE,t,r)},createDecryptor:function(t,r){return this.create(this._DEC_XFORM_MODE,t,r)},init:function(t,r,e){this.cfg=this.cfg.extend(e),this._xformMode=t,this._key=r,this.reset()},reset:function(){s.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){t&&this._append(t);var r=this._doFinalize();return r},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return\"string\"==typeof t?m:w}return function(r){return{encrypt:function(e,i,n){return t(i).encrypt(r,e,i,n)},decrypt:function(e,i,n){return t(i).decrypt(r,e,i,n)}}}}()}),u=(i.StreamCipher=f.extend({_doFinalize:function(){var t=this._process(!0);return t},blockSize:1}),e.mode={}),d=i.BlockCipherMode=n.extend({createEncryptor:function(t,r){return this.Encryptor.create(t,r)},createDecryptor:function(t,r){return this.Decryptor.create(t,r)},init:function(t,r){this._cipher=t,this._iv=r}}),v=u.CBC=function(){function t(t,e,i){var n=this._iv;if(n){var o=n;this._iv=r}else var o=this._prevBlock;for(var s=0;s>>2];t.sigBytes-=r}},y=(i.BlockCipher=f.extend({cfg:f.cfg.extend({mode:v,padding:_}),reset:function(){f.reset.call(this);var t=this.cfg,r=t.iv,e=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var i=e.createEncryptor;else{var i=e.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==i?this._mode.init(this,r&&r.words):(this._mode=i.call(e,this,r&&r.words),this._mode.__creator=i)},_doProcessBlock:function(t,r){this._mode.processBlock(t,r)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var r=this._process(!0)}else{var r=this._process(!0);t.unpad(r)}return r},blockSize:4}),i.CipherParams=n.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),g=e.format={},B=g.OpenSSL={stringify:function(t){var r=t.ciphertext,e=t.salt;if(e)var i=o.create([1398893684,1701076831]).concat(e).concat(r);else var i=r;return i.toString(c)},parse:function(t){var r=c.parse(t),e=r.words;if(1398893684==e[0]&&1701076831==e[1]){var i=o.create(e.slice(2,4));e.splice(0,4),r.sigBytes-=16}return y.create({ciphertext:r,salt:i})}},w=i.SerializableCipher=n.extend({cfg:n.extend({format:B}),encrypt:function(t,r,e,i){i=this.cfg.extend(i);var n=t.createEncryptor(e,i),o=n.finalize(r),s=n.cfg;return y.create({ciphertext:o,key:e,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,r,e,i){i=this.cfg.extend(i),r=this._parse(r,i.format);var n=t.createDecryptor(e,i).finalize(r.ciphertext);return n},_parse:function(t,r){return\"string\"==typeof t?r.parse(t,this):t}}),k=e.kdf={},S=k.OpenSSL={execute:function(t,r,e,i){i||(i=o.random(8));var n=l.create({keySize:r+e}).compute(t,i),s=o.create(n.words.slice(r),4*e);return n.sigBytes=4*r,y.create({key:n,iv:s,salt:i})}},m=i.PasswordBasedCipher=w.extend({cfg:w.cfg.extend({kdf:S}),encrypt:function(t,r,e,i){i=this.cfg.extend(i);var n=i.kdf.execute(e,t.keySize,t.ivSize);i.iv=n.iv;var o=w.encrypt.call(this,t,r,n.key,i);return o.mixIn(n),o},decrypt:function(t,r,e,i){i=this.cfg.extend(i),r=this._parse(r,i.format);var n=i.kdf.execute(e,t.keySize,t.ivSize,r.salt);i.iv=n.iv;var o=w.decrypt.call(this,t,r,n.key,i);return o}})}(),t.mode.CFB=function(){function r(t,r,e,i){var n=this._iv;if(n){var o=n.slice(0);this._iv=void 0}else var o=this._prevBlock;i.encryptBlock(o,0);for(var s=0;s>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},t.pad.Iso10126={pad:function(r,e){var i=4*e,n=i-r.sigBytes%i;r.concat(t.lib.WordArray.random(n-1)).concat(t.lib.WordArray.create([n<<24],1))},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},t.pad.Iso97971={pad:function(r,e){r.concat(t.lib.WordArray.create([2147483648],1)),t.pad.ZeroPadding.pad(r,e)},unpad:function(r){t.pad.ZeroPadding.unpad(r),r.sigBytes--}},t.mode.OFB=function(){var r=t.lib.BlockCipherMode.extend(),e=r.Encryptor=r.extend({processBlock:function(t,r){var e=this._cipher,i=e.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),e.encryptBlock(o,0);for(var s=0;s>>8^255&n^99,o[e]=n,s[n]=e;var p=t[e],_=t[p],y=t[_],g=257*t[n]^16843008*n;a[e]=g<<24|g>>>8,c[e]=g<<16|g>>>16,h[e]=g<<8|g>>>24,l[e]=g;var g=16843009*y^65537*_^257*p^16843008*e;f[n]=g<<24|g>>>8,u[n]=g<<16|g>>>16,d[n]=g<<8|g>>>24,v[n]=g,e?(e=p^t[t[t[y^p]]],i^=t[t[i]]):e=i=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],_=n.AES=i.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,r=t.words,e=t.sigBytes/4,i=this._nRounds=e+6,n=4*(i+1),s=this._keySchedule=[],a=0;a6&&a%e==4&&(c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c]):(c=c<<8|c>>>24,c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c],c^=p[a/e|0]<<24),s[a]=s[a-e]^c}for(var h=this._invKeySchedule=[],l=0;l>>24]]^u[o[c>>>16&255]]^d[o[c>>>8&255]]^v[o[255&c]]}}},encryptBlock:function(t,r){this._doCryptBlock(t,r,this._keySchedule,a,c,h,l,o)},decryptBlock:function(t,r){var e=t[r+1];t[r+1]=t[r+3],t[r+3]=e,this._doCryptBlock(t,r,this._invKeySchedule,f,u,d,v,s);var e=t[r+1];t[r+1]=t[r+3],t[r+3]=e},_doCryptBlock:function(t,r,e,i,n,o,s,a){for(var c=this._nRounds,h=t[r]^e[0],l=t[r+1]^e[1],f=t[r+2]^e[2],u=t[r+3]^e[3],d=4,v=1;v>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&u]^e[d++],_=i[l>>>24]^n[f>>>16&255]^o[u>>>8&255]^s[255&h]^e[d++],y=i[f>>>24]^n[u>>>16&255]^o[h>>>8&255]^s[255&l]^e[d++],g=i[u>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^e[d++];h=p,l=_,f=y,u=g}var p=(a[h>>>24]<<24|a[l>>>16&255]<<16|a[f>>>8&255]<<8|a[255&u])^e[d++],_=(a[l>>>24]<<24|a[f>>>16&255]<<16|a[u>>>8&255]<<8|a[255&h])^e[d++],y=(a[f>>>24]<<24|a[u>>>16&255]<<16|a[h>>>8&255]<<8|a[255&l])^e[d++],g=(a[u>>>24]<<24|a[h>>>16&255]<<16|a[l>>>8&255]<<8|a[255&f])^e[d++];t[r]=p,t[r+1]=_,t[r+2]=y,t[r+3]=g},keySize:8});r.AES=i._createHelper(_)}(),function(){function r(t,r){var e=(this._lBlock>>>t^this._rBlock)&r;this._rBlock^=e,this._lBlock^=e<>>t^this._lBlock)&r;this._lBlock^=e,this._rBlock^=e<>>5]>>>31-n%32&1}for(var o=this._subKeys=[],s=0;s<16;s++){for(var a=o[s]=[],f=l[s],i=0;i<24;i++)a[i/6|0]|=e[(h[i]-1+f)%28]<<31-i%6,a[4+(i/6|0)]|=e[28+(h[i+24]-1+f)%28]<<31-i%6;a[0]=a[0]<<1|a[0]>>>31;for(var i=1;i<7;i++)a[i]=a[i]>>>4*(i-1)+3;a[7]=a[7]<<5|a[7]>>>27}for(var u=this._invSubKeys=[],i=0;i<16;i++)u[i]=o[15-i]},encryptBlock:function(t,r){this._doCryptBlock(t,r,this._subKeys)},decryptBlock:function(t,r){this._doCryptBlock(t,r,this._invSubKeys)},_doCryptBlock:function(t,i,n){this._lBlock=t[i],this._rBlock=t[i+1],r.call(this,4,252645135),r.call(this,16,65535),e.call(this,2,858993459),e.call(this,8,16711935),r.call(this,1,1431655765);for(var o=0;o<16;o++){for(var s=n[o],a=this._lBlock,c=this._rBlock,h=0,l=0;l<8;l++)h|=f[l][((c^s[l])&u[l])>>>0];this._lBlock=c,this._rBlock=a^h}var d=this._lBlock;this._lBlock=this._rBlock,this._rBlock=d,r.call(this,1,1431655765),e.call(this,8,16711935),e.call(this,2,858993459),r.call(this,16,65535),r.call(this,4,252645135),t[i]=this._lBlock,t[i+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});i.DES=s._createHelper(d);var v=a.TripleDES=s.extend({_doReset:function(){var t=this._key,r=t.words;this._des1=d.createEncryptor(o.create(r.slice(0,2))),this._des2=d.createEncryptor(o.create(r.slice(2,4))),this._des3=d.createEncryptor(o.create(r.slice(4,6)))},encryptBlock:function(t,r){this._des1.encryptBlock(t,r),this._des2.decryptBlock(t,r),this._des3.encryptBlock(t,r)},decryptBlock:function(t,r){this._des3.decryptBlock(t,r),this._des2.encryptBlock(t,r),this._des1.decryptBlock(t,r)},keySize:6,ivSize:2,blockSize:2});i.TripleDES=s._createHelper(v)}(),function(){function r(){for(var t=this._S,r=this._i,e=this._j,i=0,n=0;n<4;n++){r=(r+1)%256,e=(e+t[r])%256;var o=t[r];t[r]=t[e],t[e]=o,i|=t[(t[r]+t[e])%256]<<24-8*n}return this._i=r,this._j=e,i}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=o.RC4=n.extend({_doReset:function(){for(var t=this._key,r=t.words,e=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;for(var n=0,o=0;n<256;n++){var s=n%e,a=r[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+a)%256;var c=i[n];i[n]=i[o],i[o]=c}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=r.call(this)},keySize:8,ivSize:0});e.RC4=n._createHelper(s);var a=o.RC4Drop=s.extend({cfg:s.cfg.extend({drop:192}),_doReset:function(){s._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)r.call(this)}});e.RC4Drop=n._createHelper(a)}(),t.mode.CTRGladman=function(){function r(t){if(255===(t>>24&255)){var r=t>>16&255,e=t>>8&255,i=255&t;255===r?(r=0,255===e?(e=0,255===i?i=0:++i):++e):++r,t=0,t+=r<<16,t+=e<<8,t+=i}else t+=1<<24;return t}function e(t){return 0===(t[0]=r(t[0]))&&(t[1]=r(t[1])),t}var i=t.lib.BlockCipherMode.extend(),n=i.Encryptor=i.extend({processBlock:function(t,r){var i=this._cipher,n=i.blockSize,o=this._iv,s=this._counter;o&&(s=this._counter=o.slice(0),this._iv=void 0),e(s);var a=s.slice(0);i.encryptBlock(a,0);for(var c=0;c>>0>>0?1:0)|0,r[2]=r[2]+886263092+(r[1]>>>0>>0?1:0)|0,r[3]=r[3]+1295307597+(r[2]>>>0>>0?1:0)|0,r[4]=r[4]+3545052371+(r[3]>>>0>>0?1:0)|0,r[5]=r[5]+886263092+(r[4]>>>0>>0?1:0)|0,r[6]=r[6]+1295307597+(r[5]>>>0>>0?1:0)|0,r[7]=r[7]+3545052371+(r[6]>>>0>>0?1:0)|0,this._b=r[7]>>>0>>0?1:0;for(var e=0;e<8;e++){var i=t[e]+r[e],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,h=((4294901760&i)*i|0)+((65535&i)*i|0);c[e]=s^h}t[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,t[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,t[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,t[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,t[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,t[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,t[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,t[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=[],a=[],c=[],h=o.Rabbit=n.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,i=0;i<4;i++)t[i]=16711935&(t[i]<<8|t[i]>>>24)|4278255360&(t[i]<<24|t[i]>>>8);var n=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],o=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var i=0;i<4;i++)r.call(this);for(var i=0;i<8;i++)o[i]^=n[i+4&7];if(e){var s=e.words,a=s[0],c=s[1],h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;o[0]^=h,o[1]^=f,o[2]^=l,o[3]^=u,o[4]^=h,o[5]^=f,o[6]^=l,o[7]^=u;for(var i=0;i<4;i++)r.call(this)}},_doProcessBlock:function(t,e){var i=this._X;r.call(this),s[0]=i[0]^i[5]>>>16^i[3]<<16,s[1]=i[2]^i[7]>>>16^i[5]<<16,s[2]=i[4]^i[1]>>>16^i[7]<<16,s[3]=i[6]^i[3]>>>16^i[1]<<16;for(var n=0;n<4;n++)s[n]=16711935&(s[n]<<8|s[n]>>>24)|4278255360&(s[n]<<24|s[n]>>>8),t[e+n]^=s[n]},blockSize:4,ivSize:2});e.Rabbit=n._createHelper(h)}(),t.mode.CTR=function(){var r=t.lib.BlockCipherMode.extend(),e=r.Encryptor=r.extend({processBlock:function(t,r){var e=this._cipher,i=e.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);e.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var a=0;a>>0>>0?1:0)|0,r[2]=r[2]+886263092+(r[1]>>>0>>0?1:0)|0,r[3]=r[3]+1295307597+(r[2]>>>0>>0?1:0)|0,r[4]=r[4]+3545052371+(r[3]>>>0>>0?1:0)|0,r[5]=r[5]+886263092+(r[4]>>>0>>0?1:0)|0,r[6]=r[6]+1295307597+(r[5]>>>0>>0?1:0)|0,r[7]=r[7]+3545052371+(r[6]>>>0>>0?1:0)|0,this._b=r[7]>>>0>>0?1:0;for(var e=0;e<8;e++){var i=t[e]+r[e],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,h=((4294901760&i)*i|0)+((65535&i)*i|0);c[e]=s^h}t[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,t[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,t[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,t[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,t[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,t[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,t[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,t[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=[],a=[],c=[],h=o.RabbitLegacy=n.extend({_doReset:function(){var t=this._key.words,e=this.cfg.iv,i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var o=0;o<4;o++)r.call(this);for(var o=0;o<8;o++)n[o]^=i[o+4&7];if(e){var s=e.words,a=s[0],c=s[1],h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;n[0]^=h,n[1]^=f,n[2]^=l,n[3]^=u,n[4]^=h,n[5]^=f,n[6]^=l,n[7]^=u;for(var o=0;o<4;o++)r.call(this)}},_doProcessBlock:function(t,e){var i=this._X;r.call(this),s[0]=i[0]^i[5]>>>16^i[3]<<16,s[1]=i[2]^i[7]>>>16^i[5]<<16,s[2]=i[4]^i[1]>>>16^i[7]<<16,s[3]=i[6]^i[3]>>>16^i[1]<<16;for(var n=0;n<4;n++)s[n]=16711935&(s[n]<<8|s[n]>>>24)|4278255360&(s[n]<<24|s[n]>>>8),t[e+n]^=s[n]},blockSize:4,ivSize:2});e.RabbitLegacy=n._createHelper(h)}(),t.pad.ZeroPadding={pad:function(t,r){var e=4*r;t.clamp(),t.sigBytes+=e-(t.sigBytes%e||e)},unpad:function(t){for(var r=t.words,e=t.sigBytes-1;!(r[e>>>2]>>>24-e%4*8&255);)e--;t.sigBytes=e+1}},t});\r\n//# sourceMappingURL=crypto-js.min.js.map"]} \ 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 f5302a3..91c4590 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":["\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.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 }\n\n getAudioMusicSwitch()\n {\n return this.mMusicSwitch;\n\n }\n getAudioEffectSwitch()\n {\n return this.mEffectSwitch;\n }\n trunAudioSound(on)\n {\n this.switchMusic(on);\n this.switchEffect(on)\n }\n switchMusic (on) {\n if (this.mMusicSwitch != (on?1:0))\n {\n this.mMusicSwitch = 1-this.mMusicSwitch;\n // this.save();\n }\n if(on)\n {\n this.playMusicGame();\n }\n else\n {\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 */\n playGameOver()\n {\n\n }\n /*\n * 成功的游戏结束\n */\n playGameResultFailed()\n {\n\n }\n /*\n * 成功的游戏结束\n */\n playGameResultSuccess()\n {\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.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 diff --git a/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js.map b/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js.map index cf8fb4a..5d61e00 100644 --- a/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js.map +++ b/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\module\\Notification\\Notification.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAM;AACN,IAAI,aAAa,GAAG;IAChB,SAAS,EAAE,EAAE;IACb,EAAE,EAAE,UAAU,MAAM,EAAE,QAAQ,EAAE,MAAM;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,EAAE,UAAU,MAAM,EAAE,SAAS;QAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,OAAO;gBAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SACjE;IACL,CAAC;IAED,GAAG,EAAE,UAAU,MAAM,EAAE,QAAQ;QAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC1C,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBACrB,MAAM;aACT;SACJ;IACL,CAAC;IAED,SAAS,EAAE,UAAU,MAAM;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACvC,CAAC;IAED,YAAY,EAAE;QACV,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;YAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACrB;SACJ;IACL,CAAC;CACJ,CAAC;AACO,sCAAa","file":"","sourceRoot":"/","sourcesContent":["//全局通知\nvar Notifications = {\n _eventMap: [],\n on: function (masgId, callback, target) {\n if (this._eventMap[masgId] === undefined) {\n this._eventMap[masgId] = [];\n }\n this._eventMap[masgId].push({ callback: callback, target: target });\n },\n\n emit: function (masgId, parameter) {\n let array = this._eventMap[masgId];\n if (array === undefined) return;\n\n for (let i = 0; i < array.length; i++) {\n let element = array[i];\n if (element) element.callback.call(element.target, parameter);\n }\n },\n\n off: function (masgId, callback) {\n let array = this._eventMap[masgId];\n if (array === undefined) return;\n for (let i = 0; i < array.length; i++) {\n let element = array[i];\n if (element && element.callback === callback) {\n array[i] = undefined;\n break;\n }\n }\n },\n\n offMasgId: function (masgId) {\n this._eventMap[masgId] = undefined;\n },\n\n removeAllMsg: function () {\n for (let k in this._eventMap) {\n if (this._eventMap[k]) {\n this.offMasgId(k);\n }\n }\n }\n};\nexport { Notifications };"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\module\\Notification\\Notification.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAM;AACN,IAAI,aAAa,GAAG;IAChB,SAAS,EAAE,EAAE;IACb,EAAE,EAAE,UAAU,MAAM,EAAE,QAAQ,EAAE,MAAM;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,EAAE,UAAU,MAAM,EAAE,SAAS;QAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,OAAO;gBAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SACjE;IACL,CAAC;IAED,GAAG,EAAE,UAAU,MAAM,EAAE,QAAQ;QAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC1C,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBACrB,MAAM;aACT;SACJ;IACL,CAAC;IAED,SAAS,EAAE,UAAU,MAAM;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACvC,CAAC;IAED,YAAY,EAAE;QACV,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;YAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACrB;SACJ;IACL,CAAC;CACJ,CAAC;AACO,sCAAa","file":"","sourceRoot":"/","sourcesContent":["//全局通知\r\nvar Notifications = {\r\n _eventMap: [],\r\n on: function (masgId, callback, target) {\r\n if (this._eventMap[masgId] === undefined) {\r\n this._eventMap[masgId] = [];\r\n }\r\n this._eventMap[masgId].push({ callback: callback, target: target });\r\n },\r\n\r\n emit: function (masgId, parameter) {\r\n let array = this._eventMap[masgId];\r\n if (array === undefined) return;\r\n\r\n for (let i = 0; i < array.length; i++) {\r\n let element = array[i];\r\n if (element) element.callback.call(element.target, parameter);\r\n }\r\n },\r\n\r\n off: function (masgId, callback) {\r\n let array = this._eventMap[masgId];\r\n if (array === undefined) return;\r\n for (let i = 0; i < array.length; i++) {\r\n let element = array[i];\r\n if (element && element.callback === callback) {\r\n array[i] = undefined;\r\n break;\r\n }\r\n }\r\n },\r\n\r\n offMasgId: function (masgId) {\r\n this._eventMap[masgId] = undefined;\r\n },\r\n\r\n removeAllMsg: function () {\r\n for (let k in this._eventMap) {\r\n if (this._eventMap[k]) {\r\n this.offMasgId(k);\r\n }\r\n }\r\n }\r\n};\r\nexport { Notifications };"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js.map b/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js.map index 0aa3e8a..3bd3658 100644 --- a/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js.map +++ b/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\module\\Storage\\Storage.ts"],"names":[],"mappings":";;;;;;;AAAA,SAAS;AACT,IAAI,cAAc,GAAG;IACjB,UAAU,EAAG,UAAS,GAAG;QACrB,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC;YAClC,IAAI,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC/C;QAED,IAAG,MAAM,EAAC;YACR,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC7B;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,EAAG,UAAS,GAAG,EAAC,KAAK;QAC3B,UAAU;QACV,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC1C,CAAC;IACD,aAAa,EAAG,UAAS,GAAG;QAC1B,UAAU;QACV,IAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC;YAClC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;SACpC;IACH,CAAC;CACJ,CAAC;AAEO,wCAAc","file":"","sourceRoot":"/","sourcesContent":["//缓存浏览器数据\nvar StorageMessage = {\n getStorage : function(key){\n var result = null;\n if(cc.sys.localStorage.getItem(key)){\n var result = cc.sys.localStorage.getItem(key);\n }\n \n if(result){\n result = JSON.parse(result);\n }\n return result;\n },\n setStorage : function(key,value){\n //主动拉起分享接口\n var temp = JSON.stringify(value);\n cc.sys.localStorage.setItem(key, temp)\n },\n removeStorage : function(key){\n //主动删除消息接口\n if(cc.sys.localStorage.getItem(key)){\n cc.sys.localStorage.removeItem(key)\n }\n },\n};\n\nexport { StorageMessage };"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\module\\Storage\\Storage.ts"],"names":[],"mappings":";;;;;;;AAAA,SAAS;AACT,IAAI,cAAc,GAAG;IACjB,UAAU,EAAG,UAAS,GAAG;QACrB,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC;YAClC,IAAI,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC/C;QAED,IAAG,MAAM,EAAC;YACR,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC7B;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,EAAG,UAAS,GAAG,EAAC,KAAK;QAC3B,UAAU;QACV,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC1C,CAAC;IACD,aAAa,EAAG,UAAS,GAAG;QAC1B,UAAU;QACV,IAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC;YAClC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;SACpC;IACH,CAAC;CACJ,CAAC;AAEO,wCAAc","file":"","sourceRoot":"/","sourcesContent":["//缓存浏览器数据\r\nvar StorageMessage = {\r\n getStorage : function(key){\r\n var result = null;\r\n if(cc.sys.localStorage.getItem(key)){\r\n var result = cc.sys.localStorage.getItem(key);\r\n }\r\n \r\n if(result){\r\n result = JSON.parse(result);\r\n }\r\n return result;\r\n },\r\n setStorage : function(key,value){\r\n //主动拉起分享接口\r\n var temp = JSON.stringify(value);\r\n cc.sys.localStorage.setItem(key, temp)\r\n },\r\n removeStorage : function(key){\r\n //主动删除消息接口\r\n if(cc.sys.localStorage.getItem(key)){\r\n cc.sys.localStorage.removeItem(key)\r\n }\r\n },\r\n};\r\n\r\nexport { StorageMessage };"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/animation/NewScript.js b/temp/quick-scripts/src/assets/animation/NewScript.js index 3cc1670..104423b 100644 --- a/temp/quick-scripts/src/assets/animation/NewScript.js +++ b/temp/quick-scripts/src/assets/animation/NewScript.js @@ -10,6 +10,7 @@ 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 + cc.Class({ "extends": cc.Component, properties: { @@ -19,7 +20,8 @@ cc.Class({ female: 1 }), "default": 0 - } // foo: { + } + // foo: { // // ATTRIBUTES: // default: null, // The default value will be used only when the component attaching // // to a node for the first time @@ -34,12 +36,10 @@ cc.Class({ // this._bar = value; // } // }, - }, // LIFE-CYCLE CALLBACKS: // onLoad () {}, start: function start() {} // update (dt) {}, - }); cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/animation/NewScript.js.map b/temp/quick-scripts/src/assets/animation/NewScript.js.map index 1bfcf43..19b549f 100644 --- a/temp/quick-scripts/src/assets/animation/NewScript.js.map +++ b/temp/quick-scripts/src/assets/animation/NewScript.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\animation\\NewScript.js"],"names":["cc","Class","Component","properties","sex","type","Enum","male","female","start"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAEAA,EAAE,CAACC,KAAH,CAAS;AACL,aAASD,EAAE,CAACE,SADP;AAGLC,EAAAA,UAAU,EAAE;AACRC,IAAAA,GAAG,EAAC;AACAC,MAAAA,IAAI,EAACL,EAAE,CAACM,IAAH,CAAQ;AACTC,QAAAA,IAAI,EAAC,CADI;AAETC,QAAAA,MAAM,EAAC;AAFE,OAAR,CADL;AAKA,iBAAQ;AALR,KADI,CAQR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAtBQ,GAHP;AA4BL;AAEA;AAEAC,EAAAA,KAhCK,mBAgCI,CAER,CAlCI,CAoCL;;AApCK,CAAT","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/class.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\ncc.Class({\r\n extends: cc.Component,\r\n\r\n properties: {\r\n sex:{\r\n type:cc.Enum({\r\n male:0,\r\n female:1\r\n }),\r\n default:0\r\n }\r\n // foo: {\r\n // // ATTRIBUTES:\r\n // default: null, // The default value will be used only when the component attaching\r\n // // to a node for the first time\r\n // type: cc.SpriteFrame, // optional, default is typeof default\r\n // serializable: true, // optional, default is true\r\n // },\r\n // bar: {\r\n // get () {\r\n // return this._bar;\r\n // },\r\n // set (value) {\r\n // this._bar = value;\r\n // }\r\n // },\r\n },\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n // onLoad () {},\r\n\r\n start () {\r\n\r\n },\r\n\r\n // update (dt) {},\r\n});\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\animation\\NewScript.js"],"names":["cc","Class","Component","properties","sex","type","Enum","male","female","start"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEAA,EAAE,CAACC,KAAK,CAAC;EACL,WAASD,EAAE,CAACE,SAAS;EAErBC,UAAU,EAAE;IACRC,GAAG,EAAC;MACAC,IAAI,EAACL,EAAE,CAACM,IAAI,CAAC;QACTC,IAAI,EAAC,CAAC;QACNC,MAAM,EAAC;MACX,CAAC,CAAC;MACF,WAAQ;IACZ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;EACJ,CAAC;EAED;EAEA;EAEAC,KAAK,WAAAA,MAAA,EAAI,CAET,CAAC,CAED;AACJ,CAAC,CAAC","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/class.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\ncc.Class({\r\n extends: cc.Component,\r\n\r\n properties: {\r\n sex:{\r\n type:cc.Enum({\r\n male:0,\r\n female:1\r\n }),\r\n default:0\r\n }\r\n // foo: {\r\n // // ATTRIBUTES:\r\n // default: null, // The default value will be used only when the component attaching\r\n // // to a node for the first time\r\n // type: cc.SpriteFrame, // optional, default is typeof default\r\n // serializable: true, // optional, default is true\r\n // },\r\n // bar: {\r\n // get () {\r\n // return this._bar;\r\n // },\r\n // set (value) {\r\n // this._bar = value;\r\n // }\r\n // },\r\n },\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n // onLoad () {},\r\n\r\n start () {\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/migration/use_v2.1-2.2.1_cc.Toggle_event.js b/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js index d3b7414..44ab5a0 100644 --- a/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js +++ b/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js @@ -15,6 +15,7 @@ cc._RF.push(module, '7a231Rz0d9LBYYgY3bDYlLB', 'use_v2.1-2.2.1_cc.Toggle_event') * 如果你的项目中没用到 Toggle,可直接删除该脚本。 * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。 */ + if (cc.Toggle) { // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件 diff --git a/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js.map b/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js.map index 8cab03c..76750f7 100644 --- a/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js.map +++ b/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\migration\\use_v2.1-2.2.1_cc.Toggle_event.js"],"names":["cc","Toggle","_triggerEventInScript_isChecked"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAIA,EAAE,CAACC,MAAP,EAAe;AACX;AACA;AACAD,EAAAA,EAAE,CAACC,MAAH,CAAUC,+BAAV,GAA4C,IAA5C;AACH","sourceRoot":"/","sourcesContent":["/*\r\n * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version.\r\n * You do not need to manually add this script in any other project.\r\n * If you don't use cc.Toggle in your project, you can delete this script directly.\r\n * If your project is hosted in VCS such as git, submit this script together.\r\n *\r\n * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程,\r\n * 你无需在任何其它项目中手动添加此脚本。\r\n * 如果你的项目中没用到 Toggle,可直接删除该脚本。\r\n * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。\r\n */\r\n\r\nif (cc.Toggle) {\r\n // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code\r\n // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件\r\n cc.Toggle._triggerEventInScript_isChecked = true;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\migration\\use_v2.1-2.2.1_cc.Toggle_event.js"],"names":["cc","Toggle","_triggerEventInScript_isChecked"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAIA,EAAE,CAACC,MAAM,EAAE;EACX;EACA;EACAD,EAAE,CAACC,MAAM,CAACC,+BAA+B,GAAG,IAAI;AACpD","sourceRoot":"/","sourcesContent":["/*\r\n * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version.\r\n * You do not need to manually add this script in any other project.\r\n * If you don't use cc.Toggle in your project, you can delete this script directly.\r\n * If your project is hosted in VCS such as git, submit this script together.\r\n *\r\n * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程,\r\n * 你无需在任何其它项目中手动添加此脚本。\r\n * 如果你的项目中没用到 Toggle,可直接删除该脚本。\r\n * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。\r\n */\r\n\r\nif (cc.Toggle) {\r\n // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code\r\n // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件\r\n cc.Toggle._triggerEventInScript_isChecked = true;\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js b/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js index 9243b02..a317ee0 100644 --- a/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js +++ b/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js @@ -15,6 +15,7 @@ cc._RF.push(module, 'c9ad1iUTB1PyqJ3cmtMGJ31', 'use_v2.1-2.2.1_cc.Toggle_event_1 * 如果你的项目中没用到 Toggle,可直接删除该脚本。 * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。 */ + if (cc.Toggle) { // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件 diff --git a/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js.map b/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js.map index 1e7468c..d4f9d82 100644 --- a/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js.map +++ b/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event_1.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\migration\\use_v2.1-2.2.1_cc.Toggle_event_1.js"],"names":["cc","Toggle","_triggerEventInScript_isChecked"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAIA,EAAE,CAACC,MAAP,EAAe;AACX;AACA;AACAD,EAAAA,EAAE,CAACC,MAAH,CAAUC,+BAAV,GAA4C,IAA5C;AACH","sourceRoot":"/","sourcesContent":["/*\r\n * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version.\r\n * You do not need to manually add this script in any other project.\r\n * If you don't use cc.Toggle in your project, you can delete this script directly.\r\n * If your project is hosted in VCS such as git, submit this script together.\r\n *\r\n * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程,\r\n * 你无需在任何其它项目中手动添加此脚本。\r\n * 如果你的项目中没用到 Toggle,可直接删除该脚本。\r\n * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。\r\n */\r\n\r\nif (cc.Toggle) {\r\n // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code\r\n // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件\r\n cc.Toggle._triggerEventInScript_isChecked = true;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["assets\\migration\\use_v2.1-2.2.1_cc.Toggle_event_1.js"],"names":["cc","Toggle","_triggerEventInScript_isChecked"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAIA,EAAE,CAACC,MAAM,EAAE;EACX;EACA;EACAD,EAAE,CAACC,MAAM,CAACC,+BAA+B,GAAG,IAAI;AACpD","sourceRoot":"/","sourcesContent":["/*\r\n * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version.\r\n * You do not need to manually add this script in any other project.\r\n * If you don't use cc.Toggle in your project, you can delete this script directly.\r\n * If your project is hosted in VCS such as git, submit this script together.\r\n *\r\n * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程,\r\n * 你无需在任何其它项目中手动添加此脚本。\r\n * 如果你的项目中没用到 Toggle,可直接删除该脚本。\r\n * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。\r\n */\r\n\r\nif (cc.Toggle) {\r\n // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code\r\n // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件\r\n cc.Toggle._triggerEventInScript_isChecked = true;\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/shop/script/item.js b/temp/quick-scripts/src/assets/shop/script/item.js new file mode 100644 index 0000000..ee52025 --- /dev/null +++ b/temp/quick-scripts/src/assets/shop/script/item.js @@ -0,0 +1,63 @@ +"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(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/shop/script/item.js.map b/temp/quick-scripts/src/assets/shop/script/item.js.map new file mode 100644 index 0000000..42d5b3f --- /dev/null +++ b/temp/quick-scripts/src/assets/shop/script/item.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\shop\\script\\item.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEM,IAAA,KAAwB,EAAE,CAAC,UAAU,EAAnC,OAAO,aAAA,EAAE,QAAQ,cAAkB,CAAC;AAG5C;IAAsC,4BAAY;IAAlD;QAAA,qEA2BC;QAxBG,WAAK,GAAa,IAAI,CAAC;QAGvB,UAAI,GAAW,OAAO,CAAC;;QAoBvB,iBAAiB;IACrB,CAAC;IApBG,wBAAwB;IAExB,eAAe;IAEf,wBAAK,GAAL;IAEA,CAAC;IAED,QAAQ;IACR,0BAAO,GAAP,UAAQ,QAAQ;QACZ,4CAA4C;QAC5C,gDAAgD;QAChD,cAAc;QACd,IAAI;QACJ,yEAAyE;QACzE,6BAA6B;QAC7B,yCAAyC;IAC7C,CAAC;IArBD;QADC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;2CACI;IAGvB;QADC,QAAQ;0CACc;IANN,QAAQ;QAD5B,OAAO;OACa,QAAQ,CA2B5B;IAAD,eAAC;CA3BD,AA2BC,CA3BqC,EAAE,CAAC,SAAS,GA2BjD;kBA3BoB,QAAQ","file":"","sourceRoot":"/","sourcesContent":["\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class NewClass extends cc.Component {\n\n @property(cc.Label)\n label: cc.Label = null;\n\n @property\n text: string = 'hello';\n // LIFE-CYCLE CALLBACKS:\n\n // onLoad () {}\n\n start() {\n\n }\n\n //购买商品道具\n buyProp(propName) {\n // if(cc.fx.GameConfig.GM_INFO.coin < 1500){\n // MiniGameSdk.API.showToast(\"金币不足,无法购买道具\");\n // return;\n // }\n // let propWindow = this.node.parent.parent.getChildByName(\"propWindow\");\n // propWindow.active = false;\n // cc.fx.GameConfig.GM_INFO.coin -= 1500;\n }\n\n // update (dt) {}\n}\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/shop/script/shop.js b/temp/quick-scripts/src/assets/shop/script/shop.js new file mode 100644 index 0000000..b05539a --- /dev/null +++ b/temp/quick-scripts/src/assets/shop/script/shop.js @@ -0,0 +1,89 @@ +"use strict"; +cc._RF.push(module, '48bfeZuYFZE2qmgxbW2IigB', 'shop'); +// shop/script/shop.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.shop = null; + //商品列表 + _this.itemList = null; + return _this; + // update (dt) {} + } + // 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; + } + } + }; + //关闭商店界面 + 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; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/shop/script/shop.js.map b/temp/quick-scripts/src/assets/shop/script/shop.js.map new file mode 100644 index 0000000..0e61fc5 --- /dev/null +++ b/temp/quick-scripts/src/assets/shop/script/shop.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\shop\\script\\shop.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import List from \"../../Script/module/RankList/List\";\n\nconst { ccclass, property } = cc._decorator;\n\n@ccclass\nexport default class NewClass extends cc.Component {\n //商店界面\n @property(cc.Node)\n shop: cc.Node = null;\n //商品列表\n @property(cc.Node)\n itemList: cc.Node = null;\n // onLoad () {}\n\n start() {\n this.openShop();\n }\n //打开商店界面\n openShop() {\n // 商品数据数组\n const products = [\n { product_id: \"gold_pack_1\", name: \"金币包1\", price: 600, title: \"3x2六档金币\" },\n { product_id: \"gold_pack_2\", name: \"金币包2\", price: 3600, title: \"\" },\n { product_id: \"gold_pack_3\", name: \"金币包3\", price: 6800, title: \"\" },\n { product_id: \"gold_pack_4\", name: \"金币包4\", price: 12800, title: \"\" },\n { product_id: \"gold_pack_5\", name: \"金币包5\", price: 32800, title: \"\" },\n { product_id: \"gold_pack_6\", name: \"金币包6\", price: 64800, title: \"\" },\n { product_id: \"unlimited_health_bundle_1\", name: \"无限体力组合包1\", price: 1800, title: \"3个横版礼包\" },\n { product_id: \"unlimited_health_bundle_2\", name: \"无限体力组合包2\", price: 6600, title: \"\" }\n ];\n for (let i = 1; i <= 8 && i < this.itemList.children.length; i++) {\n const spriteComp = this.itemList.children[i].children[0].getComponent(cc.Sprite);\n const price = this.itemList.children[i].children[1].getComponent(cc.Label);\n const title = this.itemList.children[i].children[2].getComponent(cc.Label);\n const product = products[i - 1];\n if (spriteComp && product) {\n // TODO: 根据 product_id 或 name 设置 spriteComp.spriteFrame\n }\n if (price && product) {\n price.string = (product.price / 100).toString() + \"元\";\n }\n if (title && product) {\n title.string = product.name;\n }\n }\n }\n\n\n //关闭商店界面\n closeShop() {\n //销毁预制体\n this.shop.destroy();\n }\n\n // update (dt) {}\n}\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoAssembler.js b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoAssembler.js index 48962bc..28df069 100644 --- a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoAssembler.js +++ b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoAssembler.js @@ -6,17 +6,14 @@ cc._RF.push(module, '18d1c5ObBtCeaysyO5bMIgb', 'TmoAssembler'); exports.__esModule = true; exports.TmoAssembler = void 0; - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -var gfx = cc.gfx; // 颜色去除 + 物件图集合批 - +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var gfx = cc.gfx; +// 颜色去除 + 物件图集合批 var vfmtPosUvIndex = new gfx.VertexFormat([{ name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, @@ -29,8 +26,9 @@ var vfmtPosUvIndex = new gfx.VertexFormat([{ name: "a_texture_idx", type: gfx.ATTR_TYPE_FLOAT32, num: 1 -}]); // 仅物件图集合批 +}]); +// 仅物件图集合批 var vfmtPosUvColorIndex = new gfx.VertexFormat([{ name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, @@ -49,19 +47,14 @@ var vfmtPosUvColorIndex = new gfx.VertexFormat([{ num: 4, normalize: true }]); - var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { _inheritsLoose(TmoAssembler, _cc$Assembler); - function TmoAssembler() { return _cc$Assembler.apply(this, arguments) || this; } - var _proto = TmoAssembler.prototype; - _proto.init = function init(comp) { _cc$Assembler.prototype.init.call(this, comp); - this._noColor = comp.isNoColor(); this.updateColor = this._noColor ? undefined : this.updateColorFunc; this.uvOffset = 2; @@ -71,25 +64,21 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { this.indicesCount = 6; this.verticesCount = 4; this._renderData = new cc.RenderData(); - this._renderData.init(this); - this.initLocal(); this.initData(); }; - _proto.initLocal = function initLocal() { this._local = []; this._local.length = 4; }; - _proto.initData = function initData() { var data = this._renderData; - data.createFlexData(0, this.verticesCount, this.indicesCount, this.getVfmt()); // 填充顶点索引信息 + data.createFlexData(0, this.verticesCount, this.indicesCount, this.getVfmt()); + // 填充顶点索引信息 var indices = data.iDatas[0]; var count = indices.length / 6; - for (var i = 0, idx = 0; i < count; i++) { var vertextID = i * 4; indices[idx++] = vertextID; @@ -100,18 +89,14 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { indices[idx++] = vertextID + 2; } }; - _proto.getBuffer = function getBuffer() { return cc.renderer._handle.getBuffer("mesh", this.getVfmt()); }; - _proto.getVfmt = function getVfmt() { return this._noColor ? vfmtPosUvIndex : vfmtPosUvColorIndex; }; - _proto.updateRenderData = function updateRenderData(sprite) { this.packToDynamicAtlas(sprite, sprite._spriteFrame); - if (sprite._vertsDirty) { this.updateUVs(sprite); this.updateVerts(sprite); @@ -119,31 +104,27 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { sprite._vertsDirty = false; } } + /** * 填充textureIndex数据 * @param {cc.Sprite} sprite - */ - ; - + */; _proto.updateTextureIdx = function updateTextureIdx(sprite) { var textureIdx = sprite._textureIdx; var verts = this._renderData.vDatas[0]; var verticesCount = this.verticesCount; var floatsPerVert = this.floatsPerVert; var textureIndexOffset = this.textureIndexOffset; - for (var i = 0; i < verticesCount; i++) { var index = i * floatsPerVert + textureIndexOffset; verts[index] = textureIdx; } }; - _proto.updateUVs = function updateUVs(sprite) { var uv = sprite._spriteFrame.uv; var uvOffset = this.uvOffset; var floatsPerVert = this.floatsPerVert; var verts = this._renderData.vDatas[0]; - for (var i = 0; i < 4; i++) { var srcOffset = i * 2; var dstOffset = floatsPerVert * i + uvOffset; @@ -151,18 +132,16 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { verts[dstOffset + 1] = uv[srcOffset + 1]; } }; - _proto.updateVerts = function updateVerts(sprite) { var node = sprite.node, - cw = node.width, - ch = node.height, - appx = node.anchorX * cw, - appy = node.anchorY * ch, - l, - b, - r, - t; - + cw = node.width, + ch = node.height, + appx = node.anchorX * cw, + appy = node.anchorY * ch, + l, + b, + r, + t; if (sprite.trim) { l = -appx; b = -appy; @@ -170,13 +149,13 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { t = ch - appy; } else { var frame = sprite.spriteFrame, - ow = frame._originalSize.width, - oh = frame._originalSize.height, - rw = frame._rect.width, - rh = frame._rect.height, - offset = frame._offset, - scaleX = cw / ow, - scaleY = ch / oh; + ow = frame._originalSize.width, + oh = frame._originalSize.height, + rw = frame._rect.width, + rh = frame._rect.height, + offset = frame._offset, + scaleX = cw / ow, + scaleY = ch / oh; var trimLeft = offset.x + (ow - rw) / 2; var trimRight = offset.x - (ow - rw) / 2; var trimBottom = offset.y + (oh - rh) / 2; @@ -186,7 +165,6 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { r = cw + trimRight * scaleX - appx; t = ch + trimTop * scaleY - appy; } - var local = this._local; local[0] = l; local[1] = b; @@ -194,28 +172,25 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { local[3] = t; this.updateWorldVerts(sprite); }; - _proto.updateColorFunc = function updateColorFunc(comp, color) { var uintVerts = this._renderData.uintVDatas[0]; if (!uintVerts) return; color = color != null ? color : comp.node.color._val; var floatsPerVert = this.floatsPerVert; var colorOffset = this.colorOffset; - for (var i = colorOffset, l = uintVerts.length; i < l; i += floatsPerVert) { uintVerts[i] = color; } }; - _proto.updateWorldVerts = function updateWorldVerts(comp) { if (CC_NATIVERENDERER) { // 原生平台兼容代码 复制于jsb-engine.js中的cc.Assembler2D.prototype.updateWorldVerts var local = this._local; var verts = this._renderData.vDatas[0]; var vl = local[0], - vr = local[2], - vb = local[1], - vt = local[3]; + vr = local[2], + vb = local[1], + vt = local[3]; var floatsPerVert = this.floatsPerVert; var vertexOffset = 0; // left bottom @@ -238,127 +213,116 @@ var TmoAssembler = /*#__PURE__*/function (_cc$Assembler) { var _verts = this._renderData.vDatas[0]; var matrix = comp.node._worldMatrix; var matrixm = matrix.m, - a = matrixm[0], - b = matrixm[1], - c = matrixm[4], - d = matrixm[5], - tx = matrixm[12], - ty = matrixm[13]; + a = matrixm[0], + b = matrixm[1], + c = matrixm[4], + d = matrixm[5], + tx = matrixm[12], + ty = matrixm[13]; var _vl = _local[0], - _vr = _local[2], - _vb = _local[1], - _vt = _local[3]; + _vr = _local[2], + _vb = _local[1], + _vt = _local[3]; var _floatsPerVert = this.floatsPerVert; var _vertexOffset = 0; var justTranslate = a === 1 && b === 0 && c === 0 && d === 1; - if (justTranslate) { // left bottom _verts[_vertexOffset] = _vl + tx; _verts[_vertexOffset + 1] = _vb + ty; - _vertexOffset += _floatsPerVert; // right bottom - + _vertexOffset += _floatsPerVert; + // right bottom _verts[_vertexOffset] = _vr + tx; _verts[_vertexOffset + 1] = _vb + ty; - _vertexOffset += _floatsPerVert; // left top - + _vertexOffset += _floatsPerVert; + // left top _verts[_vertexOffset] = _vl + tx; _verts[_vertexOffset + 1] = _vt + ty; - _vertexOffset += _floatsPerVert; // right top - + _vertexOffset += _floatsPerVert; + // right top _verts[_vertexOffset] = _vr + tx; _verts[_vertexOffset + 1] = _vt + ty; } else { var al = a * _vl, - ar = a * _vr, - bl = b * _vl, - br = b * _vr, - cb = c * _vb, - ct = c * _vt, - db = d * _vb, - dt = d * _vt; // left bottom + ar = a * _vr, + bl = b * _vl, + br = b * _vr, + cb = c * _vb, + ct = c * _vt, + db = d * _vb, + dt = d * _vt; + // left bottom _verts[_vertexOffset] = al + cb + tx; _verts[_vertexOffset + 1] = bl + db + ty; - _vertexOffset += _floatsPerVert; // right bottom - + _vertexOffset += _floatsPerVert; + // right bottom _verts[_vertexOffset] = ar + cb + tx; _verts[_vertexOffset + 1] = br + db + ty; - _vertexOffset += _floatsPerVert; // left top - + _vertexOffset += _floatsPerVert; + // left top _verts[_vertexOffset] = al + ct + tx; _verts[_vertexOffset + 1] = bl + dt + ty; - _vertexOffset += _floatsPerVert; // right top - + _vertexOffset += _floatsPerVert; + // right top _verts[_vertexOffset] = ar + ct + tx; _verts[_vertexOffset + 1] = br + dt + ty; } } }; - _proto.fillBuffers = function fillBuffers(comp, renderer) { if (renderer.worldMatDirty) { this.updateWorldVerts(comp); } - var renderData = this._renderData; var vData = renderData.vDatas[0]; var iData = renderData.iDatas[0]; var buffer = this.getBuffer(renderer); - var offsetInfo = buffer.request(this.verticesCount, this.indicesCount); // buffer data may be realloc, need get reference after request. + var offsetInfo = buffer.request(this.verticesCount, this.indicesCount); + + // buffer data may be realloc, need get reference after request. + // fill vertices - var vertexOffset = offsetInfo.byteOffset >> 2, - vbuf = buffer._vData; - + vbuf = buffer._vData; if (vData.length + vertexOffset > vbuf.length) { vbuf.set(vData.subarray(0, vbuf.length - vertexOffset), vertexOffset); } else { vbuf.set(vData, vertexOffset); - } // fill indices - + } + // fill indices var ibuf = buffer._iData, - indiceOffset = offsetInfo.indiceOffset, - vertexId = offsetInfo.vertexOffset; - + indiceOffset = offsetInfo.indiceOffset, + vertexId = offsetInfo.vertexOffset; for (var i = 0, l = iData.length; i < l; i++) { ibuf[indiceOffset++] = vertexId + iData[i]; } }; - _proto.packToDynamicAtlas = function packToDynamicAtlas(comp, frame) { if (CC_TEST) return; - if (!frame._original && cc.dynamicAtlasManager && frame._texture.packable) { var packedFrame = cc.dynamicAtlasManager.insertSpriteFrame(frame); - if (packedFrame) { frame._setDynamicAtlasFrame(packedFrame); } } - var material = comp._materials[0]; if (!material) return; - if (material.getProperty('texture') !== frame._texture) { // texture was packed to dynamic atlas, should update uvs comp._vertsDirty = true; - comp._updateMaterial(); } }; - _createClass(TmoAssembler, [{ key: "verticesFloats", get: function get() { return this.verticesCount * this.floatsPerVert; } }]); - return TmoAssembler; }(cc.Assembler); - exports.TmoAssembler = TmoAssembler; cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoAssembler.js.map b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoAssembler.js.map index 157674a..3bf0289 100644 --- a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoAssembler.js.map +++ b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoAssembler.js.map @@ -1 +1 @@ -{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoAssembler.js"],"names":["gfx","cc","vfmtPosUvIndex","VertexFormat","name","ATTR_POSITION","type","ATTR_TYPE_FLOAT32","num","ATTR_UV0","vfmtPosUvColorIndex","ATTR_COLOR","ATTR_TYPE_UINT8","normalize","TmoAssembler","init","comp","_noColor","isNoColor","updateColor","undefined","updateColorFunc","uvOffset","colorOffset","textureIndexOffset","floatsPerVert","indicesCount","verticesCount","_renderData","RenderData","initLocal","initData","_local","length","data","createFlexData","getVfmt","indices","iDatas","count","i","idx","vertextID","getBuffer","renderer","_handle","updateRenderData","sprite","packToDynamicAtlas","_spriteFrame","_vertsDirty","updateUVs","updateVerts","updateTextureIdx","textureIdx","_textureIdx","verts","vDatas","index","uv","srcOffset","dstOffset","node","cw","width","ch","height","appx","anchorX","appy","anchorY","l","b","r","t","trim","frame","spriteFrame","ow","_originalSize","oh","rw","_rect","rh","offset","_offset","scaleX","scaleY","trimLeft","x","trimRight","trimBottom","y","trimTop","local","updateWorldVerts","color","uintVerts","uintVDatas","_val","CC_NATIVERENDERER","vl","vr","vb","vt","vertexOffset","matrix","_worldMatrix","matrixm","m","a","c","d","tx","ty","justTranslate","al","ar","bl","br","cb","ct","db","dt","fillBuffers","worldMatDirty","renderData","vData","iData","buffer","offsetInfo","request","byteOffset","vbuf","_vData","set","subarray","ibuf","_iData","indiceOffset","vertexId","CC_TEST","_original","dynamicAtlasManager","_texture","packable","packedFrame","insertSpriteFrame","_setDynamicAtlasFrame","material","_materials","getProperty","_updateMaterial","Assembler"],"mappings":"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","sourceRoot":"/","sourcesContent":["let gfx = cc.gfx;\r\n// 颜色去除 + 物件图集合批\r\nvar vfmtPosUvIndex = new gfx.VertexFormat([\r\n { name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: gfx.ATTR_UV0, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: \"a_texture_idx\", type: gfx.ATTR_TYPE_FLOAT32, num: 1 },\r\n]);\r\n\r\n// 仅物件图集合批\r\nvar vfmtPosUvColorIndex = new gfx.VertexFormat([\r\n { name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: gfx.ATTR_UV0, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: \"a_texture_idx\", type: gfx.ATTR_TYPE_FLOAT32, num: 1 },\r\n { name: gfx.ATTR_COLOR, type: gfx.ATTR_TYPE_UINT8, num: 4, normalize: true },\r\n]);\r\n\r\nexport class TmoAssembler extends cc.Assembler {\r\n init(comp) {\r\n super.init(comp);\r\n\r\n this._noColor = comp.isNoColor();\r\n this.updateColor = this._noColor ? undefined : this.updateColorFunc;\r\n\r\n this.uvOffset = 2;\r\n this.colorOffset = 5;\r\n this.textureIndexOffset = 4;\r\n this.floatsPerVert = this._noColor ? 5 : 6;\r\n\r\n this.indicesCount = 6;\r\n this.verticesCount = 4;\r\n\r\n this._renderData = new cc.RenderData();\r\n this._renderData.init(this);\r\n\r\n this.initLocal();\r\n this.initData();\r\n }\r\n\r\n initLocal() {\r\n this._local = [];\r\n this._local.length = 4;\r\n }\r\n\r\n initData() {\r\n let data = this._renderData;\r\n data.createFlexData(0, this.verticesCount, this.indicesCount, this.getVfmt());\r\n\r\n // 填充顶点索引信息\r\n let indices = data.iDatas[0];\r\n let count = indices.length / 6;\r\n for (let i = 0, idx = 0; i < count; i++) {\r\n let vertextID = i * 4;\r\n indices[idx++] = vertextID;\r\n indices[idx++] = vertextID + 1;\r\n indices[idx++] = vertextID + 2;\r\n indices[idx++] = vertextID + 1;\r\n indices[idx++] = vertextID + 3;\r\n indices[idx++] = vertextID + 2;\r\n }\r\n }\r\n\r\n getBuffer() {\r\n return cc.renderer._handle.getBuffer(\"mesh\", this.getVfmt());\r\n }\r\n\r\n getVfmt() {\r\n return this._noColor ? vfmtPosUvIndex : vfmtPosUvColorIndex;\r\n }\r\n\r\n updateRenderData(sprite) {\r\n this.packToDynamicAtlas(sprite, sprite._spriteFrame);\r\n\r\n if (sprite._vertsDirty) {\r\n this.updateUVs(sprite);\r\n this.updateVerts(sprite);\r\n this.updateTextureIdx(sprite);\r\n sprite._vertsDirty = false;\r\n }\r\n }\r\n\r\n /**\r\n * 填充textureIndex数据\r\n * @param {cc.Sprite} sprite \r\n */\r\n updateTextureIdx(sprite) {\r\n let textureIdx = sprite._textureIdx;\r\n let verts = this._renderData.vDatas[0];\r\n\r\n let verticesCount = this.verticesCount;\r\n let floatsPerVert = this.floatsPerVert;\r\n let textureIndexOffset = this.textureIndexOffset;\r\n\r\n for (let i = 0; i < verticesCount; i++) {\r\n let index = i * floatsPerVert + textureIndexOffset;\r\n verts[index] = textureIdx;\r\n }\r\n }\r\n\r\n updateUVs(sprite) {\r\n let uv = sprite._spriteFrame.uv;\r\n let uvOffset = this.uvOffset;\r\n let floatsPerVert = this.floatsPerVert;\r\n let verts = this._renderData.vDatas[0];\r\n for (let i = 0; i < 4; i++) {\r\n let srcOffset = i * 2;\r\n let dstOffset = floatsPerVert * i + uvOffset;\r\n verts[dstOffset] = uv[srcOffset];\r\n verts[dstOffset + 1] = uv[srcOffset + 1];\r\n }\r\n }\r\n\r\n updateVerts(sprite) {\r\n let node = sprite.node,\r\n cw = node.width, ch = node.height,\r\n appx = node.anchorX * cw, appy = node.anchorY * ch,\r\n l, b, r, t;\r\n if (sprite.trim) {\r\n l = -appx;\r\n b = -appy;\r\n r = cw - appx;\r\n t = ch - appy;\r\n }\r\n else {\r\n let frame = sprite.spriteFrame,\r\n ow = frame._originalSize.width, oh = frame._originalSize.height,\r\n rw = frame._rect.width, rh = frame._rect.height,\r\n offset = frame._offset,\r\n scaleX = cw / ow, scaleY = ch / oh;\r\n let trimLeft = offset.x + (ow - rw) / 2;\r\n let trimRight = offset.x - (ow - rw) / 2;\r\n let trimBottom = offset.y + (oh - rh) / 2;\r\n let trimTop = offset.y - (oh - rh) / 2;\r\n l = trimLeft * scaleX - appx;\r\n b = trimBottom * scaleY - appy;\r\n r = cw + trimRight * scaleX - appx;\r\n t = ch + trimTop * scaleY - appy;\r\n }\r\n\r\n let local = this._local;\r\n local[0] = l;\r\n local[1] = b;\r\n local[2] = r;\r\n local[3] = t;\r\n this.updateWorldVerts(sprite);\r\n }\r\n\r\n get verticesFloats() {\r\n return this.verticesCount * this.floatsPerVert;\r\n }\r\n\r\n updateColorFunc(comp, color) {\r\n let uintVerts = this._renderData.uintVDatas[0];\r\n if (!uintVerts) return;\r\n color = color != null ? color : comp.node.color._val;\r\n let floatsPerVert = this.floatsPerVert;\r\n let colorOffset = this.colorOffset;\r\n for (let i = colorOffset, l = uintVerts.length; i < l; i += floatsPerVert) {\r\n uintVerts[i] = color;\r\n }\r\n }\r\n\r\n updateWorldVerts(comp) {\r\n if (CC_NATIVERENDERER) {\r\n // 原生平台兼容代码 复制于jsb-engine.js中的cc.Assembler2D.prototype.updateWorldVerts\r\n var local = this._local;\r\n var verts = this._renderData.vDatas[0];\r\n var vl = local[0],\r\n vr = local[2],\r\n vb = local[1],\r\n vt = local[3];\r\n var floatsPerVert = this.floatsPerVert;\r\n var vertexOffset = 0; // left bottom\r\n\r\n verts[vertexOffset] = vl;\r\n verts[vertexOffset + 1] = vb;\r\n vertexOffset += floatsPerVert; // right bottom\r\n\r\n verts[vertexOffset] = vr;\r\n verts[vertexOffset + 1] = vb;\r\n vertexOffset += floatsPerVert; // left top\r\n\r\n verts[vertexOffset] = vl;\r\n verts[vertexOffset + 1] = vt;\r\n vertexOffset += floatsPerVert; // right top\r\n\r\n verts[vertexOffset] = vr;\r\n verts[vertexOffset + 1] = vt;\r\n } else {\r\n let local = this._local;\r\n let verts = this._renderData.vDatas[0];\r\n\r\n let matrix = comp.node._worldMatrix;\r\n let matrixm = matrix.m,\r\n a = matrixm[0], b = matrixm[1], c = matrixm[4], d = matrixm[5],\r\n tx = matrixm[12], ty = matrixm[13];\r\n\r\n let vl = local[0], vr = local[2],\r\n vb = local[1], vt = local[3];\r\n\r\n let floatsPerVert = this.floatsPerVert;\r\n let vertexOffset = 0;\r\n let justTranslate = a === 1 && b === 0 && c === 0 && d === 1;\r\n\r\n if (justTranslate) {\r\n // left bottom\r\n verts[vertexOffset] = vl + tx;\r\n verts[vertexOffset + 1] = vb + ty;\r\n vertexOffset += floatsPerVert;\r\n // right bottom\r\n verts[vertexOffset] = vr + tx;\r\n verts[vertexOffset + 1] = vb + ty;\r\n vertexOffset += floatsPerVert;\r\n // left top\r\n verts[vertexOffset] = vl + tx;\r\n verts[vertexOffset + 1] = vt + ty;\r\n vertexOffset += floatsPerVert;\r\n // right top\r\n verts[vertexOffset] = vr + tx;\r\n verts[vertexOffset + 1] = vt + ty;\r\n } else {\r\n let al = a * vl, ar = a * vr,\r\n bl = b * vl, br = b * vr,\r\n cb = c * vb, ct = c * vt,\r\n db = d * vb, dt = d * vt;\r\n\r\n // left bottom\r\n verts[vertexOffset] = al + cb + tx;\r\n verts[vertexOffset + 1] = bl + db + ty;\r\n vertexOffset += floatsPerVert;\r\n // right bottom\r\n verts[vertexOffset] = ar + cb + tx;\r\n verts[vertexOffset + 1] = br + db + ty;\r\n vertexOffset += floatsPerVert;\r\n // left top\r\n verts[vertexOffset] = al + ct + tx;\r\n verts[vertexOffset + 1] = bl + dt + ty;\r\n vertexOffset += floatsPerVert;\r\n // right top\r\n verts[vertexOffset] = ar + ct + tx;\r\n verts[vertexOffset + 1] = br + dt + ty;\r\n }\r\n }\r\n }\r\n\r\n fillBuffers(comp, renderer) {\r\n if (renderer.worldMatDirty) {\r\n this.updateWorldVerts(comp);\r\n }\r\n\r\n let renderData = this._renderData;\r\n let vData = renderData.vDatas[0];\r\n let iData = renderData.iDatas[0];\r\n\r\n let buffer = this.getBuffer(renderer);\r\n let offsetInfo = buffer.request(this.verticesCount, this.indicesCount);\r\n\r\n // buffer data may be realloc, need get reference after request.\r\n\r\n // fill vertices\r\n let vertexOffset = offsetInfo.byteOffset >> 2,\r\n vbuf = buffer._vData;\r\n\r\n if (vData.length + vertexOffset > vbuf.length) {\r\n vbuf.set(vData.subarray(0, vbuf.length - vertexOffset), vertexOffset);\r\n } else {\r\n vbuf.set(vData, vertexOffset);\r\n }\r\n\r\n // fill indices\r\n let ibuf = buffer._iData,\r\n indiceOffset = offsetInfo.indiceOffset,\r\n vertexId = offsetInfo.vertexOffset;\r\n for (let i = 0, l = iData.length; i < l; i++) {\r\n ibuf[indiceOffset++] = vertexId + iData[i];\r\n }\r\n }\r\n\r\n packToDynamicAtlas(comp, frame) {\r\n if (CC_TEST) return;\r\n\r\n if (!frame._original && cc.dynamicAtlasManager && frame._texture.packable) {\r\n let packedFrame = cc.dynamicAtlasManager.insertSpriteFrame(frame);\r\n if (packedFrame) {\r\n frame._setDynamicAtlasFrame(packedFrame);\r\n }\r\n }\r\n let material = comp._materials[0];\r\n if (!material) return;\r\n\r\n if (material.getProperty('texture') !== frame._texture) {\r\n // texture was packed to dynamic atlas, should update uvs\r\n comp._vertsDirty = true;\r\n comp._updateMaterial();\r\n }\r\n }\r\n}"]} \ No newline at end of file +{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoAssembler.js"],"names":["gfx","cc","vfmtPosUvIndex","VertexFormat","name","ATTR_POSITION","type","ATTR_TYPE_FLOAT32","num","ATTR_UV0","vfmtPosUvColorIndex","ATTR_COLOR","ATTR_TYPE_UINT8","normalize","TmoAssembler","_cc$Assembler","_inheritsLoose","apply","arguments","_proto","prototype","init","comp","call","_noColor","isNoColor","updateColor","undefined","updateColorFunc","uvOffset","colorOffset","textureIndexOffset","floatsPerVert","indicesCount","verticesCount","_renderData","RenderData","initLocal","initData","_local","length","data","createFlexData","getVfmt","indices","iDatas","count","i","idx","vertextID","getBuffer","renderer","_handle","updateRenderData","sprite","packToDynamicAtlas","_spriteFrame","_vertsDirty","updateUVs","updateVerts","updateTextureIdx","textureIdx","_textureIdx","verts","vDatas","index","uv","srcOffset","dstOffset","node","cw","width","ch","height","appx","anchorX","appy","anchorY","l","b","r","t","trim","frame","spriteFrame","ow","_originalSize","oh","rw","_rect","rh","offset","_offset","scaleX","scaleY","trimLeft","x","trimRight","trimBottom","y","trimTop","local","updateWorldVerts","color","uintVerts","uintVDatas","_val","CC_NATIVERENDERER","vl","vr","vb","vt","vertexOffset","matrix","_worldMatrix","matrixm","m","a","c","d","tx","ty","justTranslate","al","ar","bl","br","cb","ct","db","dt","fillBuffers","worldMatDirty","renderData","vData","iData","buffer","offsetInfo","request","byteOffset","vbuf","_vData","set","subarray","ibuf","_iData","indiceOffset","vertexId","CC_TEST","_original","dynamicAtlasManager","_texture","packable","packedFrame","insertSpriteFrame","_setDynamicAtlasFrame","material","_materials","getProperty","_updateMaterial","_createClass","key","get","Assembler","exports"],"mappings":"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","sourceRoot":"/","sourcesContent":["let gfx = cc.gfx;\r\n// 颜色去除 + 物件图集合批\r\nvar vfmtPosUvIndex = new gfx.VertexFormat([\r\n { name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: gfx.ATTR_UV0, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: \"a_texture_idx\", type: gfx.ATTR_TYPE_FLOAT32, num: 1 },\r\n]);\r\n\r\n// 仅物件图集合批\r\nvar vfmtPosUvColorIndex = new gfx.VertexFormat([\r\n { name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: gfx.ATTR_UV0, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: \"a_texture_idx\", type: gfx.ATTR_TYPE_FLOAT32, num: 1 },\r\n { name: gfx.ATTR_COLOR, type: gfx.ATTR_TYPE_UINT8, num: 4, normalize: true },\r\n]);\r\n\r\nexport class TmoAssembler extends cc.Assembler {\r\n init(comp) {\r\n super.init(comp);\r\n\r\n this._noColor = comp.isNoColor();\r\n this.updateColor = this._noColor ? undefined : this.updateColorFunc;\r\n\r\n this.uvOffset = 2;\r\n this.colorOffset = 5;\r\n this.textureIndexOffset = 4;\r\n this.floatsPerVert = this._noColor ? 5 : 6;\r\n\r\n this.indicesCount = 6;\r\n this.verticesCount = 4;\r\n\r\n this._renderData = new cc.RenderData();\r\n this._renderData.init(this);\r\n\r\n this.initLocal();\r\n this.initData();\r\n }\r\n\r\n initLocal() {\r\n this._local = [];\r\n this._local.length = 4;\r\n }\r\n\r\n initData() {\r\n let data = this._renderData;\r\n data.createFlexData(0, this.verticesCount, this.indicesCount, this.getVfmt());\r\n\r\n // 填充顶点索引信息\r\n let indices = data.iDatas[0];\r\n let count = indices.length / 6;\r\n for (let i = 0, idx = 0; i < count; i++) {\r\n let vertextID = i * 4;\r\n indices[idx++] = vertextID;\r\n indices[idx++] = vertextID + 1;\r\n indices[idx++] = vertextID + 2;\r\n indices[idx++] = vertextID + 1;\r\n indices[idx++] = vertextID + 3;\r\n indices[idx++] = vertextID + 2;\r\n }\r\n }\r\n\r\n getBuffer() {\r\n return cc.renderer._handle.getBuffer(\"mesh\", this.getVfmt());\r\n }\r\n\r\n getVfmt() {\r\n return this._noColor ? vfmtPosUvIndex : vfmtPosUvColorIndex;\r\n }\r\n\r\n updateRenderData(sprite) {\r\n this.packToDynamicAtlas(sprite, sprite._spriteFrame);\r\n\r\n if (sprite._vertsDirty) {\r\n this.updateUVs(sprite);\r\n this.updateVerts(sprite);\r\n this.updateTextureIdx(sprite);\r\n sprite._vertsDirty = false;\r\n }\r\n }\r\n\r\n /**\r\n * 填充textureIndex数据\r\n * @param {cc.Sprite} sprite \r\n */\r\n updateTextureIdx(sprite) {\r\n let textureIdx = sprite._textureIdx;\r\n let verts = this._renderData.vDatas[0];\r\n\r\n let verticesCount = this.verticesCount;\r\n let floatsPerVert = this.floatsPerVert;\r\n let textureIndexOffset = this.textureIndexOffset;\r\n\r\n for (let i = 0; i < verticesCount; i++) {\r\n let index = i * floatsPerVert + textureIndexOffset;\r\n verts[index] = textureIdx;\r\n }\r\n }\r\n\r\n updateUVs(sprite) {\r\n let uv = sprite._spriteFrame.uv;\r\n let uvOffset = this.uvOffset;\r\n let floatsPerVert = this.floatsPerVert;\r\n let verts = this._renderData.vDatas[0];\r\n for (let i = 0; i < 4; i++) {\r\n let srcOffset = i * 2;\r\n let dstOffset = floatsPerVert * i + uvOffset;\r\n verts[dstOffset] = uv[srcOffset];\r\n verts[dstOffset + 1] = uv[srcOffset + 1];\r\n }\r\n }\r\n\r\n updateVerts(sprite) {\r\n let node = sprite.node,\r\n cw = node.width, ch = node.height,\r\n appx = node.anchorX * cw, appy = node.anchorY * ch,\r\n l, b, r, t;\r\n if (sprite.trim) {\r\n l = -appx;\r\n b = -appy;\r\n r = cw - appx;\r\n t = ch - appy;\r\n }\r\n else {\r\n let frame = sprite.spriteFrame,\r\n ow = frame._originalSize.width, oh = frame._originalSize.height,\r\n rw = frame._rect.width, rh = frame._rect.height,\r\n offset = frame._offset,\r\n scaleX = cw / ow, scaleY = ch / oh;\r\n let trimLeft = offset.x + (ow - rw) / 2;\r\n let trimRight = offset.x - (ow - rw) / 2;\r\n let trimBottom = offset.y + (oh - rh) / 2;\r\n let trimTop = offset.y - (oh - rh) / 2;\r\n l = trimLeft * scaleX - appx;\r\n b = trimBottom * scaleY - appy;\r\n r = cw + trimRight * scaleX - appx;\r\n t = ch + trimTop * scaleY - appy;\r\n }\r\n\r\n let local = this._local;\r\n local[0] = l;\r\n local[1] = b;\r\n local[2] = r;\r\n local[3] = t;\r\n this.updateWorldVerts(sprite);\r\n }\r\n\r\n get verticesFloats() {\r\n return this.verticesCount * this.floatsPerVert;\r\n }\r\n\r\n updateColorFunc(comp, color) {\r\n let uintVerts = this._renderData.uintVDatas[0];\r\n if (!uintVerts) return;\r\n color = color != null ? color : comp.node.color._val;\r\n let floatsPerVert = this.floatsPerVert;\r\n let colorOffset = this.colorOffset;\r\n for (let i = colorOffset, l = uintVerts.length; i < l; i += floatsPerVert) {\r\n uintVerts[i] = color;\r\n }\r\n }\r\n\r\n updateWorldVerts(comp) {\r\n if (CC_NATIVERENDERER) {\r\n // 原生平台兼容代码 复制于jsb-engine.js中的cc.Assembler2D.prototype.updateWorldVerts\r\n var local = this._local;\r\n var verts = this._renderData.vDatas[0];\r\n var vl = local[0],\r\n vr = local[2],\r\n vb = local[1],\r\n vt = local[3];\r\n var floatsPerVert = this.floatsPerVert;\r\n var vertexOffset = 0; // left bottom\r\n\r\n verts[vertexOffset] = vl;\r\n verts[vertexOffset + 1] = vb;\r\n vertexOffset += floatsPerVert; // right bottom\r\n\r\n verts[vertexOffset] = vr;\r\n verts[vertexOffset + 1] = vb;\r\n vertexOffset += floatsPerVert; // left top\r\n\r\n verts[vertexOffset] = vl;\r\n verts[vertexOffset + 1] = vt;\r\n vertexOffset += floatsPerVert; // right top\r\n\r\n verts[vertexOffset] = vr;\r\n verts[vertexOffset + 1] = vt;\r\n } else {\r\n let local = this._local;\r\n let verts = this._renderData.vDatas[0];\r\n\r\n let matrix = comp.node._worldMatrix;\r\n let matrixm = matrix.m,\r\n a = matrixm[0], b = matrixm[1], c = matrixm[4], d = matrixm[5],\r\n tx = matrixm[12], ty = matrixm[13];\r\n\r\n let vl = local[0], vr = local[2],\r\n vb = local[1], vt = local[3];\r\n\r\n let floatsPerVert = this.floatsPerVert;\r\n let vertexOffset = 0;\r\n let justTranslate = a === 1 && b === 0 && c === 0 && d === 1;\r\n\r\n if (justTranslate) {\r\n // left bottom\r\n verts[vertexOffset] = vl + tx;\r\n verts[vertexOffset + 1] = vb + ty;\r\n vertexOffset += floatsPerVert;\r\n // right bottom\r\n verts[vertexOffset] = vr + tx;\r\n verts[vertexOffset + 1] = vb + ty;\r\n vertexOffset += floatsPerVert;\r\n // left top\r\n verts[vertexOffset] = vl + tx;\r\n verts[vertexOffset + 1] = vt + ty;\r\n vertexOffset += floatsPerVert;\r\n // right top\r\n verts[vertexOffset] = vr + tx;\r\n verts[vertexOffset + 1] = vt + ty;\r\n } else {\r\n let al = a * vl, ar = a * vr,\r\n bl = b * vl, br = b * vr,\r\n cb = c * vb, ct = c * vt,\r\n db = d * vb, dt = d * vt;\r\n\r\n // left bottom\r\n verts[vertexOffset] = al + cb + tx;\r\n verts[vertexOffset + 1] = bl + db + ty;\r\n vertexOffset += floatsPerVert;\r\n // right bottom\r\n verts[vertexOffset] = ar + cb + tx;\r\n verts[vertexOffset + 1] = br + db + ty;\r\n vertexOffset += floatsPerVert;\r\n // left top\r\n verts[vertexOffset] = al + ct + tx;\r\n verts[vertexOffset + 1] = bl + dt + ty;\r\n vertexOffset += floatsPerVert;\r\n // right top\r\n verts[vertexOffset] = ar + ct + tx;\r\n verts[vertexOffset + 1] = br + dt + ty;\r\n }\r\n }\r\n }\r\n\r\n fillBuffers(comp, renderer) {\r\n if (renderer.worldMatDirty) {\r\n this.updateWorldVerts(comp);\r\n }\r\n\r\n let renderData = this._renderData;\r\n let vData = renderData.vDatas[0];\r\n let iData = renderData.iDatas[0];\r\n\r\n let buffer = this.getBuffer(renderer);\r\n let offsetInfo = buffer.request(this.verticesCount, this.indicesCount);\r\n\r\n // buffer data may be realloc, need get reference after request.\r\n\r\n // fill vertices\r\n let vertexOffset = offsetInfo.byteOffset >> 2,\r\n vbuf = buffer._vData;\r\n\r\n if (vData.length + vertexOffset > vbuf.length) {\r\n vbuf.set(vData.subarray(0, vbuf.length - vertexOffset), vertexOffset);\r\n } else {\r\n vbuf.set(vData, vertexOffset);\r\n }\r\n\r\n // fill indices\r\n let ibuf = buffer._iData,\r\n indiceOffset = offsetInfo.indiceOffset,\r\n vertexId = offsetInfo.vertexOffset;\r\n for (let i = 0, l = iData.length; i < l; i++) {\r\n ibuf[indiceOffset++] = vertexId + iData[i];\r\n }\r\n }\r\n\r\n packToDynamicAtlas(comp, frame) {\r\n if (CC_TEST) return;\r\n\r\n if (!frame._original && cc.dynamicAtlasManager && frame._texture.packable) {\r\n let packedFrame = cc.dynamicAtlasManager.insertSpriteFrame(frame);\r\n if (packedFrame) {\r\n frame._setDynamicAtlasFrame(packedFrame);\r\n }\r\n }\r\n let material = comp._materials[0];\r\n if (!material) return;\r\n\r\n if (material.getProperty('texture') !== frame._texture) {\r\n // texture was packed to dynamic atlas, should update uvs\r\n comp._vertsDirty = true;\r\n comp._updateMaterial();\r\n }\r\n }\r\n}"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoObjectGroup.js b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoObjectGroup.js index f18b02f..3690afb 100644 --- a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoObjectGroup.js +++ b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoObjectGroup.js @@ -6,15 +6,14 @@ cc._RF.push(module, '30e2eSQWDNKI69FbaYfN62j', 'TmoObjectGroup'); 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 TmoSprite = require("./TmoSprite"); var _default = cc.Class({ "extends": cc.TiledObjectGroup, _init: function _init(groupInfo, mapInfo, texGrids, tiledMap) { @@ -35,8 +34,7 @@ var _default = cc.Class({ var mapSize = mapInfo._mapSize; var tileSize = mapInfo._tileSize; var width = 0, - height = 0; - + height = 0; if (mapInfo.orientation === Orientation.HEX) { if (mapInfo.getStaggerAxis() === StaggerAxis.STAGGERAXIS_X) { height = tileSize.height * (mapSize.height + 0.5); @@ -53,31 +51,28 @@ var _default = cc.Class({ 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 = {}; // 生成映射Map { Texture2D: textureIndex } + 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; } } - if (Orientation.ISO !== mapInfo.orientation) { object.y = height - object.y; } else { @@ -86,16 +81,13 @@ var _default = cc.Class({ 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; @@ -108,11 +100,9 @@ var _default = cc.Class({ 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; @@ -122,7 +112,6 @@ var _default = cc.Class({ textNode.width = object.width; textNode.height = object.height; } - if (objType === TMXObjectType.IMAGE) { var gid = object.gid; var grid = texGrids[(gid & FLIPPED_MASK) >>> 0]; @@ -134,19 +123,18 @@ var _default = cc.Class({ 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 + 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; @@ -154,7 +142,6 @@ var _default = cc.Class({ imgNode.anchorX = tileOffsetX / imgWidth; imgNode.anchorY = tileOffsetY / imgHeight; } - imgNode.active = object.visible; imgNode.angle = -object.rotation; imgNode.x = object.x - leftTopX; @@ -165,53 +152,48 @@ var _default = cc.Class({ 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 + sp.setVertsDirty(); + // object group may has no width or height info imgNode.width = imgWidth; - imgNode.height = imgHeight; // 收集图集 更新textureIndexMap + imgNode.height = imgHeight; + // 收集图集 更新textureIndexMap if (!textureIndexMap.has(sourceImage)) { textureIndexMap.set(sourceImage, objectTextures.length); objectTextures.push(sourceImage); - } // 设置textureIndex - + } + // 设置textureIndex var textureIndex = textureIndexMap.get(sourceImage); sp.setTextureIdx(textureIndex + 1); } } + this._objects = objects; - this._objects = objects; // destroy useless node - + // 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; @@ -220,7 +202,6 @@ var _default = cc.Class({ } } }); - exports["default"] = _default; module.exports = exports["default"]; diff --git a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoObjectGroup.js.map b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoObjectGroup.js.map index 90b54d5..56cd57c 100644 --- a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoObjectGroup.js.map +++ b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoObjectGroup.js.map @@ -1 +1 @@ -{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoObjectGroup.js"],"names":["TmoSprite","require","cc","Class","TiledObjectGroup","_init","groupInfo","mapInfo","texGrids","tiledMap","TiledMap","TMXObjectType","Orientation","StaggerAxis","TileFlag","FLIPPED_MASK","FLAG_HORIZONTAL","HORIZONTAL","FLAG_VERTICAL","VERTICAL","_groupName","name","_positionOffset","offset","_mapInfo","_properties","getProperties","_offset","v2","x","y","_opacity","mapSize","_mapSize","tileSize","_tileSize","width","height","orientation","HEX","getStaggerAxis","STAGGERAXIS_X","getHexSideLength","Math","floor","ISO","wh","node","setContentSize","leftTopX","anchorX","leftTopY","anchorY","objects","_objects","aliveNodes","textureIndexMap","Map","objectTextures","getObjectTextures","forEach","texture","idx","set","i","l","length","object","objType","type","points","polylinePoints","pi","posIdxX","posIdxY","TEXT","textName","id","textNode","getChildByName","Node","active","visible","angle","rotation","parent","color","opacity","setSiblingIndex","label","getComponent","Label","addComponent","overflow","Overflow","SHRINK","lineHeight","string","text","horizontalAlign","halign","verticalAlign","valign","fontSize","pixelsize","IMAGE","gid","grid","tileset","imgName","imgNode","imgWidth","imgHeight","tileOffsetX","tileOffset","tileOffsetY","PrivateNode","removeFromParent","destroy","_tiledMap","sp","spf","spriteFrame","SpriteFrame","setFlipX","setFlipY","sourceImage","setTexture","rect","setVertsDirty","has","push","textureIndex","get","setTextureIdx","children","uselessExp","n","c","cName","_name","isUseless","test"],"mappings":"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","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/class.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nconst TmoSprite = require(\"./TmoSprite\");\r\n\r\nexport default cc.Class({\r\n extends: cc.TiledObjectGroup,\r\n\r\n _init(groupInfo, mapInfo, texGrids, tiledMap) {\r\n const TiledMap = cc.TiledMap;\r\n const TMXObjectType = TiledMap.TMXObjectType;\r\n const Orientation = TiledMap.Orientation;\r\n const StaggerAxis = TiledMap.StaggerAxis;\r\n const TileFlag = TiledMap.TileFlag;\r\n const FLIPPED_MASK = TileFlag.FLIPPED_MASK;\r\n const FLAG_HORIZONTAL = TileFlag.HORIZONTAL;\r\n const FLAG_VERTICAL = TileFlag.VERTICAL;\r\n\r\n this._groupName = groupInfo.name;\r\n this._positionOffset = groupInfo.offset;\r\n this._mapInfo = mapInfo;\r\n this._properties = groupInfo.getProperties();\r\n this._offset = cc.v2(groupInfo.offset.x, -groupInfo.offset.y);\r\n this._opacity = groupInfo._opacity;\r\n\r\n let mapSize = mapInfo._mapSize;\r\n let tileSize = mapInfo._tileSize;\r\n let width = 0, height = 0;\r\n if (mapInfo.orientation === Orientation.HEX) {\r\n if (mapInfo.getStaggerAxis() === StaggerAxis.STAGGERAXIS_X) {\r\n height = tileSize.height * (mapSize.height + 0.5);\r\n width = (tileSize.width + mapInfo.getHexSideLength()) * Math.floor(mapSize.width / 2) + tileSize.width * (mapSize.width % 2);\r\n } else {\r\n width = tileSize.width * (mapSize.width + 0.5);\r\n height = (tileSize.height + mapInfo.getHexSideLength()) * Math.floor(mapSize.height / 2) + tileSize.height * (mapSize.height % 2);\r\n }\r\n } else if (mapInfo.orientation === Orientation.ISO) {\r\n let wh = mapSize.width + mapSize.height;\r\n width = tileSize.width * 0.5 * wh;\r\n height = tileSize.height * 0.5 * wh;\r\n } else {\r\n width = mapSize.width * tileSize.width;\r\n height = mapSize.height * tileSize.height;\r\n }\r\n this.node.setContentSize(width, height);\r\n\r\n let leftTopX = width * this.node.anchorX;\r\n let leftTopY = height * (1 - this.node.anchorY);\r\n\r\n let objects = groupInfo._objects;\r\n let aliveNodes = {};\r\n\r\n // 生成映射Map { Texture2D: textureIndex }\r\n let textureIndexMap = new Map();\r\n let objectTextures = tiledMap.getObjectTextures();\r\n objectTextures.forEach((texture, idx) => textureIndexMap.set(texture, idx));\r\n\r\n for (let i = 0, l = objects.length; i < l; i++) {\r\n let object = objects[i];\r\n let objType = object.type;\r\n object.offset = cc.v2(object.x, object.y);\r\n\r\n let points = object.points || object.polylinePoints;\r\n if (points) {\r\n for (let pi = 0; pi < points.length; pi++) {\r\n points[pi].y *= -1;\r\n }\r\n }\r\n\r\n if (Orientation.ISO !== mapInfo.orientation) {\r\n object.y = height - object.y;\r\n } else {\r\n let posIdxX = object.x / tileSize.height;\r\n let posIdxY = object.y / tileSize.height;\r\n object.x = tileSize.width * 0.5 * (mapSize.height + posIdxX - posIdxY);\r\n object.y = tileSize.height * 0.5 * (mapSize.width + mapSize.height - posIdxX - posIdxY);\r\n }\r\n\r\n if (objType === TMXObjectType.TEXT) {\r\n let textName = \"text\" + object.id;\r\n aliveNodes[textName] = true;\r\n\r\n let textNode = this.node.getChildByName(textName);\r\n if (!textNode) {\r\n textNode = new cc.Node();\r\n }\r\n\r\n textNode.active = object.visible;\r\n textNode.anchorX = 0;\r\n textNode.anchorY = 1;\r\n textNode.angle = -object.rotation;\r\n textNode.x = object.x - leftTopX;\r\n textNode.y = object.y - leftTopY;\r\n textNode.name = textName;\r\n textNode.parent = this.node;\r\n textNode.color = object.color;\r\n textNode.opacity = this._opacity;\r\n textNode.setSiblingIndex(i);\r\n\r\n let label = textNode.getComponent(cc.Label);\r\n if (!label) {\r\n label = textNode.addComponent(cc.Label);\r\n }\r\n\r\n label.overflow = cc.Label.Overflow.SHRINK;\r\n label.lineHeight = object.height;\r\n label.string = object.text;\r\n label.horizontalAlign = object.halign;\r\n label.verticalAlign = object.valign;\r\n label.fontSize = object.pixelsize;\r\n\r\n textNode.width = object.width;\r\n textNode.height = object.height;\r\n }\r\n\r\n if (objType === TMXObjectType.IMAGE) {\r\n let gid = object.gid;\r\n let grid = texGrids[(gid & FLIPPED_MASK) >>> 0];\r\n if (!grid) continue;\r\n let tileset = grid.tileset;\r\n let imgName = \"img\" + object.id;\r\n aliveNodes[imgName] = true;\r\n let imgNode = this.node.getChildByName(imgName);\r\n let imgWidth = object.width || grid.width;\r\n let imgHeight = object.height || grid.height;\r\n let tileOffsetX = tileset.tileOffset.x;\r\n let tileOffsetY = tileset.tileOffset.y;\r\n\r\n // Delete image nodes implemented as private nodes\r\n // Use cc.Node to implement node-level requirements\r\n if (imgNode instanceof cc.PrivateNode) {\r\n imgNode.removeFromParent();\r\n imgNode.destroy();\r\n imgNode = null;\r\n }\r\n\r\n if (!imgNode) {\r\n imgNode = new cc.Node();\r\n }\r\n\r\n if (Orientation.ISO == mapInfo.orientation) {\r\n imgNode.anchorX = 0.5 + tileOffsetX / imgWidth;\r\n imgNode.anchorY = tileOffsetY / imgHeight;\r\n } else {\r\n imgNode.anchorX = tileOffsetX / imgWidth;\r\n imgNode.anchorY = tileOffsetY / imgHeight;\r\n }\r\n imgNode.active = object.visible;\r\n imgNode.angle = -object.rotation;\r\n imgNode.x = object.x - leftTopX;\r\n imgNode.y = object.y - leftTopY;\r\n imgNode.name = imgName;\r\n imgNode.parent = this.node;\r\n imgNode.opacity = this._opacity;\r\n imgNode.setSiblingIndex(i);\r\n imgNode._tiledMap = tiledMap;\r\n\r\n\r\n let sp = imgNode.getComponent(TmoSprite);\r\n if (!sp) {\r\n sp = imgNode.addComponent(TmoSprite);\r\n }\r\n let spf = sp.spriteFrame;\r\n if (!spf) {\r\n spf = new cc.SpriteFrame();\r\n }\r\n\r\n if ((gid & FLAG_HORIZONTAL) >>> 0) {\r\n spf.setFlipX(true);\r\n } else {\r\n spf.setFlipX(false);\r\n }\r\n\r\n if ((gid & FLAG_VERTICAL) >>> 0) {\r\n spf.setFlipY(true);\r\n } else {\r\n spf.setFlipY(false);\r\n }\r\n\r\n let sourceImage = grid.tileset.sourceImage;\r\n spf.setTexture(sourceImage, cc.rect(grid));\r\n sp.spriteFrame = spf;\r\n sp.setVertsDirty();\r\n\r\n // object group may has no width or height info\r\n imgNode.width = imgWidth;\r\n imgNode.height = imgHeight;\r\n\r\n // 收集图集 更新textureIndexMap\r\n if (!textureIndexMap.has(sourceImage)) {\r\n textureIndexMap.set(sourceImage, objectTextures.length);\r\n objectTextures.push(sourceImage);\r\n }\r\n\r\n // 设置textureIndex\r\n let textureIndex = textureIndexMap.get(sourceImage);\r\n sp.setTextureIdx(textureIndex + 1);\r\n }\r\n }\r\n this._objects = objects;\r\n\r\n\r\n // destroy useless node\r\n let children = this.node.children;\r\n let uselessExp = /^(?:img|text)\\d+$/;\r\n for (let i = 0, n = children.length; i < n; i++) {\r\n let c = children[i];\r\n let cName = c._name;\r\n let isUseless = uselessExp.test(cName);\r\n if (isUseless && !aliveNodes[cName]) c.destroy();\r\n }\r\n\r\n }\r\n});\r\n"]} \ No newline at end of file +{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoObjectGroup.js"],"names":["TmoSprite","require","_default","cc","Class","TiledObjectGroup","_init","groupInfo","mapInfo","texGrids","tiledMap","TiledMap","TMXObjectType","Orientation","StaggerAxis","TileFlag","FLIPPED_MASK","FLAG_HORIZONTAL","HORIZONTAL","FLAG_VERTICAL","VERTICAL","_groupName","name","_positionOffset","offset","_mapInfo","_properties","getProperties","_offset","v2","x","y","_opacity","mapSize","_mapSize","tileSize","_tileSize","width","height","orientation","HEX","getStaggerAxis","STAGGERAXIS_X","getHexSideLength","Math","floor","ISO","wh","node","setContentSize","leftTopX","anchorX","leftTopY","anchorY","objects","_objects","aliveNodes","textureIndexMap","Map","objectTextures","getObjectTextures","forEach","texture","idx","set","i","l","length","object","objType","type","points","polylinePoints","pi","posIdxX","posIdxY","TEXT","textName","id","textNode","getChildByName","Node","active","visible","angle","rotation","parent","color","opacity","setSiblingIndex","label","getComponent","Label","addComponent","overflow","Overflow","SHRINK","lineHeight","string","text","horizontalAlign","halign","verticalAlign","valign","fontSize","pixelsize","IMAGE","gid","grid","tileset","imgName","imgNode","imgWidth","imgHeight","tileOffsetX","tileOffset","tileOffsetY","PrivateNode","removeFromParent","destroy","_tiledMap","sp","spf","spriteFrame","SpriteFrame","setFlipX","setFlipY","sourceImage","setTexture","rect","setVertsDirty","has","push","textureIndex","get","setTextureIdx","children","uselessExp","n","c","cName","_name","isUseless","test","exports","module"],"mappings":"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","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/class.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nconst TmoSprite = require(\"./TmoSprite\");\r\n\r\nexport default cc.Class({\r\n extends: cc.TiledObjectGroup,\r\n\r\n _init(groupInfo, mapInfo, texGrids, tiledMap) {\r\n const TiledMap = cc.TiledMap;\r\n const TMXObjectType = TiledMap.TMXObjectType;\r\n const Orientation = TiledMap.Orientation;\r\n const StaggerAxis = TiledMap.StaggerAxis;\r\n const TileFlag = TiledMap.TileFlag;\r\n const FLIPPED_MASK = TileFlag.FLIPPED_MASK;\r\n const FLAG_HORIZONTAL = TileFlag.HORIZONTAL;\r\n const FLAG_VERTICAL = TileFlag.VERTICAL;\r\n\r\n this._groupName = groupInfo.name;\r\n this._positionOffset = groupInfo.offset;\r\n this._mapInfo = mapInfo;\r\n this._properties = groupInfo.getProperties();\r\n this._offset = cc.v2(groupInfo.offset.x, -groupInfo.offset.y);\r\n this._opacity = groupInfo._opacity;\r\n\r\n let mapSize = mapInfo._mapSize;\r\n let tileSize = mapInfo._tileSize;\r\n let width = 0, height = 0;\r\n if (mapInfo.orientation === Orientation.HEX) {\r\n if (mapInfo.getStaggerAxis() === StaggerAxis.STAGGERAXIS_X) {\r\n height = tileSize.height * (mapSize.height + 0.5);\r\n width = (tileSize.width + mapInfo.getHexSideLength()) * Math.floor(mapSize.width / 2) + tileSize.width * (mapSize.width % 2);\r\n } else {\r\n width = tileSize.width * (mapSize.width + 0.5);\r\n height = (tileSize.height + mapInfo.getHexSideLength()) * Math.floor(mapSize.height / 2) + tileSize.height * (mapSize.height % 2);\r\n }\r\n } else if (mapInfo.orientation === Orientation.ISO) {\r\n let wh = mapSize.width + mapSize.height;\r\n width = tileSize.width * 0.5 * wh;\r\n height = tileSize.height * 0.5 * wh;\r\n } else {\r\n width = mapSize.width * tileSize.width;\r\n height = mapSize.height * tileSize.height;\r\n }\r\n this.node.setContentSize(width, height);\r\n\r\n let leftTopX = width * this.node.anchorX;\r\n let leftTopY = height * (1 - this.node.anchorY);\r\n\r\n let objects = groupInfo._objects;\r\n let aliveNodes = {};\r\n\r\n // 生成映射Map { Texture2D: textureIndex }\r\n let textureIndexMap = new Map();\r\n let objectTextures = tiledMap.getObjectTextures();\r\n objectTextures.forEach((texture, idx) => textureIndexMap.set(texture, idx));\r\n\r\n for (let i = 0, l = objects.length; i < l; i++) {\r\n let object = objects[i];\r\n let objType = object.type;\r\n object.offset = cc.v2(object.x, object.y);\r\n\r\n let points = object.points || object.polylinePoints;\r\n if (points) {\r\n for (let pi = 0; pi < points.length; pi++) {\r\n points[pi].y *= -1;\r\n }\r\n }\r\n\r\n if (Orientation.ISO !== mapInfo.orientation) {\r\n object.y = height - object.y;\r\n } else {\r\n let posIdxX = object.x / tileSize.height;\r\n let posIdxY = object.y / tileSize.height;\r\n object.x = tileSize.width * 0.5 * (mapSize.height + posIdxX - posIdxY);\r\n object.y = tileSize.height * 0.5 * (mapSize.width + mapSize.height - posIdxX - posIdxY);\r\n }\r\n\r\n if (objType === TMXObjectType.TEXT) {\r\n let textName = \"text\" + object.id;\r\n aliveNodes[textName] = true;\r\n\r\n let textNode = this.node.getChildByName(textName);\r\n if (!textNode) {\r\n textNode = new cc.Node();\r\n }\r\n\r\n textNode.active = object.visible;\r\n textNode.anchorX = 0;\r\n textNode.anchorY = 1;\r\n textNode.angle = -object.rotation;\r\n textNode.x = object.x - leftTopX;\r\n textNode.y = object.y - leftTopY;\r\n textNode.name = textName;\r\n textNode.parent = this.node;\r\n textNode.color = object.color;\r\n textNode.opacity = this._opacity;\r\n textNode.setSiblingIndex(i);\r\n\r\n let label = textNode.getComponent(cc.Label);\r\n if (!label) {\r\n label = textNode.addComponent(cc.Label);\r\n }\r\n\r\n label.overflow = cc.Label.Overflow.SHRINK;\r\n label.lineHeight = object.height;\r\n label.string = object.text;\r\n label.horizontalAlign = object.halign;\r\n label.verticalAlign = object.valign;\r\n label.fontSize = object.pixelsize;\r\n\r\n textNode.width = object.width;\r\n textNode.height = object.height;\r\n }\r\n\r\n if (objType === TMXObjectType.IMAGE) {\r\n let gid = object.gid;\r\n let grid = texGrids[(gid & FLIPPED_MASK) >>> 0];\r\n if (!grid) continue;\r\n let tileset = grid.tileset;\r\n let imgName = \"img\" + object.id;\r\n aliveNodes[imgName] = true;\r\n let imgNode = this.node.getChildByName(imgName);\r\n let imgWidth = object.width || grid.width;\r\n let imgHeight = object.height || grid.height;\r\n let tileOffsetX = tileset.tileOffset.x;\r\n let tileOffsetY = tileset.tileOffset.y;\r\n\r\n // Delete image nodes implemented as private nodes\r\n // Use cc.Node to implement node-level requirements\r\n if (imgNode instanceof cc.PrivateNode) {\r\n imgNode.removeFromParent();\r\n imgNode.destroy();\r\n imgNode = null;\r\n }\r\n\r\n if (!imgNode) {\r\n imgNode = new cc.Node();\r\n }\r\n\r\n if (Orientation.ISO == mapInfo.orientation) {\r\n imgNode.anchorX = 0.5 + tileOffsetX / imgWidth;\r\n imgNode.anchorY = tileOffsetY / imgHeight;\r\n } else {\r\n imgNode.anchorX = tileOffsetX / imgWidth;\r\n imgNode.anchorY = tileOffsetY / imgHeight;\r\n }\r\n imgNode.active = object.visible;\r\n imgNode.angle = -object.rotation;\r\n imgNode.x = object.x - leftTopX;\r\n imgNode.y = object.y - leftTopY;\r\n imgNode.name = imgName;\r\n imgNode.parent = this.node;\r\n imgNode.opacity = this._opacity;\r\n imgNode.setSiblingIndex(i);\r\n imgNode._tiledMap = tiledMap;\r\n\r\n\r\n let sp = imgNode.getComponent(TmoSprite);\r\n if (!sp) {\r\n sp = imgNode.addComponent(TmoSprite);\r\n }\r\n let spf = sp.spriteFrame;\r\n if (!spf) {\r\n spf = new cc.SpriteFrame();\r\n }\r\n\r\n if ((gid & FLAG_HORIZONTAL) >>> 0) {\r\n spf.setFlipX(true);\r\n } else {\r\n spf.setFlipX(false);\r\n }\r\n\r\n if ((gid & FLAG_VERTICAL) >>> 0) {\r\n spf.setFlipY(true);\r\n } else {\r\n spf.setFlipY(false);\r\n }\r\n\r\n let sourceImage = grid.tileset.sourceImage;\r\n spf.setTexture(sourceImage, cc.rect(grid));\r\n sp.spriteFrame = spf;\r\n sp.setVertsDirty();\r\n\r\n // object group may has no width or height info\r\n imgNode.width = imgWidth;\r\n imgNode.height = imgHeight;\r\n\r\n // 收集图集 更新textureIndexMap\r\n if (!textureIndexMap.has(sourceImage)) {\r\n textureIndexMap.set(sourceImage, objectTextures.length);\r\n objectTextures.push(sourceImage);\r\n }\r\n\r\n // 设置textureIndex\r\n let textureIndex = textureIndexMap.get(sourceImage);\r\n sp.setTextureIdx(textureIndex + 1);\r\n }\r\n }\r\n this._objects = objects;\r\n\r\n\r\n // destroy useless node\r\n let children = this.node.children;\r\n let uselessExp = /^(?:img|text)\\d+$/;\r\n for (let i = 0, n = children.length; i < n; i++) {\r\n let c = children[i];\r\n let cName = c._name;\r\n let isUseless = uselessExp.test(cName);\r\n if (isUseless && !aliveNodes[cName]) c.destroy();\r\n }\r\n\r\n }\r\n});\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoSprite.js b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoSprite.js index 2ff8680..923bd0a 100644 --- a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoSprite.js +++ b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoSprite.js @@ -6,12 +6,9 @@ cc._RF.push(module, '4fa6cO05aBKGoM+5EX9zhkC', 'TmoSprite'); exports.__esModule = true; exports["default"] = void 0; - var _TmoAssembler = require("./TmoAssembler"); - var _default = cc.Class({ "extends": cc.Sprite, - /** * 设置TextureIndex */ @@ -26,28 +23,24 @@ var _default = cc.Class({ _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宏定义 + } + // 手动设置哈希值,避免无法合批 + 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() { @@ -57,7 +50,6 @@ var _default = cc.Class({ return this._getTiledMap().isNoColor(); } }); - exports["default"] = _default; module.exports = exports["default"]; diff --git a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoSprite.js.map b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoSprite.js.map index e05c761..65cb7cc 100644 --- a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoSprite.js.map +++ b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoSprite.js.map @@ -1 +1 @@ -{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoSprite.js"],"names":["cc","Class","Sprite","setTextureIdx","idx","_textureIdx","setVertsDirty","_getDefaultMaterial","_getTiledMap","getObjectMaterial","_updateMaterial","material","getMaterial","getDefine","undefined","define","updateHash","noColor","isNoColor","BlendFunc","prototype","call","_resetAssembler","assembler","_assembler","TmoAssembler","init","_updateColor","node","_tiledMap"],"mappings":";;;;;;;;;AAAA;;eAEeA,EAAE,CAACC,KAAH,CAAS;AACpB,aAASD,EAAE,CAACE,MADQ;;AAGpB;AACJ;AACA;AACIC,EAAAA,aANoB,yBAMNC,GANM,EAMD;AACf,SAAKC,WAAL,GAAmBD,GAAnB;AACA,SAAKE,aAAL;AACH,GATmB;AAWpBC,EAAAA,mBAXoB,iCAWE;AAClB;AACA,WAAO,KAAKC,YAAL,GAAoBC,iBAApB,EAAP;AACH,GAdmB;AAgBpBC,EAAAA,eAhBoB,6BAgBF;AACd;AACA,QAAIC,QAAQ,GAAG,KAAKC,WAAL,CAAiB,CAAjB,CAAf;;AACA,QAAID,QAAJ,EAAc;AACV,UAAIA,QAAQ,CAACE,SAAT,CAAmB,aAAnB,MAAsCC,SAA1C,EAAqD;AACjDH,QAAAA,QAAQ,CAACI,MAAT,CAAgB,aAAhB,EAA+B,IAA/B;AACH,OAHS,CAIV;;;AACAJ,MAAAA,QAAQ,CAACK,UAAT,CAAoB,MAApB,EALU,CAOV;;AACA,UAAIC,OAAO,GAAG,KAAKC,SAAL,EAAd;AACAP,MAAAA,QAAQ,CAACI,MAAT,CAAgB,YAAhB,EAA8B,CAACE,OAA/B;AACH;;AAEDjB,IAAAA,EAAE,CAACmB,SAAH,CAAaC,SAAb,CAAuBV,eAAvB,CAAuCW,IAAvC,CAA4C,IAA5C;AACH,GAhCmB;AAkCpBC,EAAAA,eAlCoB,6BAkCF;AACd;AACA,QAAIC,SAAS,GAAG,KAAKC,UAAL,GAAkB,IAAIC,0BAAJ,EAAlC;AACAF,IAAAA,SAAS,CAACG,IAAV,CAAe,IAAf;;AAEA,SAAKC,YAAL;;AACA,SAAKrB,aAAL;AACH,GAzCmB;AA2CpBE,EAAAA,YA3CoB,0BA2CL;AACX,WAAO,KAAKoB,IAAL,CAAUC,SAAjB;AACH,GA7CmB;AA+CpBX,EAAAA,SA/CoB,uBA+CR;AACR,WAAO,KAAKV,YAAL,GAAoBU,SAApB,EAAP;AACH;AAjDmB,CAAT","sourceRoot":"/","sourcesContent":["import { TmoAssembler } from \"./TmoAssembler\";\r\n\r\nexport default cc.Class({\r\n extends: cc.Sprite,\r\n\r\n /**\r\n * 设置TextureIndex\r\n */\r\n setTextureIdx(idx) {\r\n this._textureIdx = idx\r\n this.setVertsDirty();\r\n },\r\n\r\n _getDefaultMaterial() {\r\n // 从TiledMap取得默认的材质\r\n return this._getTiledMap().getObjectMaterial();\r\n },\r\n\r\n _updateMaterial() {\r\n // make sure material is belong to self.\r\n let material = this.getMaterial(0);\r\n if (material) {\r\n if (material.getDefine('USE_TEXTURE') !== undefined) {\r\n material.define('USE_TEXTURE', true);\r\n }\r\n // 手动设置哈希值,避免无法合批\r\n material.updateHash(999999);\r\n\r\n // 增加WITH_COLOR宏定义\r\n let noColor = this.isNoColor();\r\n material.define('WITH_COLOR', !noColor);\r\n }\r\n\r\n cc.BlendFunc.prototype._updateMaterial.call(this);\r\n },\r\n\r\n _resetAssembler() {\r\n // 修改默认Assembler\r\n let assembler = this._assembler = new TmoAssembler();\r\n assembler.init(this);\r\n\r\n this._updateColor();\r\n this.setVertsDirty();\r\n },\r\n\r\n _getTiledMap() {\r\n return this.node._tiledMap;\r\n },\r\n\r\n isNoColor() {\r\n return this._getTiledMap().isNoColor();\r\n }\r\n});\r\n"]} \ No newline at end of file +{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoSprite.js"],"names":["_TmoAssembler","require","_default","cc","Class","Sprite","setTextureIdx","idx","_textureIdx","setVertsDirty","_getDefaultMaterial","_getTiledMap","getObjectMaterial","_updateMaterial","material","getMaterial","getDefine","undefined","define","updateHash","noColor","isNoColor","BlendFunc","prototype","call","_resetAssembler","assembler","_assembler","TmoAssembler","init","_updateColor","node","_tiledMap","exports","module"],"mappings":";;;;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAA8C,IAAAC,QAAA,GAE/BC,EAAE,CAACC,KAAK,CAAC;EACpB,WAASD,EAAE,CAACE,MAAM;EAElB;AACJ;AACA;EACIC,aAAa,WAAAA,cAACC,GAAG,EAAE;IACf,IAAI,CAACC,WAAW,GAAGD,GAAG;IACtB,IAAI,CAACE,aAAa,EAAE;EACxB,CAAC;EAEDC,mBAAmB,WAAAA,oBAAA,EAAG;IAClB;IACA,OAAO,IAAI,CAACC,YAAY,EAAE,CAACC,iBAAiB,EAAE;EAClD,CAAC;EAEDC,eAAe,WAAAA,gBAAA,EAAG;IACd;IACA,IAAIC,QAAQ,GAAG,IAAI,CAACC,WAAW,CAAC,CAAC,CAAC;IAClC,IAAID,QAAQ,EAAE;MACV,IAAIA,QAAQ,CAACE,SAAS,CAAC,aAAa,CAAC,KAAKC,SAAS,EAAE;QACjDH,QAAQ,CAACI,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC;MACxC;MACA;MACAJ,QAAQ,CAACK,UAAU,CAAC,MAAM,CAAC;;MAE3B;MACA,IAAIC,OAAO,GAAG,IAAI,CAACC,SAAS,EAAE;MAC9BP,QAAQ,CAACI,MAAM,CAAC,YAAY,EAAE,CAACE,OAAO,CAAC;IAC3C;IAEAjB,EAAE,CAACmB,SAAS,CAACC,SAAS,CAACV,eAAe,CAACW,IAAI,CAAC,IAAI,CAAC;EACrD,CAAC;EAEDC,eAAe,WAAAA,gBAAA,EAAG;IACd;IACA,IAAIC,SAAS,GAAG,IAAI,CAACC,UAAU,GAAG,IAAIC,0BAAY,EAAE;IACpDF,SAAS,CAACG,IAAI,CAAC,IAAI,CAAC;IAEpB,IAAI,CAACC,YAAY,EAAE;IACnB,IAAI,CAACrB,aAAa,EAAE;EACxB,CAAC;EAEDE,YAAY,WAAAA,aAAA,EAAG;IACX,OAAO,IAAI,CAACoB,IAAI,CAACC,SAAS;EAC9B,CAAC;EAEDX,SAAS,WAAAA,UAAA,EAAG;IACR,OAAO,IAAI,CAACV,YAAY,EAAE,CAACU,SAAS,EAAE;EAC1C;AACJ,CAAC,CAAC;AAAAY,OAAA,cAAA/B,QAAA;AAAAgC,MAAA,CAAAD,OAAA,GAAAA,OAAA","sourceRoot":"/","sourcesContent":["import { TmoAssembler } from \"./TmoAssembler\";\r\n\r\nexport default cc.Class({\r\n extends: cc.Sprite,\r\n\r\n /**\r\n * 设置TextureIndex\r\n */\r\n setTextureIdx(idx) {\r\n this._textureIdx = idx\r\n this.setVertsDirty();\r\n },\r\n\r\n _getDefaultMaterial() {\r\n // 从TiledMap取得默认的材质\r\n return this._getTiledMap().getObjectMaterial();\r\n },\r\n\r\n _updateMaterial() {\r\n // make sure material is belong to self.\r\n let material = this.getMaterial(0);\r\n if (material) {\r\n if (material.getDefine('USE_TEXTURE') !== undefined) {\r\n material.define('USE_TEXTURE', true);\r\n }\r\n // 手动设置哈希值,避免无法合批\r\n material.updateHash(999999);\r\n\r\n // 增加WITH_COLOR宏定义\r\n let noColor = this.isNoColor();\r\n material.define('WITH_COLOR', !noColor);\r\n }\r\n\r\n cc.BlendFunc.prototype._updateMaterial.call(this);\r\n },\r\n\r\n _resetAssembler() {\r\n // 修改默认Assembler\r\n let assembler = this._assembler = new TmoAssembler();\r\n assembler.init(this);\r\n\r\n this._updateColor();\r\n this.setVertsDirty();\r\n },\r\n\r\n _getTiledMap() {\r\n return this.node._tiledMap;\r\n },\r\n\r\n isNoColor() {\r\n return this._getTiledMap().isNoColor();\r\n }\r\n});\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledLayer.js b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledLayer.js index 1bf6803..cabb155 100644 --- a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledLayer.js +++ b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledLayer.js @@ -6,19 +6,16 @@ cc._RF.push(module, 'd60cfrGbXBLBbplLoT7TBn7', 'TmoTiledLayer'); 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 _mat4_temp = cc.mat4(); - var _vec2_temp = cc.v2(); - var _vec2_temp2 = cc.v2(); - var _default = cc.Class({ "extends": cc.TiledLayer, // 此处修改 增加firstTmxLayer参数 @@ -26,13 +23,15 @@ var _default = cc.Class({ // 修改结束 this._cullingDirty = true; this._layerInfo = layerInfo; - this._mapInfo = mapInfo; // 此处修改 保存firstTmxLayer参数 - + this._mapInfo = mapInfo; + // 此处修改 保存firstTmxLayer参数 this._firstTmxLayer = firstTmxLayer; - this._tiledMap = tiledMap; // 修改结束 + this._tiledMap = tiledMap; + // 修改结束 - var size = layerInfo._layerSize; // layerInfo + var size = layerInfo._layerSize; + // layerInfo this._layerName = layerInfo.name; this._tiles = layerInfo._tiles; this._properties = layerInfo.properties; @@ -44,30 +43,30 @@ var _default = cc.Class({ this._staggerAxis = mapInfo.getStaggerAxis(); this._staggerIndex = mapInfo.getStaggerIndex(); this._hexSideLength = mapInfo.getHexSideLength(); - this._animations = mapInfo.getTileAnimations(); // tilesets + this._animations = mapInfo.getTileAnimations(); - this._tilesets = tilesets; // textures - - this._textures = textures; // grid texture - - this._texGrids = texGrids; // mapInfo + // 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; + 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; @@ -79,22 +78,19 @@ var _default = cc.Class({ 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); - + } + // 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() { @@ -104,20 +100,17 @@ var _default = cc.Class({ // 此处修改 若不为首个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; @@ -127,15 +120,13 @@ var _default = cc.Class({ 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。 + 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; - } // 修改结束 - + } + // 修改结束 } } }, @@ -147,35 +138,30 @@ var _default = cc.Class({ 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); // 此处修改 当只有一个图集时 可以直接停止遍历 + tilesetIndexArr.push(tilesetIdx); + // 此处修改 当只有一个图集时 可以直接停止遍历 if (singleTexture) { break; - } // 修改结束 - + } + // 修改结束 } } }); - exports["default"] = _default; module.exports = exports["default"]; diff --git a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledLayer.js.map b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledLayer.js.map index de22bcc..02213c8 100644 --- a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledLayer.js.map +++ b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledLayer.js.map @@ -1 +1 @@ -{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoTiledLayer.js"],"names":["_mat4_temp","cc","mat4","_vec2_temp","v2","_vec2_temp2","Class","TiledLayer","_init","layerInfo","mapInfo","tilesets","textures","texGrids","tiledMap","firstTmxLayer","_cullingDirty","_layerInfo","_mapInfo","_firstTmxLayer","_tiledMap","size","_layerSize","_layerName","name","_tiles","_properties","properties","_minGID","_maxGID","_opacity","_renderOrder","renderOrder","_staggerAxis","getStaggerAxis","_staggerIndex","getStaggerIndex","_hexSideLength","getHexSideLength","_animations","getTileAnimations","_tilesets","_textures","_texGrids","_layerOrientation","orientation","_mapTileSize","getTileSize","maptw","width","mapth","height","layerW","layerH","TiledMap","Orientation","HEX","StaggerAxis","StaggerIndex","_odd_even","STAGGERINDEX_ODD","STAGGERAXIS_X","_diffX1","_diffY1","Math","floor","node","setContentSize","ISO","wh","_offset","offset","x","y","_useAutomaticVertexZ","_vertexZvalue","_syncAnchorPoint","_prepareToRender","_updateCulling","CC_EDITOR","enableCulling","_enableCulling","_cullingRect","_cacheCullingDirty","_updateWorldMatrix","Mat4","invert","_worldMatrix","rect","visibleRect","camera","Camera","findCamera","getScreenToWorldPoint","Vec2","transformMat4","_updateViewPort","_traverseAllGrid","tiles","tilesetIndexArr","_tilesetIndexArr","tilesetIndexToArrIndex","_tilesetIndexToArrIndex","TileFlag","FLIPPED_MASK","singleTexture","isSingleTexture","length","i","gid","grid","error","tilesetIdx","texId","undefined","push"],"mappings":"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","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/class.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\nlet _mat4_temp = cc.mat4();\r\nlet _vec2_temp = cc.v2();\r\nlet _vec2_temp2 = cc.v2();\r\n\r\nexport default cc.Class({\r\n extends: cc.TiledLayer,\r\n\r\n // 此处修改 增加firstTmxLayer参数\r\n _init(layerInfo, mapInfo, tilesets, textures, texGrids, tiledMap, firstTmxLayer) {\r\n // 修改结束\r\n this._cullingDirty = true;\r\n this._layerInfo = layerInfo;\r\n this._mapInfo = mapInfo;\r\n // 此处修改 保存firstTmxLayer参数\r\n this._firstTmxLayer = firstTmxLayer;\r\n this._tiledMap = tiledMap;\r\n // 修改结束\r\n\r\n let size = layerInfo._layerSize;\r\n\r\n // layerInfo\r\n this._layerName = layerInfo.name;\r\n this._tiles = layerInfo._tiles;\r\n this._properties = layerInfo.properties;\r\n this._layerSize = size;\r\n this._minGID = layerInfo._minGID;\r\n this._maxGID = layerInfo._maxGID;\r\n this._opacity = layerInfo._opacity;\r\n this._renderOrder = mapInfo.renderOrder;\r\n this._staggerAxis = mapInfo.getStaggerAxis();\r\n this._staggerIndex = mapInfo.getStaggerIndex();\r\n this._hexSideLength = mapInfo.getHexSideLength();\r\n this._animations = mapInfo.getTileAnimations();\r\n\r\n // tilesets\r\n this._tilesets = tilesets;\r\n // textures\r\n this._textures = textures;\r\n // grid texture\r\n this._texGrids = texGrids;\r\n\r\n // mapInfo\r\n this._layerOrientation = mapInfo.orientation;\r\n this._mapTileSize = mapInfo.getTileSize();\r\n\r\n let maptw = this._mapTileSize.width;\r\n let mapth = this._mapTileSize.height;\r\n let layerW = this._layerSize.width;\r\n let layerH = this._layerSize.height;\r\n\r\n if (this._layerOrientation === cc.TiledMap.Orientation.HEX) {\r\n // handle hex map\r\n const TiledMap = cc.TiledMap;\r\n const StaggerAxis = TiledMap.StaggerAxis;\r\n const StaggerIndex = TiledMap.StaggerIndex;\r\n let width = 0, height = 0;\r\n\r\n this._odd_even = (this._staggerIndex === StaggerIndex.STAGGERINDEX_ODD) ? 1 : -1;\r\n if (this._staggerAxis === StaggerAxis.STAGGERAXIS_X) {\r\n this._diffX1 = (maptw - this._hexSideLength) / 2;\r\n this._diffY1 = 0;\r\n height = mapth * (layerH + 0.5);\r\n width = (maptw + this._hexSideLength) * Math.floor(layerW / 2) + maptw * (layerW % 2);\r\n } else {\r\n this._diffX1 = 0;\r\n this._diffY1 = (mapth - this._hexSideLength) / 2;\r\n width = maptw * (layerW + 0.5);\r\n height = (mapth + this._hexSideLength) * Math.floor(layerH / 2) + mapth * (layerH % 2);\r\n }\r\n this.node.setContentSize(width, height);\r\n } else if (this._layerOrientation === cc.TiledMap.Orientation.ISO) {\r\n let wh = layerW + layerH;\r\n this.node.setContentSize(maptw * 0.5 * wh, mapth * 0.5 * wh);\r\n } else {\r\n this.node.setContentSize(layerW * maptw, layerH * mapth);\r\n }\r\n\r\n // offset (after layer orientation is set);\r\n this._offset = cc.v2(layerInfo.offset.x, -layerInfo.offset.y);\r\n this._useAutomaticVertexZ = false;\r\n this._vertexZvalue = 0;\r\n this._syncAnchorPoint();\r\n this._prepareToRender();\r\n },\r\n _updateCulling() {\r\n if (CC_EDITOR) {\r\n this.enableCulling(false);\r\n } else if (this._enableCulling) {\r\n // 此处修改 若不为首个layer 直接复用firstLayer的结果\r\n // this._firstTmxLayer不为空时 表示当前layer不是首个layer\r\n let firstTmxLayer = this._firstTmxLayer;\r\n if (!!firstTmxLayer) {\r\n this._cullingRect = firstTmxLayer._cullingRect;\r\n this._cullingDirty = firstTmxLayer._cacheCullingDirty;\r\n return;\r\n }\r\n // 修改结束\r\n\r\n this.node._updateWorldMatrix();\r\n cc.Mat4.invert(_mat4_temp, this.node._worldMatrix);\r\n let rect = cc.visibleRect;\r\n let camera = cc.Camera.findCamera(this.node);\r\n if (camera) {\r\n _vec2_temp.x = 0;\r\n _vec2_temp.y = 0;\r\n _vec2_temp2.x = _vec2_temp.x + rect.width;\r\n _vec2_temp2.y = _vec2_temp.y + rect.height;\r\n camera.getScreenToWorldPoint(_vec2_temp, _vec2_temp);\r\n camera.getScreenToWorldPoint(_vec2_temp2, _vec2_temp2);\r\n cc.Vec2.transformMat4(_vec2_temp, _vec2_temp, _mat4_temp);\r\n cc.Vec2.transformMat4(_vec2_temp2, _vec2_temp2, _mat4_temp);\r\n\r\n this._updateViewPort(_vec2_temp.x, _vec2_temp.y, _vec2_temp2.x - _vec2_temp.x, _vec2_temp2.y - _vec2_temp.y);\r\n // 此处修改 若为首个layer 缓存_cullingDirty。\r\n // _cullingDirty会在填充渲染数据后被改为false 所以需要缓存这里的结果\r\n if (!firstTmxLayer) {\r\n this._cacheCullingDirty = this._cullingDirty;\r\n }\r\n // 修改结束\r\n }\r\n }\r\n },\r\n _traverseAllGrid () {\r\n let tiles = this._tiles;\r\n let texGrids = this._texGrids;\r\n let tilesetIndexArr = this._tilesetIndexArr;\r\n let tilesetIndexToArrIndex = this._tilesetIndexToArrIndex = {};\r\n\r\n const TiledMap = cc.TiledMap;\r\n const TileFlag = TiledMap.TileFlag;\r\n const FLIPPED_MASK = TileFlag.FLIPPED_MASK;\r\n\r\n let singleTexture = this._tiledMap.isSingleTexture();\r\n\r\n tilesetIndexArr.length = 0;\r\n for (let i = 0; i < tiles.length; i++) {\r\n let gid = tiles[i];\r\n if (gid === 0) continue;\r\n gid = ((gid & FLIPPED_MASK) >>> 0);\r\n let grid = texGrids[gid];\r\n if (!grid) {\r\n cc.error(\"CCTiledLayer:_traverseAllGrid grid is null, gid is:\", gid);\r\n continue;\r\n }\r\n let tilesetIdx = grid.texId;\r\n if (tilesetIndexToArrIndex[tilesetIdx] !== undefined) continue;\r\n tilesetIndexToArrIndex[tilesetIdx] = tilesetIndexArr.length;\r\n tilesetIndexArr.push(tilesetIdx);\r\n \r\n // 此处修改 当只有一个图集时 可以直接停止遍历\r\n if (singleTexture) {\r\n break;\r\n }\r\n // 修改结束\r\n }\r\n },\r\n});\r\n"]} \ No newline at end of file +{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoTiledLayer.js"],"names":["_mat4_temp","cc","mat4","_vec2_temp","v2","_vec2_temp2","_default","Class","TiledLayer","_init","layerInfo","mapInfo","tilesets","textures","texGrids","tiledMap","firstTmxLayer","_cullingDirty","_layerInfo","_mapInfo","_firstTmxLayer","_tiledMap","size","_layerSize","_layerName","name","_tiles","_properties","properties","_minGID","_maxGID","_opacity","_renderOrder","renderOrder","_staggerAxis","getStaggerAxis","_staggerIndex","getStaggerIndex","_hexSideLength","getHexSideLength","_animations","getTileAnimations","_tilesets","_textures","_texGrids","_layerOrientation","orientation","_mapTileSize","getTileSize","maptw","width","mapth","height","layerW","layerH","TiledMap","Orientation","HEX","StaggerAxis","StaggerIndex","_odd_even","STAGGERINDEX_ODD","STAGGERAXIS_X","_diffX1","_diffY1","Math","floor","node","setContentSize","ISO","wh","_offset","offset","x","y","_useAutomaticVertexZ","_vertexZvalue","_syncAnchorPoint","_prepareToRender","_updateCulling","CC_EDITOR","enableCulling","_enableCulling","_cullingRect","_cacheCullingDirty","_updateWorldMatrix","Mat4","invert","_worldMatrix","rect","visibleRect","camera","Camera","findCamera","getScreenToWorldPoint","Vec2","transformMat4","_updateViewPort","_traverseAllGrid","tiles","tilesetIndexArr","_tilesetIndexArr","tilesetIndexToArrIndex","_tilesetIndexToArrIndex","TileFlag","FLIPPED_MASK","singleTexture","isSingleTexture","length","i","gid","grid","error","tilesetIdx","texId","undefined","push","exports","module"],"mappings":"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","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/class.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\nlet _mat4_temp = cc.mat4();\r\nlet _vec2_temp = cc.v2();\r\nlet _vec2_temp2 = cc.v2();\r\n\r\nexport default cc.Class({\r\n extends: cc.TiledLayer,\r\n\r\n // 此处修改 增加firstTmxLayer参数\r\n _init(layerInfo, mapInfo, tilesets, textures, texGrids, tiledMap, firstTmxLayer) {\r\n // 修改结束\r\n this._cullingDirty = true;\r\n this._layerInfo = layerInfo;\r\n this._mapInfo = mapInfo;\r\n // 此处修改 保存firstTmxLayer参数\r\n this._firstTmxLayer = firstTmxLayer;\r\n this._tiledMap = tiledMap;\r\n // 修改结束\r\n\r\n let size = layerInfo._layerSize;\r\n\r\n // layerInfo\r\n this._layerName = layerInfo.name;\r\n this._tiles = layerInfo._tiles;\r\n this._properties = layerInfo.properties;\r\n this._layerSize = size;\r\n this._minGID = layerInfo._minGID;\r\n this._maxGID = layerInfo._maxGID;\r\n this._opacity = layerInfo._opacity;\r\n this._renderOrder = mapInfo.renderOrder;\r\n this._staggerAxis = mapInfo.getStaggerAxis();\r\n this._staggerIndex = mapInfo.getStaggerIndex();\r\n this._hexSideLength = mapInfo.getHexSideLength();\r\n this._animations = mapInfo.getTileAnimations();\r\n\r\n // tilesets\r\n this._tilesets = tilesets;\r\n // textures\r\n this._textures = textures;\r\n // grid texture\r\n this._texGrids = texGrids;\r\n\r\n // mapInfo\r\n this._layerOrientation = mapInfo.orientation;\r\n this._mapTileSize = mapInfo.getTileSize();\r\n\r\n let maptw = this._mapTileSize.width;\r\n let mapth = this._mapTileSize.height;\r\n let layerW = this._layerSize.width;\r\n let layerH = this._layerSize.height;\r\n\r\n if (this._layerOrientation === cc.TiledMap.Orientation.HEX) {\r\n // handle hex map\r\n const TiledMap = cc.TiledMap;\r\n const StaggerAxis = TiledMap.StaggerAxis;\r\n const StaggerIndex = TiledMap.StaggerIndex;\r\n let width = 0, height = 0;\r\n\r\n this._odd_even = (this._staggerIndex === StaggerIndex.STAGGERINDEX_ODD) ? 1 : -1;\r\n if (this._staggerAxis === StaggerAxis.STAGGERAXIS_X) {\r\n this._diffX1 = (maptw - this._hexSideLength) / 2;\r\n this._diffY1 = 0;\r\n height = mapth * (layerH + 0.5);\r\n width = (maptw + this._hexSideLength) * Math.floor(layerW / 2) + maptw * (layerW % 2);\r\n } else {\r\n this._diffX1 = 0;\r\n this._diffY1 = (mapth - this._hexSideLength) / 2;\r\n width = maptw * (layerW + 0.5);\r\n height = (mapth + this._hexSideLength) * Math.floor(layerH / 2) + mapth * (layerH % 2);\r\n }\r\n this.node.setContentSize(width, height);\r\n } else if (this._layerOrientation === cc.TiledMap.Orientation.ISO) {\r\n let wh = layerW + layerH;\r\n this.node.setContentSize(maptw * 0.5 * wh, mapth * 0.5 * wh);\r\n } else {\r\n this.node.setContentSize(layerW * maptw, layerH * mapth);\r\n }\r\n\r\n // offset (after layer orientation is set);\r\n this._offset = cc.v2(layerInfo.offset.x, -layerInfo.offset.y);\r\n this._useAutomaticVertexZ = false;\r\n this._vertexZvalue = 0;\r\n this._syncAnchorPoint();\r\n this._prepareToRender();\r\n },\r\n _updateCulling() {\r\n if (CC_EDITOR) {\r\n this.enableCulling(false);\r\n } else if (this._enableCulling) {\r\n // 此处修改 若不为首个layer 直接复用firstLayer的结果\r\n // this._firstTmxLayer不为空时 表示当前layer不是首个layer\r\n let firstTmxLayer = this._firstTmxLayer;\r\n if (!!firstTmxLayer) {\r\n this._cullingRect = firstTmxLayer._cullingRect;\r\n this._cullingDirty = firstTmxLayer._cacheCullingDirty;\r\n return;\r\n }\r\n // 修改结束\r\n\r\n this.node._updateWorldMatrix();\r\n cc.Mat4.invert(_mat4_temp, this.node._worldMatrix);\r\n let rect = cc.visibleRect;\r\n let camera = cc.Camera.findCamera(this.node);\r\n if (camera) {\r\n _vec2_temp.x = 0;\r\n _vec2_temp.y = 0;\r\n _vec2_temp2.x = _vec2_temp.x + rect.width;\r\n _vec2_temp2.y = _vec2_temp.y + rect.height;\r\n camera.getScreenToWorldPoint(_vec2_temp, _vec2_temp);\r\n camera.getScreenToWorldPoint(_vec2_temp2, _vec2_temp2);\r\n cc.Vec2.transformMat4(_vec2_temp, _vec2_temp, _mat4_temp);\r\n cc.Vec2.transformMat4(_vec2_temp2, _vec2_temp2, _mat4_temp);\r\n\r\n this._updateViewPort(_vec2_temp.x, _vec2_temp.y, _vec2_temp2.x - _vec2_temp.x, _vec2_temp2.y - _vec2_temp.y);\r\n // 此处修改 若为首个layer 缓存_cullingDirty。\r\n // _cullingDirty会在填充渲染数据后被改为false 所以需要缓存这里的结果\r\n if (!firstTmxLayer) {\r\n this._cacheCullingDirty = this._cullingDirty;\r\n }\r\n // 修改结束\r\n }\r\n }\r\n },\r\n _traverseAllGrid () {\r\n let tiles = this._tiles;\r\n let texGrids = this._texGrids;\r\n let tilesetIndexArr = this._tilesetIndexArr;\r\n let tilesetIndexToArrIndex = this._tilesetIndexToArrIndex = {};\r\n\r\n const TiledMap = cc.TiledMap;\r\n const TileFlag = TiledMap.TileFlag;\r\n const FLIPPED_MASK = TileFlag.FLIPPED_MASK;\r\n\r\n let singleTexture = this._tiledMap.isSingleTexture();\r\n\r\n tilesetIndexArr.length = 0;\r\n for (let i = 0; i < tiles.length; i++) {\r\n let gid = tiles[i];\r\n if (gid === 0) continue;\r\n gid = ((gid & FLIPPED_MASK) >>> 0);\r\n let grid = texGrids[gid];\r\n if (!grid) {\r\n cc.error(\"CCTiledLayer:_traverseAllGrid grid is null, gid is:\", gid);\r\n continue;\r\n }\r\n let tilesetIdx = grid.texId;\r\n if (tilesetIndexToArrIndex[tilesetIdx] !== undefined) continue;\r\n tilesetIndexToArrIndex[tilesetIdx] = tilesetIndexArr.length;\r\n tilesetIndexArr.push(tilesetIdx);\r\n \r\n // 此处修改 当只有一个图集时 可以直接停止遍历\r\n if (singleTexture) {\r\n break;\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/tiledmap-optimize-resource/Script/TmoTiledMap.js b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledMap.js index 978d582..0c10207 100644 --- a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledMap.js +++ b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledMap.js @@ -11,9 +11,7 @@ cc._RF.push(module, '0b9eetmSUdJRZCQS91TYCw/', 'TmoTiledMap'); // 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: { @@ -27,7 +25,6 @@ cc.Class({ cc.error("TiledmapOptimize: 未设置objectMaterial!"); return; } - this._super(); }, _buildLayerAndGroup: function _buildLayerAndGroup() { @@ -35,32 +32,25 @@ cc.Class({ 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 = []; @@ -72,49 +62,40 @@ cc.Class({ 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; + // 修改结束 - 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; @@ -122,11 +103,9 @@ cc.Class({ 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; @@ -134,33 +113,26 @@ cc.Class({ child.height = texture.height; images.push(child); } - maxWidth = Math.max(maxWidth, child.width); maxHeight = Math.max(maxHeight, child.height); } - } // 设置材质的texture属性 - + } + // 设置材质的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() { diff --git a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledMap.js.map b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledMap.js.map index 73b0aaf..6b0ffa3 100644 --- a/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledMap.js.map +++ b/temp/quick-scripts/src/tiledmap-optimize-resource/Script/TmoTiledMap.js.map @@ -1 +1 @@ -{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoTiledMap.js"],"names":["TmoTiledLayer","require","TmoObjectGroup","cc","Class","TiledMap","properties","objectMaterial","Material","noColor","singleTexture","_objectTextures","_applyFile","error","_super","_buildLayerAndGroup","tilesets","_tilesets","texGrids","_texGrids","animations","_animations","length","i","l","tilesetInfo","fillTextureGrids","_fillAniGrids","layers","_layers","groups","_groups","images","_images","oldNodeNames","n","node","_name","mapInfo","_mapInfo","layerInfos","getAllChildren","textures","_textures","maxWidth","maxHeight","firstTmxLayer","len","layerInfo","name","child","getChildByName","Node","addChild","setSiblingIndex","active","visible","TMXLayerInfo","layer","getComponent","addComponent","_init","ownTiles","push","TMXObjectGroupInfo","group","TMXImageLayerInfo","texture","sourceImage","opacity","_offset","v2","offset","x","y","image","Sprite","spf","spriteFrame","SpriteFrame","setTexture","width","height","Math","max","objectTextures","idx","setProperty","children","c","destroy","_syncAnchorPoint","getObjectMaterial","isNoColor","isSingleTexture","getObjectTextures"],"mappings":"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","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/class.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\nconst TmoTiledLayer = require(\"./TmoTiledLayer\");\r\nconst TmoObjectGroup = require(\"./TmoObjectGroup\");\r\ncc.Class({\r\n extends: cc.TiledMap,\r\n properties: {\r\n objectMaterial: cc.Material,\r\n noColor: true,\r\n singleTexture: true,\r\n\r\n _objectTextures: [],\r\n },\r\n \r\n\r\n _applyFile: function () {\r\n if (!this.objectMaterial) {\r\n cc.error(\"TiledmapOptimize: 未设置objectMaterial!\");\r\n return;\r\n }\r\n\r\n this._super();\r\n },\r\n\r\n _buildLayerAndGroup: function () {\r\n let tilesets = this._tilesets;\r\n let texGrids = this._texGrids;\r\n let animations = this._animations;\r\n texGrids.length = 0;\r\n for (let i = 0, l = tilesets.length; i < l; ++i) {\r\n let tilesetInfo = tilesets[i];\r\n if (!tilesetInfo) continue;\r\n cc.TiledMap.fillTextureGrids(tilesetInfo, texGrids, i);\r\n }\r\n this._fillAniGrids(texGrids, animations);\r\n\r\n let layers = this._layers;\r\n let groups = this._groups;\r\n let images = this._images;\r\n let oldNodeNames = {};\r\n for (let i = 0, n = layers.length; i < n; i++) {\r\n oldNodeNames[layers[i].node._name] = true;\r\n }\r\n for (let i = 0, n = groups.length; i < n; i++) {\r\n oldNodeNames[groups[i].node._name] = true;\r\n }\r\n for (let i = 0, n = images.length; i < n; i++) {\r\n oldNodeNames[images[i]._name] = true;\r\n }\r\n\r\n layers = this._layers = [];\r\n groups = this._groups = [];\r\n images = this._images = [];\r\n\r\n let mapInfo = this._mapInfo;\r\n let node = this.node;\r\n let layerInfos = mapInfo.getAllChildren();\r\n let textures = this._textures;\r\n let maxWidth = 0;\r\n let maxHeight = 0;\r\n\r\n this._objectTextures = [];\r\n let firstTmxLayer = null;\r\n\r\n if (layerInfos && layerInfos.length > 0) {\r\n for (let i = 0, len = layerInfos.length; i < len; i++) {\r\n let layerInfo = layerInfos[i];\r\n let name = layerInfo.name;\r\n\r\n let child = this.node.getChildByName(name);\r\n oldNodeNames[name] = false;\r\n\r\n if (!child) {\r\n child = new cc.Node();\r\n child.name = name;\r\n node.addChild(child);\r\n }\r\n\r\n child.setSiblingIndex(i);\r\n child.active = layerInfo.visible;\r\n\r\n if (layerInfo instanceof cc.TMXLayerInfo) {\r\n // 此处修改 改为创建MyTiledLayer\r\n let layer = child.getComponent(TmoTiledLayer);\r\n if (!layer) {\r\n layer = child.addComponent(TmoTiledLayer);\r\n }\r\n // 修改结束\r\n // 此处修改 传递firstTmxLayer 记录firstTmxLayer\r\n layer._init(layerInfo, mapInfo, tilesets, textures, texGrids, this, firstTmxLayer);\r\n firstTmxLayer = firstTmxLayer || layer;\r\n // 修改结束\r\n\r\n // tell the layerinfo to release the ownership of the tiles map.\r\n layerInfo.ownTiles = false;\r\n layers.push(layer);\r\n }\r\n else if (layerInfo instanceof cc.TMXObjectGroupInfo) {\r\n let group = child.getComponent(TmoObjectGroup);\r\n if (!group) {\r\n group = child.addComponent(TmoObjectGroup);\r\n }\r\n\r\n group._init(layerInfo, mapInfo, texGrids, this);\r\n groups.push(group);\r\n }\r\n else if (layerInfo instanceof cc.TMXImageLayerInfo) {\r\n let texture = layerInfo.sourceImage;\r\n child.opacity = layerInfo.opacity;\r\n child.layerInfo = layerInfo;\r\n child._offset = cc.v2(layerInfo.offset.x, -layerInfo.offset.y);\r\n\r\n let image = child.getComponent(cc.Sprite);\r\n if (!image) {\r\n image = child.addComponent(cc.Sprite);\r\n }\r\n\r\n let spf = image.spriteFrame || new cc.SpriteFrame();\r\n spf.setTexture(texture);\r\n image.spriteFrame = spf;\r\n\r\n child.width = texture.width;\r\n child.height = texture.height;\r\n images.push(child);\r\n }\r\n\r\n maxWidth = Math.max(maxWidth, child.width);\r\n maxHeight = Math.max(maxHeight, child.height);\r\n }\r\n }\r\n\r\n // 设置材质的texture属性\r\n let objectTextures = this._objectTextures;\r\n for (let i = 0; i < objectTextures.length; i++) {\r\n let idx = i === 0 ? '' : i;\r\n this.objectMaterial.setProperty(`texture${idx}`, objectTextures[i], 0);\r\n }\r\n\r\n let children = node.children;\r\n for (let i = 0, n = children.length; i < n; i++) {\r\n let c = children[i];\r\n if (oldNodeNames[c._name]) {\r\n c.destroy();\r\n }\r\n }\r\n\r\n this.node.width = maxWidth;\r\n this.node.height = maxHeight;\r\n this._syncAnchorPoint();\r\n },\r\n\r\n getObjectMaterial: function () {\r\n return this.objectMaterial;\r\n },\r\n\r\n isNoColor: function () {\r\n return this.noColor;\r\n },\r\n\r\n isSingleTexture: function () {\r\n return this.singleTexture;\r\n },\r\n\r\n getObjectTextures: function () {\r\n return this._objectTextures;\r\n }\r\n});"]} \ No newline at end of file +{"version":3,"sources":["packages\\TiledMapOptimizer\\resource\\Script\\TmoTiledMap.js"],"names":["TmoTiledLayer","require","TmoObjectGroup","cc","Class","TiledMap","properties","objectMaterial","Material","noColor","singleTexture","_objectTextures","_applyFile","error","_super","_buildLayerAndGroup","tilesets","_tilesets","texGrids","_texGrids","animations","_animations","length","i","l","tilesetInfo","fillTextureGrids","_fillAniGrids","layers","_layers","groups","_groups","images","_images","oldNodeNames","n","node","_name","mapInfo","_mapInfo","layerInfos","getAllChildren","textures","_textures","maxWidth","maxHeight","firstTmxLayer","len","layerInfo","name","child","getChildByName","Node","addChild","setSiblingIndex","active","visible","TMXLayerInfo","layer","getComponent","addComponent","_init","ownTiles","push","TMXObjectGroupInfo","group","TMXImageLayerInfo","texture","sourceImage","opacity","_offset","v2","offset","x","y","image","Sprite","spf","spriteFrame","SpriteFrame","setTexture","width","height","Math","max","objectTextures","idx","setProperty","children","c","destroy","_syncAnchorPoint","getObjectMaterial","isNoColor","isSingleTexture","getObjectTextures"],"mappings":"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","sourceRoot":"/","sourcesContent":["// Learn cc.Class:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/class.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\nconst TmoTiledLayer = require(\"./TmoTiledLayer\");\r\nconst TmoObjectGroup = require(\"./TmoObjectGroup\");\r\ncc.Class({\r\n extends: cc.TiledMap,\r\n properties: {\r\n objectMaterial: cc.Material,\r\n noColor: true,\r\n singleTexture: true,\r\n\r\n _objectTextures: [],\r\n },\r\n \r\n\r\n _applyFile: function () {\r\n if (!this.objectMaterial) {\r\n cc.error(\"TiledmapOptimize: 未设置objectMaterial!\");\r\n return;\r\n }\r\n\r\n this._super();\r\n },\r\n\r\n _buildLayerAndGroup: function () {\r\n let tilesets = this._tilesets;\r\n let texGrids = this._texGrids;\r\n let animations = this._animations;\r\n texGrids.length = 0;\r\n for (let i = 0, l = tilesets.length; i < l; ++i) {\r\n let tilesetInfo = tilesets[i];\r\n if (!tilesetInfo) continue;\r\n cc.TiledMap.fillTextureGrids(tilesetInfo, texGrids, i);\r\n }\r\n this._fillAniGrids(texGrids, animations);\r\n\r\n let layers = this._layers;\r\n let groups = this._groups;\r\n let images = this._images;\r\n let oldNodeNames = {};\r\n for (let i = 0, n = layers.length; i < n; i++) {\r\n oldNodeNames[layers[i].node._name] = true;\r\n }\r\n for (let i = 0, n = groups.length; i < n; i++) {\r\n oldNodeNames[groups[i].node._name] = true;\r\n }\r\n for (let i = 0, n = images.length; i < n; i++) {\r\n oldNodeNames[images[i]._name] = true;\r\n }\r\n\r\n layers = this._layers = [];\r\n groups = this._groups = [];\r\n images = this._images = [];\r\n\r\n let mapInfo = this._mapInfo;\r\n let node = this.node;\r\n let layerInfos = mapInfo.getAllChildren();\r\n let textures = this._textures;\r\n let maxWidth = 0;\r\n let maxHeight = 0;\r\n\r\n this._objectTextures = [];\r\n let firstTmxLayer = null;\r\n\r\n if (layerInfos && layerInfos.length > 0) {\r\n for (let i = 0, len = layerInfos.length; i < len; i++) {\r\n let layerInfo = layerInfos[i];\r\n let name = layerInfo.name;\r\n\r\n let child = this.node.getChildByName(name);\r\n oldNodeNames[name] = false;\r\n\r\n if (!child) {\r\n child = new cc.Node();\r\n child.name = name;\r\n node.addChild(child);\r\n }\r\n\r\n child.setSiblingIndex(i);\r\n child.active = layerInfo.visible;\r\n\r\n if (layerInfo instanceof cc.TMXLayerInfo) {\r\n // 此处修改 改为创建MyTiledLayer\r\n let layer = child.getComponent(TmoTiledLayer);\r\n if (!layer) {\r\n layer = child.addComponent(TmoTiledLayer);\r\n }\r\n // 修改结束\r\n // 此处修改 传递firstTmxLayer 记录firstTmxLayer\r\n layer._init(layerInfo, mapInfo, tilesets, textures, texGrids, this, firstTmxLayer);\r\n firstTmxLayer = firstTmxLayer || layer;\r\n // 修改结束\r\n\r\n // tell the layerinfo to release the ownership of the tiles map.\r\n layerInfo.ownTiles = false;\r\n layers.push(layer);\r\n }\r\n else if (layerInfo instanceof cc.TMXObjectGroupInfo) {\r\n let group = child.getComponent(TmoObjectGroup);\r\n if (!group) {\r\n group = child.addComponent(TmoObjectGroup);\r\n }\r\n\r\n group._init(layerInfo, mapInfo, texGrids, this);\r\n groups.push(group);\r\n }\r\n else if (layerInfo instanceof cc.TMXImageLayerInfo) {\r\n let texture = layerInfo.sourceImage;\r\n child.opacity = layerInfo.opacity;\r\n child.layerInfo = layerInfo;\r\n child._offset = cc.v2(layerInfo.offset.x, -layerInfo.offset.y);\r\n\r\n let image = child.getComponent(cc.Sprite);\r\n if (!image) {\r\n image = child.addComponent(cc.Sprite);\r\n }\r\n\r\n let spf = image.spriteFrame || new cc.SpriteFrame();\r\n spf.setTexture(texture);\r\n image.spriteFrame = spf;\r\n\r\n child.width = texture.width;\r\n child.height = texture.height;\r\n images.push(child);\r\n }\r\n\r\n maxWidth = Math.max(maxWidth, child.width);\r\n maxHeight = Math.max(maxHeight, child.height);\r\n }\r\n }\r\n\r\n // 设置材质的texture属性\r\n let objectTextures = this._objectTextures;\r\n for (let i = 0; i < objectTextures.length; i++) {\r\n let idx = i === 0 ? '' : i;\r\n this.objectMaterial.setProperty(`texture${idx}`, objectTextures[i], 0);\r\n }\r\n\r\n let children = node.children;\r\n for (let i = 0, n = children.length; i < n; i++) {\r\n let c = children[i];\r\n if (oldNodeNames[c._name]) {\r\n c.destroy();\r\n }\r\n }\r\n\r\n this.node.width = maxWidth;\r\n this.node.height = maxHeight;\r\n this._syncAnchorPoint();\r\n },\r\n\r\n getObjectMaterial: function () {\r\n return this.objectMaterial;\r\n },\r\n\r\n isNoColor: function () {\r\n return this.noColor;\r\n },\r\n\r\n isSingleTexture: function () {\r\n return this.singleTexture;\r\n },\r\n\r\n getObjectTextures: function () {\r\n return this._objectTextures;\r\n }\r\n});"]} \ No newline at end of file diff --git a/temp/startup.json b/temp/startup.json index 8ec9322..6af8870 100644 --- a/temp/startup.json +++ b/temp/startup.json @@ -1 +1 @@ -{"pid":9816} +{"pid":40856}